Here are some current and past projects of mine. I program in a variety of languages, including Python, JavaScript, and Haskell. When I’m not hacking at some code, I enjoy making vector art using Inkscape and dabbling in photography.

Code

Socialite

Socialite Screenshot

Socialite is a Firefox extension for reddit. When a link from reddit is clicked, Socialite displays a bar above the destination page, allowing voting, easy access to comments, and other actions on the page. Optionally, Socialite can also add a button to the location bar allowing easy link submission. Socialite is open-source, with the code available on GitHub.

Boots

Boots is a unique open source database client. Boots supports multiple different command languages, including SQL, Python, and an augmented “Piped SQL”, in which query output can be redirected and altered using a system similar to Unix pipes. Boots was developed for the Drizzle database server as a Capstone project at PSU with a team of 6 Computer Science students.

Karmabot

Karmabot is a highly extensible experimental IRC bot written in Python. Unlike most IRC bots, instead of a hierarchical command-based interface, Karmabot interacts with “things” which have multiple “facets”, a model resembling multiple inheritance. Every object that can be named is a thing: users, channels, nouns, and Karmabot itself. Karmabot can rapidly be extended by writing new facets that add or change functionality for objects in the thing database. Karmabot is open-source, with the code available on GitHub.

Havoc

Havoc is an AI for a variant of chess, “MiniChess“, that I wrote for a class on combinatorial games at PSU. I also wrote skirmish.py as a means of testing and connecting Havoc to the Internet MiniChess Server created for the class. Using an opening book, pawn position evaluation, and comparatively primitive state search algorithm, Havoc dominated the competition, winning 1st place in our final class tournament.

Conductor

Conductor is a simple open-source music selection engine I built as a term project for an introductory class on databases. It is written in Python and uses SQLite to store markov chains representing the properties of tracks the user likes to listen after other tracks. The source is available on GitHub.

Art

Shape

A visual diary in black and white, created using Inkscape. Here are some of my favorite shapes.

/Art/

A gallery of older artistic odds and ends, including photography, vector art, and some spiffy light painting wallpapers.