Robotic Tendencies
The personal blog of Robert McQueen

May 14, 2005

Sigh

As a result of viewing an over-large jpg in Gimp, I ran out of disk space on ~ today whilst I was fiddling around trying to ssh to localhost and X forward something so I could run ethereal on lo and see what it was doing. The upshot of this was that my X auth cookies got munched when ssh tried to fiddle with them, so I was unable to open any new X clients and was forced to restart my session, so decided to try and make X listen on tcp to avoid the ssh hassle. In the process, I discovered two things:

  • Editing /etc/gdm/gdm.conf to remove -nolisten tcp from the X server command line is apparently not sufficient – it adds it on the end of the line anyway. I had to use Xnest in the end.
  • Rhythmbox has a thread which saves your playlists into an XML file. It makes a temporary filename, calls xmlSaveFormatFile to write the playlist to the temporary file, and then renames the temporary file to the original one, with absolutely no regard as to whether or not the previous function worked or not. So I’ve lost all of my Rhythmbox playlists. Again. One RC bug coming up.

Sigh.

Update: When going to update my todo list, I discovered that stickynotes-applet ate it. I am unamused. Rather than the active idiocy of making a temporary file and failing to check if it was successful before clobbering the original (did someone get distracted when writing that? a bee came into the room?), this is just sheer idleness. It fails to make a temporary file at all and just unleashes the same xmlSaveFormatFile on the only existing copy of all of your notes, giving me my 2nd RC bug of the day. Marvellous. Just because it says xml doesn’t mean it can never fail. I’m not trying to find them, they’re forcing themselves on me. Sorry, but there’s just no excuse for throwing my data away like that.

posted by ramcq @ 6:47 pm
Comments (3) .:. Trackback .:. Permalink

April 24, 2005

Things that just don’t work

I’m getting increasingly annoyed with quirks in Rhythmbox’s UI and don’t have enough patience to track them down and patch them by bumbling through the strange bonobo hoops and layers of object abstractions they’ve used at every stage to implement what is at first glance not that hard a problem (although as a disclaimer, I don’t really appreciate the issues involved, it just *seems* highly overcomplicated). I had a browse around for some other music library program for GNOME, and found Sonance, which is fully buzzword enabled with C#, Glade and GStreamer, and initially started as an XMMS-type queue songs and play them thing, but looks in SVN trunk to have grown into a program that quite resembles Rhythmbox’s UI for a music library, but might grate less initially and be much easier to hack. Worth a try at least, so I installed Mono 1.1.6 and Gtk# stuff from experimental (why do people insist on building packages in experimental against eg experimental’s libc? I’d have happily waited for that one to hit unstable), checked gst-sharp (the only remaining dependency) out of Mono CVS, and tried building it. The result?

robot101@alpha:~/projects/sonance/gst-sharp$ ./autogen.sh
**Warning**: I am going to run `configure' with no arguments.
If you wish to pass any to it, please specify them on the
`./autogen.sh' command line.

Running aclocal  ...
Running autoheader...
Running automake --gnu  ...
Running autoconf ...
configure.in:9: error: possibly undefined macro: PKG_PATH
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
**Error**: autoconf failed.
robot101@alpha:~/projects/sonance/gst-sharp$

The line in question just says PKG_PATH= to clear a variable before using it, and has been the same in gst-sharp CVS for about a year, so autoconf must’ve changed its mind about what’s allowable. As a consequence I’m unable to try Sonance or any other gst-sharp based programs such as Muine which I’d have also liked to try. Guess I have to stick with shouting at Rhythmbox for the moment. This awesome t-shirt suddenly becomes more tempting.

Update: Interesting. That *ERROR* actually meant it produced me a configure script anyway. Wow… cool.

posted by ramcq @ 7:50 pm
Comments (3) .:. Trackback .:. Permalink

April 15, 2005

Today is not your day, tomorrow doesn’t look good either…

I’ve just been round at robster’s room helping him replace the AMD Sempron 3000+ which he had in his new Biostar 210V (similar to my 200V) and the BIOS apparently didn’t recognise. We put in an SB Live 7.1 because on-board VIA 82xx sound is crap (even if the planets are in alignment, DXS is in the right randomly numbered mode, and you manage to get ALSA and friends to do the appropriate resampling to 48kHz, it still sounds crap as a consequence – although do let me know if you know how to make it sound good), a 60GB HDD I had lying around while he’s waiting for CCL to replace or give him credit for his 2nd broken pair of HGST Deskstars, and swapped the Sempron for an AMD Athlon XP 2800+.

