Here's where I get to experiment a little. A lot of the time when I have a great idea I discover that it has already been done. I'm usually just a month or so late!

This is primarily development area to toy with my own ideas and techniques, somewhat akin to Google Labs but less scientific and probably with more accidents. But then again, not all accidents are inherently bad.

PQP with XHR

Back in April 2009 the guys at Particletree introduced a quick PHP profiling tool – PQP for short. I've built on this and introduced a method for profiling PHP scripts included via an Ajax request.

View an example.

Download [16KB]

The ZIP includes the classes, images, stylesheets and sample PHP scripts used for the above example.

Extended PDO

A few years ago Tomasz Jędrzejewski wrote a class for PHP 5.1 that extended the capabilities of PDO. His (now discontinued) Open Power Driver introduced an object factory, caching, logging and profiling – all of which (and more) I have included in these classes for PHP 5.2 and higher.


Inspired by Tim Harper's Bundle-fu for Ruby on Rails, this is a PHP class to collate all assets in webpages together in order to reduce HTTP requests and DNS lookups. All JavaScript and all stylesheets are included into two file bundles – one for each file type. Optionally, small CSS background images (those less than 1KB in size) can also be embedded into the stylesheet bundle.

Perl SyntaxHighlighter Brush

An additional brush for Alex Gorbatchev's great SyntaxHighlighter JavaScript library to support the Perl language. It's actually very rare that I write any Perl code these days but it remains popular despite Perl 6 being in development since 2000.

My basic brush has been tidied up and polished off by Marty Kube.


A Google Maps-based website to help you find a mutually convienient place to meet your friends. Search for your city, locate your friends and decide on what kind of place you want to meet.