Arc

Arc is a toy operating system for modern PCs with amd64 processors. It is written mostly in C11, with small amounts of Intel-style assembly where required. It can be loaded by any Multiboot 2-compliant boot loader, such as GNU GRUB.

Read more


Certificate Transparency Monitor

Certificate Transparency is a system for monitoring and auditing publicly-trusted SSL certificates. I run a Certificate Transparency monitor, which checks that log servers are behaving correctly.

Read more


JTerminal

A Swing component which roughly emulates a VT100-compatible terminal.

Read more


lancat

A program for performing file transfers over a local area network with zero configuration. It uses UDP multicast packets to automatically pair up the sender and receiver.

Read more


Laser Tag

A laser tag system based on an AVR microcontroller - specifically, the AVR Atmel ATmega328p. For prototyping I’m using an Arduino Uno board, but I plan to make a custom circuit board with the microcontroller placed directly on it. The software is written in C and does not use the Arduino/Wiring library - it uses AVR libc directly. This means the code has direct control over the timers, interrupts and other features of the microcontroller, which allows many improvements over existing AVR-based systems I have seen (e.g. the code is capable of simultaneous infrared reception and transmission).

Read more


Lightstone

An open-source implementation of the Minecraft server software. The project is now defunct, but development has been continued by the Glowstone project. In turn, Glowstone was used as the basis for the Spout project.

Read more


minecraft-installer

A package for Debian and Ubuntu that downloads and installs the official Minecraft client. It creates a menu item and depends on the relevant Java packages so that everything you need is installed automatically.

Read more


nginx Certificate Transparency module

A module which adds support for the TLS signed_certificate_timestamp extension to nginx, which is one of the mechanisms supported by Google’s Certificate Transparency project to deliver Signed Certificate Timestamps to TLS clients.

Read more


Stone Age Online

Stone Age Online is the code name for a work in progress 3D multiplayer game that I’m developing. It’s written in Java and (after a brief spell of using C++ with Ogre3D for the client) currently uses a custom rendering engine, although I am intending on porting it to jMonkeyEngine.

Read more


Tiny BASIC Compiler

A simple compiler for an extremely minimal dialect of BASIC called Tiny BASIC. It’s fairly dumb: it tokenizes and parses the source code into an abstract syntax tree, translates the abstract syntax tree into a stack-based intermediate representation and then turns that fairly directly into amd64 assembly.

Read more