Professional Blog

A few things I've been up to

Mar 7, 2022 - 1 minute read

Links to Projects

Occasionally, I’ll write small largely stand-alone projects. If they are static HTML & Javascript-based, then creating them as Github pages, available as sub-directories on this site (beyond all the existing pages here) can be a quick and easy way to show them. However, there’s not been a good way to link to them, and show them off - so this is just the introduction to the new page in the menu above - and the link to some of my projects.

Feb 27, 2022 - 2 minute read

PHP Gotcha: Using php://temp

Just a quicky post, that I hope will save someone (or myself) some head-scratching later. TLDR: Whenever you fopen('php://temp', $mode) you get a new file. I found this out when exporting some data from the DB to a spreadsheet/CSV. I was using Yectep\PhpSpreadsheetBundle\Factory (a Symfony bundle around phpoffice/phpspreadsheet) which had a handy method to save the file: $writer = $this->spreadsheetFactory->createWriter($spreadsheet, '.csv'); $writer->save('php://temp'); From there I would read it back, and upload it to a cloudfiles storage account using FlySystem:

Jul 12, 2014 - 4 minute read

Contributing to open source can be easy

Although I’m busy day to day at my current contract *, that isn’t to say that my passions outside the office have come to a complete stop. I’m still going to regular meetups (like the PHP London Meetup and Docker London), and I’m also planning to go to Symfony Live London 2014. I’ve also been reading about, and trying some software, and making the odd fix and new code for myself.

Feb 17, 2013 - 11 minute read

Not having your developers quit on you - as a service

Discuss at Hacker News

It’s never good when someone feels they need to quit a job (or contract) rather than be able to continue, but sometimes, if the environment that they are working is so just so toxic and/or painful to work within, then it can be the best thing for all parties.

That doesn’t mean that I particularly keen to admit that I’ve done it twice in the last five months. It’s useful to tell you the why, of what happened though.

Jan 7, 2013 - 3 minute read

Why I like djbdns & tinydns

I’ve been using TinyDNS, and the associated systems, like DNScache and DaemonTools since 2003, when I was first tasked with setting up a local DNS resolver, and a DNS server for a web-development company I was working at We had dozens of domain names, and organising the changes - as well as paying per domain name, was getting to be, well, annoying, as well as potentially expensive.

So, I was asked to setup our own name servers….

Jan 1, 2013 - 5 minute read

A MySQL optimisation Story

Here is an example of what a little expertise, judiciously applied can do to speed up larger systems. In this case, take a 30 minute run against a MySQL database down to 5 minutes, or less.

Jan 1, 2013 - 2 minute read

Booze at tech meetups

Go away or I will replace you with a very small shell script.
Originally posted 2011-12-13 at

I was out last night at the The Big Xmas Bash, near Silicon Roundabout. It was a fun night out meeting various people, tech, business and recruiters. Oh, the shame though - I was wearing the same T-shirt as someone else - and, yes, I have indeed replaced people with small shell scripts.

Now, to the main part of what this post is about - the rant.

Dec 31, 2012 - 2 minute read

DNS and my refreshed CV site

It has been in process for a little while, starting when I moved the bulk of my DNS hosting from (with whom I’ve had a small virtual machine since April 2004). One of the things I really like about Bytemark was the free DNS hosting they provided, particularly since they used TinyDNS - which is worthy of its own post. To add a new domain name, create a small file with the relevant lines, with one per DNS record - really easy if you have any kind of database or automation.