This section outlines my various open source work. Most of the code is found on github (or is en route to github) but Form Tools – my largest project – is still stored in a closed SVN repository. When I return to that project next year, I’ll be remedying that!

Smaller Projects

These are some smaller scripts I’ve written that are still of use, ordered by most recently worked on.

  • country-region-selector
    A script to automatically add dynamic, connected country and region dropdowns to your forms. If you use Polymer, you can also check out the polymer-country-region-selector project – it’s the same script, just wrapped in a Polymer component for easier use. Both these scripts are available via Bower.
  • grunt-search
    A Grunt plugin that searches a list of files for particular search strings and logs the results in JSON, XML or text format. It also provides an option to fail the build process, should you need it.
  • C# Ajax File Uploader
    I wrote this while at the CBC. It’s a standalone C# user control for adding Ajax file upload fields with progress bars to your web form. It contains a Visual Studio .NET (2012) solution with all the necessary files. It was developed on .NET 4.5, but should run on 4.0 as well.
  • Client-side search boilerplate
    Another project I wrote at the CBC. It’s a simple JS library and example implementation for searching an array of objects (any structure), and for providing common UI elements around the search: pagination, prev/next links and sorting.
  • The Pixelator
    An experiment to provide a little interaction to David DeSandro’s excellent Close-Pixelate library. This site was just wanted an excuse to play with the new HTML5 Canvas element.
  • Responsive Design Bookmarklet Generator
    This was a quick evening’s work, but proved surprising popular out there on the interwebs. It’s a simple bookmarklet generator that lets you quickly see how any page looks on any device size.
  • RSV JS Library (Really Simple Validation)
    An old, old javascript library I developed called “Really Simple Validation”. This also contains a corresponding PHP Validation library, which lets you copy & paste the rules from client to server. Very handy.
  • PHP Validation
    A sister script to the RSV JS library. Works exactly the same way, except on the server – you can copy and paste your validation rules from one to the other to get both client- and server-side validation.
  • Smart Lists
    A jQuery and Prototype plugin that lets you convert “flat” HTML lists of information into categorized, paginated lists.
  • Form Filler Bookmarklet Generator
    This is an unbelievably useful little script I wrote many years ago to generate a custom bookmarklet to let you re-fill in any webform. There’s a long-standing bug with apostrophes messing it up, but other than that it’s a great little tool.

Old Stuff

  • Flash Image Scroller
    This is a surprisingly popular Flash script (AS2) I wrote several years back, but no longer support. It’s highly configurable and can add a pretty great effect to your site. But honestly, these days I’d strongly suggest looking an HTML5/JS/CSS solution instead. For something like this, Flash is overkill.
  • Form Emailer
    A simple but versatile form email script, written to work with any web form and allow for complete
    customization over the email content.
  • Total Recall – Chrome extension
    Never re-enter a form again. This Chrome extension does the same thing as the Form Filler Bookmarklet Generator, only spruced up for the new decade and for a new browser. It provides a very simple user interface to manage your saved forms and identify which page form you’re interested in saving. There are no limit to the size of the form, number of fields, or number of forms.

Other Contributions

And here’s some work I’ve done on other open source projects / misc free contributions.

  • Spinners – a Canvas-based “spinner” loading image script written by Nick Stakenburg. I added a few settings (fadeOutSpeed, pauseColor and pauseOpacity) so I could use it in my generatedata.com script.
  • WordPress plugin: Github Latest Commits
    This is a WordPress plugin written by Niklas Bivald which I originally forked, but am now a contributor to the main trunk. I updated it in early June 2012 to use on my new site, but since then Github has dropped support for version 2 of their API. Once this website is stable, I’ll be returning to this project so I can add it to my site.
  • CodeMirror
    I provided the Smarty mode for Marijn Haverbeke’s excellent in-browser JS syntax highlighter.
  • Geshi
    A long time back (2005?) I contributed Javascript and Perl syntax highlighters to this other syntax highlighter script.
  • Geshi plugin for Smarty
    Allows you to embed Geshi syntax-highlighted content within your Smarty pages.
  • Google Maps Coloured Markers
    Google provides some default reddish icons for their Google Maps app, but no other colours besides those. This is a set of 10 different coloured icons, plus the PSDs, should you need to edit them any further.