I develop quite a lot, this growing list is an attempt to contain a sampling of the things I've written. They range from small scripts in various programming languages to Widgets and programs. The dates reflect when the item was last updated. For older projects, the date may be when it was first publically posted. Click the icon images to see a larger preview of the project. Some projects may not have larger previews.

In addition to the following personal projects I also contribute to other open source projects on GitHub and Gitorious. Many of my personal projects are hosted on Bitbucket.



A Yahoo! Widget version of my Color Chooser script.


Tetrad icon

An attempt at a this-is-not-tetris clone as a Widget. The graphics are all done in with Canvas. In retrospect, I should have used text objects for the "Next Piece" and "Score" labels, rather than Canvas.

I got as far as getting piece detection (so blocks could stack), rotation for s and z pieces, simple pause, and game-over detection (blocks reached the top). To make it more fun, the game over animation had several different animations randomly chosen from. The game would automatically pause when focus was lost, to prevent losing the game if you went off and did something else.

I never released anything more than these "working concept" images of the Widget. I was sorry not to finish it because it looked so nice.


Blackout icon

Written after a class I took where one of the assignments was to write a program to optimally solve any given 3x3 blackout board. Given that, it should be noted that any random board can be solved in 9 moves or less. Thus clicking the same square twice is technically counter productive, even if moves have been made since.

To play: Each chip has two colors, red and blue which they flip between. Clicking on a chip flips its color and those to the top, right, bottom, and left of it. To win, all chips must have the same color facing up.

Roughly based on A Beautiful Mind :: Blackout, which was our reference game to understand how blackout worked (if we didn't already).