Robotic Tendencies
The personal blog of Robert McQueen

March 29, 2005

Argh, nosebleed

I worked at an ISP in London one summer a few years ago, and one of the guys there used to say things like “argh, total nosebleed” when things weren’t going well or proving to be difficult. I didn’t really adopt the phrase except on one occasion when I actually did have a nosebleed and went to the bathroom to sit it out until it stopped. I’ve always had intermittent spells of nosebleeds for as long as I can remember, particularly when its hot during the summer, or I’ve got a cold like at the moment. Nobody realised what had happened or why I’d rushed out until I got back to the office and I explained that there was no problem, I had actually just had a nosebleed… It seems particularly apt at the moment, I’ve had 5 or so in the past 3 days whilst stressing about completing a PhD application I’ve left until absolutely the last minute (through nobody’s fault but my own hesitation about whether or not to apply). Argh, complete and utter nosebleed!

posted by ramcq @ 1:05 am
Comments (1) .:. Trackback .:. Permalink

March 28, 2005

Actually deliver signals

$ darcs record
hunk ./trace/main.c 90
- if (ptrace(PTRACE_SYSCALL, pid, signal, NULL) < 0)
+ if (ptrace(PTRACE_SYSCALL, pid, NULL, signal) < 0)
Shall I record this patch? (1/1) [ynWsfqadjk], or ? for help: y
What is the patch name? actually deliver signals
Do you want to add a long comment? [yn] n
Finished recording patch 'actually deliver signals'

This doesn’t actually make my project work any better, it just means that it exits rather than goes into an infinite loop when I cause the process being traced to segfault, which I do whenever it makes a fork or vfork (for some reason gcc does this, so my project can’t trace itself being compiled) syscall versus clone which is how all the cool kids implement fork these days.

posted by ramcq @ 2:45 pm
Comments (0) .:. Trackback .:. Permalink

March 27, 2005


I’ve joined my brothers & sister and their families at my sister’s flat in London for an Easter lunch. The Easter bunny has visited and my nieces have, with usual amounts of screaming and a little bit of help, located all of the chocolate eggs left here by the Easter bunny. Currently people are watching some mediocre quality 80s style Easter day viewing – Agatha Christi’s Poirot in Evil Under the Sun, although I think most people have tired of it now and are leaving soon.

On the way here I was fairly pointlessly using my soon to be replaced Nokia 6230 with O2 GPRS and Bluetooth to say “woot *on train*” on IRC, and check the times for when and where I had to change train. As with other times I’ve used GPRS, it’s been intensely frustrating. I can cope with a slow connection, and a lossy connection, so long as ssh doesn’t drop, and web pages load eventually, but the problem that continues to vex is the horribly unreliable connections. It can’t seem to keep a connection up for more than about 5 minutes – the PPP connection keeps dropping for one of a variety of reasons.

One I don’t understand is the phone just dropping the PPP connection with the laptop – it’s supposed to be a packet data service, so why can’t the phone keep the connection up with the laptop even when there’s no signal? I’d rather a few packets get lost than have to re-restablish the connection. You even get the old-fashioned NO CARRIER message if you try to establish the connection when there’s no coverage.

The second is more understandable but I think still ill-conceived. I get this error in syslog: kernel: rfcomm_recv_frame: bad checksum in packet. Looking at the code, every rfcomm packet payload has its checksum verified, and the whole packet is unceremoneously dropped with apparently no nak or retransmission if the checksum doesn’t match the data. As an emulation of a serial link, I think this is pretty poor – serial links may scramble bits, but I doubt they lose a few k of consecutive bits. Unsurprisingly, pppd’s packets with their own checksumming and such can’t deal with this, so the connection just drops.

I can’t put persist on in pppd either, because when this error happens, the connection seems to drop uncleanly and is not closed from the phone’s perspective, so it doesn’t reply to requests to open a new rfcomm connection. To compound the problem, the “Disconnect all active clients?” prompt when you try to disable Bluetooth doesn’t actually work – I have to powercycle the phone. Does anyone grok rfcomm? What happens if I just comment out the checksum check, or modify the code to allow data packets with invalid checksums to propogate up to pppd?

