Open Source Programs

I believe in open source and giving back to the community so here are my programs. Just right-click and click "save as" to save the files to your computer. (Some are more useful than others!)

Atmel CPU Chips

For one of my classes at Cornell, I've been working together with my lab partner, Rich, to create software in C for the Atmel programmable CPU. We have decided to release our software to the general public under the GNU GPL license. As a summary: You may take this program and modify it in any way you want. You must always give credit to us, the original authors. You must also distribute the source code to any improvements you make to our code.

Note: I will soon be linking to the project pages for which this code was generated. This will allow you to see the exact specs we had to match and give you a better idea of what the code does.

Our first program was to use the Atmel to create a reaction time timer, accurate to within 1 millisecond. We used the Atmel and a 2x16 LCD screen. You can access it here

For Project 2 we had to simulate cricket calls with the Atmel. Output was through a spliced RCA cable to a black and white tv. We had to taken in different parameters as entered through a keypad of frequency, chirp length, chirp silence, and others. For use in further labs, Rich developed a keypad library.
Project Code
Keypad Function File
Keypad Library File

For Project 3 we created a security system which consisted of an end user typing username and code into the keypad and a security guard accessing the system over RS232 serial cable using Window's Hyperterm. For this project, use the the updated keyboard files from here. In the project code removing the #define EXTRA_CREDIT will make it the base 4-digit code system, otherwise it is a username/password system. The keypad page for this lab explains how to use it for typing letters.
Project Code

Here is our final project for the class - a web server on an Atmel Mega32!! Below I have linked to the main C file as well as a zip containing all of the files necessary. Enjoy it!
Main C file (atmelwebserver.c) containing many comments about the code
The rest of the source files
The report we submitted for class. Much of this is covered in comments in the main C file

Bash Scripts

I have moved these to my github page as well as adding in a few other bash utilities. Check that out here

flac2ogg - have flac files you want turned into ogg files? All you need is oggenc and this script. It is currently bare bones and barely interactive, but I hope to update it in the near future
ripDVDaudio - I learned the hard way that ripping audio from vob files is a pain in the arse - especially because they use the a52 codec. Well, no biggie. With my script, mplayer, lame, and a52 decoding software you can have that soundtrack in no time. Great for movies like Snatch where you can just listen to the lines and crack up without having to see the accompanying visuals.


Soundex Utility
Sure, some of the genealogy sites have Soundex conversions built-in, but what if you need to figure out the Soundex codes for your surname and don't have internet access? Or what if you just want this module to then search your family surnames for similar soundex codes? Then use my code! will give you the soundex code generation code. This is currently just a verbatim copy from the code provided in "Dive into Python" by Mark Pilgrim. I may update or toy with it in the future - run this file to get a nice interactive interface for using the conversion code in You need to download BOTH of these files and put them in the same directory. Then run this one by typing python
Find out about Soundexing and Genealogy at

I was looking for a way to create a DVD with chapters on Linux after my windows program went kaput! So I wrote a program to create the XML file dvdauthor nees to create the DVD file structure. (now on Github!)

Python Games with Pygame
These games were created by modifying the code from Linux Format Magazine. (now on Github! (for some of them anyway))
PyInvaders - Space Invaders clone
PyRacer - 80s-style arcade racing game
PyShifter - a tile-shifting puzzle
PyHanoi - Tower of Hanoi game

Python Amortization Calculator
Python Amortization Calculator
If you want the GUI version, check out the Git Hub Page. Read about it on my blog

Python top 3 artists to Twitter

Need Python?
For Windows get it at the highest version number ending in .exe)

For Mac OSX
It may already be installed or get it at

For Linux
Unlike Windows, Linux actually comes with useful programs! It's already installed! Install the latest version via your distro's procedures.

Last Updated 21 Jan 2010
Created 20 Feb 2005