How not to compete with free

So I'm a bit late, but I wanted to grab the latest Decoder Ring album. Logically, I started at their site, which certainly talks about the album. With no link to somewhere it can be purchased.

Next step Wikipedia to find out their label is "Inertia Music". Google that and find their site, search for Decoder Ring. Bingo, there's the album. Click to buy it and go through the registration rigmarole (here's a free tip: move the registration bit to after the credit card entry part and you'll convert more people). Get a download link and the problems begin.

zip warning: name not matched: /home/inertia/public_html/downloader/jquri3df12cgbr8e24496f84v6/01_DECODER_RING-SAME_OLD_PARADISE.mp3 zip warning: name not matched: /home/inertia/public_html/downloader/jquri3df12cgbr8e24496f84v6/02_DECODER_RING-THE_HORSE_AND_THE_HAND_GRENADE.mp3 zip warning: name not matched: /home/inertia/public_html/downloader/jquri3df12cgbr8e24496f84v6/03_DECODER_RING-ALL_THE_STREAMS_HAVE_LITTLE_GL.mp3 zip warning: name not matched: /home/inertia/public_html/downloader/jquri3df12cgbr8e24496f84v6/04_DECODER_RING-THE_INLAND_SEA.mp3 zip warning: name not matched: /home/inertia/public_html/downloader/jquri3df12cgbr8e24496f84v6/01_DECODER_RING-SAME_OLD_PARADISE.mp3 zip warning: name not matched: /home/inertia/public_html/downloader/jquri3df12cgbr8e24496f84v6/02_DECODER_RING-THE_HORSE_AND_THE_HAND_GRENADE.mp3 zip warning: name not matched: /home/inertia/public_html/downloader/jquri3df12cgbr8e24496f84v6/03_DECODER_RING-ALL_THE_STREAMS_HAVE_LITTLE_GL.mp3 zip warning: name not matched: /home/inertia/public_html/downloader/jquri3df12cgbr8e24496f84v6/04_DECODER_RING-THE_INLAND_SEA.mp3
Moved Temporarily

The requested URL http://www.inertia-music.com/account/downloads/pkg/mydownloads.zip has moved here.
Apache/2.2.3 (Red Hat) Server at www.inertia-music.com Port 443

Download the linked zip file, helpfully named mydownloads.zip which is a real aide memoire when it turns up on my desktop.

Unzip the included file and I get 9 tracks. Checking back on the site, there's actually 17 tracks on the album. Whoops. Looks like I've got only just over half what I paid for. Nice.

It gets better. The tracks are all dumped in the same folder and are all named IN UPPERCASE, helpfully truncated at 47 characters so track two becomes 02_DECODER_RING-THEY_BLIND_THE_STARS_AND_THE_W.mp3 Filename: 02_DECODER_RING-THEY_BLIND_THE_STARS_AND_THE_W.mp3. Brilliant, but I assume there's metadata inside the file that gives me the full name, right?

id3tool 02_DECODER_RING-THEY_BLIND_THE_STARS_AND_THE_W.mp3 
Filename: 02_DECODER_RING-THEY_BLIND_THE_STARS_AND_THE_W.mp3
No ID3 Tag

That is just shockingly poor form. This means I have to manually go and find out the track names and enter them myself. The competition, torrent sites and the like, provides this kind of thing for free! So when I go and spend my hard earned on the legal alternative that gives some money to the musicians, my expectations are that I get at least as much as I would get for free!

PS: I'd prefer lossless audio like FLAC, if you want my real preference.

Guide to the government's insulation rebate

I've built a site that's a guide to the government's home insulation rebate programme. My aim is to provide a fairly quick and simple guide, given that the government site is all full of legalese like "the Owner-Occupier or Beneficial Owner of the dwelling" and so not the easiest thing to read. Most of the other information is from suppliers, so can hardly be thought of as impartial.

I'm also looking to target specific topics of information that are underserved but have a large ecosystem of Google AdSense advertisers, to see what kind of returns you can expect from it. Given how targetted this can be, it's looking pretty good so far.

So check out Insulation Rebate Australia if you want to learn about the rebate.

Sydney FC fixture calendar

I've entered all the upcoming fixtures for this season into the public Sydney FC calendar I maintain. It means I know when games are coming up as I live by my calendar and refer to it constantly.

