Simple event logging

Measuring everything doesn’t necessarily have to involve complex analytics tools, or lots of development.

Here is a simple way to quickly log events of interest, for example if you are running an AB test.

Create a single table in your database with the following columns:


  • user_id
  • other_id
  • event_type (either a string or a foreign key)
  • details
  • timestamp

Then whenever something happens that you want to track, insert a row.  You can use the details field to track whatever data is relevant to the event.

Optimise the table for inserts, so that you can quickly add rows whenever required.  Then export the data when you want to run reports.  You can flush all of the data when you have your answer (or do it automatically every week, or month)


AB Testing

Do you AB test?

Lots of people talk about it, but I don’t see many examples of people actually doing it.

Here is one example I saw last week, which sounds like it produced some great results.

The key, I think, is to keep it simple.

For example, find something small you can change easily and run an experiment.  Find an appropriate ID and use a mod2 to split your audience in half.  And, track the results so you know what impact the change has made (more on this shortly).

Then rinse and repeat.

When I say small, I mean small – see this from the Google blog:

Search experiments large and small

If you’ve done AB testing I’d be interested to hear from you.

How did you do it?  What results did you get?

Where do I find Google?

Google has published their list of the top search terms for the year:

Top 10 searches on in 2008

  1. games
  2. bebo
  3. youtube
  4. trade me
  5. lyrics
  6. google
  7. map
  8. hotmail
  9. tv
  10. weather

Half of these are site specific brand names (in bold) – meaning that rather than using Google the person doing the search could have simple added .com or to the term and entered the URL directly into their browser and found the site they were looking for directly.

(the same trick would actually also work with most of the other terms too, but it’s not so obvious that people searching for these things were after the corresponding .com)

The one that will really surprise many web developers, I suspect, is “Google” itself – the sixth most popular search this year.  

How do you explain that?  What’s the mental model those users have of the web and of search engines specifically?

Most technology people will, I suspect, find it difficult to understand the sort of person who does this sort of search, but that’s exactly what we need to do if we’re going to build products these people will like to use and will tell their friends about.

Now Hiring: Web Designer

Interested? Check out the job description.

Too clever

Jason from 37signals last week posted one of my favourite quotes about complexity, and specifically complex systems:

“A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.”

John Gall, from his book Systematics

Here is another along the same lines:

“There are two ways of constructing software; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

C. A. R. Hoare, the inventor of the Quicksort algorithm

And, why do we think complexity is desirable in the first place?

“People often misinterpret complexity as sophistication”

Niklaus Wirth, the father of Pascal

Are you trying to be too clever?

A false sense of urgency


One of the dilemmas with building something for yourself, rather than for a third-party, is you are never really forced to commit to a delivery date.

Or, at least, there is nobody else who will be angry with you when you run late.

For those of you in this position: how do you create a false sense of urgency for you or your team?

I’m interested in your ideas.

Thoughts on Google Chrome

Ben GoodgerWhen I was in San Francisco earlier this year I caught up with Ben Goodger, who I first me when he was in Wellington to speak at Webstock.  He kindly took some time to show me around Mountain View and we had a nice Mexican lunch at one of his regular hang-outs.

We talked about lots of things, but exactly what he was working on wasn’t one of them.

He said he wasn’t working on Firefox any more.  And, I saw that he was running Visual Studio in a VM on his Mac.

But, I didn’t press him beyond that as he was obviously reluctant to say much at that point.

Today we all find out: Google Chrome

Even before it was officially announced there was a lot of buzz about this.  There is already a decent Wikipedia page with a good summary of the various features that are included in this initial release.

Here are my thoughts about this:

The rise and rise of WebKit

The number and variety of browsers that web developers need to consider has grown considerably in the last couple of years – IE7 has become the most widely used browser, although there are still plenty of people using IE6, Firefox has been steadily ticking up, and Safari has doubled (albeit from a very low base) probably on the back of people switching to OS X.  IE8 is on the horizon.  And, now this.

These are the most recent browser stats I have from Trade Me (from July 2008):

