Software
Some software I’ve written and released as open-source:
Nimplication — a toy SAT solver using the DPLL algorithm (and maybe CDCL in future).
memvalid (source) — memorise prose or lyrics, or test that you can reconstruct a completed piece of text by just looking at the first letter of each word, and revealing one word at a time. Implemented in Ur/web.
vfconcat — generate videos from PNG frames with inconsistent durations. Timings are recovered from the difference in consecutive frame timestamps, producing a control file for ffmpeg.
Metron (source) — a minimal implementation of a metronome that allows you to only play the first of every n beats. Uses the HTML5 webaudio API to play clicks.
Pitcher (source) — a collection of exercises for training and testing absolute pitch (also known as perfect pitch). I trained with it for a while and didn’t make much progress, and took part in a research study in training absolute pitch via another method which was much more effective. But I still use the pitch test from time to time to check how reliable my sense of pitch is (my mean absolute error is usually around 0.2-0.5 semitones). Implemented in Elm and uses the HTML5 webaudio API to control sounds.
Shotclock (source) — a shot clock for snooker shootout games. Implemented in Elm and uses the HTML5 webaudio API to control sounds.
The Iconic Memory Game (source) — a memory game based on the tachistoscope experiments by George Sperling in the 1960s which sought to characterise the visual short-term memory system. Implemented in Elm.
Blinkenwords (source) — a minimalist rapid serial visual presentation (RSVP) reading utility. Implemented in Elm.
Gluap — a stalled implementation of the PushGP stack-based genetic programming framework. Implemented in Lua.