Code

I’ve developed various projects in a variety of different languages and areas. The majority of them were done as hobby/personal development and are at various stages of completeness.

Contents

Active Projects


GitPHP

GitPHP is a web interface to browse git repositories, written in PHP.

GitPHP is my primary development project and has its own project website - see the website for more information.

GitPHP project website


Tote

Tote is a web application to manage NFL suicide-style picking pools. It supports unlimited pools and unlimited entrants per pool. Each entrant can login and enter their picks directly on the website, and the site enforces rules to prevent picking a team more than once in a season or picking a team after the game has started. It can also automatically pull score updates from various sources and recalculate pool standing, and has additional features such as schedules, analytics, and auditing.

Tote is written in PHP and uses MySQL as its database backend, although earlier versions used MongoDB as the database.

Tote repository browser

Tote on GitHub


Codex

Codex is a web application to store and read stories. It was originally intended for fanfiction, but is general enough to store any sort of short story. Stories can be stored and read in multiple chapters, and associated with authors, series, genres, and matchups. Codex supports searching, view tracking, and multiple reading themes.

Codex is written in Ruby, uses Ruby on Rails, and uses MySQL as the database backend.

Codex repository browser

Codex on GitHub


Inactive Projects

The following projects are things that I have developed some point in the past, but are no longer maintained. Some of them were developed a very long time ago, when I was less experienced as a developer.


Parimutuel

Parimutuel is the predecessor to Tote, and has since been superseded. It’s basically the same concept as Tote, but with fewer features as development was restarted from scratch with Tote.

Parimutuel is written in Python, using the Django framework, and MySQL as the database backend.

Parimutuel repository browser

Parimutuel on GitHub


Codex (old)

This is the original version of Codex, and has since been superseded. It provides similar functionality as the Codex2 rewrite in Ruby, but is written in PHP and uses MySQL as the database backend.

Codex (old) repository browser

Codex (old) on GitHub


MDB

MDB is a web frontend for browsing and categorizing a library of media files. It scans a directory of media files into a database, and can be set up to regularly scan and reconcile added/deleted/moved files. It allows browsing the files by folder, tagging, and downloading.

MDB is written in PHP and uses MySQL as the database backend.

MDB repository browser

MDB on GitHub


xxcache

xxcache is a minimal PHP library to abstract away and provide a consistent caching API for consuming PHP applications. It supports eaccelerator, file caching, and memcache.

xxcache repository browser

xxcache on GitHub


FBX

FBX was my senior development project in college. It is an audio player for Linux, with a UI inspired by Foobar2000. FBX supports playback of FLAC, MP3, and Ogg Vorbis files, using its own audio playback engine that integrates with ALSA or Libao. It also supports M3U playlist management, including multiple playlists simultaneously using a tabbed or split-pane interface.

FBX is written in C++ and uses wxWidgets as its UI library.

FBX repository browser

FBX on GitHub


MVM

MVM is a project I did to help my understanding of MIPS processors for a computer science course in college. It’s a virtual machine that runs MIPS instructions the way a MIPS processor would execute them, with code classes and modules to represent each piece of the MIPS architecture and the way the data flows between them. It also provides visualizations of the components and data flow.

MVM is written in C++ and uses ncurses for its UI.

MVM repository browser

MVM on GitHub


Personae

Personae is a web application to manage character sheets for pen-and-paper role playing games such as Vampire: The Masquerade. Multiple character sheets can be loaded, modified, and saved, and it tracks revisions of sheets so changes can be viewed over time. It’s flexible enough to allow new character sheet templates to be built for new games entirely through configuration and build, without requiring additional development.

Personae is written in Python, using the Django framework, and MySQL as the database backend.

Personae repository browser

Personae on GitHub


PySoulforge

PySoulforge is an application to manage character sheets for pen-and-paper role playing games such as Vampire: The Masquerade. It presents a UI to load, save, and edit character sheets, which are stored as XML.

PySoulforge is written in Python, and uses wxWidgets as its UI library.

PySoulforge repository browser

PySoulforge on GitHub


Spring

Spring is an open source real time strategy game engine. It was previously a Windows-only game engine that was tied to the platform with the use of some platform-specific APIs such as DirectSound. I joined a side project that was started to abstract out the platform-specific parts of the engine, such as the sound system, parts of the graphics layer, shadow code and module and file loaders. After our work on cross-platform compatibility was complete, the cross-platform version became the Spring engine that is developed today.

Spring is written in C++. The project is still actively developed, although I am no longer involved with the project.

Spring engine website