Thunderbird extension development hell

I had this great idea for an extension to Thunderbird that was neither trivial nor non-trivial, and thus interesting and doable (time will tell on the doable part). In fact, so much so that I figured someone must have done it already, so I went surfing the Thunderbird extensions trying to find it. I couldn’t. It appeared, so some inexplicable reason, I’d have to do it myself.

I soon found out why someone hadn’t done it before me: Thunderbird development is a nightmare.

The problem with developing for Thuderbird is that it’s a poor cousin to Firefox. All the dev doco revolves around Firefox, so as a function of that Firefox has hundreds of extensions (I think I saw a figure of 750 somewhere), sometimes multiple extensions with approximately the same functionality, whereas Thunderbird has dozens of extensions. Add to that the dev tools seem to be Firefox oriented, and I then find myself in development hell.

There’s documentation on extensions in general, but it all uses Firefox for it’s examples. So there’s nothing to cookbook-style leverage from. The doco says to install ChromeEdit (chrome being most of the user interface of the Mozilla suite), but it’s a Firefox only extension. Alternatively, you get your hands dirty editing user.js – but it’s not an alternative for Thunderbird developers, it’s how you do it. There’s a DOM inspector, but that has to be compiled in (it no longer comes as part of the Windows distribution) … or after a lot of looking, it turns out that the DOM inspector is available as a Thunderbird extension. Neither the recommended Extension Developer’s Extension nor Venkman (a IDE for javascript) work for Thunderbird, only for Firefox. I hadn’t gotten more than a quarter way through getting the recommened dev environment set up, and I’d burnt a few hours by this point, so I figured it was time to tell the world about this joy.

The summer time blues

So, here we are, still in summer time in AU, in the week’s extension. Of my two machines at home, the XP one was patched, and is okay. The Win2K one wasn’t, and moved by an hour yesterday. Despite wider media awareness of the issue last week, I’d expect a lot of systems with automatic switching to be effected. As ever, it’ll be those that get switched manually (eg most household appliances) that have no problems.

PS. 10:30am. Amongst the high-profile clocks that are inaccurate today is Melbourne’s famous Nylex sign.

PS. Wednesday 8pm. Due to lots of hits via Google, there’s some more discussion of this topic here.

Sunday Quickies

Inventor of the cube-farm “sorry”.

Check out this massive Lego sports stadium. It think it might be at a Legoland. Not to be confused with the Wembly Stadium at Legoland Windsor.

For the Google junkies out there, there’s a list of the highest paying adsense phases – around USD$50 a pop. Brought to you by the Google adsense keyword tool.

In the same way that moving electrons create magnetism, moving mass has been shown to create gravity.

Hassles with background-image and font sizes

The other day I was working on upgrading the eVision web site to the new look (as well as the latest WordPress 2.02). While I’ve been using HTML for more than a decade, I have to admit, my grasp on CSS is patchy. I’m still picking it up. So it took a bit of wrestling to get it to (more or less) match the design provided by the graphic designer. The big graphic still isn’t in quite the right spot, but no matter, it’s still a vast improvement over the old one.

I did learn a couple of (possibly) valuable tips:

  • In Firefox, the background-image of a div doesn’t display in the portion of the div that has nothing in it. In my case, I had a UL (which forms the dropdown menu) in there, right justified. The background only appeared in the left hand bit in IE, not Firefox. I had to add a   to it to get it to appear… and then I had to specify a height, so the background image would go to the right height, instead of just the nominal height of the non-existent text.
  • Font sizes… after complaints from a colleague who is keen on big text, I had to remove all the references to pt sizes in text, in favour of em, so that IE would resize the text when asked. Firefox handles this even if you’ve got all pt sizes.
  • I also learnt I need to study CSS a bit more. The next projects will be doing some more upgrades and new WordPress themes, I think. I’ve got a few that need doing.

RIP Neil Raine

You may not have heard of Neil Raine… sadly neither did I until today. He died on Wednesday in a hang-gliding accident in Spain. His role in the geek world? He was a contributor to RISCOS, the operating system of the Acorn Archimedes range, the first consumer computer to use a RISC processor, way back in the late 80s.