Timezone is Sydney but for away games outside NSW and Victoria are likely to be wrong until a week or two before the game. I couldn't be arsed working out the complicated daylight saving bollocks and both Sydney FC and FFA give only "local" time. I'll look them up in Betfair periodically. The betting agents want to take bets right up to kickoff, so their times are always accurate.

All Sydney FC matches, times in Sydney time (though probably wrong for away matches until the week of the game).

These links will take you there. You probably want the HTML version if you use Google Calendar.

If you're viewing this on my site directly, you'll be able to see the calendar below. Coming through a feed, it should be stripped.

Creative Commons License
This work is licenced under a Creative Commons Licence. For commercial use, contact me and I'll probably let you use it for a donation to SFCU.

Announcing: Swedish Chef wave robot

Swedish Chef wave robot

I managed to score myself a Google Wave account by promising to write a Swedish Chef robot. So this afternoon I wrote one, in a language I've never used before (Python) and to a target platform I've never explored (Google App Engine). Mostly I ripped off code from other sources, especially Dive Into Python.

Screenshot

So if you have a Google Wave sandbox account, add borkforceone@appspot.com to a wave and your text will be translated into cod-Swedish.

Acer Aspire One D150 and Ubuntu netbook remix

Acer Aspire One D150

Earlier this week I bought an Acer Aspire One D150 to use as my new portable and, possibly, desktop. Most of these new netbooks are pretty much the same inside, so a few things won me over to this one:

  • Ten inch screen, substantially bigger than the seven inch netbooks.
  • Very good reviews of the keyboard, and I concur it works well with my fat fingers, and dedicated Page Up/Down keys are very handy
  • Built-in Bluetooth, which means tethering to my phone for mobile broadband is trivial
  • Built-in SD card (it does other formats too) reader, makes it trivial to upload my photos
  • VGA-out plug, meaning I can potentially use it as a desktop with two screens

Downsides include the Microsoft tax (which I'll attempt to recoup, after Simon Hackett's encouragement), a hard drive that I don't really need and probably is an unnecessary drain on battery, and a touchpad that has been fairly strongly vilified.

I'd tend to agree that the touchpad is pretty poor. The buttons require so much force that you really have to use two hands to do anything like click-drag. That said, I mostly don't use these things anyway and carry around a little retractible mouse anyway.

The install from Ubuntu Netbook Remix was trivial. Change the BIOS settings to boot from USB (F2 at boot to access BIOS) and boot. It was done in about fifteen minutes and most things just worked, including wireless, suspend and hibernate.

I've found a few issues with sound. Playback from Rhythmbox, the default Ubuntu music app, can be a bit choppy. I suspect this is just the application, and I might just change apps. Sound after suspend doesn't seem to work, which is a bit annoying. I haven't worked out how to reliably get the sound to work with Skype either. I'll keep playing with that.

Settings to change

I've made a couple of changes to the default Ubuntu install for this system.

I disable Caps Lock on all machines I use, because it's a completely useless key and my fat fingers often hit it accidentally. The Caps Lock key on the Aspire One is no exception, and I have to wonder why they would include one when a dedicated NumLock key would be more helpful. Add the following to ~/.bashrc:

if [ "$PS1" ]; then
    # Disables the bloody CapsLock button
    xmodmap -e "remove lock = Caps_Lock"
 fi

Inexplicably, Ubuntu disables laptop_mode by default, which means it doesn't do useful things when running on battery power that will extend battery life. It also makes it hard to work out why it isn't running, putting the setting in a seemingly unrelated file, and returning nothing when you try to run the init script. Change ENABLE_LAPTOP_MODE=false to ENABLE_LAPTOP_MODE=true in /etc/default/acpi-support to enable it.

Mouse settings

The touchpad is overly sensitive and when you're in the middle of frenzied typing, often moves the cursor on you. Most annoying. I get around this by disabling clicks from the trackpad, given I don't use it anyway.

Littlefox theme

Firefox, by default, takes up a lot of useless vertical screen space. I've reduced this by removing the Bookmarks Toolbar and moving it up next to the menu. I also installed the Littlefox theme, which uses much smaller icons. This gives you a bit more of the critical vertical screen space.

The included soft slip case, made out of wetsuit material, is alright but has no space for my little mouse and a pair of headphones, which I think are essential portable accessories. I might try sewing on a couple of little pockets to make it perfect.

Conclusion

It's early days just yet, but I'm pretty damn happy with my new little netbook. It's suiting my needs pretty well, and looks rather fine too.

Why display advertising sucks

