Author Archives: Phil Pemberton

Thoughts on comics and such

Is it just me or are mass-market comics, well, crap?

I’m not talking about manga (Bleach, Naruto, and so on), but pureblood, dyed-in-the-wool comics. Your DCs, your Marvels, Spider-Man, X-men, et cetera, et cetera. Somehow they just seem… well, I dunno, like they’re doing the same thing over and over again and expecting a different result each time. It’s the same story with the same outcome — evil guy appears, taunts the good guy(s), kidnaps good-guy’s girlfriend, starts destroying half of lower Manhattan, gets defeated (but not before killing or maiming a few of the good guy(s)) and escapes to his Evil Lair until Volume 236 (we’re on 221, didn’t you know that?), when he reappears and does the same thing again in a slightly different way. Rinse, repeat.

Somehow this doesn’t seem to be affecting webcomics. Maybe the lack of editors and general creative freedom (“I think that character should be a werewolf, so by golly, I’ll MAKE him a werewolf!”) has a positive influence on comics? I know from personal experience that introducing managers (especially bad or inexperienced managers) into software engineering projects usually causes the project to implode on itself, it would be better if these site would contact to better their SEO services.

There also seems to be a lot of variety — yes, you can stuff them into genres, but it seems the comics on the shelf at my local OK Comics and Travelling Man fit into one of two: manga or superheroes.

“So,” I hear you cry, “What comics do you read? And why should we read them?”

