You know you’re reading a website targeted at Americans when you see phrases like this:

Firefox is particularly strong in Europe, the area over which the EU has oversight.

I say, old bean…

I’ve been Hatsbied – I think.

unchangingsalmon

Certainly fits the <adjective>salmon pattern. That Y! IM account is listed on my Livejournal user info page. On the other hand, wikipedia reports salmon bots talking to AIM users, not Y! Messenger users.

*shrug* It amused me for a good 30 seconds. I didn’t bother responding. I did note later in the day that there was a story about memristors on the front page of slashdot, but of course I have no evidence that the two are related.

Shittyfail updated:

After my last post, Rich Buggy mentioned his own complaint, something that I remember from my days as a commuter – Cityrail, every year, run a Saturday timetable (with some extra peak-hour services) for around a week, roughly between Christmas and New Years, and usually stretching a few days on at least one side. Despite the reduced level of service, they still insist on charging full peak fares for anyone trying to get to work before 9AM, or buying a weekly ticket. Full details of the reduced services are still on Cityrail’s website.

More interestingly, an anonymous commenter (who I think I’m going to name “Deep Train”) left a comment, which got held for moderation. Rather than letting it through, I’m going to publish it here, as it’s worthy of its own post.

It is worse than you think. If CityRail was in the energy business it would be called Enron. As I understand it, the figures are fudged in various ways, but I only have unsubstantiated rumours to that effect.

So on-time running is measured only at Central at the moment. However, I heard today, confirming unsubstantiated rumours, that on-time running is lower than 25% at some stations.

These performance indicators should be measured by an independent organisation.

Optus: not just incompetent, but malicious too

Right, so we all know that Optus decided to charge international call rates for some local numbers, to try to claw back some of the money they’re losing as customers choose cheaper options to call home. A more sensible option would be to provide reasonable rates to existing customers – or set up such a VOIP service yourself, and let customers choose between the cheaper lower-quality VOIP service, or paying more for a “premium” connection[1] – and maybe even snagging some customers from other carriers. That woud be hard though – so instead, lets just slug prepaid customers with additional fees to access the VOIP services, and pray that not too many of them port their service to a different provider.

But that’s just stupidity. This is outright theft:

The most recent legal case, decided on November 27, also forced Optus to concede it had stolen 100 numbers from a tiny telecommunications carrier in Vanuatu and then allowed a pair of its pornographer partners, Global Internet Billing in Britain and MDC in Europe, to use the stolen numbers for their business.

Optus then kept the proceeds of these calls, money which would have normally been payable to the Vanuatu carrier.

[1] Of course, the difference would probably be entirely in the marketing and not in the implementation of the service, but that’s nothing new.

Shittyrail fail again

Remember when Cityrail decided that trying to get trains to run on time was too hard, so they just redefined “on time” to make things easier?

Remeber how shortly afterwards Cityrail had posters all over the stations with graphs showing the huge increase in on-time running compared to the same time last year – and didn’t mention that the two sets of numbers used different definitions of “on time”?

They’re doing it again. Cityrail has a target of no more than 5% of services running at more than 135% passenger capacity – but over the last two years, the actual figure has been 16%. Rather than trying to fix the problem, they’re redefining the target to be 17%.

Keep in mind that this is not 16% of services at full capacity: this is 16% of services at least 35% *over* the rated capacity of the carriage.

Well done Shittyfail!

THC == The Happy Creationist?

From My New Year’s Resolution: Be A Proud Creationist:

The second message was even more bizarre. After the excitement of the first message and the realisation that there was only Australian beer left and the sun hadn’t yet set, we were rapt to see the skywriter trace out the word ‘THE’. We gazed on as he added, ‘CREATOR’. Intrigued, we cooed as the pilot scrawled ‘IS’… and waited for the payoff…

JESUS‘.

Fuck. I mean, that’s not even biblically accurate, surely! Jesus doesn’t come in until after the Triwizard Tournament! According to Genesis, Yahwehdidit. He was so clever, he managed to create the world twice in two different orders!

See, I lost interest in this even earlier: when I last saw this bit of drivel it had just turned into “The“, and I got bored and went back inside. For a few moments before that, the sky had proudly been advertising “THC”…

(Side note: I found this past via a pingback on Stilgherrian’s post “Telstra, you goddam bloody idiots!” – you’ll have to read both posts to figure out the connection)

Shelley the Republican on Ubuntu

