Archive for November 2007

On Metadata

The last release (Ubuntu 7.10) was the first in which we shipped Tracker enabled by default; this service runs in the background and indexes all of your files, storing information about them in a metadatabase which can subsequently be searched. The two main ways of searching are through the deskbar-applet (press Alt+F3) and within the nautilus file manager (press Ctrl+F).

That’s all well and good, but since we now have a metadatabase and indexer, what else can we do with it?

The first thing that comes to mind is improve those applications that attempt to maintain their own metadatabase; those that tend to be the primary apps that we use because they manage our all-important content. I’m going to pick on Rhythmbox here since it’s our default music manager, but the same ideas can be applied to our default photo manager, F-Spot, or any other application concerned with content.

A no-brainer is that Rhythmbox no longer needs to worry about walking directory trees, keeping inotify watches on them, identifying media files, etc. Tracker already does all of that. All we need to ensure is that tracker collects all of the metadata that Rhythmbox will need to start with — we expect it to come along and add additional metadata, such as the last time I played the track, where the album cover thumbnail is stored, etc.

Another thing you get to eliminate is the concept of “the Library”. Your entire home directory is already indexed, why care about partitioning it? We can just show the user all of their music, or all of their photos. Immediately. With no need to import from one arbitrary location on disk to another.

Tracker should then grow removable device support, indexing files on removable devices just as it does on the primary filesystem; but keeping mount-relative paths to the files and remembering particulars such as serial number, label, etc. for the device they were found on. This has immediate benefit for Tracker anyway, I can search for a presentation and I’ll be told which USB Key I wrote it to so I can find it again — I’m terrible for losing presentation slides after I’ve given the associated talk.

All Rhythmbox then needs to do is query Tracker for removable devices containing music, and show them as icons in the panel; the contents are already indexing — or if you’ve already used that device, indexed (no more wait for it to index my 40GB media player every single time I insert it). Since there’s just one metadatabase behind this, you may as well add an “All Your Music” option to the top which amalgamates the collection of music on your filesystem and removable devices, eliminating duplicates; this would be the thing you’d share, getting rid of yet another bug.

We then don’t need import dialogs. If I plug a media player in (or a camera, this applies equally there), the content immediately shows up in my browser. The only question we need ask the user is whether they wish to add the music on the device to their local collection, and that can be done inline in the window rather than with an obtrusive dialog. For F-Spot the experience would be that on plugging in a camera of photos, the main F-Spot window would open with the photos already in place (or appearing) in the rest of your collection and a “add these to your collection?” bar at the top — since you have the full app, dealing with adjusting images on import, or removing them entirely is much easier than fiddling inside an option-filled dialog.

The only other backends we’d need would be for remote media such as shared music –why isn’t there a shared photos standard yet?–, online content such as last.fm or flickr and devices that don’t act like disks; there are still some media players and cameras out there which are designed around import/export APIs.

Yet another change of blog software

I’ve not really been having much luck with blog software; I’ve found that the harder the software is to use, or the more maintenance it requires, the less I care about blogging.

Ironically, perhaps the easiest time was with Livejournal; it’s easy to set up, maintain and post to simply because it’s a hosted service. Unfortunately you don’t get a great deal of control over the output, and any kind of extras you want to add are out of the window. (Without paying somebody, anyway).

I moved from that to a Pyblosxom blog hosted on my own webserver; this had all the control over the output that I needed, with lots of optional extras. Management was a pain though, relying on me logging in to the web server and editing files directly — since nobody, especially me, likes writing raw HTML I’d chosen Textile as the formatting plugin but could never remember the formatting codes. And dealing with comments and spam? Forget it.

The next change in my experiments came when I moved my blog to being hosted by a friend, and he suggested Typo; the idea here was that it’s a drop-in webapp, so has an admin interface for writing posts, managing existing ones and dealing with comments and spam. Unfortunately it’s one of the slowest and least stable pieces of software I’ve seen, it’s really put me off learning Ruby on Rails as a result! And as a piece of software, it’s pretty inflexible; idiotic limitations made dealing with spam comments an issue and niceties like trackbacks almost impossible.

