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)