Browser Market Share
IE 7 54.2%
IE 6 23.1%
Firefox 2 15.6%
Safari 3.3%
Firefox 3 0.9%
All Others 2.9%

Those sites that don’t take Safari seriously at its current level may need to re-evaulate on the back of this announcement, as Google Chrome is based on the same WebKit foundation as used by Safari (and the iPhone).

Steve Job’s decision to open-source WebKit in 2005 is looking smarter and smarter.

Who said the browser wars were over?

Splendid Isolation

The Google engineers have made a big deal in this annoucement about each tab having its own isolated process and memory space and the performance benefits that will come from this design – most notably when one tab dies it won’t take the whole browser down with it.

It’s true that this is one of the big weaknesses of Firefox, especially when it’s running on an OS that doesn’t need to be re-booted too often. :-)

But, I wonder if in time the isolation under the hood won’t pale in comparison to the isolation options presented to users.

By selecting the document options (immediately to the right of the address bar omni bar in Chrome) and choosing “Create application shortcut” from the menu you can quickly and effortlessly create a single instance browser for your favourite web applications.

Over the last couple of months I’ve been experimenting with something similar using Fluid on OS X (another browser which uses WebKit).

I have created separate applications for many of the web apps I use the most: Google Reader, Google Docs, Xero, WordPress, etc.

I’ve found various reasons for doing this…

Because each site is running in a separate app I have far fewer problems with the browser leaking memory or crashing.  I also don’t tend to leave Firefox running for days on end as much as I used to, as most of the sites I tend to leave open are elsewhere.

Performance is another.  Apps which use a lot of Javascript like Xero seem to run much faster on Fluid than in Firefox.  The Javascript environment in Chrome, which they are calling V8, promises to be even faster still.

Fluid also lets you customise each application – with a nice icon (which shows in the dock – allowing you to navigate directly to the site), user scripts (using GreaseKit) and other options, such as whether to display the address bar, which URLs are allowed etc.

For example, with Nik from Code To Customer I created a Xero application with a high-resolution icon and a simple script which shows the count of unreconciled transactions on the dock when the app is running.  This now feels much more like a native OS X app.

If you’re a Xero and Mac user and you’d like to try this out: download the application and user script (the script needs to be installed manually once you’ve run the app – start with Command-Alt-N and follow your nose).  I’d be interested to hear what you think of it.

Google Chrome seems to just use the favicon, which looks pretty ugly.  Perhaps they could support an alternative link in the header to a higher resolution icon to use in this case? UPDATE: they do, see below.

I’ve even created a Fluid app for the web-based control panel on my home NAS, which broke horribly when I upgraded to Firefox 3.

In Firefox…

In Fluid…

Why are single instance applications important?

Lots of non-technical users don’t differentiate between their browser and the sites they visit in the browser.  To them the “blue e” is the internet and Google is the new http://.

How else do you explain the popularity of sites like YahooXtra and MSN NZ, other than that people don’t realise that they can change the default home page on their browser?

For those of you who run your own site, look at your referral logs and notice how many people type your URL into a search engine.  If they had a good mental model of their browser wouldn’t it make more sense to use the address bar?

My prediction… look out for icons for all of the different Google apps on a desktop near you soon (or dock if you’re one of the cool kids).

And, if you have your own site, you should be thinking about how to package it into an application.

A little bit of personality goes a long way

I’ve linked to a number of great cartoonists here, including Hugh McLeod, Jessica Hagy, xkcd, Scott Adams, HowToons, and Savage Chickens.

