über micro

Here are some game levels I've worked on for a couple different genres of games.

I also collect older console and PC games, particularly SNES and PS1 carts.

Speaking of which, I built a full-size arcade cabinet, powered by a Super Nintendo deck. It was built from scratch to the exact dimensions of an original Mortal Kombat cabinet.

Two additional game related projects: a log parser that extracts and formats chat text and a web based remote rcon utility. Both were designed for Quake 3 engine games, but could probably be easily adapted for other purposes. I'm also tracking some basic statistics for Enemy Territory: Quake Wars.

dust bunnies

This directory is a resting place for all kinds of abandoned or broken code. None of it is being developed or maintained, but still may be of interest.


Feel free to contact me with questions or comments, even if you are paranoid.

projects & code

httpry is a specialized lightweight packet sniffer designed for capturing and logging HTTP traffic. Included are a number of scripts that can mine an assortment of information out of the collected data. The core program is written in C; the parsing tools are all written in Perl.

rhs is a shell script designed for accumulating notes and comments related to a particular system. These notes are stored in an easily readable or greppable text file. It is currently rather rudimentary, but someday I might return to it. The basic concept and interactive functionality of the program was modeled after Subversion.

Recently I had need for a hardcopy of my Amazon wishlist and found no functionality provided by Amazon for exporting the contents of a wishlist. Amazon Wishlist eXporter (AWX) leverages the Net::Amazon module to fill that void. It is able to take multiple wishlists as input and export them in either plain text or formatted HTML output.

On occasion I utilize AIM Sniff for monitoring IM traffic. However, I needed a fast and easy way to filter the output files for key information. AIM Chomp allows for easy searching of these logs based on specified filters and can output matching lines to STDOUT or an output file.

This is a Java implementation of a graph generation and minimum spanning tree algorithm. The program generates a random connected graph, utilizes Kruskal's algorithm to compute the minimum spanning tree for the graph, and outputs all of the data in a format that can be parsed by Graphviz.

Although OS fingerprinters are easy to come by (nmap, p0f) this script implements several active fingerprinting metrics described here. It was written as a personal learning experience and is fairly simple, but it shows several elements of an OS fingerprinter and usage of the Perl Net::RawIP module for low-level packet creation and dissection.


I am interested in ways of performing graphical representations of data from temporally ordered log files. It would be beneficial to have a generic framework that accepts log file data—with important fields tagged—and output a graphical representation that allows for easy visualization of individual data points and correlations within the data.

Some research has been done by others in observing unique signatures in online browsing habits. The output of httpry offers a perfect opportunity to develop code that can recognize flows belonging to a single user across multiple log files, independent of the client IP address.