Smashing Magazine
I have written a series of articles for renowned web-dev/graphic design network Smashing. The first of these, frequently found in early search result pages in Google, sought to clear up confusion over various jQuery methods, such as parents() vs. closest().
- Commonly Confused Bits of jQuery
- Image Manipulation with jQuery and PHP GD
- 10 Oddities and Secrets About Javascript
Pudding CMS
Pudding is a CMS I built, and continue to develop. Several sites already run off it. It is primarily designed for the PHP developer, though once the basic architecture of a site is set up it is very easy for non-developers to add or modify site content.
Pudding's focus is keeping things simple and aiding you to build what you want, with as little hassle as possible. And hassle seems to be synonymous with CMSs in my experience; it's principally due to this that I decided to build my own.
Compared to other CMSs, it is influenced most by Expression Engine and Unify; the former insofar as it features 'entries tags' for transforming iterative content, and the latter insofar as relationships are defined on an item, not table, level.
Iterative content - blog entries, products, whatever - is at the heart of Pudding, and is stored in 'modules' set up by the developer. The developer has full control over the fields and look of the form that is used to add content to the module, which fields are used to display the iterative content when browsing or searching it, and so on. It's really quite powerful, and all about customisability.
In a nutshell, some of Pudding's main features include:
- Friendly URLs (/category/product/id etc)
- 'Ghost pages' - custom HTAccess to create virtual paths
- User-defined modules to store iterative content
- Transformation of iterative content one of three ways - entries tags, PHP or XSL
- Powerful form builder, than can be harnessed on the site as well as in the CMS
- Easy set up of feeds
- Various user groups, with group-specific permissions to read/write to certain modules
- Auto-generation of 'navigation blocks' based on user-specified template
- Restricting access to pages or folders depending on user account type
- Much more...
Espresso Education
I lead front-end development at Espresso Education, an e-learing company based in Hammersmith, London. Their content is used by thousands of schools in the UK, US, Canada and Sweden.
I was chief architect on a project to algorithmically localise language through Javascript, from British to US English. This at first seems quite simple (change S's to Z's, change 're' to 'er'...). It's not, it's an absolue minefield. The word 'film' should change to 'movie', but not in the 'clingfilm'. 'Cinema' should change to 'movie theater', but not in the sentence 'French cinema'. It's a very satisfying project to program, and features a LOT of REGEX.
I also lead development in server-side XSL, which is used to generate much of the firm's content via CMS.
The focus on interactive learning means there is huge scope for Javascript development in all areas, from complex stack applications to more run-of-the-mill features such as carousels and games.
Some links (both server-side XSL-powered):
- Espresso (UK) - that's my video carousel
- Espresso (US) - there it is again
.NET magazine
In Summer 2011 I was approached to write an article for .NET magazine, a monthly designer-developer magazine sold throughout the UK. I wrote a four-page introduction to regular expressions in Javascript.
It was pitched at elementary-intermediate JS developers who are perhaps too used to relying on jQuery. It began by selling the concept of REGEX and how powerful it can be, before introducing them to some of the key functions and components used in building and employing REGEX, backed up by code examples.
And a bit about me
I'm a Javascript developer originally from Nottingham but now living in Wandsworth, London. I specialise in native JS, jQuery, AJAX, XML/JSON and XSL, though I also have a background as a PHP developer.
I am a classically-trained pianist and musician by education. I discovered the incredible music and life of Dmitry Shostakovich during A-level music, which inspired me to the extent that I moved to Russia for four years, living in the city of Nizhny Novgorod (formerely Gorky) and working as a developer. I speak Russian.
If you're interested, here's an extract from Shostakovich's seminal fifth symphony, his 'comeback piece' after vicious criticism by Stalin of an earlier work. This is a false triumph; it fooled Stalin, who hailed Shostakovich's return to the fold, but the joke was on him. Shostakovich later said it was pretty obvious the 'triumph' was forced. In his own words (though there is some doubt he said it)
"I think it is clear to everyone what happens in the Fifth. The rejoicing is forced, created under threat, as in Boris Godunov. It's as if someone were beating you with a stick and saying, 'Your business is rejoicing, your business is rejoicing, your business is rejoicing,' and you rise, shaky, and go marching off, muttering, 'Our business is rejoicing, our business is rejoicing.'"
I adore house music. To those who quickly dismiss it, you are wrong and naiive. At the centre of house music are traits found throughout classical music such as minimalism, liet motif and, above all, ostinato. I once wrote a musicological analysis (and defence) of a piece of trance music to demonstrate its compatability with comparisons to classical music. House music is not something you like, it's something you feel, deep within you. It is life affirming, peaceful, spiritual and keeps you young.
I am also a former tennis coach and an avid ice hockey player (though I currently lack a team... any offers!?)


