Skip to content

Projects

Projects I’ve worked on in reverse chronological order.

GridIron

A jQuery grid plugin. I tried several other grid plugins, and was annoyed with all of them for various reasons, including lack of extensibility, rendering issues, and/or the code was terrible. So I wrote my own, which at least fixed those problems for me. Or maybe I just like writing JavaScript.

Blue Shift

A dependency injection container written in PHP. It is a closed-book port of Microsoft’s Unity. Supports dynamic proxies and is extremely lightweight and tiny. This site is using it right now.

NTestify

Frustrated with the lack of documentation and extensibility of NUnit, I decided to write my own unit testing framework for .NET. Mostly complete, but as usual, I got bored with it. It was a lot of fun to write though.

PHP MVC

An extremely faithful port of Microsoft’s ASP.NET MVC (version 1) to PHP. Originally an exercise for me to make the transition from PHP to C#, it quickly became obvious that ASP.NET MVC is awesome. And since PHP has no awesome MVC frameworks (they all suck), this seemed like a good opportunity to create one. The site you are currently reading runs off PHP MVC.

Butterfly

Just another wiki engine written in PHP. Before you ask, because I wanted to. It was fun. I think it’s kinda slow, though. I didn’t use any regular expressions, which means it’s doing standard lexical analysis on the input, character by character. I haven’t profiled it yet to see where the bottleneck is, but I may return it to it at some point to clean it up.

Wikis are fun. Everyone should write one.

PHP MIDI Parser

A MIDI API and parsing library written in PHP. A web-based spaghetti-code version was one of the first things I ever wrote in PHP. I decided to make it more awesome, and this was the result.

Linkurious

A JavaScript utility for automatically embedding icons in links. You include a script in your page, and it applies a little filetype icon (if applicable) to all links depending on their extension. Like, say, a PDF icon for links ending in .pdf. Wikipedia, for example, does the same thing in a different manner using CSS2 selectors. Only the newer browsers actually support that, though.

Are you linkurious?

Acronymulator

A JavaScript utility for automatically expanding acronyms via CSS in an unobtrusive way. Really only useful if you don’t want to remember what acronyms stand for, or type title="Extraordinarily Boring Acronym" for every acronym in your HTML.

Testify

A PHPUnit clone. I created it because there were a few things I didn't like about PHPUnit, and because I thought it would be a good exercise. Mostly abandoned right now, but is completely functional.

Rendering the graphs takes a very long time. Ye have been warned. Honestly, though, they aren’t as cool or as interesting as I hoped they would be. You can view them on the sample site.

  • Full mock object support
  • Code coverage reporting (using Xdebug), optionally with graphs (using ezComponents)
  • Extremely fast (not benchmarked, but probably 5x faster than PHPUnit, especially when calculating code coverage)
  • Separation of assertions from test cases (something PHPUnit does not do)
  • Easily extendable (something PHPUnit is not very good at)