- Work Done: February 2011
- Released: February 18, 2011
You can download or view the source at the GAE Scaffold page on Github.
GAE Scaffold is ready-made skeleton code for creating Google App Engine applications from scratch quickly. In order to accomplish this, it ties in several other projects of mine, including GAE HTML and GAE Deploy. GAE Scaffold takes care of a lot of boilerplate code, meaning only a few small changes are needed before being able to push to production. It is feature rich, including support for and automatic use of sessions, minification, caching, testing, and human readable error messaging right out of the box.
- Work Done: November 2010
- Released: November 11, 2010
You can download or view the source at the GAE HTML page on Github.
I was playing around with Google Page Speed and realized that I could save some bits by minifying HTML. Since I use Google App Engine for a lot of different sites, I thought it would be prudent to make a single project to do this once, and then simply import it everywhere I needed it.
- Work Done: November 2010
- Released: November 12, 2010
You can download or view the source at the GAE Deploy page on Github.
- Work Done: March 2010 - November 2010
- Released: March 18, 2010
You can download or view the source at the GAE Blog page on Github.
When I created the new version of my personal site, instead of relying on a pre-existing blogging engine, I wanted something that I could control, modify, and customize absolutely. I also wanted it to run on Google App Engine. I spent a long time developing this project, which includes support for running multiple blogs at once, having multiple authors per blog, comments with moderation, live image uploading, blocking spammers, and more. It will even use my GAE HTML project to minify HTML if it's available.
- Work Done: December 2009 - May 2010
- Released: December 19, 2009
You can download or view the source at the Tumblr Backup page on Github.
I had my travel blog for my journey across Europe originally written on Tumblr. While great for my needs at the time, when I wanted to consolidate all my blogs into a single site, I needed a way to get the data out of Tumblr. They provide a nice API, but no automatic backup themselves. So, I created a simple tool that saves a local archive of your entire Tumblr blog.
- Work Done: November 2006 - January 2007
- Released: January 15, 2007
Write Site was developed as I was redoing the technical backend for my first portfolio site and simultaneously making several other websites for friends and family. I needed a quick way to generate static HTML, and I've always liked the organization of having different parts of a template in different files, so this program does just that: takes content from files and compiles it into a website made up of many different static pages. It also provides some convenience functions (like automatic naming of pages and generation of navigation links) and allows for conditional, repetitive content. It requires Python 2.4 or greater to run.
- Work Done: March 2006 - May 2006
- Released: May 15, 2006
The program will let you zoom in and out of the planets in our solar system, and potentially any other solar systems. This could be the beginning of a huge project that used all the data we have for the whole galaxy, but I got it to a state of completion I was happy with and left it at that. If anyone else is interested in this project, I'd be happy to start working on it again.
3D Graphics Engine GUI
- Work Done: July 2005 - October 2005
- Released: December 15, 2005
I realized that in order to further my goal of making a video game, I had to better understand 3D graphics and how they got from a data structure to the screen and back. To that end I wrote my own 3D modeling program in C++. I interfaced directly with OpenGL for the graphics and used FLTK for making the GUI. I implemented making the primitives of a rectangular prism, a sphere, and a pyramid. I then made it possible to color, translate, scale, and rotate those primitives. However, after coding in the ability to save and load files, I stopped development. I had achieved my goal and knew that proceeding further, into making my own fully-featured 3D modeler, would take years, and there were already alternatives out there that had been in development by larger teams (I did this by myself) for much longer (and over one semester). Building my own did make me more confident with other modelers and engines though, as I had a better grasp on the terminology and technical background.
- Work Done: January 2005 - May 2005
- Released: May 15, 2005
Base Radix was a group project that I did with 4 other friends at Olin. We made a sprite based game engine using Python and PyGame. We did some really neat things, including random map generation, photo rotoscoping (I was the actor we used), context-free grammar for NPC speech, and collision detection. I worked primarily on our doodad placement algorithm and NPC path finding. We never really got the game to a finished state, but I learned a lot about making 2D games and working on group software projects.
Ram Disk File Mover
- Work Done: July 2004 - March 2005
- Released: March 17, 2005
A friend of mine was crazy about SETI@home and getting high performance on it. He used a RAM disk to run SETI off of, but was tired of moving his files there and back from the hard drive every time the machine restarted. So, he asked me to write a program to do it.
Initially, I wrote the program in C++ and had it run as a Windows Service. This created two obvious problems though: it wasn't cross platform and the installation process was really hard for the end user, as I didn't have a program that would automatically wrap the program in an installer and didn't want to write it myself. In the end, about six months after that, I re-wrote the program using Python, and created a simpler (though still not great) install process.
- Work Done: May 2003 - June 2003
- Released: Never
Ever since I was young, I wanted to make video games. My friends and I determined that if we could get a guy walking around in a bar, that would be a sufficient beginning to do anything we wanted. On a whim, I bought one of those game programming starter kits and used a program called 3D Game Studio to create a bar where the player could move around.