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
  • 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 is 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 is a Facebook application with 3 phases. Phase 1 allowed users to submit videos, which were uploaded to Youtube via the Zend Gdata API.

    In phase 2 (current), 4 winning ideas were turned into real events, and these events were filmed for TV.

    Phase 3 will be a retrospective gallery of the 4 events as they happened, with behind-the-scenes images and 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 5¾ years of commerical PHP experience and have worked on a wide variety of projects, including:

  • developing custom applications 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.

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 5¾ 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 6¼ 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
  • 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 is (currently, at least) standards compliant.

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 I tend to shy away from them unless the project absolutely demands it. Generally I feel that browsers should all reset by default rather than provide their own user-level stylesheets. Using a CSS reset just gives people writing browsers the permission to keep being a pain, and refusing to reset is my way of telling them it's not on.

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 17¾ years and am a multi-instrumentalist)
  • collecting vinyl records
  • brewing my own beer
  • pixel art
  • my partner Kirsty...
  • ...and our 6¾ 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 9, 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
Scratch
F16
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.

Scratch

blurb

This image was created as part of an animation assignment.

Modelled and rendered in Lightwave 7.5, textured in Flash and Photoshop.

F16

blurb

I created this F16 as my final assignment for a Diploma in Multimedia - its the culmination of about 3 months work.

Modelling and rendering was done entirely in Lightwave 7.5, textures in Photoshop.

The model needed to hold up to print quality, so the textures are somewhere around 4000x4000 pixels. Each surface had 4 texture layers - colour, diffuse, spec and bump maps - totalling somewhere in the region of 450MB of textures. Rending on my old machines took 8-10 hours - forever to a young and impressionable chap!

* actual fun content subjective 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.