Links to various programs I've written. For the moment, I only have a couple Java applets up plus one patchy C program. I've lost some code in system crashes and poorly thought out re-formats. Hopefully I'll be able to dig out some of the sweet stuff...

The majority of the code on this page will be class assignments, so it may not be very good for error checking and the naming scheme isn't very convenient (e.g., lots of "project.class" files, etc.). Unlikely I'll be fixing that any time soon, but we'll see.


XML 2 TXT - Assignment specifications can be found here. This is a console application, so no demo available on the web beyond that in the specifications. The program takes an input file with XML type tags, and processes certain tags, outputting the results to a file. For my approach documentation, and the test input and output files, check here. Note: ProcInterface and StorInterface must be placed in the ./Supporting/ subdirectory for this program to compile properly.


Chessboard - Just demonstrates movement of a piece within a chessboard. Does not represent actual chess rules. Little error checking, per assignment specifications. Also accepts some numeric input, in addition to the mouse. Source can be found here.

RGB Triangle - Displays a triangle shape made up of colored cubes. As the cubes approach one of the corners, they take on one color more distinctly. Accepts numeric input for the number of cubes to display. Valid range is 1-256, though there is no error checking, per assignment specifications. Source can be found here.

Potato Cannon - A Potato Cannon is displayed in the center of the screen, and fires potatoes such that there are always 5 on the screen. The assignment called for the ability to fire more potatoes at once via mouse input, but I don't believe I got to that. This applet uses multiple class files, and the source code for those files can be found here:

I'm afraid I can't publish the Timewaster code, since it was presented to us by our teacher, and as I am not in touch with him, I can't ask his permission to reproduce the code. Hopefully this wont be too much of an inconvenience...


LogParse - Reads through a standard /var/log/messages log file, divides up messages, and outputs them to a formatted .html document, logs.html. Filenames are hard-coded into it (bleh, I was lazy, but it should be easy to fix), and there's some time header file that is win specific, but it doesn't do much, so it'll be easily stripped out. I also wasn't too keen on code reuse...

This is really not a some of my best work, and it should have been written in Perl, but it got me doing some code again.

Shell Scripting

CatDir - Displays the contents of all the files in a specified directory (or the present working directory). This was written for a job interview, to show that I can think through a problem and put together a script. Its not intended to be useful, however I'm fairly happy with the way it turned out. I wish I could cut down on the number of calls to 'ls', but given that 'echo | read' doesn't work on the platforms I was using, this is probably the best I can do.

CatDir v2 - OK, so I actually did put some more work into CatDir, when I found a use for some of the code. Got rid of that nasty 'tail | head' crap.

LessDir - Calls CatDir and directs output through less... I don't know why I did that...

GrepDir - Final evolution of CatDir. Grep a directory and output matching files through less. Even deals with qmail messages (which is what I actually used it for) with their annoying ':' in the filename.

BhodiSoft Code - Code used on this site and elsewhere.