Design Principles for Metaprogramming

December 19, 2012 ⋅ programming

One of my favourite bits of programming philosophy is Alan Kay’s famous email about the big idea of object-oriented programming:

I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea.

The big idea is “messaging”. […] The Japanese have a small […] Read post »


Goodbye WordPress

January 29, 2012 ⋅ meta

For the last couple of weeks, I’ve been working on converting this blog from WordPress to a static site generated by some custom Python scripts. Yesterday, I finally made the switch.

Everything looks pretty much the same as it did before, but things should feel a bit faster. Most importantly, it’s a lot more pleasant […] Read post »


Google I/O: Memory Management for Android Apps

May 16, 2011 ⋅ android

Though I never made a formal announcement here, some of you may know that I joined the Android team at Google just over a year ago. Last week I had the privilege of speaking at Google I/O in a talk called “Memory Management for Android Applications”:

Android apps have more memory available to them than […] Read post »


Smarter Notifications with Locale for Android

March 18, 2011 ⋅ hci

In my previous post, I lamented the fact that mobile notifications can be totally annoying if they come at the wrong time. This was triggered by being woken up several times in the past few weeks by a flurry of Beluga messages.

Thankfully, one of my coworkers told me about Locale, a cool little Android […] Read post »


Making Notifications Better

March 8, 2011 ⋅ hci

Lately I’ve been thinking a lot about notifications. A few weeks ago, I started using Beluga with some of my friends at work. Beluga is a great group messaging app; so nice that it’s tempting to use it almost a bit too often.

Beluga seems to work best if you respond in real-time, like SMS […] Read post »


So You Want to Install a Python Package

January 6, 2011 ⋅ python, programming

As a Python developer, sooner or later you’ll want to install a package from the Python Package Index. Unfortunately, this is not as simple as it could be. Most documentation tells you to use easy_install, but maybe you’ve heard that all the cool kids are using pip these days. What’s the difference, anyhow? The goal […] Read post »


Browser Bits: My mini-blog on browser UX

April 21, 2010 ⋅ usability, design, browser

I mentioned it off-hand in a previous post, but thought I should mention it again:

If you’re interested in web browser user experience, take a look at Browser Bits, my little tumblelog/mini-blog thingy all about browser […] Read post »


My CHI2010 Talk: A Study of Tabbed Browsing

April 20, 2010 ⋅ hci, research, browser

Last week, I went to Atlanta for CHI 2010 to present my paper A Study of Tabbed Browsing Among Mozilla Firefox Users. For those who couldn’t be there, or just don’t feel like reading a 10-page academic paper, here’s a transcript-by-memory of the talk.

If you want a Cole’s Notes version, just check out the […] Read post »


Presenting at CHI 2010

April 9, 2010 ⋅ hci

If you’re going to CHI 2010 in Atlanta next week, you should come check out my talk on Tuesday morning at 9. I’ll be presenting a paper on the tabbed browsing study I did last year. Hope to see you there! If anyone wants to meet up, send me an email (pat at [my last […] Read post »


An In-Depth Look at the User Experience of iPhone Safari

January 29, 2010 ⋅ hci, design, browser

On stage Wednesday at the Yerba Buena Center in San Francisco, Steve Jobs introduced the iPad as “the best browsing experience you’ve ever had. Way better than a laptop, way better than a smart phone.” Quite a claim.

Of course, the iPad browser is Safari. And from what I’ve seen and heard, it’s more like […] Read post »