print("random code")

Over the years I have written many different things in various languages. Largely Python and POSIX shell and most of them are done to the point that they Work For Me™ and solved whatever problem I had at the time.

Patches are welcome, you can find clone and patch instructions on the root page of my git repository.

Microcontroller Projects

Mostly written in C and targeting various Atmel / Microchip microcontrollers. These projects live here.

bar-lighting A custom lighting controller built for my camp at Pennsic War that provides simulated candle light along with some other general lighting throughout our camp site. Uses an ATMega328P and a PCA9633 or PCA9685 PWM controller.
breather There are many implementations of the 'breathing LED', this is one of mine. This one uses an ATTiny85 and pre-computed brightness tables.
led-gadget A bit of a junk drawer of simple LED effects running on PIC microcontrollers. See the README.txt in this folder for a description of the different effects.
sensenet My 915MHz sensor network, featuring several different sensor designs and a base station, built around the RFM69HCW radio modules. I don't trust the Internet of Things so this is my LAN of Things.
serial-keypad I tried streaming once, I wrote a lot of code to make it look reasonable and built a serial keyboard that I interfaced to for scene switching. It's a pretty simple little ATMega32U4 based thing that can be used for all kinds of automation.
usb-vfd I took a Noritake itron VFD and an Atmel ATMega32U4 and hooked them up to the Internet. This is the firmware for that.

Containers

A collection of mostly esoteric toys wrapped into Docker containers live here. There is also a README in the repository with more details about them all.

atmelbuilder, builderbase, microchipbuilder
2018+
I build the firmware for my microcontroller projects via a git hook and these are the containers that I use to do that. I wrote a blog post about this.
dockerbuilder
2019+
Since I build microcontroller code from a git hook, why not also build containers from a git hook? This does that.
dosbox, lord
2020
I have put several old, nostalgic things in containers for reasons. In this case I put the popular BBS door game L.O.R.D. in one. I had to build a custom version of DOSBOX to make it work. If you are looking to put old DOS games in a container this might be useful.
elite
2017-2019
One of the first things I put into a container when I was originally fooling around with Docker, the DOS version of Elite Plus.
geminid, mollybrown
2020+
Gemini is an experimental Internet protocol, similar to Gopher. These are a couple servers for that protocol that I put in containers to experiment with.
netscape-3.04-gold, netscape-4.79-linux
2017-2019
Another early experiment was sticking some old browsers into containers. Hopefully preserving a look into how the Web used to be.
z80builder
2019
I build microcontroller firmware and Docker containers from git using containers so why wouldn't I also build Z80 assembly binaries? This is a container to do just that using the ZASM assembler.

Python

A collection of Python bits and pieces all packaged up. Usually this means I copied these a bunch of times across several projects. The root of the repository is here.

flask-configurator
2019+
When I started putting Flask applications into containers I wanted a way to configure them that worked well both inside a container and in the more traditional Apache mod_wsgi context which I still used in production. This is that. I use it in basically all of my Flask apps.
flask-syslogger
2018+
I believe strongly in logging to a central log server. I use syslog-ng as my log server and have everything send logs to it. This is extremely useful. To facilitate this with Flask applications in container and non-container contexts I wrote a bunch of stuff. This is that. It also makes it easy for me to log to a local file while developing and log to syslog in production.

Miscellany