Hopefully the situation will get better when my new phone is activated, although I’m suspicious that the even patchier 3G coverage will just make the connection even worse, and they won’t yet have realised that packet connections should actually persistent even when there’s no coverage. Even more hopefully the phone’s Bluetooth implementation will be less buggy and not need powercycling when the connection gets dropped. I need to get gnokii talking to my old phone (either with Bluetooth or with the USB cable that came with my new one) so I can load the contacts and calendar entries onto my new phone.

And when powernowd scales the CPU downwards, rhythmbox skips, but let’s not get started about rhythmbox… a series of patches are forthcoming. 🙂

posted by ramcq @ 4:12 pm
Comments (1) .:. Trackback .:. Permalink

March 22, 2005

Momentary clarity

My eyesight’s not bad, only slight short sightedness, but I took to wearing my glasses all the time in school because it irked me to have to keep putting them on and off to see certain things. On a bit of a whim I decided to give contact lenses a try, and I had an optician’s appointment today to check I was OK to get some, and have them fitted.

After a few tests and some pondering she put a pair of 2-week lenses in for me to try out, and let me have a wander round town for 20 minutes to check they were comfortable and fitted properly. It was so cool, you don’t realise how much glasses suck until you’re given the opportunity to see clearly without them. Peripheral vision without turning your head! And contact lenses won’t wear holes in the sides of my nose, I don’t have to take them off to go rowing (or swimming? dunno), and I’ll (hopefully) stop compulsively poking myself in the nose to push my glasses back up (which I do even when I’m not wearing them).

Whilst graced with such visual lucidity I dropped in to Carphone Warehouse and discovered my O2 contract was ripe for termination, so got myself a new Nokia 6630 on Vodafone 3G. I went back to the optician and she took the lenses out and ordered some for me, and then discovered I have to wait up to a week for them to arrive and go back for a lesson in poking myself in the eye, etc. It was intensely frustrating to walk back in to the optician with contacts on and out again with my crappy old glasses.