People have been telling me to read STR for ages, but I’ve never got around to it. Pascal just went to the site while I was shoulder surfing – and thus I discovered this review of Ubuntu:

One of the great things about Windows is the ease of obtaining powerful utilities and applications. In addition to hundreds of great titles available on CD-ROM you can download awesome shareware applications: simply click on Setup.exe and most installers will instantly deploy your chosen software, sometimes with cool bonus productivity apps that enhance your browsing experience. In comparison with Microsoft’s common-sense approach, pandemonium reigns on the Linux platform.

The only way to install software is via a tool called the ‘package manager’ which is confusingly also called ‘Synaptic’. This works according to a similar principle as a communist super-market: You have a limited range of software which has been chosen on a purely ideological basis rather than functionality. If you want to ‘think different’, it’s tough-luck again: Another obvious fail for the ‘contender’.

To make matters worse, in order to install an application you must be ‘root’ which entails memorizing a series of confusing passwords. By contrast Windows allows any user to install the applications they need to do their work – a wise productivity gain that endears the flexible NT platform to IT departments the world over.

The rest is good reading too. Very informative! I’m switching away from Ubuntu forthwith.

2009 really started with a bang.  Here’s what James twittered about said bang:

Boxing day Tweetable Tweets

Okay, so I lied. Some of these are from two days ago..

Stilgherrian
stilgherrian “Christmas ruined as Sarah Palin shoots Rudolph” http://is.gd/cYaU
Stilgherrian
stilgherrian Just discovered NewsBuiscuit! “Children ‘getting over-excited’ about going to church on Christmas morning”: http://is.gd/d6pz
Harley Dennett
harleyd I just had to explain who ABC radio host Julie McCrossin was to an ABC reporter who rang seeking gay christian sources. Yay ABC cuts.
Mike Cannon-Brookes
mcannonbrookes RT @barconati Awesome post. Dan talks about the benefits of deploying Confluence enterprise wiki at the Powerhouse Museum http://tr.im/2l9b

Munging old URLs to match WordPress' expectations

One of the downsides of having spent years messing with my old Drupal blog is that I’ve ended up with a bunch of different permalink styles: to pick three posts at random, http://zhasper.com/zhasper/harry_potter_done, http://zhasper.com/2007/09/linkbloggery, http://zhasper.com/?p=631. Fortunately, I’m only running this blog to give myself a place to vent, so I don’t care about lost traffic. If I did care, this would be a problem.

I’m using the “Platinum SEO pack” plugin, which does a good job of handling URLs that don’t quite match the same schema that WordPress is using – for instance, if you visit http://zhasper.com/linkbloggery, it’ll figure out that you meant the second URL in the list above. Unfortunately, it’s not perfect – and my old blog had way too many variations for anything to cope with.

So, I’m going through and doing what I can to fix the low-hanging fruit. URLs in the second form, /YYYY/MM/title, already work fine. URLs in the first form need to have the /zhasper/ removed, and need all the _s turned into -s. I accomplish both of these through a bit of RewriteRule magic:

RewriteEngine On

RewriteBase /

RewriteRule zhasper/(.*) /$1 [R=301,L]

RewriteRule (.*)_(.*) $1-$2 [R=301,L]

This is quite definitely not the neatest way to achieve this. In the example above, it requires three excess round-trips between the server and the browser:

  • Browser requests /zhasper/harry_potter_done
  • Server sends a redirect to /harry_potter_done
  • Browser requests /harry_potter_done
  • Server sends a redirect to /harry_potter-done
  • Browser requests /harry_potter-done
  • Server sends a redirect to /harry-potter-done
  • Browser requests /harry-potter-done
  • Server sends a redirect to /2007/07/harry-potter-done/
  • Browser requests /2007/07/harry-potter-done/
  • Server sends actual content

The 301 in the RewriteRule means that the server tells the client that this is a permanent redirect – the content will never be at the old address, please update your bookmarks. This doesn’t make much difference to your browser – but crawlers such as Google should use this as a signal to update their index, and send any link-love directed at the old link to the new link.

If you didn’t have the redirect at all, Google wouldn’t know that /zhasper/harry_potter_done and /2007/07/harry-potter-done were the same page – it would think that the latter was just a more-recently-seen page which mysteriously had similar content to the old page.

If you go with a temporary redirect (by just using R on its own, or by stipulating [R=302], Google won’t know to update its index: it will still come back later and check the old URL, just in case the page has moved back there.

There are definitely better ways to achieve this – suggested enhancements are welcome :)