Last updated 2010/01/28
Probably one of the cleverest things I've ever built. It only took half an hour or so to make, and is quite simple, but it's well designed and super useful. And it's exactly what it looks like: two milk crates hanging off the back of a bike. The best part about it is it's ease of use. It takes about 5 seconds to put on, and 5 seconds to take off, without exageration or even practice. I've spent a fair bit of time using regular panniers, and these are way better for things like going out and getting groceries.
Last updated 2010/01/17
This was a 'just for fun' project during exam time. It's a C program, using the opensource opencv computer vision library, that looks for blue thimbles, or fingerpupets, on one's fingers, and uses the information to control a robotic arm through the serial port. It's not terribly efficient, but it works.
Last updated 2010/01/10
Some C code for a PIC chip to run up to 9 servos smoothly, simultaneously, and very importantly, in the background of the main program. It uses two interrupts to do the timing of the pulse widths. There are two slightly different versions. The first, and more basic, allows you to control the absolute angle of the n'th servo using set_angle(int8 ang, int8 n). Everything else is dealt with by the two interrupts. The second version requires an extra timer. In addition to the set_angle function, there is the set_move(signed int8 m, int8 n) function, which sets the movement variable of the n'th servo. This variable is then added to the absolute angle of the n'th servo every movement interrupt. This allows for smooth, constant speed rotation with minimal effort elsewhere in the program.
Last updated 2010/01/09
I designed this program to make splitting grocery bills between me and my room-mates easier - but as it grew more complex, it became clear that it was definitely not the most efficient method. It's a web interface built out of php that I maintain on my local network, storing information in a mysql database. There are two main sections: in the first, people can add and view receipts, specifying details such as the amount, who paid for it, who, out of the active members, will be splitting it's cost, etc. The second section gives details regarding who should pay back whom with respect to the receipts corresponding to a specified timeframe.