I was recently plagued with a problem at work where a previously working document produced by one of our software applications was not including text anymore. Table borders and images were fine, and even some custom page footers we were generating through the use of the $pdf global variable was appearing okay.
jQuery Image Overlays with Mosaic

Recently, whilst working on a client’s website I had to incorporate image overlays into their portfolio page. I had seen Mosaic mentioned before on various websites and blogs, but I had never used it. I was disappointed at the lack of documentation, but nevertheless it proved to be a nice, light (~2kb minified) jQuery plugin that did exactly what it said on the tin. I thought I would document how to get going with a quick mouse-over animated overlay which will hopefully save someone some time.
Emulating MySQL Hash Indexes on MyISAM tables
Database administration is possibly the scariest concept for me as a developer, mainly because I have neglected it for so long. Everyone knows the basics, and even though I had a solid theoretical understanding of how databases store information, I wanted to further my development in this area. I picked up a book by O’Reilly called High Performance MySQL, which seemed to be perfect and pick up right where my comfort zone ended.
Avoiding CAPTCHAs with a simple Math Class
It’s been a while since I last blogged, and a lot has been going on since (apart from a hectic Christmas and New Year’s eve). I’ve been working away on my personal projects outside of my 9-5, and I came across the dreaded idea of CAPTCHAs in a form. I’m a sucker for nice registration forms (Spotify is a great example), and I wanted to create something that was equally as pleasant to use.
New deannahalsall.co.uk website
Over the past month or so I have been busy at work on a new website for Deanna Halsall, a talented freelance illustrator and artist based in Manchester. The new design and backend (powered by PHP and MySQL) offers a much more extendable and robust platform on which she can build her portfolio.
Javascript Array Detection
Recently, whilst working on a personal project I needed a framework independent function for checking whether a variable was an array object. To determine the object type of the variable I made use of the constructor property and the indexOf() String method.
The XDebug Myth
Recently, myself and Mark Young have done a lot of work on our internal development processes and finally took the oppurtunity to finish configuring XDebug on a LAMP stack. Our setup consists of one (LAMP) development server, a Windows development server, a hudson server and a CVS/Git server (more on fun with Git in another post). Our workstations all run Windows 7, and we connect our Aptana Studio installations to the main development server. Whilst this is far from ideal, it does offer a few benefits (like a controlled environment) but at the same time it is its own worst enemy, if a developer is working on a project and they run a MySQL query with a bad table join… then we have to restart the MySQL process on the server before we can get going again.
Future Proof Design
Recently, I read an article that mentioned the various ways that management staff measure the productivity of their developers. It was worrying to see one of the ways involving the number of lines of code a developer writes in a working day. Sure, you could say that the more lines of code you write the less work there is left to do. In actual fact, developers who are pressured into working faster are more likely to produce bug ridden code. As the age old saying goes, its quality over quantity.