Category Archives: Blog

General thoughts on life, the universe and everything. Stuff that doesn’t fit in the other categories!

Apple AirPods first thoughts

I got some Bluetooth headphones about a year ago as an experiment. They were cheap but more than lived up to expectations. The lack of wires really is a game changer, albeit a totally #firstworldproblems one.

But they had flaws. When Apple announced their AirPods I was intrigued. Would they fix the problems while keeping the benefits? At ten times more than my old headphones I hoped so.

They arrived only a few hours ago so this isn’t a thorough review but here are my initial thoughts.

Out of the tiny box, first impression is that they case has a surprising heft. Maybe the size makes you expect it to weigh the same as some dental floss but the reality is batteries are heavier than that!

The lid smoothly flips up and the headphones themselves don’t just fall out. Instead they’re held in by magnets and require a gentle tug to extract. Overall the hardware design is understated and thoughtful.

Open the lid and hold next to an iPhone and it pretty much immediately pairs. No pin codes, no janky on-off buttons, no confusing flashing lights or mystery buttons. Even better, the details sync between your devices. It appeared on my iPad and even my pre-Bluetooth 4 MacBook Pro (which doesn’t automatically “see” the AirPods but does connect just by clicking “Connect” in the menu).

The sound from my iPhone is fine. I’m no audiophile — I don’t even play one on TV — but it’s loud and clear. They don’t fall out of your ears, even if you try.

The one area I was skeptical about — Siri rather than real buttons — is still an area for concern. It took me a few attempts to activate it. It seems to require quite a decent jab to activate, which does eliminate the possibility of accidental usage. “Volume up,” “Volume down,” “Pause” and “Resume” all do what you’d expect. Siri even activates correctly on the Mac.

How well it works in practice will have to wait for “real world” testing. What I will say is that the “pause when you take one out of your ear” functionality works as advertised. I love it.

I’ve not reached the end of day one yet but impressions are good. They feel good and Just Work, which sounds like damning with faint praise unless you’ve used other Bluetooth devices.

But it’s going to take a while longer to determine whether they’re worth ten times the price of my old headphones.

This post originally appeared on Medium.

And another another thing…

I can’t make up my mind about “And Another Thing…,” Eoin Colfer’s book, which is the sixth Hitchhikers novel, the first not written by Douglas Adams.

On the one hand I wanted to give it a fair chance, try to judge it on its merits rather than simply as a H2G2 book not by Adams. On the other, it’s clearly not by Douglas Adams. It has the same characters. It’s clearly by someone who is a Hitchhiker fan and some things — like the names of places and things — feel spot on.

But the story itself doesn’t quite work for me. It feels like… just a story. Which is a weird criticism, but bear with me.

Especially later in his career, Adams liked to combine his interest in technology, science and religion in his writing and that is what I think is lacking from “And Another Thing…” It’s not that it’s bad, just that it’s ordinary.

With the caveat that I’ve never written a novel and that there’s a long way from a simple idea to a complete manuscript, I hubristically like to think that I would have taken a different approach.

There could be some fun to be had around the “infinity” of Earths that the Vogons destroyed at the end of “Mostly Harmless.” Because, if an infinite number of Earths have been vaporised, there are still an infinite number left. The concept of “infinity” is bizarre enough to have both truth and humour. There’s definitely some potential playing with Hilbert’s hotel. Can you imagine an infinitely large hotel where all the guests have an ego the size of Zaphod Beeblebrox’s? Or Arthur trying to find a room in a full hotel? Marvin would probably be quite depressed about the whole thing.

Anyway, it’s not a fully baked idea, and it’s certainly not a complete story, but the concept feels more Adamsian than what actually happens in the book. The rest is left as an exercise for the reader…

This post originally appeared on Medium.

Double Trouble

One of the great things about WordPress is the community and the number of great plugins that can do amazing things with little effort.

But all that code, as any good developer will tell you, is a liability. How do you pick a plugin that not only meets your requirements now, but will both continue to do so? WordPress advances. APIs change. Plugins need love too.

Many moons ago I settled upon Flickr Gallery, a plugin that allows you to import Flickr images just by adding a short-code to posts. I thought there was value in keeping all my public photos in one place and, at that time, WordPress had poor media management facilities. The plugin seemed popular and well supported.

