“Writing code is easy; writing about myself is much harder.”
All About Me
- I am Andrew Gillard.
- I am a 37-year-old Web developer and (mostly) PHP programmer, currently residing in Basingstoke in the south of England.
- I am a Zend Certified Engineer (ZCE) for PHP 5 and hold a first class BSc (Hons) in Computer Studies from the University of Glamorgan.
- I am @lorddeath on Twitter and various other names (mostly Discworld-related) elsewhere around the Internet. You may find a more comprehensive list of my online presence in the sidebar to the right of this page.
- You can contact me by emailing [email protected] or via Twitter/
Facebook/ LinkedIn/ etc. (again, see the sidebar).
My Web/Programming Interests
- My current PHP (and HTML, JavaScript & CSS) IDE of choice is NuSphere's PhpED.
- My major interest is in Web technologies, as I love the platform-independence that the Web offers (ignoring Internet Explorer, of course). As such, PHP tends to be my programming language of choice and, with at least ten years of experience writing PHP code, I consider myself to be extremely proficient with it. PHP 5.2 is now the minimum version that I use, though I prefer 5.3 or even 5.4 where possible (unfortunately, the server on which this site is hosted is currently limited to PHP 5.3). Thanks to my use of 5.2+, I can make use of some of PHP's newer features such as PDO, SPL and its full object-orientated programming support, all of which I utilise heavily.
- I have a particular interest in newer Web technologies such as HTML5, CSS3, Ajax, jQuery (and UI), etc. - partly because they're new toys for me to play with and partly because they generally make my life a lot easier. jQuery massively reduces the amount of JavaScript I have to write, CSS3 greatly cuts down on design time (no need to create images for rounded corners, drop shadows, etc.), and so on. Plus, HTML5, with its <video> & <canvas> elements, and JavaScript's FileReader interface, is largely obsoleting Flash, while features such as offline Web applications are allowing many applications to be Web-based, providing instant cross-platform support on mobile devices, which can only be a good thing, right?
- I also often integrate third-party APIs, such as Twitter, Flickr, Google Maps and Last.fm, into my scripts and sites, which is something that I genuinely find enjoyable, provided the API is friendly and the end result is impressive enough. I've also written more than my fair share of HTML-scraping scripts that simply parse the HTML source of websites without public APIs; ugly, slow and unreliable as that method may be, a lack of public APIs leaves me with little alternative.
- Because PHP is my primary programming language, I tend to default to using it for non-Web applications as well. For example, where many Linux system administrators would use Perl for shell scripts (or Python, as seems to be the fashion at the moment), I will generally use PHP. The performance may not be ideal, but that's very rarely an issue for short shell scripts - and using a language that I'm totally familiar with is extremely beneficial. This extends even to long-running scripts such as a script that constantly watches our router's error log for SSH brute-force hack attempts, as well as the original Web2Messenger bots, which were written in PHP.
- In terms of database systems, I currently use nothing but MySQL (version 5 or newer), however I am interested in learning to use PostgreSQL at some point, especially now that Oracle have acquired MySQL, leaving its future in some doubt.
- I have experience with Subversion (SVN), Mercurial (Hg) and Git as version control systems, favouring either Mercurial or Git, with no specific preference between the two of them.
- I have, in the past, used VB.NET, C#.NET, C++, C++/Qt and Java, but I don't have much experience with any of those any more, mostly due to a lack of things to do with them.
- Recently I have started writing Java code for an Android application called QuasselDroid, which I forked from the original project on GitHub in order to fix a few bugs that were proving especially irritating, and in order to implement a few features that I felt would be very useful - isn't open source fun? This is something of a love/hate relationship, in that I love developing an application which I use heavily on a day-to-day basis, as do several of my friends, however I know little Java and even less of the Android API, so even the simplest of tasks take a lot longer than they would if I already knew the tools. I would love to expand my knowledge of Android development, but it's not something I've had much time to do so far.
My Other Interests
- I am a keen gardener and can often be found spending many an hour tending to my garden which, this year, will contain strawberries, raspberries, black- and redcurrants, tomatoes, cucumbers, garlic, bell peppers and chilli peppers, in addition to various purely-ornamental plants.
- I also enjoy some amount of DIY around the house and garden, such as my recent work laying a patio and creating a wall-mounted rack for our Guitar Hero guitars. I was, of course, aided by my housemate with this work.
- Despite having forgotten a lot since A-level, I enjoy playing around with small electronics projects, even if they're as simple as replacing a broken microswitch in a Guitar Hero controller or installing a key switch in a PC case. I have some ideas for projects to make use of Arduino and/or Raspberry Pi boards that I would love to explore when I have a little more free time.
- I am also something of an aspiring photographer, as the above links to my Flickr profile may suggest. I don't own a DSLR (nor do I necessarily want one - I appreciate the moderately-compact size of my current camera, a Canon PowerShot SX200 IS) and don't always know all of the technical details behind what I'm doing, but I love experimenting and learning, and my camera has enough manual controls (especially with the CHDK custom firmware) to allow me a large degree of freedom and control.
- An extension of my photography hobby is some amount of an interest in astronomy. This mostly consists of taking photographs of the night sky, which is rarely impressive without a telescope - a problem that I hope to fix before long.
- It will likely come as no surprise to learn that I'm also an avid Xbox 360 gamer for a very large range of games, from first-person shooters, through RPGs, racers and music games, with some "casual" games thrown in for good measure. I do also possess a Nintendo Wii, but that doesn't see much use besides for Zelda games. I may, however, get a copy of Mario Kart shortly.
- I identify as being both bisexual and a furry [BBC article], although, besides the collar, I keep that part of my life fairly separate from the rest of it.
My History
- I was born in Kent, in the south-east of England, in 1987, then fairly promptly moved 40 miles south-west into East Sussex where I remained until I went to university at 18.
- I was interested in computer programming from an early age and would often experiment with writing simple programs for the ZX Spectrum long before I started secondary school.
- Once we bought our first family PC in 1998 (a 233 MHz AMD K6 with a 2 GB HDD and something like 64 MB of RAM, for which we paid £1000) and got our first Internet connection about a year later, I quickly found my way to IRC and mIRC, and became fairly heavily involved in mIRC scripting.
- I'd had something that could loosely be described as a "website" thanks to Angelfire for some time before we had a home Internet connection - a site that was created and modified mostly on the PCs at my secondary school's library, however getting a home connection gave me a renewed interest in the Web. I thus created a new website in Microsoft Word and, realising how unbelievably bloated the resulting HTML was, effectively taught myself HTML by stripping out Word's bloat and seeing what changed. Before long I was creating sites in Microsoft FrontPage (utilising both its WYSIWYG editor and raw HTML editor) and then moved onto writing the HTML by hand, having somewhat lost faith in the ability of WYSIWYG editors to create sane markup.
- From there I moved into JavaScript and then PHP, somewhere around the time when PHP 4 was released (the year 2000 or so).
- A few years later I started playing on a Neverwinter Nights persistent world server called Dark Century: X. This gave me the perfect opportunity to both indulge in some programming for that server, using the game's NWScript language (a language that is sometimes described as "bastardised C") and to create a "fan site" for that persistent world, the Unofficial Dark Century: X (uDCX) site, which is still running today. The uDCX site is also home to what is still one of my proudest achievements in terms of visually-impressive work: a Google Maps-based map of the game world, with a competely custom tileset and user interface.
- In the year before I went to university (2005), I accidentally created a very successful Web-based IM service called Web2Messenger, which ended up with around 15,000 registered users by the time the service was, for various reasons, discontinued sometime in 2008. I've written a more in-depth page about Web2Messenger.
- In the middle of my university course I had a work-placement year which I spent working for a friend and his new company. This consisted of starting the creation of a new e-commerce platform written in PHP 5. I was working alone for the majority of that year, however a few months before I had to return to university, a few external developers were brought onto the project to continue it while I was away. As such, I had to teach them how our system worked and then I monitored their progress, reviewing their code and pointing out bugs and security vulnerabilities in between my final-year studies - a situation that, in retrospect, was far from ideal. After finishing university I returned to the company working on the same software as before and retaining the same team-management role which I had before. I have now worked for Craig Brass Systems for almost four years (five, if you include the minor team-management final year at university).
- My final-year project at university consisted of the creation of an improved version of Amazon.com's product recommendation engine. Amazon's existing product recommendation system does not (or, at least, did not in 2008 when I started the project) helpfully handle gift purchases. This would cause your own product recommendations to be polluted by suggestions of products that would appeal to the recipient of the gift you've bought, instead of ones that would appeal to yourself. Amazon offers/offered a checkbox for each product in your purchase history to exclude it from recommendations, however I felt that this could be taken a step further by using that purchase to suggest products to the gift's recipient, instead of simply ignoring the purchase entirely. I also included ideas for extending the system with additional social networking features, such as reminding people of a friend's upcoming birthday along with suggesting a suitable gift. This project involved the use of MySQL stored procedures for performance reasons, and the PHP code included in the appendices of the report document is a reasonable guide of my personal code style and quality (whereas the PHP projects on GitHub that are linked to at the side of this page are mostly personal projects with little need to be nicely-structured or documented, so they generally aren't).
- Throughout secondary school I was heavily involved with the school's music department. I had been playing violin, and then viola, since the end of my time at primary school, so I joined the school's Orchestra, and String Group playing viola, but I was also part of the occasional choir and a member of the school's first Steel Band from age 12 through to age 17. These days, the extent of my musical ability is guitar, vocals or drums on Rock Band or Guitar Hero. Not quite the same, is it?
- I'm now working as a Web developer/programmer at Maxx Design in Newbury which I'm thoroughly enjoying. I actually love going to work every day - the commute isn't much fun, but the atmosphere when I'm there is brilliant. By working with a team of graphic designers and a couple of other developers, we can produce both graphically- and functionally-impressive websites. Maxx tends to embrace new Web technologies, too, which is ideal for me as it means that I get paid to play around with shiny new toys!
This Site
- Built using PHP 5.3 and the Zend Framework, with a MySQL database.
- Utilising jQuery and jQuery UI (currently very selectively, due to a lack of things requiring client-side code).
- Using fairly semantic HTML5 markup and CSS 3 styling.
- Has full mobile device browser support.
- Has a dedicated printer-friendly stylesheet.
- Has an RSS feed of blog posts.
- Tested in Google Chrome 18 (primarily), Firefox 4, Opera 11.5 and Internet Explorer 10 (preview). Slightly older browsers (Firefox 3.6, Opera 10, IE9, Safari 4 on Windows...) should work with minor style issues, but you're on your own with older versions of Internet Explorer - this is my personal space, so I have no intention of spending days hacking IE6 into submission. That said, IE6, IE7 and IE8 have all been tested to the point that I know that the site is usable, but they have progressively more significant styling issues as the version number drops.
Last updated: 1 Nov, 2014