GitHub is such a nice place to put stuff, particularly code stuff. Here are a few of the things I put on GitHub these days:
Because "Blogojevich" would be too tough to remember. Governor is a pluggable blogging system for Ruby on Rails v3. It's built for Rails application developers who want to easily tack on a blog to their existing Rails app while still maintaining a fine level of control. There's a built-in plugin architecture in Governor, which allows you to hook in to various plugin points at every level of the service. Check the list of plugins to see what's currently available.
Labelvis is a jQuery label visualization plugin for rock stars. You have your choice of pronounciations, either "label viz" or "Lab Elvis". Up to you. Labelvis is similar to other plugins that add labels to your textboxes (like labelify), but when you click inside the text field, a little box with the label slides up and sits nicely on top of the field. This is so you don't forget what field you're editing. This is helpful for really forgetful people, or in large forms that you'll need to edit later, and the default labels will have long since been replaced by whatever content your users have put into these fields.
This was my senior project at WPI that I worked on during my junior year. Professor Gary Pollice was interested in sponsoring an MQP involving porting the Object Bench functionality over from BlueJ to Eclipse. BlueJ is an IDE aimed at teaching Java to students new to computer science. The user edits classes using a UML-like editor, and java code is created in the background. The user can also create instances of objects and place them in an "object bench", and manipulate them in a visual way.
BlueJ is a decent IDE for beginners, but not so much if you actually want to write code. Gary wanted to port the useful functionality of the object bench over to Eclipse, which has an extensive plug-in architecture and is widely popular. My project partner and I ended up developing a very capable version of the object bench in Eclipse that was seamlessly integrated with the rest of the environment.
In 2002, the WPI Game Development Club wanted to build a Myst-like game set on the WPI campus. I proposed using Flash as a development medium, due to its ease of interaction and rich scriptability, as well as most likely being pre-installed in most client machines. We first worked on a pilot prototype to float by the WPI administration. We had a script and some pictures, and I wrote the necessary code in Flash that made it into a playable game.
After completing the demo and getting some feedback, I assumed the responsibility of Lead Programmer on the project when a few other people came on board. The final product would have a more involved storyline as well as a richer user experience. I sought out to write an API that would allow others to drop in scenes and add to the game without having to know Flash.
The final product ended up being distributed to freshmen at the activities fair. It helped to publicize the GDC as well as help orient freshmen at WPI.
I was contracted to design and build a website that would bring the restaurants of Worcester Massachusetts into the dorm rooms of college kids across the city. Up until the point that the website was publicly released, I was in charge of building a Ruby on Rails web application that be home to both college kids looking for a bite to eat as well as restaurant owners and site administrators looking to publicize and publish their menus. Features of the site included:
Despite a role as lead developer with the Gompei Equation mentioned above, I don't consider myself much of a game programmer; I originally joined the WPI Game Development Club so that I might boost my C/C++ skills. Instead, I ended up becoming the first webmaster for the GDC, and implemented a website using Apache's Cocoon 2.0, built on top of Java, XML, and XSLT technologies. I assembled and led both a front-end design team and a back-end development team. As the members of my teams were undergraduate students with varying levels of skills in these areas, I also gave tutorial seminars to bring their skill levels up to the point where they could begin to contribute.
The website was designed to face both members and visitors at the same time, serving the distinctly different needs of both of these groups simultaneously. I had grand ideas to unify the club through the website, where project leaders could administer their projects through the same interface that the secretary posted meeting minutes or the historian posted news articles.
As the club was just getting off the ground, requirements gathering was a deep and on-going process. Various features included:
Many features of an application framework that may now be considered standard were implemented within the application, such as a data layer for both wrapping relational models in Java objects and representing underlying JDBC calls.