ansible
2020+
I really prefer Puppet and most of my stuff is managed by it but it turns out that Raspberry Pis are too slow and have too little memory to reasonably run Puppet so I use Ansible to manage those. This repository has several playbooks, including an ADS-B and UAT feeder to FlightAware, an Airplay speaker, a CUPS Print server and a terminal server that runs my Wyse WY-60 terminal, my ISM sensor network base station and my Noritake VFD.
arris-scraper
2019-2021
I wrote a Python program to gather statistics from the internal web page of the Arris SB8200 cable modem so I could send it off to Influx DB and graph it. I then wrote a blog post about it. I got FTTH in 2021 so I have stopped active development but still accept patches.
backup-itunes
2014+
A script that backs up my iTunes Music.app library on my MacBook Pro over rsync over ssh.
backup-books
2021+
A script that backs up my iTunes Books.app library.
backup-ios-backups
2020+
A script that backs up the iTunes macOS backups of my iOS devices. I mostly use this to make sure I have a copy of my SMS database for processing.
backup-routerboard
2014+
A script that backs up my MikroTik RouterBoard devices running RouterOS.
bbtools
2009+
Various tools for managing my mobile devices. Mostly BlackBerry devices but some stuff for working with backups of iOS devices.
check_nac
2012-2013
I wrote a Nagios plugin to check the status of a NetApp Clustered Data ONTAP system. This uses the NetApp Managability SDK which is probably not supported anymore. It was able to check general health, disk health, volume space and SnapMirror replication relationships.
check_vfiler
2013-2015
I also wrote a Nagios plugin to check the status of the SnapMirror and SnapVault relationships that were running inside a vFiler instance on a NetApp Data ONTAP 7-mode system. This uses the NetApp Managability SDK which is probably not supported anymore.
dotfiles
2015+
This is a collection of trivial utilities and configuration files for various programs.
ircbot
2008+
One of my ex-coworkers and I started writing an IRC bot for the internal IRC server we ran at $OLDJOB. Over the years I took it over and still take care of it on a private IRC server that I run. There are lots of ways to make IRC robots and this is how I did it. I have even used it on my Twitch channel when I was screwing around with streaming.
pypeteer
2020+
I found myself wanting to generate OpenGraph preview images for the microblog, in large part to make iOS link previews work. This wasn't all that hard, I ended up writing another Azure Function to use pyppeteer (a Python wrapper around Puppeteer) to generate the image. I then wrote a blog post about it.
Previously.
rss-generators
2016+
These started out as a bunch of CGI scripts for transforming some RSS feeds into better RSS feeds and has morphed into an all singing, all dancing middle-finger towards the modern web. It aggregates YouTube, Instagram, Twitter, Tumblr, and Patreon feeds along side several web comics and sites into RSS feeds that I happily read with a regular old RSS feed reader. These days it runs as a Docker container as well.
screenfetch-netapp
2015-2017
I used to be into the desktop customization scene and one of the things that's popular there are system info utilities like screenFetch or neofetch that show off your hardware in screenshots. I also used to run large NetApp storage arrays so I wrote a screenfetch for NetApp ONTAP systems.
upsidedown-rewrite
2010
A lot of people used to harmlessly prank people on their guest WiFi. I chose to interscept all images and rotate them 180°. This doesn't work now with the wide adoption of HTTPS, and I'm less of a jerk these days.
vociferate
2019+
Vociferate is the internal name of my Random Thoughts microblog. It is an Azure Function and I wrote like 4 blog posts about it.
Previously, previously, previously, previously.
youtube-dashboard
2021+
I don't log into my Google account ever, so I get the generic YouTube home page which is usually fine since I do most of my YouTube browsing via the RSS transmogrifier feed. Occasionally though I find something worth watching on the homepage. More often than not though the suggestions are garbage clickbait, so I wrote a curses app that lets me fetch the homepage and run it through a killfile.

iOS / macOS Programs

iPictureFrame
2018-2019
This was an attempt to turn an old iPad into a digital picture frame. It worked but it turns out that it wasn't worth paying $100/year for the privlidge of keeping a device I bought out of a landfill.
youtube-dead-ios
2018-2019
One of my first Docker / Flask applications was a system to download a YouTube video and discard the video track. I started with just having a web app frontend but decided to try to build a native iOS app frontend. This is that. It worked but Apple's deathgrip over the platform made it impratical for me to use so it's been abandoned. It is a reasonable example of a Swift based streaming media player, though.
UserLedController
2019
While I was building the hardware and firmware for the serial keypad for my stream automation software I wanted a way to test the various functions so I wrote a quick macOS app in Swift to interact with the test hardare.

There is even more, some old, all still loved, some even updated! Head on over to https://ssl.ub3rgeek.net/git/ and check them out.