gamepad Quack Stanley

Quack Stanley is an Apples-to-Apples-style party game, inspired by Snake Oil (designed by Jeff Ochs). I built this as a project for learning the Elm programming language, but it ended up being a fun game. Give it a spin and let me know how you find it.

gamepad pokerdot

pokerdot provides a free online poker game for you and your friends. Specifically, pokerdot uses the rules for no-limit Texas hold'em. It is still a work-in-progress and progress is very slow, but should be playable as-is.



An interactive model of an ADALINE, which is a neural network with a single neuron that can be trained to recognise simple patterns. This is a foundational model for understanding neural networks and machine learning.

gamepad Indoneasier

An interactive player aid for the board game Indonesia. The merger calculator can take the place of a mergers cost lookup table, leaving the players free to consider the strategy of the merge. A rules summary is included to help while playing the game.

watch PebRunner

I created a wrist-assistant for Netrunner matches, my first attempt at a real Pebble app. I was kicked into action at the time by the imminent arrival of my new Pebble Time but now that's arrived the app's moved on a fair bit. If like me, you're a Pebble owner with a love of Netrunner, then you must take a look!

watch Pebble meeting mode

After an excellent suggestion from @Fleagret, I created a very simple Pebble watchface designed for meetings. It displays the time very clearly and buzzes every 5/15 (short/long) minutes to help you keep track of how long a meeting is taking. I find it especially useful when I'm conducting an interview and need to carefully track the time without obviously looking at a clock.

palette Cubes

Cubes is a piece of dynamic art, created using elm and WebGL. Originally a reason to tinker with elm-3d-scene, it ended looking quite nice.

build Luna

Luna is a physics demonstration written in the elm programming language, originally written to visualise gravitational slingshot manoeuvres.

gamepad Game of Life

An implementation of Conway's Game of Life in a functional manner, using Scala.

gamepad Nanpure

A Sudoku UI written in Elm.

music_note Meter delta

Meter delta is a JavaScript library that enables dynamic time signature improvisation for musicians.

Other (old) projects


DjanJinja lets you use Jina2 templates in Django. There are other solutions for this problem available but I wasn't satisfied with them. Development on DjanJinja stalled so my fork of the project is the place to go if you want to use it, but be aware I last updated it for Django 1.3 so it is pretty out of date now.


I think the README says it best: This is a silly repository.

It's a Python wrapper around Git shell commands that I threw together for a little project that was going to use Git as a database.

MySQL unicode converter

By default MySQL uses latin encoding but Django assumes it is unicode. If you have an existing latin database (if you only realised after go-live, say (oops)), this script will convert the database to unicode for you.

Note it won't fix any already-corrupted data (I'm not magic), but it will set the database up properly so no more data will be damaged.

We've all been there.

Very old things


When I stopped writing PHP I dumped my MVC-framework-in-progress on Github. It's amazingly out of date now but I think there were some good ideas there and I spent a long time on it so have a look if you're interested.

Misc JavaScript

Take a look at my GitHub. I used to write quite a lot of MooTools / jQuery plugins and I got round to putting some of them up there.