Add Scott McCloud to that list (see:

The cartoon book they have put together to announce the launch and describe some of the design decisions behind Chrome is really well done and well worth a read if you haven’t already taken the time.

Perhaps this is what all technical documentation should look like?

Is there anybody in New Zealand who can do this sort of thing?  If so I’d like to talk to them.

Using the engineers who built the browser as the characters is a nice touch too, and I’m sure a nice ego boost to those involved (many of the same people appear in person in this video)

They have also managed to strike a good balance with their user interface.

The blue background differentiates it from other apps and makes the tabs stand out.

They have definitely gone for the “less is more” approach, which is great.

“I have to admit, Google Chrome has one of the simplest — and the least attractive — UIs I’ve seen in a while. I didn’t realize how much I rather liked the color that the icons in most toolbars lend my apps until faced with the Spartan blue tagged interface that Chrome opens with.”

Barbara Krasnoff

Here’s how the “chrome” part of the various browsers look in Windows Vista (via VMWare):

Internet Explorer 7…

Firefox 3…


When you see these side-by-side you realise how putting the tabs on top is a great design decision (although some credit should go to the Opera team for pioneering that approach).

Also, look out for the “stats for nerds” link on Task Manager :-)


Just because Google builds it doesn’t mean they will necessarily come.

Many of the problems it solves are not problems that many people know they have.  Is it really 10x better for those people?

I remember web developers getting very excited when Firefox first launched.  Finally a browser to replace Internet Explorer, we all thought.

While that may have been broadly achieved amongst technical types, it’s not true at all for the general population (see: We’re Not Normal).

Firefox 1.0 launched in January 2005 (a long time ago now, eh?)  By August 2006 it had achieved just over 11% market share in NZ and, as per the numbers above, has since grown to around 16%.  While this is a huge number of users it’s not really the predicted global domination.

I think it was Blake Ross (one of the other original Firefox guys) who said that he appreciated Internet Explorer, because how else would people download Firefox!

He was joking, obviously, but there is an element of reality in that statement.

You could probably argue that 16% is the proportion of general internet population who have ready access to a geek to upgrade their browser for them.  Everybody else is blissfully unaware. :-)

What market share do you think Chrome will achieve?

And, how much of that will be at the expense of Firefox?

UPDATE (12-Sept): Ben got in touch with some more information about adding custom icons when creating application shortcuts in Chrome…

You actually can specify larger images to be used in your application
shortcuts when the user chooses the menu in Chrome:

In addition, you can write script in your page so you can offer UI to
create the shortcuts yourself using Gears:

Hope this is useful info!


Mobile Banking [Guest Post]

This is a guest post by Jay Nielson from Kiwibank. Enjoy!

To coincide with the launch of the iPhone in New Zealand, we at Kiwibank decided to launch a new Mobile Internet Banking system. We knew from the start that we wanted to support many different devices, but unfortunately, we were stuck with a full timeline of just three weeks. We had this time to design, build, test and implement essentially a new Internet banking platform and we had one developer and one tester to do it.

My name is Jay Nielson and I was that developer and I’m hoping that this guest post that Rowan has allowed me to write will give a bit of insight into how we approached this project, some issues we came across, some of the tricks we found and lessons we learnt especially for developing for the iPhone.

We launched the first version of the site in July with basic support for the iPhone. Of course, we wanted full support for many devices, but the iPhone was going to bring the publicity that a basic site may not be able to. Behind the scenes we set up the architecture of the site to be able to dish out completely different code depending on the device.  We were able to include different style sheets as necessary and, of course, different images.

For example in the latest version, the login page is designed to fit the device if you’re browsing on an iPhone but is stripped down if you’re browsing on a simple Sony Ericsson phone.

iPhone Login Page

Mobile Phone Login Page

We knew from the start that there were other mobile sites out there but the difference between us and them is that we never meant to have just a single version of the site.

We had the basic design used on some of our other websites from our design company (Springload in Wellington) to use as a base. Because our current site is written in classic ASP (and I know that site inside out) I decided that the limited amount of time we had meant that the site was going to be built with the older technology, with a rewrite at a later stage.

I developed it with a very rudimentary controller/presenter system where I bought all the page logic out from the presenters and left them to render the page as they needed. This was the way I managed to easily add new device support – with the page logic separated out (and most of the presentation data bundled into classes) adding new device support was easy. As for detecting the different devices we found plenty of information on the net about which phones use which user agent strings, it was just a matter of finding the common attributes and taking them out. In all there are about 20 checks to determine the 6 different devices (iPhone, Browser, Windows Mobile, Mobile, PalmOS and Blackberry)

