http://www.boingworld.com/workshops/...ables-tutorial

Mercilessly ripped from kerneltrap.