So I’m back to self-hosting my website and blog again, and at the recommendation of just about everybody, have installed WordPress to do it.

Since this means a change of backend software, this will almost certainly have spammed Planet again; sorry about that. I blame the original Planet author, really, I do.

Also I’ve adjusted my feed URL on Planet Ubuntu; previously this was a technology-only feed, but I’ve received far more complaints about the lack of posts about my flying exploits than when they were present — so the majority appear to want them!

Flying in circles

Thanks to a combination of bad weather and the trip away for FOSSCamp, UDS and AllHand, it’s been six weeks since I last got a chance to fly! Last time we’d covered a second session of stalling and recovery, and the next exercises to cover were the all-important circuits: taking off, flying around the field and landing again.

Even despite the weather cancellations before the trip, I knew it’d be at least four weeks gap, so I’d taken the day off and booked two separate lessons either side of lunch. The idea being that we’d use the first lesson for revision, going over all the other exercises to make sure that I could still remember how to fly — and then use the second lesson to start in the circuit, since I’d be learning something new … landing!

G-WAVAMost people seem to assume that summer is the best time to learn to fly as the weather is better, but today was one of those days that proved the opposite. Although the temperature was around freezing point, the skies were clear and the wind calm.

First hour went nice and smoothly; we covered taking off, climbing, descending, turning (including while climbing and descending) and some practice of stalling and recovery. It was reassuring to know that I hadn’t forgotten anything in the long gap between lessons, and still had the feel of the plane.

The weather had put on a special treat for us; for much of the day, fog was clinging to the ground and hills, with many fields still frosted over. From the air it looked extremely pretty, if a little eerie.

After lunch at the airfield’s cafe it was time for the second lesson, circuits! We’d already covered the ground briefing for this in one of the cancelled lesson slots before, so we were ready to go straight up. Another student had flown the plane over lunch, so only a relatively short transit check was needed; checking the fuel levels and other important bits.

John was to fly the circuit first, and talk his way through it as I followed through. A circuit, for those not flying, is: take off; climb and make the first 90° turn onto the crosswind leg; level out at 1,000ft and make the second turn onto the downwind leg (parallel to the runway); call the tower and perform checks for landing; make the third turn onto the base leg and begin the descent before making the final turn onto final and landing.

We were on runway 36, so the traditional left-handed circuit was the order of the day. Wellesbourne switches between left and right depending on the runway direction so as not to overfly Wellesbourne village itself. It’s not a truly rectangular circuit either since there’s three noise-sensitive villages we have to avoid on our way around.

Over lunch, a Kittyhawk had landed at the airfield and was ready to leave slightly before we were; treating us to one of the pleasures of flying from a purely GA airfield. The FISO informed the departing Kittyhawk that the circuit was clear and asked whether he would like to perform a low-level fly past (normally pilots have to beg the FISO or ATCO to show off, and get told no). So as we lined up on the runway, we were treated to a short air display from the warbird, flying past the tower, climbing into a loop and performing a bombing run on the airfield on the way back before heading home.

Entertainment over, work time. John flew the first circuit, then handed me control after landing for a touch-and-go (taking off again without stopping) and it was my turn. I flew six circuits in total, one straight after the other. At first we were the only ones in the circuit, but by the end we were in a queue of three planes all heading down at once. In fact, on one of the goes round, John decided to use it as an opportunity to perform a go-around (aborting the landing).

I think I got something wrong on each of the circuits. My first landing was somewhat rough, having flared too early and been rather too high most of the way down. The next I turned onto final too late and spent most of the time trying to line up with the runway again; in fact, I did this a few times — and turned too early at least once too. By the last landing, I’d got the turn just right, and kept the descent perfect as well; lined up with the runway and at the right height and speed all the way down. Just a slight shame I ruined it with a slightly untidy flare and by bouncing the plane on the touchdown.

On the whole, I was really happy and so was my instructor. I’d been in control the entire time, and had been correctly using the power and attitude to control the approach. None of the landings may have been perfect, but I have plenty more hours of circuits to go yet — dozens of hours in fact — to get that bit right.

P/UT Hours Today 1:50, Total 10:50