I am a Hacker

Which is to say: I am a software engineer. I studied computer science at university, I write software for a living, and I even sometimes code for fun in my free time. Here, I talk about it.

When Apple (or Anyone Else) Really Gets a Product Right

Being British, I have a story about tea. It goes like this: For my entire life, it had tasted wrong. Not bad, exactly, but not quite right. I tried all different kinds, and just about every brand I could find. I drank it without milk which made it taste a little better1, and sometimes added lemon which pushed it a little more in the right direction. But still: tea tasted wrong and I had no idea why. Then one evening, my flatmate at the time asked me if I'd like a cup. I politely declined, explaining that it would

Read this post

The Lady Who Lives in the Tube on Top of The Fridge

In our kitchen is a short white cylinder. Inside is an array of microphones, always listening passively. Whenever someone says the magic word it starts actively listening for instructions. This might be to start a timer, it might be to add something to our shopping list, or perhaps to turn a smart light or socket on or off. Within moments a feminine voice informs that the instructions have been carried out. This is really, really convenient.

You might be thinking: "So what? My phone does the exact same thing," but you'd only be about half right about that. Your phone

Read this post

Building My Shiny New Website Part 3: Tech Stack

This will be my last post on building the new implementation of this site. Having previously talked about the choice of platform and the theme, I’m now going on a quick dive into all of the other tech which keeps the site running the way I like it.

Excitingly (for me), this means I get to make diagrams. Let’s start with this monster, which covers every element in the tech stack (or at least every element I can think of):

Now that looks cool and all, and was a lot of fun1 to make, but it’s

Read this post

Goals for 2017

I don’t really do new years resolutions. They just don’t seem to work for me. I don’t see that there’s anything that special about January 1st. It isn’t even the first day of the year for a reasonable portion of the planet. Expecting to make sudden and positive life changes on that day just seems to silly and destined to fail. Especially given that I’m probably hungover. That said, setting goals for the year ahead does work for me, though I realise it’s a fairly arbitrary distinction.

Previously I’ve set vague goals,

Read this post

My Procedural Landscape Generation Project

A while ago I started working on a procedural landscape generation project and then... I stopped. I didn't stop because I was no longer interested in the subject (I assure you I very much am), but because a) my free time got a lot more limited; and b) I'd bitten off more than I could chew and didn't know where to go next.

Some of the ideas original ideas from that project have become an entirely new (and very non-obviously linked) side project. Which has actual clear goals. I plan on writing about it soon.

There are a couple of

Read this post

Apple Keynote Live(ish) Blog

Since I've never liveblogged anything before, I decided to give it a go with today's Apple WWDC keynote. The follow was written as I watched it. It has been edited for spelling and grammar (and to add a couple of links) but not for content. It might get edited for spelling again when I'm more awake.

We start with a nice tribute to the victims of Orlando. Short but heartfelt.

Next the usually positive stats. There are a lot of Apple platform developers now. Apple is investing more in new developers, especially those of the next generation, be that in

Read this post

Material Design and iOS

Disclaimer: the opinions expressed herein are my own, not those of my employer, and that’s what this post is: opinions.

One of the complaints about Google’s iOS apps is that they look like Android Apps. Somewhat obligingly, Jason Snell recently published an article along these lines over at MacWorld (I picked this up via Daring Fireball, where John Gruber is also a big fan of this line of thinking). That’s generally what the complainants say, but not (in my opinion) what they mean. What they mean is that the apps follow Google’s Material Design guidelines (though

Read this post

So I made an iPhone App

Various things have kept me busy and away from this blog just recently. I've done a bit of traveling (both for business and pleasure), I've discovered Netflix (and Crunchyroll), and, somewhat more productively, I followed through on what started off as my "20% time" project.

There is, right now in the iPhone App Store, an app nominally by Google Inc which was written almost entirely by my own good hands. Obviously I wasn't entirely a one man band in this. I had a lot of help from designers and UX people, my code was reviewed by those who were available

Read this post

Now We're Blogging with Photos!

Fair warning: this is going to be a bit of a programming heavy blog post. It's also going to be quite Mac specific.

One of the things I wanted to change about the format of this blog was to make it more visual, specifically with pictures. This first part of this was to add pictures to the front page. There were a couple of options for doing so. I could just scan through an article, look for the first image tag and use this. Alternatively I could add a mechanism which allowed me to choose the image, in a similar

Read this post

Origin Story, Raspberry Pi, and the ZX Spectrum

One of the fun things about working for Google is that from time to time interesting people come into the office to give talks. We had Richard Dawkins a few weeks ago, who gave an interesting if… uncompromising talk. Yesterday we had one of the founders of the Raspberry Pi foundation. For those of you who aren't aware, the Raspberry Pi is an extremely small (exactly credit card sized) and cheap ($25), yet very capable computing platform. The foundation is the charity formed to produce this hardware.

Why is a charity building computer hardware? Because there is a need for

Read this post