I've been working on a fair bit of marketing-related stuff over the last few years, and we've been spending pretty big on online campaigns. Much of this money has gone on display advertising, the kind of stuff you'll see on Fairfax and News Corp sites. We've had a whole range of problems with this stuff, and I've come to the conclusion it's more trouble than it's worth. Certainly if you want to measure response based on sales, the rate is pitiful. Here's why it's broken.

When you buy a search ad, you can be pretty certain the person is actually interested in the topic represented by the keyword you're buying. So when someone types "wireless keyboard", it's a good bet they're probably interested in buying a "wireless keyboard" of some sort.

When you buy a display ad, you get pretty loose categorisation. Perhaps your technology product might end up in the technology section of the site, so at least you're being exposed to people with an interest. Or you might be in the "general interest" pool, in which case you're getting exposed to the people who clicked on "celebrity shows boobies" links. Just the people you want. But regardless of the type of category you end up in, you're getting people who are expressly there for something other than finding something about a very specific topic.

So really, you can't measure the results of display advertising by expecting people to buy immediately after clicking, it's more for branding. Or so the salesmen for these mass media properties will tell you. So really you're getting your brand exposed to roughly categorised people.

Except it's completely unmeasurable, and the mass media sites have only themselves to blame for this. You see, if I want to have my brand exposed randomly to roughly categorised people, I need to have some pretty solid statistics on how many have seen it. I'm an Internet advertiser, so I'm used to pretty solid stats, not based on diary entries like TV or circulation surveys like newspapers (yeah, like most copies of the newspaper get read by more than one person, every day).

The problem is the major media in Australia specifically make any "impression" numbers meaningless, by adding a little line of code like this to every page on their site, this from news.com.au:

<meta http-equiv="refresh" content="0300" />

This line of code means the page gets reloaded every 300 seconds, or 5 minutes. Fairfax have recently started doing this in a slightly different way (checking if a video is playing first) but they do the same thing.

By reloading the page every five minutes, they've made their impression numbers completely meaningless. People regularly leave their browsers open with a page: the news, the weather, whatever they were just reading. So they go off for a half hour lunch and three "impressions" tick over, except there's nobody home to be impressed. There's no way to quantify how often this happens, so the impression number isn't just inaccurate, it's some unknowable amount completely wrong.

So you see, measured by the only accurate measurement, click throughs and subsequent sales, display doesn't make sense. And as a branding exercise it's not worth playing around with because the publishers have specifically taken steps to make the numbers meaningless.

And they wonder why newspapers are dying, when they go out of their way to devalue the one thing of value they do produce?

11th June 2009 addition: this "study" by News Digital Media just confirms my suspicions. Surveying less than a thousand people when the ad had 300,000 impressions, yeah there's something you can use to draw conclusions! These being people who had just seen the ad (possibly, given what I said above).

Moving into the cloud

For the last five years I've run a virtual server from the excellent Linode which has hosted a number of services including this web site, a Jabber server, some other web sites, and my email. Initially I did spam filtering myself, but between the load this placed on the server and the constant tweaking required, it annoyed the hell out of me, so I outsourced that to JunkEmailFilter.com, which while imperfect was passable.

I've used mutt as my email client since some time in the later 90s, after upgrading from pine. The advantages of a text-mode mail client were speed, accessibility from nearly anywhere, integrated tools (gpg, lbbdb) and the fact that a clueless boss looking over your shoulder will think "techie stuff, must be work" and hence not require me to justify my work throughput.

More recently I've noticed myself regularly bouncing messages to my secret gmail account. Partly this is because Google Reader produces broken text attachments, and a few of my correspondents insist on using that, but mainly it's because more and more emails included stuff I couldn't use in a text-mode client, like links to complicated web site, pictures, or links to videos.

So I thought I'd try out moving all my email to Google excellent web client. The process of moving the whole domain was surprisingly easy. Just point the MX at Google's servers, set up the appropriate accounts and define the pass-through mail server for anything that doesn't have an account on the Google servers. This means the mailing lists and weird aliases I have on my server continue working as before.

The hardest part was uploading all my old mail. I've been saving mails into their own Maildirs based on the big before the @ in the email address, so john@smith.com ends up saved as john/ and if there's any doubling up of "john" it's still all in there. Gmail has a pretty good (and very fast) search, so filing becomes much less important.

There's a bunch of tools you can find that claim to be able to upload Maildirs to Gmail. I couldn't get any of them to reliably work. Eventually I downloaded the corpus of my Maildirs to a desktop and used Thunderbird to upload them all to the new location. It took ages, but it worked.

