Archive: January 2006

Mouse Wheelie

January 30, 2006

I give the Intellimouse Explorer much ♥ — which is why I have three — but after a while the scroll wheel just stops working. It wasn’t so long again that I was suffering under the yoke of a ball-mouse with only two buttons, but I could never go back. How people live with less than five buttons is quite beyond me, let alone without a wheel.

Turns out that it’s a problem ridiculously easy to “fix”: I opened one up, and it’s just gunk collecting inside the case. The wheel uses an optical sensor, so a glob of dust falling in the wrong place can block it. Mouse #2 had a hair wrapped around the axle. A bit of blowing on it (NES flashback!) and it works perfectly.

I was so happy — I can scroll! I can scroll! It’s a miracle! — that I just had to share.

The inside of the Intellimouse is pretty, but pointless to look at.

Network Ten Hates Everyone

January 7, 2006

It’s most likely that they do not, in fact, hate everyone, even if they do routinely torture millions with Big Brother and Australian Idol. But if they aren’t hell-bent on aggravating as many people as possible, their online TV guide is positively remarkable. It’s common enough for website operators to hate the blind, which is still true here, of course — the whole program listing is built from generated images with no alt text. (And, incidentally, it might be a violation of the Disability Discrimation Act 1992.) But they’re not content to foil only Lynx users and the disabled, oh no. It’s quite ingenious, actually, in an evil kind of way:

<td style="background:url(/pgutil/getbg.ashx?m=std&id=1227119);">
    <a href="#" onClick="window.open('episode.aspx?episodeID=1236691'); return false;">
        <img src="/pgutil/getfg.ashx?m=std&id=1227119" />
    </a>
</td>

There are two images, a PNG background and a GIF foreground, both dynamically generated. Here’s one background:

background example

And its corresponding foreground:

foreground example

Each one alone looks like shaped static, but lay one over the other and presto! it’s The Simpsons at 6 o’clock.

combined example

It’s not only unreadable if images are disabled — obviously, as there’s nothing to read — but the image overlay hack leaves it unreadable without CSS, because the background image isn’t shown.

The link to the program details requires JavaScript, so that’s another possible point of failure. Let’s not forget the frames, either, or the requirement for cookies, or that the links only require JavaScript because they create popup windows. Or that the use of images creates other problems, like the lack of differentiation between visited and unvisited links and the inability of users to change the font size.

Why

Why?! I can think of no good reason. Not a single one.

The overlay does make for a ghetto fade-in effect when images are slow to load, but the only reason for slow loading is the inexplicable choice of images requiring literally a hundred times as much bandwidth as the text they represent.

Strangest of all is that the text is Verdana. Using generated images to embed elaborate fonts is understandable, but Verdana? On the off-chance that a user doesn’t it, it’ll be substituted by something equally dull; and no-one but a typography nerd is going to notice, let alone care. It’s like embedding a HTML renderer in a Java applet embedded in a HTML page: what’s the point?

It could be to foil screen-scrapers — admittedly, I only noticed because that’s what I was trying to do. Not that I see the utility in preventing free publicity, mind you, but it’s the best I can come up with. There’s still no obvious reason for using the two images, since combining them is trivial compared to OCR.

There may be a better reason, but like the saying goes: never attribute to incompetence that which can be explained by malice. So I’m think I’m safe in my assertion that the network hates anyone with a text-mode browser, and the blind, and anyone else with poor eyesight, and anyone with a WAP phone or WebTV, and anyone with JavaScript disabled, and anyone who likes to deep-link, and anyone using Netscape 4. (I’m with them on the last one, actually.)

Two by Two

January 7, 2006

Multiply for WordPress 2.0.

New users just install it like a regular plugin; users of the old version need to undertake an annoying upgrade procedure. (Sorry!)

As with the previous version, there are some things you need to do to enable pingback and trackback. The plugin page has more details.

Sorry this is so late; and worse: sorry it hasn’t been rigorously tested. I did try, really, but there’s always something I miss, like accidentally deleting the whole database. You won’t know until you try, though, and I won’t know unless you tell me. :) Bug reports are welcome, but please provide as much information as possible.

Problems

Pingback and trackback are entirely untested, because I can’t get them to work on my test server with an unmodified WordPress install, let alone a hacked up one. It’s a mystery.

RSD won’t work, because the link is hard-coded. Does anyone even use it?

Numbering

The most important change since Multiply for WordPress 1.5 is that alternate blogs are no longer counted up from #1. The first blog created with the plugin used have an ID of 1, the next 2 etc., but this conflicts with the new $blog_id variable — WordPress 2.0 uses it in the core, and by default it’s 1.

To avoid this, the upgrade script will, in an incredibly dodgy manoeuvre, re-number the old blog #1 to something else. If you have blogs numbered one through three, #1 will become #4. Please note, though, that the $mb_press_id variables in the index.php and xmlrpc-$x.php files you may have created will not be changed automatically.

Users

A system of user roles and capabilities has replaced the old user level system, and it’s multi-blog compatibible out-of-the-box. For you, dear user, the effect is that the Multiply admin page no longer contains any user functions at all.

Mostly, this is a very good thing: you just switch blogs, go to the user page, and edit the user levels. The downside is that you have to do this with every blog. User #1 is added as an administrator by default; no other users are added at all, but they should default to ’subscriber’ level.