He also contributed a number of games that BBC users might recall, including Hopper, Planetoid and one of my personal favourites, Magic Mushrooms, a platform game that allowed you to design your own levels.

Neil may not have been rich or famous, but geeks like him make an untold contribution to the world of computing. Here’s to you, Neil.

Local news report. RISCOS News Report.

Economics of Digital Cameras

I was reading a backissue of Money magazine where Paul Clitheroe made a remarkably insightful analysis of film vs digital cameras (Money, June 2005, pg 20 am I better off With a digital or film camera?).

One thing he noted is that acquiring a digital camera turns you into a shutterbug; I would suggest spending hundreds or thousands of dollars on a camera has that effect, but the zero-cost of each individual photo certainly does help. He notes that in bangs-per-buck, film beats digital – and he’s right. Not only are digital cameras more expensive to acquire for the features you get, but (at the time of the article) processing costs were higher too. Couple that with the poorer image resolution you get from digital images (super high-end digital cameras are only now approaching the image resolution of $20 compact cameras) and you would have to be nuts to go digital.

Unless you don’t actually process your images. As a general rule, I don’t. In the last eleven months I’ve taken… let’s see… 10,327 images (I was wondering what would happen to the camera when it rolled over 10K images, because the manual hints that you might have to re-format your media; turns out that’s not the case). Recently Cathy and I took advantage of a Harvey Norman promotion and trebbled the number of images we’d printed, to a total of 200. We might have spent $50 on printing all up. That would have bough 240 frames of analogue film in processing costs, but we only printed out the winners. If the full 10K images had been processed we may have spent $2000 on processing. That’s a bunch of money. I suspect I would have husbanded my shots more if I’d spent the same amount of money on a film camera. In fact, there’s no way on God’s green Earth I would have spent that much money on a film camera. Something about perceived value differences. Anyways, the camera has been fun, and I think given the thrashing it’s been getting, I’ve been getting value for money from it. Which I’m a little surprised by, because it was a lot of money.

For me, the big advantage of digital is that I can learn to be a better photographer at no marginal cost. And Paul says that at National Geographic, photographers average 350 rolls of film (almost 12600 frames) per story, with an average of 10 published. So, if I was a professional grade photographer using professional equipment, one in twenty of the photos I’ve printed would be magazine quality.

Matrix displays bite arse

Sure, CRT displays are bulky, consume piles of power and are heavy. But they can change resolution without a loss of … resolution.

See, High Definition TV runs at 1920 x 1080 – which, incidentally, a vanishingly small number of TV sets run at (ignore advertising about sets being HD-ready – all it means is the TV will understand a HD signal and happily convert it down to it’s native resolution). But converting a raster image from it’s native resolution down involves a loss of information; worse yet, if that resolution isn’t an integer multiple of source resolution, the downconversion algorithm has to make some judgement calls about which new pixel to push the old pixel’s information – so you can have some odd looking images, like horizonal or diagonal lines going… funny. Colour transitions can become forced too with a visible loss of colour depth. Converting up can also be a little strange, with some pixels odd colours (making the image look blurry) or straight lines becoming jagged. Given that signals might also appear in 704 × 480 (Standard Defintion) or 1280 × 720 (a high quality high definition signal not broadcast in Oztralia), aspect ratios on the pixels involved mean you need a native resolution not likely to be obtained for many years to get clean conversion between the resolutions.

CRTs don’t give a rat’s arse about conversion algorithms, and happily change the number of lines they throw on the screen in response to the number they’re given. The only difficulty you might encounter is the shadow mask or aperture grille.

LCD and Plasma display screens – generally TV monitors, and LCD projectors (and for that matter, any other matrix-based projection technology) have a failure mode that analogue CRT displays don’t exhibit:

Dead pixels.

Stuck on or stuck off, dead pixels are a one way street. You don’t see that kind of failure in CRTs. And I’m not aware of any TV manufacturers who guarantee their product against this particularly annoying failure. No-one is told about it at purchase time, but I’m predicting in three to five years time there’s going to be an uproar about it.

Anyone bought a new matrix TV lately? Happy about it?