A Mind Less Ordinary

The web presence of Dave Ingram


I always have far too many projects on the go at any one time, and I have made a selection of them available below. If you want to contact me about any of these, then please @-message me via Twitter or email projects at this domain. If you want to thank me for anything here, please feel free to

Sort projects by name, date (newest first), date (oldest first),


A FUSE-based semantic file system (unstable)


An Apache module that allows you to template your configuration based on values from an SQL database


A libusb-based driver library and test programs for the Dream Link 21x7 LED display


A PHP framework designed to work well with Propel

Live bus map of Oxford

A live map showing the location of the various bus services in Oxford, England

Spotify lookup

Visit http://test.dmi.me.uk/spotify/(spotify uri) to look up information on a Spotify link. For example:

This works for artist, album, and track links only.


A Thunderbird add-on that allows you to easily tell Thunderbird which folders you want checked for new messages


An interactive bot to help automate various tasks, and capable of communicating over different media.


A simple command-line OAuth 1.0a client, which aims to help provide all necessary debugging information when asking for help

HTML5 Lemmings

A jQuery- and HTML canvas-based implementation of Lemmings, which can use (and destroy) elements on the page.

PHP instant docs

A search-as-you-type interface to the PHP manual, notable for doing all processing on the client side.


A C-based text templating extension for PHP

A system that lets you create bookmarks for a TfL search, based on 3-letter station codes, station names, or postcodes. For example:

The format is http://tfl.dmi.me.uk/origin/destination/time. The time argument is optional, and is always in 24-hour format. It represents your departure time unless you add an "a" to the end, which would make it your arrival time.

You can also add options to the end of the URL. By default, it will search for journeys using any method of transport (bus, coach, DLR, rail, river, tram, Tube) but you can change this by adding (transport)=0 as part of the URL. To avoid multiple forms of transport, add each as its own URL segment (e.g. /bus=0/coach=0).


A tool for recording and re-displaying barcodes


A fork of barcode4j adapted to work under the Android Java environment.


A system for organising non-violent protests


A virtual hosting control panel system


A pure JavaScript MIDI file generator

Ceilidh catalog

A compilation of ceilidh dances and tunes.

GSDev for Chrome

A Chrome extension to assist the dev team at GroupSpaces by exposing debugging information and actions relevant to the current page.

GitHub Google+ Twitter