Publications
Hacking Knoppix
I wrote chapter 7, "Clustering for Knoppix," for Wiley's Hacking Knoppix. It was published in early 2006.
The Art of Computer Programming Reading Group
I started a reading group to cover Knuth's The Art of Computer Programming in a year. That's about 1500 dense pages on theoretical computer science in forty-something weeks. The writeup and schedule are available at the TAoCP RG Homepage.
Not surprisingly, after a very short period of time, this fell to the wayside. The page and schedule are left up for anyone who has interest in their own push through TAoCP.
Software
Dragon Character Trainer
This isn't really "my" project, per-se, but it's something i am heavily involved in. It's a Chinese character (Hanzi) training program for the Palm. You can find more information about it at the Dragon Character Homepage.
HEBCI
HEBCI is a technique that allows a web form handler to transparently detect the character set its data was encoded with. A complete writeup can be had at the HEBCI Homepage.
Huffman Demo (Haskell)
This is a demo/framework app, written in Haskell. It's a cheat sheet of sorts for me, used to bootstrap new Haskell projects. Because it's written in Literate Haskell, its documentation is a PDF. You can look at Huffman documentation, or just download HuffmanDemo-0.0.tar.gz.
libedio
A general-purpose network IO library with some handy unixy bits. Basically, it allows you to quickly write network client code without having to deal with all the networking-specific bits (buffering, etc), which is really convenient. More information is available at the libedio Homepage.
libpuz
PUZ is a file format used to store crossword puzzles. The format uses many different checksums and various magic values; none of this was documented. I spent about a week's worth of time (over the course of a month) deducing the checksum routine and then figuring out how it's applied to the data. To finish off, i wrote a library that implements the format, for both reading and writing PUZ files. The end result is PUZ File Format Specification and libpuz(-latest).tar.gz.
PortMuxer
Once upon a time, I worked a crappy job doing crappy work. At this
job, we didn't have Real Internet Access. We did, however, have access
to port 80, though it went through a slightly odd proxy. The important
part is that it didn't mess up stream connections. So, i wrote a
program that multiplexes a listener port, allowing HTTP, SSH, and
telnet over the same port. Quite handy. Still a little rough around
the edges, but should be coming along nicely when i get the time to
actually work on it.
Download Latest
PortMuxer.