Here's a load of software I have written or been involved in maintaining. As usual, a lot of these items are unfinished or in progress. As of Summer 2013, I've decided to include explicitly work-related software here too, which I've previously kept separate.

Most of my software is built in a Linux environment, and follows a common set of build instructions that I have devised and refined over the years. Give them a quick read if you can't work out what to do with a particular package.

Although I develop mostly on Linux, a lot of the code is portable Java and C. I've also developed a small amount of software for RISC OS. However, regrettably, I rarely get to use this operating system these days.

Current software

Name Description
Balancing tools for Unreal Tournament Adjust bots automatically
Binodeps Makefile library for C/C++
BitHash Sort 32 bits according to significance in ARM assembly language
CARP An RPC mechanism based on REST-like calls
CCML Component Compatibility Mark-up Language
C Headers for RISC OS SWIs C macros for RISC OS software interrupts
Draw-to-SVG Converter A RISC OS utility to convert Drawfiles to SVG
Dynamic data structures Lists, trees, strings and hash tables in C
Edges Library Two-colour edge tracing
Jardeps Per-tree Java dependencies in Makefiles
Java Internet Tools Miscellaneous Java libraries for Internet applications
Lusyn Parser for Java
Mokvino Experimental macro processor alternative to m4
Mokvino Web Scripts for maintaining websites
Morse Code Utilities Tools for learning and decoding Morse Code on RISC OS
Nonogram Programs Miscellaneous puzzle-solving programs
Polydoclot Combine multilingual comments in the same source
Portable C event reactor Single-threaded management of I/O events
Railpro stuff Bits and pieces for RailPro
RISC OS Keyboard Tester A utility to test the keyboard for faults
RJM Restartable Job Manager
Snapjib Synchronize a photo album at multiple sites
SoundAsleep Control music while sleeping
Stecam Webcam with motion detection
Storisphere Cloud-based community video editing
SYN-cookie proxy DDoS protection for TCP
VLAN VPN Manager Dynamically create VPNs into VLANs on one interface
Yacitros Yet another C interface to RISC OS