[comic]
Foxtrot comic strip copyright Bill Amend, 2003

Graphviz .dot classifier 2008

A .dot preprocessor for mass-assigning attributes to GraphViz nodes based on membership in a class. The classes are defined in the .dot file using a new command that the perl script expands to a series of dot node definitions.

Java minigames 2008

I wrote a few Java minigames for CS360 at SSU.

Javascript graphics demonstrations 2008

Do not run these on anything under 1GHz or else you will hate your computer. They do not run in IE or Konqueror.

Experiments with Javascript as a drawing tool. In short: it's too slow.

Anti-Semite Bingo 2008

Get five fallacies in a row to tell if that raving idiot on the other side of the WWW is an anti-semite.

xq 2004

A simple command line tool to query an XML file with an XPath. Uses LibXML and Steve Mertz's GetOpts.

This web site 2003-∞

This website uses a light framework around PHP's include() statement to generate different content in the same visible frame. Any changes to the site design will require hacking the code since it is built for someone who knows it intimately - me - but it is small enough to be read and understood.

Bara Nara music extractor 2003

I once played a MMORPG called Nexus: The Kingdom of the Winds, also known as Baram Nara. I liked the game's music enough to investigate the data file and find it was just a bunch of mp3s concatenated together. A short C program was all it took to extract the mp3s into separate files. It still takes some manual work to transliterate the KSC5601 titles into English file names.

cshoot 2002 (Links to separate site)

In early 2002 I decided to teach myself NCurses, the text terminal handling library for Unix. I didn't get very far into the library, but one of my test programs was a very playable video game which I put up on Sourceforge. I've hardly updated it since, going to show why SourceForge is sometimes called "SourceForget".

Here are some of the ncurses test programs I made:

I tell people that cshoot was originally supposed to be a role playing game. That is only a slight exaggeration. The scrolling map in test #3 was going to be the first step in an attempt to clone the old TRS-80 game "Quest for the Key of Nightshade" but I never went any further towards that goal.

various hacks 2001-2003

These are little one-off programs I wrote at Sonoma County Public Works to solve a single task. They're probably full of bugs since I had no plans to re-use them and they have not been tidied up properly.

Links 1997-2003

In my travels on the Web, I have collected a fiendishly large set of links. I was looking woefully at a much-needed transition from a broken attempt at HTML4 to functioning XHTML, and decided to take the next step: putting it all in a database and producing the page programmatically with a mix of perl and xsl. Unfortunately, Reiserfs ate my database file and I have yet to make a new one. I'm working on it, though.

gcset 1998

This is my first "real program", although the quality of the code is so bad that it's almost a stretch to call it a program. It is a simple console-based game that simulates a battle between two groups of space cruisers. There is now a javascript version of gcset made for a Javascript class.

I wrote a Python version of GCSET in 2005. The combination of experience and a high level language cut the number of lines of code by two thirds.

Javascript querying functions 2004

Some obsolete Javascript utilities that I made to simplify DOM access in a few places needed by a now-dead project. Do not use this code in production because JQuery is a much better solution.

Javascript toys 2003

These are some simple toys I made for a Javascript class.

Hacked version of DeCSS 2000

I took a copy of PigDog.org's DeCSS cascading style sheet remover, fixed a few bugs, added VML stripping, and combined it with John Walker's Demoronizer to create a single tool for fixing the poor HTML generated by Office 1997.

Hacked version of Starlanes 2000 incomplete
I modified a version of Brian Hall's Starlanes game to add random events, but never got around to finishing. I stopped working on it back around 2000, and I think there were still crashers in it the last time I looked at it.