Projects

Web Applications

  • PackageTrackr - This was an extra credit project I originally did in ASP.NET and C# for my Web Applications class in the Fall of 2007. It visually displays package progress from FedEx via Google Maps. I ported it to PHP because I was having issues getting it working on a free ASP.NET host. [Link]

Operating Systems Workshop

  • Virtual File System – The goal of this project was to implement a virtual file system framework for xv6. This would allow the operating system to eventually support multiple file systems. Since writing a VFS layer itself is a large undertaking itself, we opted to implement the ability to mount images of the default filesystem.

Introduction to Computer Networks

  • Implement TCP over UDP
  • Video Rating System - The purpose of this project was to rate the overall quality of a video stream, given a packet trace. We noticed that the primary indicator in loss of quality was a discontinuity error in decoding MPEG video. Each packet of video/audio has a 4-bit counter to specify the ordering of packets for a given stream. If one is missing or out of order, a discontinuity error occurs.

Personal Projects

  • Phase 1 of my project is complete! on TwitpicArcade Controller – This project is a current work in progress which is to create a custom arcade controller for the PlayStation 3 to be used in games such as Street Fighter IV and Marvel vs. Capcom 2. The motivation behind this project was to apply my basic knowledge of digital circuits and create something fun. The casing is finished (see picture), and I am almost done wiring all the buttons. All that will be left is to write the software that conforms to a USB joystick such that it can be detected by the PlayStation 3 and PC. The joystick and buttons were purchased from Lizard Lick, and the board used to drive the logic of the controller is a Teensy. There were several solutions available already to drive the controller, but none of them could be modified and were not open source. I plan on releasing the source code to the controller on GitHub for everyone to see how the code works and contribute to make it better. One example I can see this being improved is supporting LEDs to indicate what the player number is. Using a board with a bootloader allows us to add features such as this one without having to do too much work.