Unfortunately it was recognised by the BIOS as a 1250MHz processor or something… so I looked at the motherboard manual and found some jumpers to set the front-side bus speed. Firstly we were amazed it had jumpers (can’t BIOSes autoconfigure this stuff nowdays?), and secondly how the default setting was for a 100MHz FSB speed. The consequence was that the DDR400 RAM was running at DDR266 and the processor was running massively slowly. Setting the FSB to 166MHz made the processor and RAM run at the correct speeds, indicating that probably the Sempron would’ve worked anyway. Oh well, the Athlon XP is a better chip, and given the hassle with the actually broken hardware, CCL definitely won’t refund the Sempron if it’s not broken.

We set about installing Debian, really enjoying the partition manager in sarge d-i rc3, setting up LVM on degraded RAID arrays and such like, although it’s a shame that it falls back to crappy old lilo when installing on XFS root partitions. If sarge had a kernel where XFS wasn’t completely f🤬ed, unlike 2.6.8, then the xfs_freeze/unfreeze hack in grub-install would work. I just switched to the shell and installed 2.6.11 and grub manually before the reboot. I get the feeling joeyh really wouldn’t appreciate any kernel change right now though. Anyway, I digress…

The first boot was a disaster, the kernel was oopsing all over the place in all sorts of random locations, and usually ended up panicing some way into the boot. My assumption was that 2.6.11 was broken somehow, so we booted the install CD again to change it, and the kernel on that was hosed too. Uh oh! I was worried that I’d fried the processor with static whilst installing it, but it’s easier to eliminate the possibility that the RAM wasn’t broken. I removed one DIMM and it started working… but when I tried that DIMM on it’s own, the system worked too. I tried all permutations of the two DIMMs in the two slots, and discovered that when they were both in, the system screwed up, but when one or other was in either slot, the system worked fine. Apparently the CCL value RAM didn’t actually work when it actually got clocked at DDR400, so it needs to go back for replacement or credit too. Interestingly, memtest86 didn’t find any problem with any configuration within any sensible amount of time, and for me in the past it’s either found problems very quickly, or never found them at all.

A few lessons learnt (or re-learnt):

  • Double check for for relevant jumpers on your motherboard if CPUs run at the wrong speed. Apparently some computers on sale now still have them!
  • Don’t buy cheap RAM, it’s a false economy, life’s too short…
  • If you’re planning to set up a RAID1 array in a new system, buy two different brands of disk or they’ll be from the same batch, experience the same wear, and fail in the same way at the same time. This happened to me with my system about a year ago, when both 3-month old HGST drives failed within 24 hours of each other (I now have a Seagate I bought at the time to recover my data onto, use one of the HGST replacements, and sold the other), and robster’s on his 2nd pair of broken HGST drives from the same batches…

Some people seem to be lucky with hardware and it works for them, or fails in obvious or non-critical ways whilst within warranty, and some people seem to be very unlucky and everything goes wrong – horribly, insidiously, and without any suitable recourse. In general I seem to be one of the former people, and robster, my brother and most of my friends are the latter people, embarrassingly including quite a few people I’ve helped to build their own computers. Although saying that, lightning will probably now strike all of the hardware that I own… I’ll keep you posted.

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

April 6, 2005

Hello? I’m on the train…

My new phone went live last Thursday, and I didn’t really have a chance to play with 3G until now, traveling to a friend’s place yesterday and currently heading home on the train. Without changing any configuration on my laptop except making rfcomm0 point to the new phone’s MAC, I was able to “dial up” with 3G instead of crappy old GPRS. All of the problems I spoke about before are gone – it really must’ve been some combination of buggy firmware on the Nokia 6230, and O2 being crap. With this Nokia 6630 and Vodafone 3G, I get a noticeably faster and very resilient connection – Symbian on the phone does the right magic to keep the connection between the laptop and phone up when passing through brief areas with no connectivity, or passing between 3G and GSM coverage. I’m really impressed, I’m able to surf, IRC, chat on Jabber and download the odd package or two from wherever I am – the only downside I’ve hit upon so far is that in order to visit apparently dubious sites like the IRC channel search engine I need to use a credit card and pay £1.50 (in exchange for £4 call credit) to disable Vodafone’s adult content filter. Shame I don’t have one…

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

March 27, 2005

NO CARRIER

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

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 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

« Previous Page