Archive (see also blog format)

Emoji Haikus, and the deepest secrets of the unicode specification

I rebuilt my Emoji Haiku generator over the last month or so, and learned a bunch about how text is rendered on computers.

I sit in 13A.

A story from a flight from Jijiga to Addis Ababa.

Lofoten // Norway

Went to Lofoten in Norway for a four-night getaway with some friends. Here are some photos.

Australian Election Map 2016  

A technical overview of Google's election map for the Australian 2016 federal election.

Embassy Reviews (a Twitter bot)  

Posts a review of an embassy direct from Google Maps every six hours. Yes, people review embassies. No, I don't know why; it's not like there are alternatives.

Emoji Haikus  

☀️ 💣
👨‍👨‍👦 🦃
🌨️ 🖲
Nonsense haikus generated using unicode emoji description text.

EMR-E / Project Buendia Presentation at OpenMRS Global Summit 2015  

Three tips for better Android development productivity

I’ve been working on Android apps at Google for about two years. In that time I’ve worked on a diverse set of codebases - from small, tightly-contained internal tools that only target Lollipop and newer, to extremely complicated apps with large development teams, such as Google Maps, and even system-level code such as the Activity Manager for Android Auto. In that time, I’ve also seen a lot of new team members come up to speed, and found myself consistently giving the same advice to help them get there quickly. Here’s my top three tips for becoming productive whilst developing for Android.

Faking Screen Resolution on Android Devices

One Weird Trick to changing the screen res/density on Android devices.

App-level Resources Done Right on Android

Lots of Android developers use the Application class as a container for application-wide resources, which can contribute to memory pressure on your users' devices, and can make code difficult to maintain. This article explains the issues in detail, and recommends One Weird Trick™ for more memory-efficient, more maintainable, app-level resources.

So I Rebuilt My Website

This website has always been about having an identity on the internet. It was a vogue thing in the 2000s, I think. If you were SRS BSNS about the internet, you had your own domain name. And for some reason I took that and ran with it a few years late in 2011.

Android Auto Demo With Bill Shorten  

Ebola Crisis Response

I was in London for the last month working on an Ebola Crisis Response project. It’s a collaboration between MSF, Google, and a bunch of volunteers from the community.


Steph and I went to Iran with a friend who was going back to visit her family.

Under the Hood of Android Auto  

I wrote and gesticulated wildly in a video talk for Google I/O this year on how Android Auto works. It’s pretty high level, but it covers the key aspects of the architecture.

Open Source Electrical Networks Toolkit  

During my thesis, I'd found that sensitivity analysis was something that a lot of researchers talked about but rarely explained. I found it to be a really useful technique, and so I wrote a paper that attempted to distill the basics.

IPCTK: Run code out of process, use like a normal object

A foray into aspect-oriented programming to make IPC a little easier.

Git: Undoing a fast-forward merge when you should've just used a new branch

Rookie mistakes in an incredibly complex DVCS and how to fix them.

Rethinking the static keyword in Object-Oriented Programming (OOP)

Seeing the static keyword as a convenience to the programmer, instead of as an integral part of the OOP paradigm.

Information Technology, Data and Context

Information Technology - it’s an awfully un-glamourous pair of words. When people think of IT, they think of business applications that don’t really work as well you’d expect them to, database administration, and ugly-looking spreadsheet-y things on badly designed websites.

Selling Recommendations

My undergraduate thesis has two main outcomes. I’m not going to bore you with the details here - if you’re really interested, you can read my thesis comic here - but I had a couple of thoughts about two different kinds of products/goals/outcomes that I’ll be working on.

Abstraction, Humanity and Design

A couple of months ago, I did a presentation on “re-humanising people through design” for a job interview. It’s an idea I got partially from the work of Bret Victor and a lot from the first issue of The Manual.

Desperate Men

The idea of four hundred embittered, burdened men and their families flocking to a man who was chosen by God to be king is just... odd.

Designing Timecard, A Windows Phone 7 App

I finished off an app for the Windows Phone 7 Marketplace this week, it’s called Timecard. You can find a link to it here, and, aside from some slight icon colouring issues, I’m pretty happy with it! Anyway, I just figured I should write a few notes about how I put it together and some of the design decisions I made, and I’d love to hear what you think in the comments section below if you’ve got any thoughts.

On Guidance: Listening Carefully for the Voice of God

...And, I have to say, there's been plenty of times in my life when I've longed for something as blunt as this. For the heavens to part, for angels to drop out of the sky and say "listen, fool!" (Ok, so in my head, when angels talk it sounds something like Mr T), and for some kind of obvious direction as to what the next step is...

Visualising Serial Data: Arduino, I2C, XNA and more TLAs than are worth it IMO

In the last instalment, we took a bit of a look at troubleshooting I2C connections between Arduino microcontrollers and peripherals.

Lessons: Getting Arduinos to play nice with I2C

Well, I’m doing a project at Uni at the moment in a team of eight. Don’t get me started about the coordination nightmare!

In the Shoes of Jesus' Disciples

When it comes to understanding my relationship with Jesus, I feel a great need to put myself into someone else’s shoes. I’m not really sure why, and I suppose lately I haven’t really been sure how.