Free/Open Source Software

Having programmed computers since 1985 and for a living since 1992, I have written a lot of software. I've worked in many languages (Java, Pascal, C/C++, C#, DBase, VB, various assembly and a lot more), but these days tend to stick to C, Javascript and Python running on Linux for my own projects.

Every single one of these projects is licensed under the GPL, LGPL or Public Domain.

  • Nov, 1999 - 2016 Animal Shelter Manager - Free software for animal sanctuaries and rescue shelters. Also the widest used package of its type in the world.
  • Apr, 2013 GNOME3 mail/calendar notifier - GNOME3 shell notifications for email and the UNIX calendar.
  • Mar, 2013 - 2015 pimc (omxremote) - a web-based smartphone remote control for the raspberry pi.
  • Sep, 2010 - 2014 inetdxtra - A set of inetd-based servers for use on systems with very tight resources. These comprise a webserver, a DNS server, an SMTP relay server, a DHCP server, a CTorrent control server, an HTTP proxy and a Jabber/XMPP server.
  • Sep, 2007 UMLSpeed - A compiler for a C-style UML language that can produce SVG diagrams and XMI documents.
  • Mar, 2004 - Feb, 2012 SwingWT - a free implementation of the Java Swing/AWT APIs to run on free Java virtual machines and allow native widgets.
  • Jul, 2005 - Nov, 2014 Fruity Banking! - A web-based double-entry accounting package (similar to GNUcash and Quicken, but simpler, completely portable and very flexible).
  • Mar, 2010 2640Rcap - a bandwidth/cap monitoring tool for the D-Link 2640R wireless router
  • Apr, 2009 hotvolume - a simple volume control script that can be used as the target of keybindings for laptop/multimedia keyboard hotkeys. It has an on-screen display and is useful for lightweight window managers such as windowmaker, fvwm, icewm, etc.
  • Aug, 2008 mp32m3u - Very quickly write m3u stream files from collections of mp3 files with readable titles from the tags.
  • July, 2008 MVPMC VLC - I wrote and maintain the VLC stream integration code for the excellent MVPMC media player software.
  • May, 2006 OOWeb - A lightweight standalone HTTP server to allow rapid (and fun!) web application development in Java, similar to CherryPy.
  • 2004 COMConnect - THE fastest and most efficient way to integrate COM, .NET and Java applications on a TCP network. My employer graciously decided to release this product I designed and built for them under the GPL.
  • Jul, 2007 Videobooth - The framework of a video diary booth to allow members of the public to record audio/video diaries.
  • Sep, 2006 OpenPetLocator - A free implementation of a pet search engine tool to allow shelters to publish their animals to a central site and allow potential owners to find by proximity, similar to PetFinder.
  • Oct, 2006 MultiCDBurn - A simple CD recording tool with a GTK interface to burn all files in a directory to multiple CDs without archiving.
  • 2004 ObexMGET - Command line tool to connect to Mobile/OBEX compliant devices and retrieve multiple files from a directory based on regular expression match.
  • 2004 FreeTime - A free, GPLed, cross-platform, replacement client for the TimeWatch PersonalTime client that runs anywhere (unlike the real thing that only supports Windows).
  • 2004 Grinder2SQL - Command line tool to read CSV files generated by Grinder 3 agents and generate SQL statements to populate a database with the data.
  • 2004 iCal2Calendar - Command line tool to convert iCalendar/VCalendar meeting requests into ~/.calendar/calendar entries for use with the UNIX calendar command line tool.
  • 2004 BuddyALL - Command line tool to automatically add all users of a jabber 1.x server to each others buddy list.
  • 2004 RemindMe - Command line tool to allow you to set reminder messages for a date/time which will then be emailled to you.
  • 2004 MyBay - A program to keep track of your ebay auctions and calculate the real cost of selling items.
  • 2004 eBay Summary - A simple CGI application to present a view of how your ebay auctions are doing along with feedback for mobile devices.
  • 2004 MobileMail - A minimalist mobile phone mail gateway for those with their own webserver, a phone capable of basic (X)HTML and exorbitantly expensive UK GPRS charges.
  • 2003 Java ReplicatedHashtable - A distributed hashtable in a single class you can drop into your Java applications to add instant failover. Auto discovers other nodes on the same machine/subnet via multicast.
  • 2002 Java SMTP - A single java class that allows sending of email via SMTP transports.
  • 2002 Java JDBCHandler - A single java class that centralises boiler plate JDBC handling to eliminate connection leaks and keep query code elegant.
  • 2002 Java RollingExpirableCache - A single java class that provides a cache implementation with a fixed number of elements on a FIFO bases with expiry times.
  • 2002 MP3Rename - A simple program to rename mp3 files based on their ID3 tags.
  • 2002 Java2XMI - A fast program to convert Java sources to an XMI document for loading into Umbrello. Does not require reflection or the code to compile and is very fast.
  • 2002 SlashScrape - A command line tool to scrape a given Slashdot frontpage (eg: BSD) and return a given number of article links (or all). The links can be fed into a non-interactive download agent (such as wget) for offline caching of articles.
  • 2002 FetchGMail - A program to retrieve mails from your GMail inbox to a local UNIX mailspool.
  • 2002 GenerateUUID - A single, Java helper class to generate Type 1 (time-based) UUID's to the IETF draft.
  • 2002 RSSGrabber - A *nix command line utility to download content from RSS/RDF feeds.
  • 2001 Routerbooter - Designed to reboot any broadband router when the connection is lost. Built for my Samsung E300 router, but is fully configurable to work with any router with a web-based interface.
  • 2002 SiteSniffer - Command line utility to read the server info string from the HTTP headers sent by a webserver.
  • 2004 QuitMeter - A cross-platform application to show a running total of how long since you quit smoking, the amount of money not spent and the amount of your own life saved as a result.
  • 2001 SQLRecordset - An implementation of a client-side cursor engine in Java/JDBC that allows offline updates/synchronising and writes ANSI 92 compliant SQL.
  • 2001 JCOM - A bridge to allow Java applications to talk to Microsoft COM and .NET applications.
  • 2000 IAGE - A cross-platform multiplayer adventure game authoring system, crossing design elements of interactive fiction and MUDs.

These are other projects I've contributed code to:

  • 2006 SWTSwing - The reverse of my SwingWT project, it allows for a portable SWT renderer using Swing. Very handy for platforms where native SWT binaries don't exist.
  • 2006 Umbrello - The best free, graphical UML tool.
  • 2007 MVPMC - A free replacement for the Hauppage MediaMVP software and supports most streaming media types.



Free Software