Smack your MacBook to change desktops.
Here's code to read the raw gesture data from a MacBook trackpad.
This is the ZIP file that never ends.
Spotify for Windows contains code so awesome that OllyDbg can't look at it without crashing.

My CSS-fu is weak; please use a recent browser.

Some rights reserved.

Random, semi-related image by Erik J. Gustafson.


This page is a dumping place for my personal projects. To search for a specific category, use the sidebar.

A series of regex-writing challenges.
A series of XSS challenges: here's some unsafe code; exploit it! Shortest code wins.
I needed some valid SWF files with constrained character sets for an injection PoC. Putting them here in case someone else needs some.
PHP has finally taken the plunge into the 1960s by implementing GOTO. Here's an implementation for Java.
A patch for a serious Java bug. No longer needed as of June 16.
Max & Michael have written a Max/MSP driver based on the multitouch code.
This is a little test applet to shows the touch points as reported by the MacBook multitouch pad. The drivers seems to be able to track an impressive 11 fingers at once.
Spotify for Windows contains code so awesome that OllyDbg can't look at it without crashing.
Here's code to read the raw gesture data from a MacBook trackpad.
Carry-save adders can reduce the run time of a vertical counter from log(w) to amortized constant time.
How to enumerate bits quickly using DeBruijn sequences.
GCC has some clever tricks up its sleeve for compiling the humble division operator.
Some simple bite-sized browser enhancements. Drag them to your bookmarks toolbar.
These little hacks were originally posted at the Medallia blog; since I no longer work there, I thought it would be more appropriate to keep them here.
YouTube user 'sspoke' has posted a video walkthrough of Heartlight.
I just changed hosting providers, and am slowly moving stuff over from the old Wiki. If you're looking for something in particular, complain in the little chat box on the right, and I'll see if I can find it.
After the (useless hack) SmackBook was released, some commenters were worried that giving the laptop a smack to the head might be bad for the hard drive, not to mention the soul. Here's a gentler alternative.
Smack your MacBook to change desktops.
This is the ZIP file that never ends.
These are the slides from a tech talk I gave at the NWERC programming competition.
Today we performed a wildly scientific comparison of a few audio codecs using an oscilloscope and La Linea.
It's occasionally useful to run iTunes under GDB without having it bomb out with a 'code 055' or having gdb segfault.
A comparison of how different scripting languages treat their users.
A neat OS X feature that hasn't seen much use yet.
Some notes on reverse engineering Java code.
I for some reason wanted to see the source code of a Mathematica workbook. Here's a script to dump .mx files.
For some reason there is no standard utility to play a sound file from a shell script. Well, here's one.
This is a small script to make xterms distinguishable from one another, by shifting the color map of each terminal window ever so subtly in a random direction.
This is a collection of strange C (and some Java) constructs. It's probably best not to use them, but you should know why they work.
IntelliJ used an interesting license key scheme.
A hacky implementation of closures for PHP.
Kyrre Glette and I wrote a simple image generator using genetic programming for an artificial intelligence course. Here are some of the images it made.
This describes a horrible way of implementing createImage() on JDK1.0.2.
This is my Java port of an old DOS shareware game.