Flash forward to 2015 and, well, it doesn’t work. It hasn’t been updated for nearly five years and where I should see pictures I only see blanks.

But I’m a developer. How hard can it be to fix?

Groan! Have I ever said how much I hate web development?

Anyway… two hours later I find that there are not one but two problems. I find this after fixing the first problem in a server running on my local machine but find that it still doesn’t work here.

The first problem is that Flickr now requires SSL access to its API. In code terms, open phpFlickr.php and change the following lines:

 var $rest_endpoint = '';
 var $upload_endpoint = '';
 var $replace_endpoint = '';


 var $rest_endpoint = '';
 var $upload_endpoint = '';
 var $replace_endpoint = '';

I found the cause of the second problem when I realised that none of the flickr code was getting called. It turns out that I have the Jetpack plugin and that also uses the “flickr” shortcode, though the syntax for using it is slightly different.

(I find it odd that there’s no error or warning flagging the conflict. This took far longer to track down than it needed to.)

I tried disabling that option in the Jetpack plugin but that didn’t work. In the end, I added the following code to flickr-gallery.php, just before the “add_shortcode(‘flickr’…” line:

if (shortcode_exists('flickr')) {

Very much cheating… but it does work.

I’m trying to figure out if there’s a way of distributing the change in a more user-friendly format.


It’s important to have a Top 10 list. I know this as every other site has one. I don’t want to miss out. So here are the top ten most read posts here this year, with the year they were originally published in parenthesis:

  1. QA Mindf**k
  2. Do Apple take 40% in the EU? (2011)
  3. Learning Swift
  4. iOS Developer Program: from individual to company (2011)
  5. How do I do “X” in Swift?
  6. AQGridView to UICollectionView (2013)
  7. iPhone Dev: Saving State (2010)
  8. NSFetchedResultsController and iCloud
  9. Why you need a crash reporter (2011)
  10. Sophia Smith (2006)

If there’s a lesson here in increasing readership it’s simple: get retweeted by people with lots of followers.

Honourable mentions go to the following as they were written this year but didn’t make it into the “most read” list:

14. Recruitment Tests
15. Two Years
16. Java and Yosemite
21. Starting Coding
23. Swift Hate
31. Lucky number two

I started with the intention of writing at least one blog a week. You’ll note that I utterly failed. I didn’t even get to the end of January with that!

The biggest surprises — since they were both written over a decade ago — were:

17. Italy, 2001
19. Oracle 8i for Linux Installation HOWTO (last edit was 2003)

I’m not going to make any promises or predictions about next year, other than I’ll be moving the site to a new web host (the old one closing down). But whatever happens, here’s to a great 2015.


Furry: not in a cinema near you
Furry: not in a cinema near you

For some reason, when I saw the poster for the new movie “Fury,” I misread it as “Furry” and saw a beard on Brad Pitt that wasn’t really there. I’ve tried to correct these errors.

Lucky Number Two

I’ve been pretty quiet here for a couple of of weeks and that’s because… well, a picture speaks a thousand words.


Junior took his sweet time popping out — we were in the hospital over a day before he made his grand appearance — but for Juniorette we weren’t sure we’d make it there in time! In the end we checked into the delivery suite just after ten in the evening and the birth was recorded just before eleven.

I’m not sure the midwives realised how close things were when we first arrived. They were fussing around and promising to check on progress and then… there’s a head!


Less than an hour afterwards I was alone with the baby and mum was walking around, off getting a shower. The contrast with the birth of her brother couldn’t have been greater1.


Since then things have been (relatively) straight-forward. She’s been remarkably quiet and neat so far. I’m sure she’s saving the worst for when we’re least expecting it!


Her brother has been great. Very gentle and helpful. The day she arrived home he quickly realised that, as a tiny baby, she’d appreciate all his smallest toys. I could see the logic even as I was terrified at the choke hazard…

Soon I’ll be back at work and then the grandparents will leave. We’ll have two under threes to look after and, I guess, that’s when the real work begins.

  1. Okay, that’s a cliche. Certainly Junior’s birth was harder but it could have been a lot worse. []