The lab

The lab

The lab contains various small scripts or other projects I've worked on in the past, along with descriptions and download links. Have a look through them, you might find something interesting.


ELFHex is a simple "assembler" designed for learning machine code. It takes programs comprising machine instructions and packages them into ELF executable binaries.

A simple implementation of byte-pair encoding

Byte pair encoding is a simple but (sometimes) effective algorithm for compressing data (especially textual data). Best of all, it is very easy to understand! Therefore, in this experiment I have created a simple Python script that implements byte pair encoding on files.

Functions for the TI-89

Some maths functions I wrote for my TI-89 calculator that may help with various maths problems. Fully documented both with NoteFolio and in an included text files.

A custom <select> control using JavaScript

In this experiment, I created a completely customisable JavaScript-based alternative to the notoriously difficult-to-style <select> form control. It works by hiding the original select element, and when the user clicks on an option, the original control is automatically updated. This means that it also degrades nicely with JavaScript off, as the old select is simply not replaced and continues to be usable. It even works in IE6!

The Mandelbrot set in Flash

A Flash-based application that renders the Mandelbrot set. I first attempted a renderer written in Javascript, which can be found in the article, but it was too slow. So, Flash was used.

<canvas> snake game

A small classic snake game, with five speeds. The script is actually adapted from a snake game I wrote for the TI-89 calculators in TI-BASIC.