February 2008

« January 2008 | Main Index | Archives | March 2008 »



  • 11:02 AM

Seen in a Harvey Norman parking lot:

White hatchback, provisional driver, number-plate PWN-33D

Duty Calls

  • 10:23 AM

Someone is WRONG on the Internet

I first read this comic yesterday, before coming in to work.

About fifteen minutes after I sat down at my desk that day, Adnan, the Confluence product manager, turned his monitor around to show me the comic, laughed and said "This is so you."

Then I went to interview a senior developer candidate.

When I got back to my desk I had an instant message from Donna. Sending me a copy of that comic. With the comment: "This is so you."

Should I be worried?

From: Charles Miller
To: atlassian-sydney

On 14/02/2008, at 6:26 PM, Mandy Farquhar wrote:

Can people please check the bathrooms and showers before turning off the downstairs light? I really don't appreciate people turning off the light and leaving me in a pitch black bathroom.

It is pitch black. You are likely to be eaten by a grue.

> shout "Hey, could somebody turn the lights back on?"

Your shout echoes through the dark lavatory. You hear some shuffling and sniggering outside, but the lights remain off.

It is pitch black. You are likely to be eaten by a grue.

> shout "You have no idea how dead you guys are..."

You hear the sound of somebody walking up a flight of stairs in the distance. The lights remain off.

It is pitch black. You are likely to be eaten by a grue.

> shout "Seriously, guys, this isn't funny any more."

You have been eaten by a grue. Be thankful we don't tell you where it was hiding.

Your score is 10 points out of a possible 600, in 3 moves
This gives you the rank of Bathroom Amateur

The Apple TV 2.0 update was, to the best of my recollection, the worst (successful) software installation experience I've ever had from Apple.

It wasn't that the upgrade took 15 minutes from the end of the download to the time the unit booted into its new interface. Given the entire OS was being upgraded under the hood, I sort of expected that. The problem was that nowhere along the way did I have any idea how the upgrade was progressing, or even if it was progressing at all.

The unit rebooted. A shiny Apple logo appeared and a progress-bar inched from empty to complete beneath it. Then the unit rebooted again, the logo appeared with the progress-bar back at zero and the process began again. By the third repetition I jumped on the Internet to be reassured by various forums that this was, in fact, normal, and after the fifth restart I should have a working Apple TV.

This post was originally going to be a list of all the little things I thought were wrong or missing with the new update of the Apple TV, but in composing the article I realised that such articles generally annoy me, and really the one example above would suffice1.

The installation experience is one of those things that Apple usually gets right. The upgrade of the Apple TV wasn't bad compared to other devices, it just wasn't an Apple experience. (On reflection, this is a sad sign of how little faith I have that software will meet even my lowest standards)

Similarly, my first impression of the Apple TV 2.0 is that it is a perfectly serviceable device that allows me to play media from my iTunes libraries, and allows me to buy and rent movies and music from the iTunes store2... it just feels like Apple outsourced the design.

When trying out a new Apple product you expect those moments of "Wow, this is how this should be done, why didn't anyone else think of that?" The moments where you realise some long-held assumption about how such devices should work is wrong. These moments are what's lacking from the Apple TV. At the same time, so many things feel phoned in, from the cluttered main menu, to the painfully clumsy on-screen keyboard, to the way the photo gallery refuses to let you view your albums as anything but a slideshow.

It just seems that the Apple TV isn't getting the design attention or the commitment to "thinking different" that are the hallmark of the Apple experience. And that, more than anything else, might be the biggest threat to Steve's hobby.

1 OK, so a few more snuck in later
2 Girlfriend with a US iTunes account FTW!

As an extension to the JSR-666 specification, the expert group would like to suggest the following enhancement to the Java Language Specification:


When checking preconditions in Java code, it is very common to check whether some method argument is null, and throw an exception if it is. There are two equally valid exceptions that may be used in this case: IllegalArgumentException and NullPointerException. The decision to use one over the other is often the cause of holy wars, and can consume a great deal of productivity on internal mailing-lists and blogs.


As such, we recommend the introduction of a new exception type:

throw new SchrödingerException<NullPointerException, IllegalArgumentException>("Value should not be null.");

(The umlaut is required, in accordance with previous discussion)

SchrödingerException instances will be of indeterminate type until they are first accessed in such a way as their type must be explicitly decided one way or another. At that point, the exception will "collapse" into one or other of the provided exception types.

It is impossible to determine if any exception is a SchrödingerException, as any attempt to examine or test its type will cause the exception identity to collapse to one of the supplied "stable" classes. It is also impossible to influence the final type of a SchrödingerException through external interference, including reflection, JVM instrumentation or byte-code enhancement, as any too-close examination of the exception will cause it to collapse prematurely.

(Further JSR-666 specifications: here, here, here)

Late at night, you see someone at the other end of the bar. They are talking to a friend of yours. They call you over. You say hello and offer to buy them a drink.

"Sure," they reply. "Just give me the keys to your apartment so I can move my stuff in. Oh, and introduce me to all your friends while you're at it."

This, in a nutshell, is how Facebook apps work, and why 95% of the time I get a notification from such an application I end up annoyed.

Most Facebook apps don't need any more information about me to function than my name, my unique ID and possibly a link to my profile photo. There is no need to ask me to make a commitment to any app I am merely visiting, nor is there any need to ask me to invite my friends, beyond the obvious observation that the business model for so many of these apps is based entirely on tricking acquaintances into spamming each other.

The whole model is broken. User-hostile, pyramid-shaped and broken.

For obvious reasons, I'm quite pleased with my new apartment. One problem, however, is that it is a total nightmare as far as setting up Wi-Fi goes.

One problem, however, is that the apartment is long, thin, and oddly-shaped enough that the points I want to link via Wi-Fi are inevitably separated by at least two external walls. And when the Ghostbusters (investigating the source of the psychic disturbance on the roof of my apartment block) pull out the blueprints, I can just picture Harold Ramis asking "What kind of madman would clad an entire building in a Faraday cage?"

For this reason (and because they're generally cool), I decided to order a couple of Meraki Mini Wi-fi repeaters to dot through my apartment, hopefully connecting all the rooms reliably (with some signal left over for the rest of Kirribilli).

Then I discovered that the shipping cost for my three repeaters (RRP: US$49 each) was a mind-boggling $62.

I'm attempting to harness the power of social networking to work around this issue, but really, if your only shipping option is going to set me back more than a third of what I'm paying for the goods, there's only one thing that springs to mind: