Non-commercial projects
Things I've worked on in a non-professional capacity.
Table of Contents
Products
Self-contained programs and libraries, usable standalone in their own right.
kbswitch (Windows)
Quickly and easily switch keyboard layout globally in Windows XP and Windows 7. There are two versions available - kbswitch, suitable for 32-bit Windows XP, and kbswitch2, suitable for all versions of Windows XP and Windows 7.
model-b (Windows)
model-b is a BBC Micro emulator, designed for playing BBC B and BBC B+ games on your Windows PC. model-b faithfully reproduces the BBC's sound and graphics, is very easy to use, and runs just about every BBC game out there.
model-b runs fine on a modern PC, but I haven't worked on it for some years now. You may be better off with B-Em (Linux/Windows) or BeebEm (Windows).
PyDoodle (Windows)
An interactive Python-programmable visual plaything I put together as an experiment. Create vector-based interactive 2D drawings in Python code, with an emphasis on instant feedback: parameters are modifiable by direct manipulation, and your Python scripts are reloaded automatically when they change.
Some example scripts are included.
Waterworks (Windows)
An amusing(?) executive toy.
I wasn't sure about including this, because it's ancient code. But after building it again I spent a fun ten minutes fiddling around with it, so… why not.
yhs (Windows, Mac OS X)
An embeddable, non-threaded HTTP server, designed for use in a game. The idea was that your game would expose HTML pages with sliders and text boxes (etc.), allowing settings to be configured from a web browser while the game was running.
In the end, I never ended up using it in anger, and would today take a slightly different tack, exposing data via WebSockets only. Producing HTML from the game code was less useful than I expected it to be.
Plugins
Addons, plugins and extensions for other programs.
minitags (Visual Studio)
A Visual Studio addin providing a convenient, configurable means of navigating the current file.
Finds lines in the document that match one of a set of regexps - that can be either specified in the file, inline, or in a .ini file - and lets you select one by substring. Then takes you to that line. Great for those nasty files that consist of a single function with a 2,500-line switch statement in it, but, really, the sky's the limit.
Supports VS2008, VS2010, VS2012, VS2013.
VSScripts (Visual Studio)
A Visual Studio extension that adds a simple scripting system.
Visual Studio's macro functionality was removed in Visual Studio 2012. This was most inconvenient for me, as I used macros a lot for inserting bits of text, so I created this addin to provide a substitute. It allows you to transform and insert text snippets using stdin-/stdout-based programs, scripts or batch files.
Supports VS2012, VS2013, VS2015.
Xcode User Scripts fixin (Xcode)
A plugin for Xcode 5/6 that adds a simple scripting system. Part of Dave Keck's Xcode Fixins.
Xcode 4 removed support for the Xcode 3 User Scripts feature, which let you transform and insert text snippets using standard stdin-/stdout-based programs or shell scripts. This fixin is a simple replacement, giving you similar functionality in Xcode 5 or Xcode 6.
(As of 2016, this has languished for a couple of years, since I no longer use Xcode - so its Xcode 7 compatibility is uncertain. But if I end up using it again, it will be resurrected.)
Command line and AutoHotKey tools
dispswitch (Windows), xdispswitch (Unix/X11)
Move current window to the next display monitor. Use in conjuction with a hotkey-based launcher utility such as AutoHotKey. (dispswitch is for Windows; xdispswitch is for Unix/X11 (with Xinerama extension).)
These projects are both quite simple, and, in dispswitch's case, a touch messy. But I use them so often that it would be rude not to include them.
align_window2 (Windows)
Quickly move and resize the current window so it fills a quarter or a sixth of the screen. Use in conjunction with a hotkey-based launcher utility such as AutoHotKey.
(For something similar for Mac OS X, try ShiftIt.)
Command line tools pick'n'mix (Windows, Mac OS X, Unix)
A selection of command line tools, mostly cross platform, mostly written in Python.
Some of these, you might actually find useful: bin2cstr
, bin2hex
,
change_ext
, count
, dump
, diff2
, wavdump
, and so on.
Some, such as relocate_prg
, might be of niche interest only…
BBC Micro-related tools (Windows, Mac OS X, Unix)
BBC Micro-related command line tools, useful when developing BBC Micro programs on a modern PC.
BBC Micro stuff
Updated BASIC Editor
An updated version of Acornsoft's BASIC Editor ROM for the BBC Micro. I had disassembled this a few years previously, and created a modified version with a few spot hacks here and there (there were 200-odd bytes free for patches). I cleaned up the disassembly so it could be reassembled, giving me room to be a bit more adventurous with new features.
(I have a BASIC Editor thread on the stardot forums that I post to when I update this.)
Little patches
I have made some small contributions to open source packages.