Downtime brought to you by stupidity

I've had this problem with random crashes with my new-ish computer which I haven't managed (or bothered) to pinpoint. It's something hardware related, but that's all I know. Last saturday the thing crashed once again and after I rebooted it, it wouldn't start. There was, on the console, some complaint about missing modules for INPUT products and a last line with nothing on but "pci", then nothing happened. I pressed enter a couple of times, decided it was broken and shut it down frustrated. Reiserfs3 has gotten some files confused when the system has crashed a few times (hooray for journaling... I should really try ext3/XFS/JFS/Reiser4), so I thought that it had finally screwed up something vital.

At the beginning of the week I downloaded a CD image of Knoppix, burnt it to a CD and and booted my computer with it. Worked like a charm (first time I used KDE in a while. Still not to my taste.) I wasn't feeling much like doing forensics on the piece of junk so I didn't properly get to it before today; fscking my HDs found nothing strange so I just reinstalled the kernel and rebooted the machine. The same problem. Then I started reading the boot process output a bit better; among other things I noticed it had already loaded pretty much everything including sound card and network adapter drivers and the error messages were about hotplug. Oh boy. The first thought was to again reboot with Knoppix and tinker with the boot process; the second one was to press Ctrl C.

Next time I'll try that first, not a week afterwards.

Article page

Lessons learned

We're working on dropping the mxDateTime dependency from Straw for version 0.22. It's proving to be a bit more difficult than expected, and exposes two design blunders made early in the development. The other is easy to circumvent, the other one isn't.

First, you should store a version identifier in all files you create that you expect to read back. Including the data store. That's easy enough to deal with later on, luckily, just assume that in the case of absent version identifier, it's version 1.

The other is the result of too eager use of Python's pickle mechanism and a total brain-fart. For whatever reason, I've been storing mxDateTime instances in the database. Duh. Now to get rid of those, we can't drop the mxDateTime dependency completely. Luckily we can restrict it to the conversion function called, if necessary, on start up, but still, that's something I should have seen coming. It's not as if it's difficult to serialize a date object independently of the object format.

I'll just close this with a quote from Franklin P. Jones, whoever he is: Experience is that marvelous thing that enables you recognize a mistake when you make it again.

Article page

My thumb hurts

I bought myself yesterday Jak II. Not only because it was developed using Lisp. It rocks. It's also at times maddeningly difficult. So I just spent an hour with the blow up the ammo mission, one of the first ones. Oh well. Last time I played a platformer, the hero featured in the state of the art title was a green rabbit.

No, it's not making Straw's progress towards 0.22 any faster.

Article page

Christmas in Madeira

Spent the christmas in Funchal, Madeira. It would have been more fun to be home for christmas (apparently -11 degrees celsius and snow) and be at Madeira some other time (a week of listening to christmas carols gets pretty taxing, and half the time everything was closed.)

The island was in some places breathtakingly beautiful, with lovely flora and absolutely stunning views (or scary views, depending on what you think about a bouncy, narrow road with a low fence and a 200 metre drop right next to it.) Walking along the levadas was quite an experience, too: we only traced one suburban levada and a part of another easy one a bit west of Funchal, but it was a lot of fun and we got to see the nature — and the sheer bluffs — a lot better than through a car window. And the weather was a lot nicer than what would have had us believe: instead of constant rain and thunderstorms, it was mostly sunny. Some very nice colonial architecture, too. And when the shops were open, there was a surprisingly large number of them, for such a small town.

But then there was the food. And the restaurant scene in general. I wasn't expecting a culinary dream world, having visited Lisbon earlier in the fall, but still it was a disappointment. Probably 95% of the restaurants served similar cuisine, I guess it's what would be called Madeiran. And in all those restaurants, the menu was nearly identical. There were the four salads, the four soups, the six omelettes, a bunch of fish and red meat courses. As a vegetarian I didn't sample most of that — the tomato and onion soup with a boiled egg wasn't nothing to write home about, though — but a reliable source informed me that at least the fish was mostly mediocre (no espada with banana next time, I guess.)

And the wine... I know there are good portuguese wines, but when you can't remember the brands you are left wandering in a wilderness of barely drinkable dishwater. Occasionally, with luck, it was OK, but sometimes you just had to concentrate on water. And of course trying to find anything from, say, France, Italy or Spain was pretty much a lost cause. Mostly it was all Portugal all the time. Mind you, the local beer was very nice light lager, just the sort of stuff you want in hot weather.

To top off the wonderful dining experience, add totally ham-handed service. Hot tips for waiters everywhere: don't remember who ordered what. Don't remember who drinks what. Serve the dishes one at a time, not bothering to serve everyone in a table at the same time. Ignore the empty wine glasses of customers; when they start pouring wine themselves, come over, remove the bottle from the hand of the customer without a comment, and see if there are any empty glasses left, for example, in front of people who don't drink the wine in question. Or half-empty, so you can make them too full. You wouldn't want to be forced into a pouring intervention too soon again, would you? Oh yeah, and a really nice touch is to forcefully make the customer read the awful Finnish translation of the menu when she is reading the English version. I know tourists are probably tedious, but it would be nicer if they didn't treat us as children and try to speak the three words they know of our native language, especially as we have little trouble speaking English which will probably make communication a lot easier.

Mind you, there were exceptions. And I'm sure you could find more if you looked well enough. There was a decent indian restaurant there, and Villa Cipriani, the Italian restaurant of Reid's Palace, was fabulous, with flawless service, a good wine list and superb food. The quality was mirrored in the price, too, though.

I don't know, of course you can't avoid all the effects of an economy ran by tourism, but having people in front of the restaurants trying to get you in very aggressively is unpleasant when you are just trying to have a walk. Not to mention the taxi drivers who think they know better than you do where you want to go. No thanks, we've already seen the botanical gardens, we just want to get to the centre of the city. No, we're not going to Monte at this time, our plane is leaving in four hours. And no, no levadas either, just get us to the centre of the city, will you?

It was twenty years since the last time I was in Madeira, and I have to admit I don't remember too much. Maybe we'll go and see it again in another twenty years.

Article page

Categorizing in Straw

I've been working on adding feed categories into Straw for the last two weeks or so. Well, for a few evenings during the last two weeks.

I first attacked the problem with the traditional(?) hierachy. We have a tree widget for the feeds anyway, so it was just a question of adding the hierarchy. I got pretty far with it, it displayed the hierachy, you could open and close branches and it would remember their status, and you could drag things around (this thread was immensely helpful when hacking on the d'n'd stuff.) At least it mostly worked for me, even though I heard some conflicting reports :-)

Naturally by the next morning I had in the back of my head a different approach to the problem. I've never much liked navigating tree views — yes I'd love to see a column view in Nautilus — and hierachies are a bit restricting, aren't they?

At first I was just pointing out the possibilities for discussion, but by next evening I had decided to do it. Multiple categories per feed, no category hierarchy, one category visible at a time.

Savannah being sort of dead at the moment has put bit of a damper on progress, but still, it's starting to look sort of working, even though it'll still need quite a bit of love before 0.22. There are still things broken, unfinished, or working non-intuitively, but the categories are sort of

Article page

Scheming for freecell

I didn't really feel like starting work on Straw's subscription categories today, so I was procrastinating playing freecell. Then I got once again annoyed by the fact that the Aisleriot freecell doesn't support supermove, so I decided to fix that instead. I think that was the first time I did anything in Scheme beyond a hello world (so the patch isn't big, but I needed a bit more code to create an initial deal to make testing things fast.) Gotta love Aisleriot, it was just so much nicer than it would have been had it been in C.

Article page