This page is an index of various bits of software I’ve written in my spare time. Most of this software is released under the BSD Licence, and source is hosted on GitHub.

Web Stuff

Plane Sailing
Plane/Sailing is a completely unnecessary military situational awareness display for your home; the web front-end to my hardware project of the same name. The back-end server that provides data to the web interface is here.
U.M.I.D. 1090

U.M.I.D. 1090 (Unnecessary Military Interface for Dump1090) is a web-based display for ADS-B flight tracking software Dump1090, using military symoblogy. It's the predecessor to Plane/Sailing.

Hypixel Skyblock Bazaar Flipping Calculator
The Hypixel Skyblock Bazaar Flipping Calculator helps you make stonks by flipping items in the Skyblock bazaar on the Hypixel Minecraft server.
The WSPRnet Information System is a prototype for a display of WSPRnet data with an 80s-style user interface. It currently only shows pre-canned data but will be implemented properly with live data when time allows.
Can I Call It...?
"Can I Call It...?" is a utility that helps you name your new software project, by checking for any existing software packages that already have that name.
GitHub Readme Website
The GitHub README Website Generator generates a website for your software based on files in your GitHub repositories.
Twixt is a pastebin for Twitter that's integrated with SuccessWhale.
Yet Another Single File Photo Gallery is a simple bit of PHP that presents photos on a filesystem via an attractive web interface.
FaceFinder is a "who's who" page designed for corporate intranets. Two versions are available, one standalone that uses a PHP script and a flat file structure, and one that integrates with Microsoft SharePoint.
The Marvellator is a script that generates random silly comic book titles.
Terrible Fanfiction Idea Generator
The Terrible Fanfiction Idea Generator is another silly random generator script. This one generates terrible scenarios to use as the basis for fanfiction.
Cobbs Quay Weather
Cobb's Quay Weather is a script that grabs the data behind a Flash-based weather monitoring interface and presents it as plain HTML for use on sailor's phones.


Sea Battle
Sea Battle is a casual 2D RTS with a pixel-art style and game mechanics inspired by Warzone 2100.

Code for Hardware Projects

Raspberry Tank
The Raspberry Tank has various iterations of the code available in its repository, covering the C-based backend and web-based frontend.
The Quadcopter repository contains a few initial test scripts for flying the quad via the Raspberry Pi.
Lego Turtle
The Lego Turtle repository includes both pre-programmed examples and the version that has a Logo interpreter via UART to accept custom movement programs.
All-Terrain Pi
The All-Terrain Pi repository contains the Python backend, the web-based remote control frontend and example Scratch programs to drive the vehicle.
Rimbaud's House
The Gecko Cam software includes the Raspberry Pi-based backend and web frontend to the "Rimbaud's House" website.
The Playbulb Tools repository has a couple of example scripts showing how to configure a Playbulb LED light to show current weather and mailbox status.
Raspberry Pi Utils
I also have a repository for general Raspberry Pi Utils and useful scripts for the Pi.


My 2014 NaNoGenMo entry is a generator of semi-random 50,000-word novels based on fanfiction.
Iridium9601Sim is a variant of my CrapTerminal serial terminal app with some helpful shortcuts for use with Iridium 9601 SBD modems.
RPG Dice Roller
My first Python project was a simple RPG Dice Roller with support for different systems such as D&D, World of Darkness, Shadowrun etc.
Disqus to HashOver
Disqus to HashOver is a quick and dirty Java application that converts blog comments in a Disqus export into HashOver's file structure.

Abandoned Projects

SuccessWhale was a multi-column Twitter (and formerly Facebook) client. The frontend ran in Javascript, with a separate repository for the backend API which was written in Ruby and supports third-party clients. It is now non-functional due to API changes at Twitter and Facebook, and seeking other maintainers if anyone is interested.
Daily Promise
Daily Promise was a "1-bit" activity tracker that allows you to make "promises" and keep track of how many days in a row you kept them.
A Thousand Words
A Thousand Words was an attempt at a fiction-writing community where contributors would post a photo and encourage others to use it as an idea for short stories.
Westminster Hubble
Westminster Hubble was a website that tracked UK Members of Parliament, both their activities at Westminster and on social media. It was shuttered due to a combination of lack of interest and API changes of the services it depended on.
Telegraph Fantasy Football Team Picker
Telegraph Fantasy Football Team Picker automatically picked optimum teams for the Telegraph's Fantasy Football game, around 2009-2012. This scraped the stats web pages from the game as there was no proper API; eventually I stopped playing fantasy football and thus stopped fighting the website's frequently changing markup.
Premier League Fantasy Football Team Picker
Premier League Fantasy Football Team Picker automatically picked optimum teams for the Premier League's official Fantasy Football game, around 2009-2011. This scraped the stats web pages from the game as there was no proper API; eventually I stopped playing fantasy football and thus stopped fighting the website's frequently changing markup.
MusicMan was an attempt at a music player and music library manager. It had some basic functionality but never compared with the likes of Winamp and Foobar.
War of the Roses
War of the Roses was an attempt at making a strategy RPG, which never got very far.
Gunboat was a 3D naval shooter game, through which I tried to teach myself OpenGL. Some basic graphics work and controls were in place, but the game was never finished.
Type X29
Type X29 is an experimental 1D "bullet hell" shooter. It's playable, but only just.