Hi

My name is Adrian and I'm a Code Monkey

Yeah OK fine, Web Developer is technically more accurate, but I still preferCode Monkey.

I've been involved with designing and building webpages since 2003 and have worked in several exciting and varied environments over the years.

My speciality is back-end programming in a LAMP environment, but I can handle front-end stuff like HTML, CSS and JavaScript without a worry.

Oh, and I'm rather fond of Ruby on Rails too!

Look at my work...Get in touch!
Projects
  • Mapplication - After Login Mapplication - Zoomed and Filtered Mapplication - Marker Contents Mapplication - Modal Window Mapplication - CMS

    Mapplication

    An internal marketing tool to assist in the creation of investment leads.

    Built entirely through CakePHP and jQuery, the fully-bespoke interface works as a live-explorable map without the need to leverage any map APIs.

    Included several modern animations, iPad/iPhone optimisations and support for drag/pinch gestures.

  • Blues Banter - Tab Page Blues Banter - Application Home Blues Banter - Pick a Team Blues Banter - vs The Waratahs Blues Banter - vs The Chiefs

    Blues Banter

    Blues Banter was a Facebook application for (Auckland) Rugby fans to smack-talk before the game, and then recant after the result!

    A simple MVC-style system which changes it's branding based on the teams involved in the upcoming match

    Visit The Blues on Facebook >

  • Smirnoff Night Project - Tab Page Smirnoff Night Project - Application Home Smirnoff Night Project - Event #1 (Zombie Apocalypse) Smirnoff Night Project - Video Entries Smirnoff Night Project - Entry

    Smirnoff Night Project

    The Smirnoff Night Project was a Facebook application with 3 phases. Phase 1 allowed users to submit ideas for an event in the form of a video, uploaded to Youtube via the Zend Gdata API.

    Phase 2 promoted the 4 winning videos, and Phase 3 was a retrospective gallery of each event (including behind-the-scenes footage).

    Visit Smirnoff on Facebook >

  • Orcon Airpoints - Homepage Orcon Airpoints - Login Orcon Airpoints - View Appeal Orcon Airpoints - Facebook Gallery Orcon Airpoints - Facebook View Appeal

    Orcon Airpoints

    The Orcon Airpoints system was a custom-built, MVC-style archtecture which creates bi-directional communication with YouTube. The system also depends on an external API provided by Orcon

    Further to the standard web interface, the content is also delivered to Facebook through an iframe application.

  • eheadpsace - Homepage eheadpsace - Login eheadpsace - Logged-in, Chatting

    eheadspace

    This project required a bi-directional communication between a flash movie and the page containing it.

    jQuery was used to drive the flash from clickable HTML elements, and flash pushed changes back in the HTML through the same interface.

    View the site >

  • Hawkins Construction - Homepage Hawkins Construction - Company Division Hawkins Construction - Projects

    Hawkins Construction

    Hawkins was created in Silverstripe, a CMS developed in Wellington, New Zealand.

    There was a lot of variance in templates, so there was a large amount of custom work to be done.

    It also required a lot of custom PHP and jQuery work to produce specific core features, and was a great challenge.

    View the site >

  • NZ Music Awards - Homepage NZ Music Awards - Category View NZ Music Awards - Alternate Menu NZ Music Awards - Story View NZ Music Awards - Media Player

    NZ Music Awards

    This project is a straightforward Wordpress theme, with a slight twist.

    The site also implemented a customised plugin to automatically regenerate content into a format suitable for mobile phones.

    View the site >

About Me

adrian's skills...

PHP

MySQL

Linux

Ruby on Rails

JavaScript

HTML

CSS

More

PHP

I have 7¼ years of commerical PHP experience and have worked on a wide variety of projects, including:

  • developing bespoke applications, using an existing PHP framework and from scratch
  • building CMS addons
  • extending existing, OOP systems
  • maintaining legacy code
  • researching and bugfixing chokepoints in large applications
  • resolving PHP-version incompatibilities
  • interfacing with remote APIs

My experience covers both PHP4 and PHP5, and I've worked with both OOP-based and standard proceedurally-based code.

Over the last 12 months I have worked with CakePHP and find it really suits my style of coding. I am most familiar with the 1.3x codebase, but have more recently been exploring the 2.1 Release Candidate and find it even better.

I also have experience working with complicated architectural hierarchies, largely due to my work with the Silverstripe, eZ Publish and Wordpress content management systems.

MySQL

As with PHP, I've been around MySQL in a commercial environment for 7¼ years now. I am confident writing queries by hand, using a dynamic query builder, or interfacing with a live database from the terminal.

I have designed data architectures for complex databases and am happy optimising slow or ineffient queries in existing applications.

Linux

I have run Linux exclusively for the last 7½ years in both a server and workstation capacity.

I am most comfortable working with Debian-based distributions (specifically Ubuntu), however I've worked with several other Linux and Unix variants over the years.

My experience extends to:

  • installing/configuring/maintaining new servers/workstations
  • configuration of Apache, PHP, MySQL, including any supporting modules (PEAR, GD, memcached, Exim, etc)
  • setting up shared access to content (SSH, NFS, Samba, git, SVN, etc).
  • scheduling of automated jobs (cron)
  • shell scripting (could use some more practice with this)
  • configuration of software RAID (mdadm)
Ruby on Rails

I've not had the opportunity to work with Rails commercially yet, however I've built a few play applications in my spare time and really enjoy such a logical and simple language.

Through this spare-time experimentation I've developed a couple of simple Rails plugins: tagworthy and rhighlightjs. They were both built for Rails 2.x, and I haven't had the chance to test their compatibility with Rails 3.x yet, so YMMV!

tagworthy takes blocks of content and extracts meaningful keywords automatically, by way of the tagthe.net REST API.

