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.

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

...In Which I Go Full Nerd

Jet lag is a funny thing. Right now it actually seems to be working in my favour; it's managed to knock a couple of bad habits out of me. Specifically, these happen to be the not entirely unrelated habits of going to bed too late (then making it later by reading for a good long while) and getting up too late. Right now I seem to be fighting to keep my eyes open by around nine, and then being wide awake by seven. Which is more or less the position I found myself in on Sunday. Since day one at

Read this post

This Morning.

You're going to have to wait a little while longer for the Computer History Museum, Silicon Valley Wandering and San Francisco based updates I had in mind, since I still haven't found a good way of adding the images I wanted to. In the meantime, I thought I'd tell you about my morning, in a similar (if significantly smaller in scope) fashion to Tim Bray's semi-famous post.

Now, Google is very transparent internally, but also has fairly strict rules about what you can and can't talk to people about, regardless of whether you're talking to your friends, your family, random

Read this post