Hacking

Hacking is a passion of mine. No, not cracking into other people's computers, but simply writing my own software for doing my own thing. The great thing about a *NIX OS is that hacking is easy. The great thing about a well-documented, stable, and correctness-focussed *NIX like OpenBSD is that hacking is fun.

This page is host to some of the software I've written over the years for recreational/slacking purposes. I only include un-maintained software for (1) my own pride, and (2) other hackers who may find it useful.

Current Distractions

Projects I'm currently engaged in...

vitunes (2008 - today)
A curses-based equivalent to iTunes©. It can index any tagged media files and provides a quick, easy-to-use vi-like interface for browsing/playing media, and creating playlists.
?talk (2009)
As avid users of talk(1), Neal and I are often bitten by the limitations of it... namely, no saving of sessions. We're putting together a talk(1)-compatible replacement with features we would like. We're still working on a name.
nooBSD (2009)
Not really a new distro, but a project dedicated to help noob's with OpenBSD.

Completed & Maintained

These are projects that I've completed (for now), but actively maintain because I use them.

scrotwm-color-bar
A small patch that can be added to scrotwm to enable coloring the text displayed in the bar using a simple markup language.
phpSymon (2004-2009)
A simple PHP package that connects to a symon server, grabs the system stats for a given host, and displays those stats in a graphical fashion on a webpage.
Featured on undeadly.org!
xstatbar (2009)
A simple system monitor for X, showing CPU usage (supports multicore CPU's), memory & swap usage, number of processes, battery status, and volume info. I wrote this to replace my xosd-* applications below, which do not integrate well with scrotwm (the window manager I use).
batalert (2009)
Whenever I'm on my laptop with no power source around, I always lose track of how much battery time I have left. This program tries to be as annoying as possible in alerting you that your battery will die soon.
minftp client (2007)
A simple RFC 959 compliant ftp client. It supports slightly more than what is listed in § 5.1 “Minimum Implementation” of RFC 959.
SapioGo, libnnet, libsane (2005)
My undergraduate senior design project with Kevin Upchurch, which won 2005 Senior Design Project of the Year in Computer Science at UC. We created a program called SapioGo which uses the genetic algorithm SANE to evolve a neural network at playing the game of Go. libnnet is the neural network library I wrote, and libsane is the SANE library I wrote.
DisplayOrdinal (2004)
A simple C program and JavaScript page that can be used to show the set-theoretic representation of natural numbers (a.k.a. the ordinals).
Stats Helper (2004)
A simple JavaScript page that can be used to quickly calculate various statistics about a set of numbers. My wife was taking a statistics course and we couldn't afford one of those fancy calculators that made life easy... so being the good nerd I am, I put this together.
project graveyard

Completed & Un-Maintained

These are projects that I've completed but no longer use or maintain. So sad, all that time spent for each (they were worth it). This is just a handful.

xosd-clock (2004-2009)
A simple, text-only, easily configurable clock for X. Display can be configured using any format acceptable to strftime(3).
xosd-systat (2009)
A simple, text-only, system monitor for X, showing (essentially) the first few lines of top(1).
xosd-battery (2009)
A simple, text-only battery monitor for X, where information is queried using sysctl(3) rather than the apm(4) device (handy for some laptops with bad apm(4) support but a working sysctl(3) for battery info).
find-sensor-mibs (2008)
This program can be used to find the MIBs (Message Interface Buffer) of all sensors available via sysctl(3), which is necessary to actually query that sensor. Although one shouldn't hard-code any MIB, this code shows you how to search through all sensors attached in sysctl(3) and find one matching the “name” you want.
Realms (2003)
This is a 2D, sprit-based game (similar to Zelda©) that was a LaRC project. It was never completed, but might serve useful to anyone interested in creating a similar style game. The documentation actually shows the evolution of the architecture over about the 3 month period it was developed.
BJ's Compound (2001)
This is a Wolfenstien-like game that's written in 100% x86 assembly. It was for an assembly class I took at UC in 2001... sweet lord, this was a class-wide group project with 12 people, 5 of which did nothing, and those of us who wrote this did NOT follow any good software design/engineering approach.... when writing assembly. This project was hell, and it's a true testament to pure hacking, poor design, and the insomnia we all mastered that quarter.