rhighlightjs is an implementation of Ivan Salagaev's highlight.js, which automatically finds blocks of source-code in content and parses the code into syntax-highlighted html.

I am also responsible for the PDF conversion of Why's (Poignant) Guide to Ruby.

JavaScript

I'm fairly competent with JavaScript. I'm happy writing code from scratch, but much prefer working with an existing library like jQuery.

I've also worked with Prototype and MooTools, but prefer jQuery for reliability and simplicity without sacrificing features.

I'll also tend towards jQuery UI whenever the need for a basic date-picker or drag-and-drop arises, and swfobject or jquery.flash for deployment of Flash movies.

HTML

I write my HTML by hand, and am familiar with writing to standards. My code can be compliant to any of the standard doctypes:

  • HTML 4 or 5
  • XHTML 1.0 (Transitional, Strict, Frameset) or 1.1

I strive to write code that is standards-compliant, but primarily cross-browser and cross-platform compatible.

I'm also keen on using HTML in the most semantic way possible: tables for tabular data, lists for list data, etc.

You also may have noticed that this site is built in HTML5, and at the time it was originally written, standards-compliant. Unfortunately, as is often the case with emerging technologies, the goal-line has shifted and I have fallen out of favour with the W3C validator. The outstanding validation errors are known to me and I will fix them as soon as I get the chance.

CSS

I've been working with styling sites for years now, and it still amazes me the bizzare ways different browsers react to the same code. The backslash hack, the underscore hack, the star hack, !important... I've used them all at some point along the way.

CSS is one of the things I feel weakest on, and I don't think that's likely to change any time soon. There are so many little bugs and workarounds for browsers that it seems like the goal line is always shifting.

What I can tell you is that I always strive to make the best use of CSS that I can - use generic, cascading selectors and only write more specific selectors for those elements that aren't working. I tend to code CSS from the outside in, blocking out the grid or columns first and working towards the finer elements.

I've used CSS-resets before (like Eric Meyer's and YUI), but have yet to find that elusive magic bullet reset that I really like.

More recently I've also been working with Google's Web Fonts service as a nice @font-face shortcut.

More

Here's a list of other stuff I'm good at or have worked with:

  • source-control systems (git, SVN)
  • Photoshopping and Illustrator-ing things
  • meeting with clients and discussing their projects
  • managing other team members
  • documentation
  • bug-tracking software (Eventum, Trac)

...and interests

  • music! (I've been involved in jazz and rock bands for about 19 years and am a multi-instrumentalist)
  • collecting vinyl records
  • brewing my own beer
  • pixel art
  • my partner Kirsty...
  • ...and our 8¼ year-old dog Charlie
Stuff For Fun

fun stuff *

Why's (Poignant) Guide to Ruby

Neuron Wallpaper

Various Other Wallpapers

Why's (Poignant) Guide to Ruby - PDF

I created this PDF from Why's website back in August of 2007 because I wanted a version I could read offline.

2 years later (give or take a couple weeks), Why disappeared as mysteriously as he arrived and all his various accounts and projects were shut down - including his Ruby guide.

While we're all sad that Why has gone, the good news is that you can still download the PDF right here!

Neuron Wallpaper

About 10,000 years ago (more like 10, really) I rendered this set of images out from Lightwave 7.5, and they've been my most popular wallpapers since.

The base scene was originally created following a tutorial on newtek.com, but I ended up tweaking a lot of texture and camera settings to make it my own.

There are 3 sizes, suitable for single-monitor (1600x1200), dual-monitor (3200x1200), and even tri-monitor (4800x1200!) deployment.

Click the thumbnail for a preview, or just download a zip containing all 3 sizes.

single-monitor

Neuron (single montior)

dual-monitor (or widescreen)

Neuron (dual monitor or widescreen)

tri-monitor (or dual-widescreen)

Neuron (triple monitor or dual widescreen)

Various Other Wallpapers

These are a selection of other wallpapers I've made over the years. Click the thumbnail for preview & download.

Blood Cells
Substrate
Dew
blurb

The source scene for this wallpaper set was taken from the original Lightwave 7.5 cd, with a few tweaks from me.

single-monitor

Blood Cells (single monitor)

dual-monitor (or widescreen)

Blood Cells (dual monitor or widescreen)

tri-monitor (or dual-widescreen)

Blood Cells (triple monitor or dual widescreen)

Substrate

blurb

I've always loved the colours and shapes of the Substrate work done by Jared Tarbell for complexification.net, and was hoping to find a wallpaper so I can see it every day.

I don't know if it was my Google-fu or my patience that ran out first, but I decided to make my own instead.

This was created using the Substrate XScreenSaver module written by Mike Kershaw, who in turn derived the code from Jared's work.

The code for these projects has been released under various Open Source licenses (I think the GPL and MIT licenses, respectively), so I'm releasing the wallpaper under the Creative Commons Attribution-ShareAlike 3.0 License.

If either Jared or Mike would like this changed, then they can let me know.

Dew

blurb

A wallpaper created for my stressed-out friend.

The model and textures were created by ZeroXXX in 3ds max format, which I obtained from TurboSquid.

After conversion to the Lightwave format and a bunch of tweaking to the surfaces, the image was rendered out. A little post-pro (bloom, desaturation, etc) was added with Photoshop.

* actual fun content subject to sense of humour.

Get in Touch

adrian is...

located in Hertford, United Kingdom

link-able on linkedin.com/in/akhumphrey

tweet-able via twitter.com/akhumphrey

fork-able using github.com/tweak

stack-overflowing to stackoverflow.com/users/284891

...or email me directly

Processing...

Thanks!

Choice bro!

Your message has been sent with the greatest of haste!

No-can-do, buddy.

Not cool

Something in your message is bogus, and that kinda behavior ain't gonna fly.