Android Software


A simple calculator for Android, based on the old PalmOS application of the same name.

Add Machine

An adding machine calculator for Android.


This is a basic client for Music Player Daemon, written for Google's new Android mobile phone platform.
It does all standard player activities (play/stop/next/prev), select tracks to play, and even fetches album art from the internet.

Web applications

Change for the Machines

My personal photoblog website uses a custom-built web backend application. Technologies in use include FastCGI, perl, XML, XSLT, Javascript, asynchronous I/O, and ImageMagick. I'm considering a rewrite, to base it on Pylons.

This Metal Sky

This site is all redesigned, it's now based on Pylons, using Genshi templates and MongoDB for the blog document storage.

Perl stuff


The slick thumbnailing program I used to use to make all my thumbnails and the index pages on this website. Now has tons of command-line options, and features for "blurbs" on the index page.
These days, I'm just making thumbnails with GrpahicsMagick and dumping them into the directories, the web app framework handles everything else.


I've written an IRC bot. Yeah I know, everyone's got good bots out there, but I wasn't happy with running Yet Another Eggdrop Bot. So this one is all done in Perl, with Net::IRC, and a PostgreSQL database back-end. It does stuff like an Infobot does, handles authentication and Ops like Eggdrop, and even tends bar for you.

Distributed MP3 Encoder

I wanted to encode mp3's faster, so I wrote a few scripts that will distribute the encoding load accross any number of machines. It's pretty obsolete now, but at the time, it was very efficient.

Dynamic DNS update from DHCP

This program updates your DJBDNS server from your DHCP server's lease file, every time a new address is given out.
Please note that I haven't worked on this in nearly 10 years, and do not offer any support.

Other Stuff

C# Windows.Forms menu generator

I don't use IDEs, ever. I use Vim, even when I've got to write a C#/.NET application (actually using mono). And if you've ever had to create a working GUI from program code, especially when using the really awful Windows.Forms, you'll understand why I created this thing. It's a simple XSL template to transform an XML file into C# code. Included is an example file pulled from the actual project I wrote it for. Enjoy!


Here's a page of patches I've made to existing software, to "fix" legitimate problems, or just little things that annoyed me.

Ripping DTS audio off DVDs

I figured out how to rip DTS-encoded audio off DVDs and store in FLAC files.


This is a Gtk interface to the X-10 device called a Firecracker

Get/Set ID3 Tags

This program will let you get and set id3 tags on mp3 files from the command line. Source and binaries are available. Somewhat old, since now there are nice perl modules to do this.

Flash starfield

Back in 1996, I wrote this starfield program in C, for Dos. At some point, I decided to port it to Flash.

other little programs

Here's some junk written over the years, whenever I wanted to do something that I couldn't find a program to do. Some of this stuff has source code with it.

Most of the DOS, OS/2, and NT C stuff that has source code is written for Watcom C/C++ 10.6, coded and compiled in OS/2. Most assembly stuff is done with Watcom Assembler (WASM) from Watcom C 10.6, but a couple of these things were done with Borland's Turbo Assembler (TASM).
The Unix stuff was done with GNU C (gcc), in Linux.

Of couse I'll make no guarantees about any of this stuff. If it doesn't work, oh well. If it breaks your computer, sorry (however, this is not likely.)