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.

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

New (ish) Year, New (ish) Blog

2011 was an interesting year for me. A lot changed. I turned 30. After 10 years of residency I moved away from Edinburgh, a city I love dearly, and took a job in London. With Google. As a result, I no longer work with Autonomous Underwater Vehicles for a living. Instead I build web services. Quite the change, I'm sure you'll agree. In the early months of the year I finally completed the corrections to my PhD, and then in the summer: I graduated. It took 6 years (all together) but I am now Dr. Nick Johnson. I also lost

Read this post

Simplifying the Landscape

At the end of the last post I wrote about the actual implementation of my Clockwork Aphid project, I said the next step was going to be display simplification. At that point I'd generated a few landscapes which were just starting barely starting to test the limits of my computer, though they were nothing like the size or complexity I had in mind. That said, it was looking at landscapes containing 1579008 polygons and it was obvious that not all of these needed to be put on screen. Moreover, because my landscapes are essentially made up of discrete samples (or

Read this post

Revisiting the Language Issue

Some time ago, I wrote a series of posts about language choice for my Clockwork Aphid project. In the end I decided to start the project in Java, this being the language I'm most comfortable with. Once the project reaches a stable state, with some minimum amount of functionality, the plan is to port it to C++ for comparison purposes, this being the language which is likely to provide the best performance.

I still plan on doing this, but I've also decided to add a couple of extra candidate languages to the melting pot and get an even broader comparison.

Read this post

Dogfood, Nom Nom Nom

Dog food, the common noun, is reasonably self explanatory (pro tip: it's food for dogs). Dogfood the verb or dogfooding the verbal noun, though, might require a little bit of explanation.

At the root of it is this: if you make dog food, you should feed it to your own dogs. There are essentially two reasons for this:

  1. If you don't personally test it, how will know if it's any good?
  2. If your dogs don't eat it, why the hell should anyone else's?

The same principle applies to software.

Even more so in fact, as it's something you're more able

Read this post

Full Nerd II: Nerd Harder

It seems that people really enjoyed my post about the computer history museum. At the time I wrote it, I was worried that it might constitute just a little bit too much nerd, so I held back on my initial impulse to put in more pictures and gush enthusiastically about how awesome it all was.

With hindsight, perhaps I can afford to ignore that particular mental stopcock, at least for a little while. I do not, I regret to tell you, have anymore pictures of the teapot. I do intend to buy myself a Melitta teapot at some point quite

Read this post

A Different Kind of Tourism

If a person were to walk from downtown Mountain View (in so far as Mountain View has a town to be down of) to the Computer History Museum, and then kept going, they might find themselves wandering into Shoreline Business Park. This is where you would find the silicon in this part of the valley.

Of course, there isn't actually a lot of touristing to do in your average industrial park. We're in Silicon Valley here, though, surely there must be something to see? Well... there are signs for reasonably exciting tech companies, with logos and everything... for example:

Here's

Read this post