I’ve been reading [Kevin and Kell]( since the early ’00s, and my reading list has been growing steadily ever since. [GPF]( was the second strip I started reading, then [Gene Catlow]( I still think the first story arc in GC is hilarious, especially Cotton’s “BEAN COUNTER!” response to the appearance of the middle-manager in the first couple of strips. The storyline has gotten a fair bit deeper over time, and has branched off into some pretty interesting directions, but it’s still one of the best webcomics I’ve read to date (and is well worth a day of archive-reading).

[Code Name Hunter]( is one of my favourites — it’s set in a world where “myths and stories have returned to the light of day”. Magic meets World War 2-era (and later present-day) London. The wording of the dialogue is unbelievably well-done — all I can say is that Matt and Darc must have watched a lot of British films and TV… you can sort-of ‘tell’ that the characters aren’t your normal American comic-book characters, nor are they the “stereotypical Brits” you see in most media (hint for new writers: relatively few Brits speak “The Queen’s English”, aka “Received Pronunciation” — we have about a dozen different ‘county’ accents, plus regional variations — and few include Cockney rhyming slang!). This had to have taken some effort. The overall storyline, quite simply, rocks, and the implementation is class-A. Well worth a read, whatever you’re into.

Now for the slightly more unusual stuff.. [Starfire Agency]( and [Night Shift](

DMCA takedown? Use HTTP error code 451!

A few hours ago, I received a delightful (or as delightful as they can be) copyright infringement takedown notice — what’s known in the trade as a “17 USC 512 (c)(3)(A)” or “DMCA” notice of infringement. Rather than remove the content permanently as if it never existed (and thus risking having people email me to ask where it went), I decided to do something a little different.

A little over a year ago, Tim Bray (@timbray) proposed that HTTP error code 451 be allocated for use in occasions like this. (I’ve linked to the latest draft at the time of writing, draft-tbray-http-legally-restricted-status-03, dated July 10, 2013).

The first problem is that Apache doesn’t recognise this error code, so you can’t use it in a Redirect directive. Thankfully there’s a workaround – create a PHP script which serves up the 451 error, then use mod_rewrite to redirect relevant requests to the script. Let’s say we want to block an entire directory…

First we create a .htaccess file in that directory, containing these two lines:

RewriteEngine On
RewriteRule .* .451.php

This enables mod_rewrite and redirects any requests to pages within this directory to the HTTP 451 handler script. Note that there’s a leading period on the script filename – this is intentional (on UNIX systems, a hidden file is denoted by a leading period in its filename).

Now we create the PHP script:

<?php header("HTTP/1.1 451 Unavailable for Legal Reasons"); ?>
<title>HTTP/1.1 451 Unavailable For Legal Reasons</title>
<h1>HTTP/1.1 451 Unavailable For Legal Reasons</h1>
<p>This request may not be serviced as a result of the issuance of a 17 USC 512 (c)(3)(A) (DMCA) infringement notice by Bilbo Baggins, Editor In Chief, Shire Weekly, relating to an article entitled "My Journey to Mordor," authored by one Frodo Baggins.</p>
<p>The aforementioned DMCA notice is on file at <a href="">The Chilling Effects Clearinghouse</a>.</p>

Obviously the text of the error message is only an example and you should edit it to suit your circumstances.

HOWTO: Reinstalling the System software on a HP16500B

Device: HP 16500B Logic Analysis System

Problem: Won’t boot. “SYSTEM FILE ERROR”, “Unable to load Module D”, “System File Damaged”, or similar errors on boot.

Cause: The system software is corrupted.

You will need:

  • at least one blank, formatted floppy disk (but it’s easier if you have four or five).
  • a PC or laptop with a floppy drive

Download the System 3.14 software from Agilent’s website. This can be found here. Unzip it into a convenient directory on the desktop. Open that directory — you’ll see five subdirectories: DISK1 thru DISK4 and PVTEST. These correspond to the different disks in the Operating System set.

Insert a blank, formatted floppy disk into the PC, and copy all the files in DISK1 into the root directory of the disk. Repeat for the other four disks.

Now insert Disk 1 into the analyser’s floppy drive and toggle both POWER switches to on (the rear-panel LINE one first, then the STANDBY switch on the control panel). The analyser will try and boot from the disk. Be patient — this takes about 10 minutes.

When the analyser has booted, touch the “Configuration” button, then select “Hard Disk”. Touch “Load”, then select “Format Disk” from the menu. Press Execute. You will be asked (twice!) to confirm that you really, really want to format the hard drive. You do, so confirm both requests.

Touch “Format Disk”, and select “Make Directory”. Enter “SYSTEM” in “New Directory Name”. Press Execute. Select “SYSTEM” with the spinner, then press “Change Dir.”

Now touch “Hard Disk” and select “Flexible Disk”. Touch “Load”, and select “Copy”. Use the Spinner to select the first file. Press Execute.

Remove Disk 1 and insert Disk 2, then roll the Spinner to refresh the file list. Copy all the files onto the HDD as above. Repeat this for all the other disks, in order Disk 3-4, then PVTEST.

Now remove the last disk (this should be PVTEST), and flip the switch to Standby. Count to ten, then flip the switch back to “ON”. The analyser should now boot.

The pain of (almost-)failure

It seems this project has consisted of one cockup after another…

– First off, I managed to swap the A and B buses on the level translator chips. The “A” bus goes to the disc drive, the “B” bus goes to the FPGA board. Get it the wrong way round, and the FPGA gets zapped with +5V. Cost: a spool of Roadrunner wire, 1/8th of a reel of solder, four tubs of desolder wick, and two days of tedious desoldering and repair work.
– Next, I cocked up the wiring on the disc drive port. Shorted the RD DATA pin with the TRACK0 pin (these are both outputs from the drive to the host). Cost: 20 minutes of signal tracing with the multimeter, a bit more desolder wick (it was just a solder bridge) and a few inches of solder.
– For additional bonus points, I managed to swap the READY/DISKCHANGE and WRITE PROTECT pins at the level translator. I could have just scribbled over the schematic but I figured I might as well fix it… Cost: an hour, a bit of Roadrunner wire, some solder, a craft knife blade, and a few lacerated fingers.
– To finish the whole shooting match off, the disc drive I pulled out of my junk box just happens to have a slightly iffy hub motor. Specifically, in certain orientations (“lying flat on the desk” being one of them), it won’t spin up. Turn it upside down and slam the disc in against the end-stop, and it will. Just. Interestingly once the disc is in place, it works OK. So I’m fine as long as I don’t have to swap the disc. Y’know, I think I might just find another drive…

Next problem: it spins the disc, seeks to a track and so on, but it doesn’t really read or write anything. “Your challenge, should you choose to accept it… make the damn thing work!”

Making a Wacom A6 ArtPad (KT-0405-R) work on Ubuntu 9.04

A couple of years ago, I picked up a Wacom A6 ArtPad at a computer fair for very little cash (I think it was about £5 or £10) sans power supply, and it’s been sitting gathering dust since I upgraded my PC and lost the serial port. Sadly it doesn’t work on 64-bit Windows XP (no drivers). Well, I’m using Linux now, so I figured, why not make the ArtPad work again?

(I also intend to learn to draw “at some point in time” — that may take a while…)

Anyway, on with the show!

You will need:
– A6 ArtPad, pen and power supply (I used a £10 Maplin switched-mode power supply — you need 12V DC, centre negative, and the orange-coloured round tip)
– FTDI-based USB-to-serial cable. I used one of FTDI’s “evaluation kit” cables, the US232R. This is optional if your PC’s motherboard has a serial port.

First you need to get the Artpad connected to the PC. If you have a proper, motherboard or PCI-mounted serial port, use it — the latency on those is streets ahead of the USB-to-serial converters. Skip the next step if you managed to find a serial port.

The default latency on the FTDI converters is 16 milliseconds or “whenever the buffer’s full”. If we leave the latency this high, you’ll notice a lot of lag (delay) between moving the pen and the cursor updating. That’s a bad thing. So let’s make the machine drop the latency to minimum when it initialises the adapter…

First we need to know the USB ID and serial number of the adapter. It’s usually 0403:6001, but it may be different. Let’s find out… Open a terminal, then enter the following command:


You’ll see something like the following:

Bus 001 Device 030: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Look for the line that references the FT232 (it’s easier if the FT232 adapter is the only USB device plugged in), then write down the Bus and Device numbers, and the ID. Now we need the serial number. This is where it gets a bit hairy… In the same terminal, enter this command:

lsusb -v -s 1:30

You need to replace “1:30” with the bus and device numbers (in my case, this is Bus 1 and Device 30), but with the leading zeroes trimmed. That means Bus 001 becomes Bus 1, and Device 030 becomes Device 30. Put those two numbers together, and you get “1:30”.

This should output something like this:

Bus 001 Device 030: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0403 Future Technology Devices International, Ltd
idProduct 0x6001 FT232 USB-Serial (UART) IC
bcdDevice 6.00
iManufacturer 1 FTDI
iProduct 2 US232R
iSerial 3 FTDN3G52
bNumConfigurations 1

(trim lots of stuff)

Note the ‘iSerial’ value — ignore the number “3”, but write down the string next to it (“FTDN3G52″ in my case).

Now open a terminal, then enter the following command:

gksudo gedit /etc/udev/rules.d/

You’ll be asked to enter your logon password — do so, then click OK and Gedit will open. Paste the following text into the file:

# Set the Wacom tablet’s latency timer to 1ms (stops all that nasty jittering and cursor lag)
SUBSYSTEM==”usb-serial”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6001″,
ATTRS{serial}==”XXXXXXXX”, PROGRAM=”/bin/sh -c ‘echo 1 > /sys%p/latency_timer'”, SYMLINK+=”ttyARTPAD”
# Assign a symlink to make things a little easier
KERNEL==”ttyUSB[0-9*]”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6001″, ATTRS{serial}==”FTDN3G52″, SYMLINK=”ttyARTPAD”

Now you need to edit the USB IDs. Replace “0403” and “6001” with your USB-RS232 dongle’s Vendor and Product IDs (respectively), and replace XXXXXXXX with your dongle’s serial number. Save the file, and close Gedit.

Lastly, we need to modify the X11 configuration a little. Enter these commands in a terminal:

cd /etc/X11
sudo cp xorg.conf xorg.conf.default
gksudo gedit xorg.conf

Copy this text into the file:

Section “InputDevice”
Driver “wacom”
Identifier “stylus”
Option “Device” “/dev/ttyARTPAD”
Option “Type” “stylus”

Section “InputDevice”
Driver “wacom”
Identifier “eraser”
Option “Device” “/dev/ttyARTPAD”
Option “Type” “eraser”

Section “InputDevice”
Driver “wacom”
Identifier “cursor”
Option “Device” “/dev/ttyARTPAD”
Option “Type” “cursor”

# yes, this really *is* necessary for the wacom
# remove it if the wacom tablet is removed
Section “ServerLayout”
Identifier “Default Layout”
Screen “Default Screen”

InputDevice “stylus” “SendCoreEvents”
InputDevice “eraser” “SendCoreEvents”
InputDevice “cursor” “SendCoreEvents”

Be careful — you will need to add the InputDevice sections to xorg.conf, but if you already have a ServerLayout section, don’t add a second one. Instead, copy the InputDevice lines from the ServerLayout section above into the existing ServerLayout section in your xorg.conf file.

Once you’re finished, save the file and close gedit. Plug the ArtPad in (power to the ArtPad, RS232 from the ArtPad to the dongle, then USB from the dongle to your PC) and reboot.

Lastly, configure GIMP and Inkscape to use pressure sensitivity — there’s more information about doing this [here](


First impressions: Canon EOS 7D

I’ve been spending money again. This time I’ve got (another) new camera. Or, as the rest of the family call it, a “money sink”. Bit odd really, they don’t really look that much like sinks… Oh well, on with the show!

So.. first impressions. I’m a 40D user, so I’m used to heavy cameras, but this thing is heavy with a capital H. About as heavy as a one-kilo bag of sugar. With the EF24-105L on there, it’s too heavy to hold one-handed for more than a minute. On the plus side the extra weight means the combination of EF100-400L + 7D isn’t as front-heavy as the same lens with a 40D. As another point of comparison, the combination of a 100-400L on a 450D or 500D (or any “3-digit D” series body for that matter) is just about guaranteed to ruin your wrists. I’ve tried it. It’s not fun.

But anyway, back to the 7D. It’s got plenty of shiny new features, and a few extra buttons to boot. The power switch and main control lock have been split into two controls, and it’s got the 5D-II/500D’s hi-def video recording mode. I still can’t really see the point of video recording on a dSLR, but I suppose it’s nice to have. There’s an extra “M-Fn” button next to the shutter release which seems to be used for very little in the default configuration, but there’s a customisation option which allows you to play with the button mappings (so you can, say, assign AF-lock to the M-Fn button).

The new viewfinder is very spiffy — the extra field of view is noticeable almost at first glance, and the LCD overlay is VERY nice. A bit like the LCD viewfinder on the Nikon D90, but done in a slightly different way. I love the viewfinder grid display — I’ve been meaning to buy a rule-of-thirds focus screen for my 40D, but never got round to it; the VF Grid Display option on the 7D means that’s no longer necessary (in the meantime, I’ve been working on the basis that the gaps between some of the rows of AF points is roughly on a thirds-line). I can also see the grid being very useful for helping to get horizons and so on level (I’m a horrible judge of the “levelness” of horizons!)

Autofocus has been totally redone as well, 19 AF points in the traditional Canon “diamond” pattern, split into 5 separate AF zones. As far as AF options go, you can pick a single AF point to focus on (Single and Spot AF — Spot only uses the centre of the focus point, Single uses the whole thing), a group of 5 in a “+” pattern (AF Point Expansion), or a zone (a group of focus points; there are five of these — left, right, top, bottom and centre). It still has the usual three AF modes — One Shot, AI Focus (tracking from when the subject starts to move) and AI Servo (always-on tracking). Lastly, it also has the AF Microadjustment feature that has become standard on mid-range to high-end Canon dSLR bodies.

One interesting feature is the “electronic level” — this is effectively a 2-axis (left/right and forward/back) digital spirit level, built into the camera itself. I’m not quite sure why I’d use this when my tripod has a perfectly good spirit level, although I guess the one on the camera might be easier to see (and maybe more accurate?)

I’m a bit surprised about the built-in flash, given that the 7D is a single-digit D-series body. It is, however, very nice to see a camera with a built-in Speedlite flash R/C transmitter — one less thing that needs to be kept in the camera bag, and also one less thing to buy batteries for! (Although, that said, I don’t actually have a Speedlite transmitter — the £100 I would have ended up spending on one has been spent on a spare battery for the 7D, and the remains have been put in the “buy a BG-E7 grip for the 7D fund”! 🙂 )

The Quick Control menu is very nice too — I can see it being useful for dealing with those inevitable “temporary lapses of memory”, also known as “now-which-control-does-that-itis” 🙂

Once again, the standard features are there — Speedlite Control (a FAR easier way to set up camera flashes than thumbing through the manuals to find out what C-Fn 22 is on a 580EX, then realising it’s different on another flashgun), the customisable My Menu (very handy!), and a few other things I’ve forgotten at the moment…

I think that more or less covers the main improvements.. Obviously the sensor has been improved — it’s now an 18MPix CMOS sensor, with Canon’s trademark microlens technology tagged on. The image processing is done by a pair of Canon’s own Digic4 chips, and the back display is a bit bigger and higher-resolution than on past Canon dSLRs.

Right, that’s enough of the good, now on to the bad…

The battery grip isn’t available yet (“preorder now, we don’t have a clue when it’s going to be released, but it’s sure to be in high demand!”). This is somewhat annoying because my hand-strap (Canon HS-E1) attaches to the metal bar on the bottom of the battery grip…

It would be nice to be able to make the RAW+JPEG button switch between RAW and JPEG (or RAW and one of the sRAW/mRAW modes) instead of switching both on for the next shot. I’d rather like to leave the camera in RAW or mRAW mode, then use that button to switch to a higher or lower resolution RAW mode (or maybe the JPEG mode) as needed.

Really, that’s it.. If I’m being pedantic it’s too heavy to hold without some form of camera strap or tripod (or Robocop’s hands!) — thankfully the shoulder strap is a standard item (it’s just a shame the HS-E1 hand strap and some form of attachment clip aren’t bundled as well — IMHO they should be, even with the 18-200 kit).

I’ll upload some photos as soon as I can coax the chinchillas out of the cage. I suspect I might have to bribe at least one of them with sugary treats…

Fedex WTF

Someone at Fedex UK needs to take a look at their call handling system…

“Thank-you for calling Fedex UK. Our main offices are currently closed. Press 1 to leave a message or book a pickup, or press 2 to hear our opening hours.”
“Our main offices are currently closed. *click*”

At which point the stupid thing hung up on me.

For extra giggles, the IBAN number printed on the bottom of the invoice is duff as well, or so my bank’s Online Banking system says. “IBAN number is not valid” it said.

Do they really want me to pay this invoice?

Homebrew SMD/SMT soldering oven

Once again, I’ve started an expensive project.

A few days ago, I was building up an LCD controller board, which involved soldering down a lot of small parts. Worst of all were the flatcable connectors for the LCD — these are made out of a plastic that seems to melt at about 100 Celsius. Not exactly good when your solder needs 175C just to melt, and its recommended working temperature is closer to 300C…

I figured there had to be a better way. I’ve been aware of [Kenneth Maxon’s article in “Encoder”]( for a while, in which he explains how to turn a “toaster oven” (also known as a “mini oven” on this side of the pond) into a fully working soldering oven. An article on the same thing in the November 2007 issue of “Elektor” sealed the deal — I was going to build one of these things.

The first problem was finding a suitable oven. After a ton of Google searches, I came to the conclusion that nobody documented their projects to the degree of mentioning how powerful their SMD oven was, or even how big. There was a note in the Elektor article that an SMD oven should be “around 1500 Watts”, but nothing about the size of the oven cavity (perhaps furnace is a better word) itself.

I eventually settled on a Cookworks oven which set me back nearly £60, has a volume of 25 litres, and four solid-rod steel-cased heating elements providing a total of 1640 Watts of power. So that’s 410 Watts per element, or 820 Watts on the top and bottom of the oven. The built in thermostat tops out at 250C, and the whole thing is put together with screws, not rivets — meaning it should be fairly easy to dismantle, then put back together.

I’m currently waiting for some parts from Farnell (some K-type thermocouples, thermocouple connectors, a syringe of 63/37 solder paste, a box of 22-gauge dispensing needles, and a couple of [Maxim MAX6675]( thermocouple controller chips), so I’ve gone back to the design side of things for a bit.

I’m a bit stuck at the moment, however. I’ve more-or-less sorted out the power supply side of things (rest assured I’m going to need a pretty meaty IEC cable), but the power switching is proving a little troublesome. All the 8-to-16-amp AC relays I’ve seen seem to have a break current of less than an amp at 240V AC. If I understand correctly, that means that they’re useless for switching the heating elements on and off, simply because an attempt to break the circuit would probably weld the contacts. It’s nice to see that the manufacturers are still wording their datasheets very carefully — “Oh yes, it’s a 240V 16A relay, but you can have either 16A *or* 240V, not both at the same time.” Just like transistor manufacturers, really.

I think I’m probably going to end up using a solid-state relay or a triac/opto-triac combination instead of the mechanical relay. I’m just not keen on their well-known tendency to fail shorted. At the very least, I’ll probably need to add some form of failsafe to kill the power if something **really** bad happens… What that failsafe will be, I don’t know. I’d rather not use a crowbar circuit; deliberately dead-shorting the AC line to blow the 10A fuse in the IEC inlet seems really silly to me.

My current plan is to test the oven’s ramp-up speed — that is, how long it takes to go from ambient to the full 250 Celsius — and if it’s too long, find another oven. If the oven does happen to heat up quickly enough (that is, from 25C to 250C in less than 5 minutes) then I’m going to buy the rest of the parts and build myself a temperature controller for the oven. If I ever find a solution to the power switching problem…

Divergent hobbies and new projects

Hmm. I seem to have found another interest.

Video electronics. More specifically, data transmission over analogue TV (and also video generation, but that’s a sideline at the moment).

There’s been some talk on the bbc-micro mailing list about the upcoming discontinuation of ITV Teletext, and how neat it would be to have an archive of the various Teletext services at a given time, and be able to either view them on a PC (or even a BBC Micro), or inject them into an analogue video signal.

I’ve found a copy of the original “Broadcast Teletext Specification”, September 1976, by the BBC, IBA and BREMA (it’s on if you guys want to have a look). Basically, this is the document that described the Teletext standard as it was at the start. It covers the bare essentials, and nothing more (unlike the ETSI EN 300-706 standard, which covers **everything**).

I figure I might have a go at building a Teletext receiver out of a couple of opamps, some passive components, some RAM, and an FPGA. Basically a box that takes a CVBS/FBAS composite video signal, waits for the VBI, strips the data from the Teletext packets and stores said data in RAM. A microcontroller then reads that data out of RAM and feeds it to a PC for storage.

I’ve also got two books on order from Amazon — “Basic Television and Video Systems” by Bernard Grob, and “Video Scrambling and Descrambling for Satellite and Cable TV” by Rudolf Graf. The latter is more to satisfy my slight interest in TV conditional-access systems, the former to learn more about TV transmission and reception technology.

I’ve got a box full of Philips UV916MD tuners, so I guess I just need to hack together an IF filter and demodulator, and see if I can at least get a valid (if somewhat shoddy) CVBS signal off of one of the broadcast TV channels…

One thing’s for sure, it’s going to be a fun week. Month. Year. Whatever.

First impressions on Ubuntu 9.04

After swearing that I’d give up on Windows since I started using Ubuntu, I’ve finally taken steps towards my goal. This morning, I hosed my Ubuntu 8.10 install and decided that it was high time I tried 9.04. After all, it’s been around for a good three months, so it should be pretty stable.

Well, it turns out it is stable. Just as good as its predecessor (8.10) in fact. I used the Alternate (text mode) installer because my system uses a FakeRAID, and said FakeRAID was detected with absolutely no problems whatsoever. In fact, the only way I could tell it was using a fakeraid was the prompt that asked me if I wanted to enable the FR volumes. Very nice.

First boot took less than 30 seconds, and the little bit of configuration I needed to do (installing the nVIDIA drivers and some security updates) took about 10 minutes. Most of which was the time it took to actually download the stuff… Installing build-essential, debhelper, Mercurial, Subversion, a few video plugins, and Kaffeine was just as breezy. And I killed off Compiz. Sorry, if I wanted Vista, I’d have gone to CCL, bought a copy and installed it.

There are a few things I don’t like, though. Most of them are to do with the app bundle included with GNOME…

* **The default media player (Totem) can’t handle DVB.** Despite the options in the menu, the DVB functions in Totem just plain don’t work. I think I spent a good half hour trying to make it work, got a channel list, but couldn’t get it to actually play video. I gave up, removed Totem and installed Kaffeine instead (which took five minutes or so to do a full scan of the local Freeview muxes, then displayed BBC One as its starting act, complete with EPG).
* **Sound-juicer seems to have “problems”.** Clicking “Help” in the Edit Profiles window makes sound-juicer exit with neither rhyme nor reason. Poof, gone.
* **Sandisk Sansa isn’t detected.** Pretty much as it says. 9.04’s kernel doesn’t detect my brother’s Sansa e280 media player. Meaning he’s cheesed off because I can’t copy bits of my music collection onto it for him to listen to.

On the plus side:

* The GNOME interface still looks pretty spiffy. One quick-access bar and system tray, one window list and desktop-switcher. Not a single bit of wasted space. Turning subpixel anti-aliasing off did clean it up a bit, though (white text in the Terminal gained a light blue tinge — turning SPA off fixed this).
* Rhythmbox seems to have improved a lot since the days of 8.04 — in fact, it resembles an earlier version of Amarok 1.4. I can’t actually see any point in installing Amarok any more…

So a bit of a mixed bag really… I like 9.04, but I’m going to be leaving 8.10 on my Eee until I can find some updated ACPI scripts and packages for it. I really don’t fancy installing Netbook Remix…