Writings

"This is what I find most encouraging about the writing trades: they allow mediocre people who are patient and industrious to revise their stupidity, to edit themselves into something like intelligence. They also allow lunatics to seem saner than sane."
    - Kurt Vonnegut

Introduction to Reverse Engineering

Instead of doing academic research in grad school, I spent most of my time studying practical computer security and reverse engineering. It wasn't a conscious choice. It just sort of happened, but it worked out well for me. As part of that, I worked on a HOWTO on reverse engineering software with Nasko Oskov. We eventually left school and got jobs before finishing the HOWTO. At one point, we actively tried to find a publisher to finish up a print version, but they ended up passing since Reversing: Secrets of Reverse Engineering was just released covering the same material in much the same way. That'll teach us for being open. (Though our premature slashdotting did land me my current job.)

Lollercaust in Philadelphia

This is an excerpt of a trip report I made for a business trip to Pottstown, PA in 2006. I really wish I had pictures to go along with this, but I think the prose does a decent job at documenting the insanity of it all.

Torbutton Design Document

Torbutton is a Firefox extension that allows you to securely toggle your usage of the Tor Network on and off via a toolbar button. It actually does quite a bit to isolate browser state between toggle modes, and has a good deal of general privacy preserving features as well. Everything it does is described in this design document, including a list of unfixed Firefox bugs that make its job more difficult.

Building Linux Beowulf Clusters

Back in 2000, I was employed by Illinois Genetic Algorithms Lab to build a beowulf cluster for them, after having built one for the NCSA Automated Learning
Group
. Frustrated with the vague, incomplete, and/or overly verbose and rambling documentation online (and especially in print), I decided to document things myself. Some things have changed somewhat since then, but not terribly so, and the document still is on the first page of Google queries for beowulf clusters, so I figured I'd keep it up.

C++ Data Structures Notes

In graduate school, I TA'd a course on data structures in C++. I absolutely loved it. As an undergrad, I loved the course, and having the opportunity to really master the material well enough to teach it was a great learning experience. I was a pretty darn good TA too, rated among the best in the department every semester via reviews by the students. Unfortunately, there was a limit on how many semesters you could TA at UIUC, and they kicked me out after my 3rd. Anyways, I put the my discussion notes online because friends of students would ask for them periodically. They lose a lot without whiteboard examples and discussion, but I've been told they are still helpful.

Linux Shared Memory HOWTO

I wrote this HOWTO on the various ways to use shared memory on Linux almost 10 years ago, and its still the #1 site on google for "Linux Shared Memory", so I suppose it has stood the test of time. The document describes BSD mmap and System V IPC, with several examples, and a section on creating a toy malloc debugger (which later actually morphed into NJAMD.

Syndicate content