Code / Projects:

When I'm not at work, I tinker with various small projects in my free time. I thought I'd put a few of them up here.

JSManager.js:

A small (2.3k) library for managing file dependancies within javascript frameworks. This allows for dynamic loading of JavaScript files from within other Javascript files.

  • Regular Download (3.5k)
  • Minified (2.3k)

For further details and usage, see this blog post.

Status: Completed

PathFinding Demonstration:

A common interview question is how would you model a subway system in an object oriented language. I took this one step further and created a simple pathfinding and routing application. Click here to play with it live.

Status: Completed

Android Programming - Magic 8 Ball:

One of my new hobbies has been developing for the Android Mobile Operating System. This is the OS on my cell phone (T-Mobile G1), and is quite easy to develop for.

Magic 8 Ball was a simple application that I wrote in Java as a learning project, consider it my "Hello World" for Android. Here is a simple video of it running on my phone:

Status: Completed

Download a zip of the code here.

Mario Engine:

Any software programmer who grew up during the '80s has wanted to make a Mario game. I spent a couple days attempting to create a game engine similar to the original Mario Brothers. I have no plans on finishing it, but it was a fun short project.

The engine was written in C#, and uses SDL.NET as the graphics library. It is a typical tile engine modeled after games designed for the early nintendo consoles.


Mario Engine Screenshot

Status: Indefinite Hiatus

Download a zip of the code here.

6502 CPU Emulator:

The MOS 6502 was an extremely common CPU used in devices from the early '80s to present day. Some of its most famous uses would be the Apple II computer family, the Commodore 64, and the Nintendo Entertainment System.

I spent a weekend learning about this particular CPU, and wrote a CPU emulator in C#. Eventually I'd like to learn the remainder of the hardware used on a NES and implement a full emulator of that. The following features are implemented:

  • All Registers
  • Memory
  • Stack
  • All Opcodes
  • All Addressing Modes
  • Software interupts

Not implemented are hardware interrupts, and precise timing.

Status: Indefinite Hiatus

Browse the source over at CodePlex.