In other news, I discovered Galloway & Porter (a bargain/factory return bookshop in Cambridge) have a large number of foolishly cheap O’Reilly books in the basement, so I bought four (Perl Bookshelf, Perl Cookbook, C# Nutshell, SQL Nutshell) for only £30. Wahey! Returning to college I found out that my Nokia 6630’s locked to Vodafone and nobody’s cracked the locking codes yet, so I can’t put my O2 sim in – I’m unable to use it until next week when my number ports over. Roll on next week!

posted by ramcq @ 7:33 pm
Comments (0) .:. Trackback .:. Permalink

March 22, 2005

Managing photos

What do people use to manage and publish their photos? I’ve got a new digital camera (Canon IXUS 500 if anyone is curious, great for the price) and already have over 1000+ photos from it and photo CDs, and 7 films that still need developing. I’d like a web gallery that does this:

  • Stores the originals sensibly (filesystem ideally) and without modification
  • Generates sensibly-sized slides and thumbnails for web viewing and ideally caches them
  • Allows me to easily rotate pictures for viewing, either preserving the original or doing it losslessly
  • Allows me to arrange pictures into galleries and associate captions, and ideally move them around
  • For bonus points, reading EXIF data such as times and orientation
  • For double bonus points, integrating with WordPress somehow to handle linking/inclusion would be cool

A program that did these and had a good export to web feature would be acceptable also. But generally, I want the moon on a stick. Anyone got any recommendations?

posted by ramcq @ 2:51 am
Comments (17) .:. Trackback .:. Permalink

March 21, 2005

Blog moved

My registration for has now completed, so it is now the canonical URL for my blog. I will replace with annoying redirects, and take it off-line after a while (it’s primarily the domain for my family’s e-mail).

posted by ramcq @ 2:15 pm
Comments (0) .:. Trackback .:. Permalink

March 21, 2005


I was trying to quickly (always a mistake) configure a printer on my (sarge) laptop the other day using GNOME CUPS Manager, which I’d previously been very impressed with when it had Just Worked(tm) on a friend’s Ubuntu box. Unfortunately, it didn’t really work for me, because unlike the one in Ubuntu, didn’t realise I was in the lpadmin group and didn’t need to become root to add a printer, and also unlike the one in Ubuntu, asksed for my root password and not my sudo password, because it or gksu hasn’t been patched, but invoked gksu wrongly, so it didn’t work anyway – I had to use the web interface. I certainly remember that whilst working on a project using GNOME CUPS Manager over the summer, I had to patch it to work with our setup (and not crash if you forget to install the icons *g*). Does anyone except Debian not patch it and expect it to Just Work?

Looking at the Ubuntu package, recognising I’m in the lpadmin group and hence not needing to become root to manipulate the printers is a patch they have applied. It relies on the assumptions that CUPS is running on localhost, and that some bloody-minded admin hasn’t renamed the lpadmin group to something else – these are true on Ubuntu, but not necessarily on any given Debian box. How do we solve this for Debian so our GNOME CUPS Manager Just Works – if the server’s on localhost, read the configuration file to see what the admin group is, or is there a sensible way to find that from the server?

This is probably one of many examples where Debian packages aren’t as usable as the Ubuntu equivalents because Debian users are more likely to challenge the assumptions. Strictly speaking, there shouldn’t need to be this usability gulf between an almost-identical group of packages in Debian and Ubuntu. What’s the right strategy to solve these kinds of problems elsewhere?

As a side note, how is foomatic actually supposed to work if you don’t cheat and install all of the pregenerated PPDs in the foomatic-filters-ppds package?

posted by ramcq @ 2:11 pm
Comments (1) .:. Trackback .:. Permalink

March 18, 2005

Warped sense of distance

After a very short time at university in Cambridge, doubly so at a college in the centre of town, everyone quickly develops a very warped sense of distance. Anything that takes more than about 10 minutes to walk or 5 minutes to cycle to is Really Far Away, because everything that concerns students in the city is so centralised. Nothing highlights this more than the ongoing debate about which of my college’s two “outlying” undergraduate hostels are further away from college – the one I currently live in, or the one I was in last year. Both have proved to be sufficiently far away from the center of town to cause people who live in college to not bother to come and visit on occasion, or go back home rather than trekking to join us for a further drink. A quick check on Map24 in indicates that they are both in fact the same distance from college – a mere 0.35 miles. 😛

posted by ramcq @ 4:03 am
Comments (1) .:. Trackback .:. Permalink

March 18, 2005

Beer, Ubuntu love, project stress

Although I was still feeling pretty ill yesterday, I went out last night for a few pints with mjg59 and robsterat the Free Press in Cambridge, a nice non-smoking pub with a few Greene King ales and some interesting trinkets on the wall. Despite having been there several times with Debian folks, and it being just over half a mile from where I currently live, I always have to walk round the wrong way and find the other three pubs in the vicinity before I manag to find it again. Thankfully, on the way back from there to my place to sample some gin and horrible cheap vodka, mjg59 showed me the correct unmarked lane to get directly between the pub and the main road, betraying the fact he’s been in Cambridge for far too long (although in his defence he has lived in the area)…

Later on, as an acid test for Matthew’s ACPI work, we tried installing the Ubuntu Hoary Preview on my really appallingly crappy FIC Celeron 366 old laptop, which previously under Linux did things like never enabling the CPU fan, so hard locking intermittently, and suspending to disk (with APM) when the battery was low, even though the AC was plugged in. It’s also got a really dodgy LCD (not TFT) screen with burnt patches, and weighs a ton. It took quite a while for Ubuntu to install, but booted in pretty decent time after that thanks to magic readahead and hotplug tweaks, and to my absolute amazement actually hibernated and resumed correctly, and suspend to RAM worked too when we enabled it. The CPU fan came on at 55C after making it do some work too, although the GNOME battery applet didn’t seem to notice when it was taken off AC, and lifting the lid doesn’t send a wake-up event like it claims to. Even so, I’m still glad I bought an X40, which is about half the weight and a hell of a lot quicker, and I’ve upgraded the acpi-support packages on it to Hoary’s latest versions to sort out some niggles with stuff not working after resuming from sleep – need to fiddle with my kernel and get hibernation working too. As a side point, I was also really impressed with the Update Manager & notification applet now included in Hoary – it’s exactly what the people I’ve given Ubuntu to in my building need to remember to install security updates.

Today I caught up quite a bit of sleep and felt a lot better, until I realised I had to go and see my project (I know, it’s fairly crackful…) supervisor and report on my progress this term. Unfortunately, I’m mind-bendingly behind schedule due to essentially having achieved nothing at all for several of the weeks in this term – I was hacking on it beforehand and my last darcs patches were from early February. He really wasn’t happy with me, and it was an awkward half hour or so while I explained how much more needed doing. The frustrating thing is even after I’ve done the coding, I have to write a dissertation, and I get marked for that only, and not the code… Now that lectures have finished, and supervisions are winding down, I’m staying in Cambridge over some of the easter break to try and nail it before next term and exam stress kicks in. Had a few pints in the college bar (lots of St. Patrick’s day drunkards around) and a game of Mao with my friends, and now I’m off to bed…

posted by ramcq @ 3:41 am
Comments (5) .:. Trackback .:. Permalink

March 16, 2005

Fontconfig fun

As is common when I upgrade fontconfig, all of my fonts changed appearance fairly randomly, using the wrong kind of hinting, selecting the wrong fonts, and generally looking very ugly. The usual problem is that debconf runs and decides something different to how I had it configured before, although I can’t quite see why (possibly related to losing my debconf cache to HDD corruption some time ago…). This time round, after upgrading from 2.2.3 to 2.3.0, I ran dpkg-reconfigure fontconfig and successfuly set it back to native hinting, and things looked roughly like they did before, with one major exception: some websites which requested serif fonts, and had previously used Bitstream Vera Serif, now used some other random font which hinted very badly and gave me coloured fringes, and looked generally horrible. The problem also applied in some cases to other sans and mono fonts on websites too, but not all of them.

After a while of using Firefox’s excellent Web Developer Extension to fiddle with the CSS, reading /etc/fonts/fonts.conf, and stracing firefox to see what fonts it was actually loading, I managed to work out that the change was due to this commit in fontconfig CVS. Rather than the old choice of just looking for Times New Roman to provide Times, Arial to provide Helvetica, and Courier New to provide Courier, the fonts.conf in 2.3.0 binds these to the Postscript Type1 Nimbus family of fonts that come in the gsfonts package, which 2.3.0 is now able to read even without having gsfonts-x11 installed. Previously websites which requested Times, "Times New Roman", serif fell back to Bitstream Vera Serif (I don’t have the Microsoft fonts installed) and looked fine, but now are using Nimbus Roman 9 to provide Times, causing the change in appearance.

My first attempt to fix this was to enable the autohinter on these fonts, rather than relying on the native hinting, which works well for the Bitstream Vera and Microsoft fonts, but not otherwise. It was better, but still not that good… So I just overrode the mapping of Times/Helvetica/Courier with my own mappings to the Bitstream Vera fonts. Which worked brilliantly, you can download my ~/.fonts.conf here. I left the autohinting stuff in because occasionally pango might use a glyph from the Nimbus fonts anyway. It also includes a snippet to put the fixed font back even if you have bitmapped fonts turned off, which dato was asking about in #debian-devel.

Sleeping from 7am to 1pm, and the fact I have no food in my room, cupboard or fridge, is probably not helping my cold, so I still feel utterly terrible… *sniff*

posted by ramcq @ 2:34 pm
Comments (3) .:. Trackback .:. Permalink

Next Page »