We decided to include the 90% most used features of our Java mobile application:

  • View Accounts;
  • View Transactions; and
  • Transfer funds.

We restricted funds movement to only within your own accounts, which allowed us to defer implementing the KeepSafe security used on our other sites.

The trick with all of this is getting the site working as a web page but looking like an iPhone application that people are familiar with. This meant big buttons, simple layout, uncluttered and to the point. Our friends at Springload helped immensely at this stage.

The biggest issue we had with the iPhone (apart from being able to only test on a Mac) was the fixed width.  Browsing the web on the iPhone is pretty simple. The device can render the page using Safari and you simply zoom in and out with a pinch motion with your fingers. Now, there are META tags you can add to the heading of the page to restrict the zoom levels and while they are pretty straight forward, but the device would never seem to return the text back to the font size it was to begin with after you rotate it to landscape mode. A bit of research was needed and we found the following code seemed to overcome it:

<meta name="viewport" content="user-scalable=no" />

<meta name="viewport" content="initial-scale=1.0" />

<meta name="viewport" content="maximum-scale=0.6667;" />

<meta name="viewport" content="width=device-width" />

<meta name="format-detection" content="telephone=no" />

The first four lines dictates that with width and zoom levels are to be static while the final one stops our accounts numbers being turned into phone numbers for auto dialing!

iPhone Accounts Page – with option to rotate to widescreen for more detail

With the iPhone version of the site working it was release time. We got it live the day before launch and have received positive reviews. As far as marketing it went, we decided to keep it a little low key and went more for word of mouth with a single press release rather than full page newspaper ads. It worked well. As far as our estimates are concerned, we had about 10% of the iPhone sold in New Zealand logging in and the only limiting factor was that no one could buy any more – we’re still waiting for our three to arrive!

Something else we tried which we haven’t done much before is to be quite open about it. We posted on blogs, answering questions people had and set up email addresses for feedback. We knew this was going to be an iterative process and took steps early on to get the feedback from customers that we needed.

With the launch a success we looked to the future. We had given out an email address for people to post their ideas about the site and the number one requested feature was support for Windows Mobile, so of course that was a priority in the new release. There were a few layout issues as well we needed to fix, but we also decided to try out hand at multiple language support.

A little addition that I wanted to sneak in was changing the page layout to display more information if the iPhone is rotated to landscape. There are a few issues at this stage, but the concept works perfectly. On Rowan’s post about us, the comments got into renaming accounts. I added that functionality in as well after the discussions there.

The latest version of the site, launched this week, now has the extra features we wanted including support for multiple languages, starting with English (the default), Russian (as the tester’s wife could speak Russian and it was a perfect way to test international character sets) and my favourite, Swedish Chef Bork Bork language, for a bit of fun (Bork! Bork! Bork!). All the language strings needed to be taken out and are stored in a database which is then cached in the session for the customer when they first log in (or change their language). I created a C# GUI front end to that database to allow us to update/add new string values without a full release of the code. In reality, we could release Arabic tomorrow without any updates to production. The language strings are per device and per language. So for mobile, if needed, we can summarise a lot more text as it has a smaller screen real estate.

Login Page – Russian

Login Page – Swedish Chef!!

The new version of the site works on the iPhone, Windows Mobile devices and mobile phones with sufficient browsers.

To top it off we have even been nominated for three TUANZ awards, including innovation of the year so wish us luck on the 28th.

We’re always looking for new ideas and feedback and would love to hear it. You can email us at

From Rowan:

Given that most of their competitors measure their progress in months or even quarters, I think it’s great to see a bank turning something like this around in just three weeks.  And also to iterate quickly – already they have released a second version which incorporates a lot of the feedback they’ve received following the launch.

Plus can you imagine any other bank launching a Swedish Chef version of their site?  It’s fantastic!

What do you think?  If you’re a Kiwibank customer, how do you find this application?  If not, would a good mobile app be enough to make you switch?

I’m interested in your comments.

Also, if you’re interested in writing a guest post here about something you’re working on please feel free to get in touch.  My email address is on the right hand sidebar.