So far I'm pretty damn happy with this. I haven't had a single spam get through, and even the ones that make it to the Spam directory are pretty minimal. The add-on Postini spam filtering service has done two false positives on spam so far, which I consider pretty good and I presume it'll learn.

Now that I'm paying US$50/year for each email account (one for me, one for Holly) it's costing about the same as my former JunkEmailFilter.com and rsync.net accounts. I'm also going to downsize my Linode which will also save me some money. More importantly, I'm doing even less maintenance, and the search engine on my email is vastly superior to mutt. It's also a graphical email client, which is nice, and the mobile clients are really quite good.

Quite happy with it.

Silence at last!

The new machine

Having shamelessly stolen Danny's excellent research I've finally finished building my new quiet server for MythTV, Squeezecenter and other serverly duties. It's brilliant!

The Antec Mini P180 case and Antec NeoHE power supply provide the core noise reduction. The case is solid and with an enormous, but slow, fan at the top of the case providing quiet cooling. The mounts for all the drives have little silicone grommets to cushion their vibrations. Seems to work very well with my four 7200 RPM SATA drives, which previously resonated inside the case and made a very loud, high-pitched hum that was audible from the lounge room.

I don't yet have the CPU heatsink, as my supplier sent the Xeon version instead of the 775 socket version. The supplied Intel fan is bloody quiet anyway, only moving at 800 RPM. I'm sending the heatsink back and will see if they'll give me a refund instead of a replacement.

The result is that unless you put your head almost inside the cupboard, you can't hear the computer. This contrasts rather well with the previous systems, which had quite the roar going on. Cooling is okay, though I'm gonna have to keep an eye on it. Running two burnP6 processes sees the temperature (presumably CPU, but lm-sensors labels it core 0 when another is CPU temp) shoot up to 61 °. Perhaps that big mama heatsink will help there, as it's not the ambient temperature in the case that's the problem. See the graphs.

In fact it's so quiet I'm tempted to move it into the lounge room so that we can use the MythTV software for playback, rather than the PS3 which has plenty of problems with file formats (though has spectacularly good picture quality). If I can convince the boss of the merits, I might buy one of the more-appropriate HTPC cases and move all this hardware into it. Then I'll build myself a nice quiet desktop. I'm sure she'll claim this was my cunning plan all along...

I'm very happy with this system. Total cost around $650. Thanks for letting me steal your research Danny!

Tories are kinda right on the NBN

There's a bit of a furore over the costings of the Notional Broadband Network, with the Conservatives claiming $150 a month or more. I thought I'd do someback-of-the-envelope calculations.

Assumptions

Number of Australian households: 8,321,000 (projected for 2009, series 1 which was lowest)

Number of households covered: 7,488,900 (90% coverage, assuming they all take it up)

Ten year government bond rate: 4.605% (though I'm not sure I understand the terms "Coupon" and "Yield" here so using the lowest number)

Cost of NBN: $43,000,000,000

Calculations

So the interest on $43 billion is $1,980,150,000 per year. Divided by the number of households that's $264.41 per household per year, or $22.03 per month.

So without factoring in any payment of the principle, it looks a whole lot like the Telstra tax (line rental), which you must pay today to get xDSL-based broadband. Of course you'd need to pay back some of that money, or at least the half that isn't being stumped up by the government, at a commercial rate of return. But even doubling it to $44/month to give some payment of the principle and if you get a few services over it (phone, pay TV, broadband internet, smart electricity grid) that's still okay.

But part of this whole process is to preserve the competitive tension between the new NBN and existing ADSL1/2- and cable-based broadband services. Keeping the NBN honest, so to speak. So what happens if only half take it up? Well then we're looking at $38.25 a month per household, only paying off the interest.

Assuming more numeric minds than mine, who know the fudge factors for "commercial rate of return" and understand what bond rates are, it sounds like the Tory claim of $150/month upward would be at the wide end of the calculations (say your Internet provider was BigPond), but aren't out of this world.

The basic fact of the matter is that we shouldn't be expecting this thing to pay for itself directly. Roads don't, nor does any other infrastructure project. At best we should expect to pay the interest on the bonds, and make the project a gift to the people of Australia. The sooner the ALP has the honesty to say this (hell, did the Hoover Dam pay for itself?) the sooner they can shut down this attack on the project.

Here's my spreadsheet. Feel free to point out my mistakes.