Some new photos

Finally got around to uploading the backlog of photos I've had.

Sydney FC vs LA Galaxy

Sydney FC playing Beckham's LA Galaxy. A team so bad they made Sydney look good!

Critical Mass crossing the Harbour Bridge at the end
of November 2007

Critical Mass crossing the Harbour Bridge in November.

Abigail's seventh birthday
My niece Abigail's seventh birthday, playing putt-putt golf.

Homebake 2007

From yesterday, at an outdoor music festival in The Domain. Pretty cool having a music festival in the middle of the city.

Howie's Firefox extension suggestion

Howie suggested FireBug as a must-have extension. While I agree it is amazing for debugging web pages, the reason I've had it uninstalled is what I'd call a bug. When you have it switched off for all pages, it still causes a very noticable lag when you open a new, blank tab. I'm not the only one either.

If this could be fixed, I'd probably keep it installed. As it is, I install it when I'm doing hardcore dev stuff, but keep it disabled most of the time.

In other Howie news, if you've seen Control, Howie lives just around the corner from where Ian and Deborah Curtis live in the film. How he justifies living in Sunny Macclesfield after living in Sydney or so long, I don't understand, but each to their own. If you haven't seen Control, go and see it. Best movie of the year.

FireBug tab opening delay redux

Ben, having read my last post about FireBug, notes that you only get the delay opening a new tab if you have FireBug disabled. if it's disabled it checks a whitelist to see if it should be enabled in the new tab... should be a simple fix.

Hopefully this will be fixed soon. In the meantime, however, FireBug seems to incur no performance hit if you keep it enabled, somewhat paradoxically.

Testing Google Analytics

Google Analytics is a great tool for tracking users on your site, and it's incredibly easy to set up the basic features. You just bung a bit of JavaScript on every page in your site which, if your site is sensibly designed, should only mean editing one file. You then get access to a plethora of amazing data about what your users are doing.

The more advanced features, particularly tracking ecommerce transactions, are a lot harder to implement and test other than on the live site. The help is somewhat minimal and hidden on a different page, without being stated quite explicitly, is the fact that it will drop any transactions coming from a domain other than the one the account lives in.

If it's not a subdomain of the main domain, you have to do some JavaScript link shenanigans to get GA to recognise it. This wouldn't be an uncommon problem for people using third-party shopping carts, and the solution there is quite well described.

What's less well described is how the hell you can test this thing. For example, our test server sites inside the domain of our parent company, which bears no resemblance to our live domain. Fortunately, we'd already configured our test web servers to respond to the live domain when we were testing for going live.

So what you do is edit the c:\WINDOWS\system32\drivers\etc\hosts file in Windows XP, or /etc/hosts in Unix-like systems. Put in a line like this:

This overrides the name server lookup for "" to "" and, providing the web server at that IP address has been configured to serve for that domain, you'll see your test site as if it's live and, crucially, that's what the cookie management and JavaScript in your browser will think too.

You might be behind a firewall that requires use of a proxy. Hopefully you can get to your test web server directly, otherwise you're kinda screwed. You can just turn off proxy use for the domains you're testing, leaving it in place for everything else. This is crucial since you still need to be able to get to the Google Analytics server to send the data.

Another wrinkle might be if you're using the GA IP filtering to filter out users from your own network. We do this to reduce the false data from our own staff on the site, but that means it's hard to test things. For this purpose I use a FoxyProxy rule to push hits to the analytics system via an ssh tunnel that pushes the data through my own proxy server sitting in the US. That way the data comes from a different IP range than the ones that are filtered out.

As you can see, there's quite a bit to think about when trying to test this stuff. It's all exacerbated by the fact that processing of the data occurs overnight, rather than anything close to real time. It means every time you make a change, you have to wait until the next day to see if it worked. Then when it didn't, you've got no feedback as to why, so you try again and wait another day.

Over the Xmas break, if I get the time and energy, I'm thinking of making a dropin test replacement to the Google Analytics JavaScript code. This would give you a real-time view of the data hitting the analytics server, with helpful hints on diagnosing why it's not working. We'll see if I get the time.

The other Firefox extension that I've found invaluable for testing has been Live HTTP Headers, for watching what's going to the remote servers. This handy tool is useful and quick for doing the URL decoding so it's more readable.

Firefox extensions

So last week I promised Stig, a Norwegian living in London, that I'd get off the political blogging this week. Haven't achieved that yet, so here's a start.

I use the Firefox browser constantly and one of the reasons is that you can install useful extensions that add functionality. Some of these are incredibly valuable to me, helping enormously with my work. Some are just a nice convenience. Here's the extensions I use. What ones do you use?

Adblock Plus and Adblock Filterset.G Updater
Advertising never really bothered me until the day some bright spark at Hotwired discovered the animated GIF. Ever since, I've filtered them out. I just can't stand having some annoying, flashing animation beside something I'm trying to read. I don't filter out static ads like Google, as they're often quite relevant. Just the annoying ones. I used to use Craig's Squid filtering system but doing it in the client, particularly when Filterset.G automatically gets most of them, makes more sense. What's more, I can turn it off if there's a false positive.

Web Developer
I use this nearly every day for my work. It's just invaluable if you're developing web stuff. There's more features than you can imagine, but the ones I use most are:

  • Edit CSS: edit the stylesheets live, see the result immediately
  • View Generated Source: shows the HTML after any scripts have run.
  • Display Element Information: shows all kinds of details about any object you point at.
  • Display Div Order: outlines all the divs on the page, so you can see what they look like.

Net Usage Item
Australia has bandwidth charging, so most ISP plans have a quota of downloads. This extension downloads your usage for the current month and displays a handy graph.

Shows the weather. Handy, and does what you'd expect.

Live HTTP Headers
Shows you all the traffic going on between the server and the browser, which is absolutely essential when doing some web work.

A really cool proxy server manager. Sometimes you need to have your browser session come from a different location, so you can set up a rule for which requests go through which proxy. When diagnosing problems (like our lousy MS ISA proxy servers at work) it's really handy to be able to push all content through a particular proxy. You could also use this to get around filtering proxies, but that would be naughty and possibly career-limiting.

Sydney Dams Item
We Sydney people are obsessed with the amount of water in our dams. Comes from living in a dry country. Doesn't help that we get plenty of rain in the city, but not a lot where the dams actually are. This extension shows the latest data.

Economic conservative

So apparently when the economy was tanking and interest rates were high, Brendan Nelson took out another mortgage and ran his business on credit. I bet he wasn't paying his employees' super or keeping money in the bank for their entitlements like holiday and long service leave either.

Just the man to be hoping to one day run the country.

Un-big-worded milk

Unhomogenised milk

Shopping late on Friday night, the only light milk available was this organic brand. Now organic milk is the only organic product that's been shown to have health benefits. The animal husbandry advantages are big too.

But why "unhomogenised"? Is it just that the demographic that's keen on organic products is also phobic of big words they don't understand? You'll note that it doesn't specify "unpasteurised", because that's not allowed in Australia.

Homogenization, with regards to milk, is a very simple process that doesn't chemically change the milk. The milk is forced through very fine nozzles, which breaks up the fat globules into smaller globules. The effect is that, unlike milk straight from the cow, homogenized milk doesn't separate out into cream and less-fatty milk.

Guess what's on an iced vovo?

Iced VoVo

Our new PM told his staff to limit their celebrations to a strong cup of tea and an Iced VoVo before getting down to work. I doubt he meant it this way, but the hilarious thing about this is that one of the ingredients of an Iced VoVo is, of course, desiccated coconut.

Well I was amused.

On another note, was it just me or was Maxine gurning like a coke fiend on Saturday night during her victory speech? They must be putting something a little stronger in Iced VoVos these days.