Hacker's Diary

A rough account of I did with Emacs recently.

January 31
Another customer service saga: you may have read about my previous fun and games trying to get an insignificant yet non-functional feature of my phone fixed. After sending various emails over the course of two months, and then resorting to actual voice-over-GSM technology, I was directed to my nearest repair shop to have the phone reflashed. The repair shop is actually just a franchise for the telco; they send the phones to a completely other location for repair. While one guy took my details - incorrectly - the other guy tried to persuade me that I should just use a workaround for the problem rather than have a phone that does, as the saying goes, exactly what it says on the tin. I was told the repair would take 10 days, and I left it at that. More than 10 days (real and working) after that, I phoned the shop to find out what the story was, and got voicemail. I left a message which was left unanswered. I called again the following day (January 27th) and was told that the phone had just arrived in, so I arranged to pick it up. This morning I finally got to the shop and collected my phone. The accompanying "Here Is Your Repaired Phone" letter was dated January 17th, and bad and all as our postal service can be I refuse to believe it took my phone 10 days to cover roughly the same trip as I travel twice daily while commuting. The letter went on to state that the problem reported was that the phone was freezing up - bzzzt, wrong - and that the engineer had upgraded the software and tested it. I tried to access the non-functional feature and sure enough, still non-functional. So, I phoned up the non-functional repair company, explained the situation, and was told that they could fix the problem within two to three hours; if I could drop it down to them before three today they'd probably have it done by the end of the day. At least this time I get to give my correct name, and describe the problem exactly to someone who's going to fix it rather than some moron with a bad haircut and a tie who can't even type my name correctly when I've spelled it out for him.

Of course, I was naïve in my assumption that my phone would finally work as advertised; I collected the phone two hours later and was told that they'd not been able to reproduce the problem and therefore it was a network/telco issue. So, I phoned the telco's customer support line and patiently worked my way through the "is your phone plugged in" three-ring-binder stuff until I got to the point where the support tech suggested I use someone else's SIM to try doing the phone thing. Nuh-uh. Can't do that, not least because noone within easy reach has a Vodafone Live SIM, and besides which, hey, this is needlessly inconveniencing me - you're saying I can't get my phone fixed until I find someone with a Live SIM that I can cross-check against? Apparently that being the case, I asked to speak to her manager, who eventually got the points I was trying to make, which are these:Once I'd gotten that across, the supervisor accepted that yes, this was Vodafone's problem to solve, not mine, and promised to get on it in the morning (given that by this point it was after 17:30) and report back to me. I then added that it had taken me three months to get this far, and that wasn't exactly sterling customer service, so she also promised to look into that. So, maybe tomorrow.

The Girl Next Door is a hell of a lot better than I expected. I was thinking Farrelly Brothers or maybe whoever it was that did the American Pie movies, but it's far more, well, highbrow than that, resorting to genuinely humourous situations rather than cringe-inducing gross-outs. Two things stuck out, though: Timothy Olyphant's character was a little too unbelievable in that he was genuinely nice at some points and a complete psycho nutbar at others. Fine for real life, not so good for the story. And the incident in the strip bar where Matthew ends up sitting next to Mr. Peterson as a pair of girls dance on them could have been used later in the film, indeed seemed intended for that purpose, but it was just left as an awkward moment. There wasn't even anything in the outtakes/deleted scenes to indicate that there was any intention for it to be more than that. There's also some choice stuff on the DVD extras; in particular, "The Eli Experience", where Eli from the movie goes to an (the?) Adult Movie Convention in Las Vegas and basically has a whole load of fun posing as a director.

January 30
Further adventures in data-porting, spoiled somewhat by unspecified network flakiness. I guess I should've set up a local copy of Bugzilla to play with rather than relying on the remote one to remain accessible, d'oh.

January 29
Doing a little data-porting work and getting way too familiar with Bugzilla's internals. Some interesting choices in design, which I suspect may be "because we didn't think it out" rather than any other reason...

Also, Micromail update.

January 28
Fiddling with VPN somewhat. What I'd really like is a ssh service that basically acts as a very, very long ethernet cable - it shows up as a network device at one end, and a network device at the other end, and there isn't a private network running in between as with a standard ppp-over-ssh links. That'd be kinda neat.

January 27
I installed a 2.6.10 kernel yesterday and then swore at it for a bit as it insisted on not cleanly picking up the defaults from my previous build. Having sorted that out I discoverd that LUFS no longer worked, which turns out to be because kill_proc_info is no longer a public function. Googling on that led me to a rather typically irritating developer discussion:
supplicant: Why is this no longer exported?
master: why are you trying to use it?
and so on. I really hate that crap. Even without context, the correct reply would have been, "it's no longer deemed safe/valid/useful because $reasons; safe/valid/useful means of doing the same thing are $alternatives" or similar. Gah. Anyway, one guy just re-exported the symbol again; I commented out the offending line entirely, took the opportunity to clean up a few other warnings while I was at it, and then discovered that the install target doesn't appear to work. Bizarre. Manually installed the module and presto, it works again, modulo not shutting down the lufsd process when you umount a filesystem. Minor detail.

Oh, found the install problem. Apparently I'd broken it while trying to fix the fact that the 2.6 build didn't actually work at some point. D'oh.

January 26
I upgraded a machine from Red Hat 9 plus bits to Fedora Core 3 yesterday. There are a few teething issues, but the most annoying one to date is that neither of the libgnomeprintuiNN packages obsoleted the installed libgnomeprintui package, resulting in a non-working printer configuration tool.

Roger Dodger is an odd movie. The premise is a bit of Swingers and a bit of Igby Goes Down, the execution is oddly dark - and the Roger of the title is by turns astoundingly suave and a complete asshole - and the ending is absolutely perfect. I'm not sure I enjoyed the whole thing; much like John Goodman's character in The Big Lebowski, Roger was a bit too much of an irritation for me to enjoy what was going on around him. Still, good scripting, some nice shooting, and as I said, a perfect ending.

January 25
I am reminded, for reasons I can't go into, of the joke about the DEC field service engineer with the flat tyre. Those of you who know can nod and giggle knowingly. Those who don't, sorry. Can't explain.

Well, that was "fun"; I tried to uninstall the largely useless del.icio.us plugin that's hosted on the mozdev site, and it rendered firefox unstartable because it didn't uninstall cleanly. Tidy.

January 24
Hah, didn't realise you could do this: two X sessions on the same hardware. Start one as normal, then drop back to a virtual terminal and start a second using startx -- :1. Presto, you've got your Mac/XP-style "Fast User Switching". Makes the system creak a bit, mind you.

Yay! Software release! Go me, etc.

January 23
Weird. Yesterday was the depths of rainy winter, today's doing it's best to be blazing summer sunshine, although there's not quite so much actual warmth as I'd like.

I am once again tooling around with someone else's instructions for turning an AVI file into a DVD. This time maybe I'll make it work a little better; the last attempt was ok, but skipped in places - this may have been down to the source, the disc, or the player, mind you.

I am also tooling with matching up DVD Rentals' titles with their entries in IMDB. Much to my surprise, some of the titles don't exist in the latter - even searching by actors or directors fails to produce a match. And here I was thinking IMDB was, like, authoritative and stuff.

January 22
Filthy horrible rainy day. It was so bad that I drove to the store that's halfway to the office and has a covered car park instead of going to a nearer one that's nearer but requires you to park your car out in the open.

Installed new versions of SpamAssassin and spamass-milter on the office mail server; this seems to have improved things considerably.

I'm not sure why I'd added Straw Dogs to my DVD Rentals wishlist, but it's quite the movie. Wonderful sense of menace throughout until the inevitable dénoument, and of course Susan George isn't exactly hard on the eyes, either.

January 21
Having some fun and games with DHCP and PXE. For some reason I've got a box which seems to be caching the files it serves out, so you make some changes to your initrd, boot a convenient box, and the changes don't appear. Lather, rinse, repeat a few times and eventually it works. Bizarre. Also, I can't seem to make a 2.4.20ish kernel that can mount its root filesystem via NFS, despite following the instructions (and even trying some bad advice from the Intarweb); each time it complains that it can't find /dev/nfs despite the fact that the documentation assures me that /dev/nfs is a fake device that doesn't actually have to exist (and after all, if you don't have a root filesystem yet, how can you have a /dev/anything?)

January 20
Slayed bug at work. Yay me.

Did some more work with ColdSync, trying to get it to match up more-or-less with the things that PilotManager used do for me. I ditched PilotManager because ultimately it's buggy and recalcitrant even after I'd gone to work on it and converted it to use POE and what not; ColdSync at the very least comes with a set of tools for dismantling the data that the Palm flings at you, and also gives you room for messing with the Palm directly during the syncing (as mentioned previously) which opens up interesting possibilities. One of the things that annoys me about the default configuration, however, is that it doesn't do a proper backup; specifically, the author has identified that the AppInfo block of a PDB is essentially unstructured data that's modified fairly haphazardly and thus impossible to sync properly, and therefore he doesn't back it up by default. This block contains, among other perhaps less-useful stuff, the categories you've assigned to things in the PDB. So if you're relying on ColdSync for backups, and need to reinstall your PDBs from scratch, you'll lose all your categories. Which, well, at least I didn't find out the hard way. The thing is, I feel if you've got a directory called "backup" and a directory called "rescue", at the very least you could dump the entire as-is-on-Palm PDB into the latter and do your dickying around with AppInfo-less PDBs in the former. Anyway. The package also comes with a conduit which dumps the AppInfo for all databases from the Palm to the desktop (i.e. it's not a synchroniser) which suits me fine as at least at present I'm not liable to be updating categories from the desktop side of things.

January 19
So being one of those people who can't leave a working system alone, I installed Icecast v2. Which required a new streamer, and la la la la now I have it all running but the stream seems to be dropping bits here and there. As it stands, though, one poor box is doing decoding, reencoding, and streaming, in addition to web proxy, dns, firewall, and possibly training ponies. I think I need to further investigate my original plan, which was to make a player for Gronk that is essentially cat foo.mp3 | icecaststreamer or thereabouts. The only problem with this, I think, is that the icecast streamer process has to remain running between song changes; otherwise any listeners get punted every time a song finishes. I think, anyway. I'll need to actually test some more and find out.

Happy Birthday, Hannah!

January 18
Not a lot going on. Did some minor tooling with my Icecast setup in pursuit of the non-X streaming mentioned yesterday, but I've not done anything concrete with it. jwz has some useful scripts on the DNA Lounge website that I may end up snagging.

Also mucking around with a tool that maps DVD Rentals titles to their corresponding IMDB entries. In the process I'm discovering a whole lot of misinformation in the former, and the odd completely unreferenced movie, too (apparently IMDB knows nothing about "Bikini Ski School", which probably isn't a great loss.)

And also poking at ColdSync some more. The DLP interface interests me; among the more amusing things you can do I see "Launch Application". There's room for damage there, I think. I had at some point pondered the idea of a beaming handler for some random pseudo MIME type that would trigger a hotsync, so you drop your IrDA-enabled Palm in front of your PC's IrDA port, and the PC sends out a packet that triggers a hotsync. Obviously there are security implications, but it'd be kinda neat.

January 17
I really, really want a version of SSH that can be configured not to care about host keys, because it's a pain in the ass to have to edit my known_hosts file every time I reinstall one of these boxes (usually several times a day).

In the interests of not having to run XMMS to stream music, I glued together a tortured shell pipeline using mpg123, esd, esdmon and a half-assed Perl audiocaster. Amazingly, it seems to work. I'm going back to LiveIce for now, but I think I will beef this up a little and put it on my jukebox for real tomorrow. The state of streaming libraries is insane, btw. You have the old shout library which is all deprecated and unavailable and whatnot, and you have the new shout library which won't talk to the old icecast server (which is what I run). Then you have other things like liveice which basically eschew the libraries (because, as I've noted, they're insane) and does its own connection, handshake and streaming. Hence my writing a half-assed audiocaster of my own. It's relying entirely on the lame process that feeds it to throttle the data correctly; if it wasn't for the fact that there are a few headers to send first I'd probably have used netcat or something.

January 16
Working on cellphone dialup for the first time in a while, and I'm surprised to discover that the last set of changes I made seem to be sufficient - it's something of a pleasant shock to just click the "Activate" button on redhat-network-manager and be online shortly thereafter!

Kill Bill: Volume 2 was, again, not the best movie ever made, and I honestly think Tarantino could have made one really good movie instead of two mildly good ones. I spent more time noticing the camerawork than following what was going on, to be honest.

Got around the Anypoint issue by using Win2K's network sharing stuff. Weirdly, it seems to want me to configure for specific services, and then goes ahead and works with everything anyway. I guess I should read the manual. Hmm. Maybe that config was for reverse NAT.

January 15
Some fun and games setting up hardware for my brother. Intel's "AnyPoint" USB Wireless dongle comes with some internet sharing software that works on a client-server model. Unfortunately it wants you to have an Intel dongle on any machine that needs the software - including the client machines. I'm sure I can get around this, but it's annoying.

January 14
Tooling around with automounting my USB key when it's plugged in. Works fine, eventually, but unmounting after I've yanked the device results in a kernel oops...

January 13
Yay, finally have ColdSync and p5-Palm installed in my buildfarm system so that future versions get picked up and built automatically. Also, the damn things now work, too.

January 12
I am trying to build a ColdSync RPM. The provided spec file assumes you're root. I don't like building RPMs as root unless it's absolutely necessary. The provided spec file does not cope well with building the Perl bindings, unfortunately, and thus far my efforts to make it work are being thwarted and I'm not quite sure why.

Oooh. I think this piece on setting up a Mac trackpad combined with my newly-powerful non-Mac touchpad could be interesting. Pad taps for switching tabs in the browser? I'm THERE, dammit. I wonder if the driver supports it, or if I'm going to end up half-hacking yet another piece of code?

Ok, it supports identifying such taps, but doesn't usefully translate them to X events. I suspect with a little hacking I could extend the L/RT/BCornerButton options to support more than Left/Middle/Right buttons (if it doesn't already do so) and thus have, say, Button 6 and Button 7 (since 4 & 5 correspond to the mouse wheel) to do things with. Still not ideal, but certainly a possibility.

After some frustration with ColdSync's silliness, I split it into two: the non-Perl stuff, and the Perl stuff. Then I got cpanflute2 to build the RPM I wanted from the latter. Crude, but effective. Of course, in the process I found out what was breaking (it's trying to do a site install, which seems to mean "forget everything I said about customising the install directories and just go for the hardcoded ones". GRR.)

January 11
Ok, I'm either getting really good at Makefile abuse or really bad at Makefile abuse:
MAKEFILEINC=$(if $(strip $(wildcard $(TOPDIR)/makefile.inc)),$(TOPDIR)/,)makefile.inc
include $(MAKEFILEINC)
There are plausible, if not quite good, reasons for this block.

January 10
Dredging in the arcane realms of Makefiles and RPM.

I rather enjoyed The Last Samurai despite the fact that it was long, long, long. Some of the long model/cgi/whatever shots were a little dubious, but mostly it was engaging, and the score was fantastic. Oddly enough this is the second movie I've seen recently starring someone who also starred in The Crow: Salvation.

January 9
Forgot to mention that in the course of moving things around while I figure out what's up with the MiniITX box, I ended up with my Gronk setup hanging out on the intarweb side of my network, i.e. you can dink with the playlist and whatnot from outside my LAN. I figured this was probably not generally conducive to easy listening, so after some perusal of the Apache docs I managed to apply a rule that says, "ask for a password for the queue CGI script if the requesting address is outside the LAN" and lo and behold the damn thing actually works.

I installed the Synaptics Touchpad driver in search of a means of simply switching the touchpad off (I'm quite happy to use the pointer stick, but touchpads drive me insane) and discovered that (a) it works and (b) it seems to improve the behaviour of the touchpad to the point where it might actually be usable. In particular, the "right hand edge = mouse wheel" behaviour is rather nice.

I've been running a package of bits for machines on my LAN for quite a while, and just made some much-needed adjustment to it: mainly completion rules for bash. In case you've not read the appropriate chunk of the manual, bash completion can be customised on a per-command basis. What I've got as of now:These turn out to be sufficiently useful that I miss them when they're not installed.

Since I've installed iTunes on a Win2K box here (more out of curiosity than anything else) I've developed a brief interest in Multicast DNS. I found a guide to setting it up on Red Hat-ish Linux systems. Having failed to access Apple's CVS system, I resorted to downloading the tarball version and building an RPM from it. Of course, now I'm looking at Howl...

Hmm, I think someone got the wrong end of the stick on a Taiwanese VoIP blog:
[BEGIN BABELFISHY]Also some interesting matter, calls self the network from to startle the guest diary the homepage to look at Hacker's Diary: http://www.waider.ie/~waider/hacks/diary/2004/september.html, the author writes in above: "9,/19 tries (the UNIX Windows formula) to explain SKYPE with FVWM, looked can catch the news which passes on, and turns head discovers the source in.. . " From this looked that, as if had hacker already to start to pay attention to Skype, and tried to invade. But can succeed? With what method? At present did not know.[END FISHY] (original post)
If I'm reading this right, the poster thinks that I've actually tapped into the Skype protocol, when I'm just hauling bits of the debug log out.

Since I really don't need to take on yet another project that I won't complete, here's an idea: there are several existing bolt-ons that allow access to del.icio.us. All of them irritate me in one way or another, because what I really want to do is have 90% of my bookmarks - i.e. the ones not related to SEEKRIT OFFICE STUFF - lumped into my del.icio.us bookmarks, and I don't want to have to go through each existing bookmark I own - or future bookmarks - and put up with someone's idea of a posting UI in order to accomplish this. My idea, then, is the following: the read side is easy, just drop a Live Bookmark (go Firefox!) for your del.icio.us bookmarks into the bookmarks sidebar or whereever and you're done. It's the posting side that everyone seems to be ignoring. All I want to do is drag the current URL (or better still, hotkey while reading) into the bookmarks folder as if it were a real local folder and have del.icio.us get the update. If I go to the trouble of letting folders open up, fine, it gets tagged. If not, then it gets left as untagged and I can go back and sort it out later. Or maybe it gets dumped in a default tag such as "read later". Foxylicious appears to be working mostly on the read side, which is a shame, because it's the write side that's the biggest pain to deal with at present. So, there's your idea. Someone go implement it, or bolt it onto one of the existing toys, and let me know when you're done. Actually, I notice Foxylicious is promising it in the next release.

January 8
Argh. For the first time EVER I've managed to lose my phone. If you're trying to get in touch, call my work mobile.

If you're a LiveJournal user, I've set up a syndication feed called "waider_geeks" for the geek diary's RSS feed. Which feed, incidentally, now validates at FeedValidator; I'd missed the fact that ISO8601 requires timezones to be rendered as HH:MM rather than HHMM.

Hurrah, phone recovered! I'd left it in the restaurant, so as soon as they opened at 5 I was able to get it back.

January 7
MiniITX box survived overnight running XMMS. Further tests in progress. On one hand, yay, it's not the motherboard; on the other hand, crap, that's a 40GB drive that's flaking out.

Wow, that's irritating. Just mucking around with Gronk and suddenly XMMS decides to stop responding to remote play requests. After some headscratching I realised it was because I upgraded from a home build-from-source to the Dag RPMS version, which requires me to install a separate package to play mp3 files.

WAH. When I finally hit the ITX box hard, it locked up. I guess I need to see if I can reproduce the exact sequence of abuse that caused it, but WAH.

January 6
Two days ago I set a buildfarm account off rebuilding a bunch of SRPMs for my hybrid "post-redhat-9, pre-fedora-core" laptop install. It's still running. Of course, it's building via NFS over a wireless link, and it's got to get through gcc and glibc...

I've completely rebuilt the MiniITX box as a Fedora Core 3 system. Now to load it up with Gronk, XMMS, and LiveICE-XMMS and set it off. That was sufficient to kill it before. I am running a different hard drive, mind you.

January 5
The Crow: Salvation is surprisingly good for a movie that, according to IMDB, went direct to video after poor test screenings. There are a whole load of riffs from the original movie which I don't recall seeing in The Crow: City of Angels - you got a real sense that both the cast and the director had gone over the original with a fine-tooth comb and identified scenes they could reuse. I'd actually recommend seeing this if you liked the first movie.

January 4
Right. Filesystem project temporarily on hold, because: I logged a complaint with Vodafone's customer abuse back in November about the fact that I couldn't send pictures from the phone to my online Vodafone-provided photo album. After a half-dozen back-and-forth messages, each more inane, the phone continued to not work and I got a bit annoyed. So I phoned them today and after 20 minutes on the phone and without providing any extra information over what I'd already given them they told me it was a software problem on the phone and I'd have to take it to a Vodafone shop for repairs. So my phone is now in the hands of the repair "service" who will, I am told, wipe its memory in the process of fixing it. It's good to see that the phone industry has kept up with the computer industry in terms of customer service. Anyway, upshot is that I'm back to my old Siemens S45 until the Sagem comes back from repairs, and that means I don't have a testbed for my filesystem code. Note, the "software problem" is simply that the number it sends the pictures to is incorrect. But because Vodafone/Sagem wisely put this in the firmware, it can't be changed without a round trip to the repair shop. Smart kids.

Today's stupid MiniITX trick: put in different harddrive (don't ask, just following a hunch). Boot SuSE 9.0. Try to build some toys. Discover I'm missing xmms-devel. Try to install. It wants the original install medium, which is in the office. Try to build something else. There's no COMPILER installed. Oh dear. I think I may have to run around the house and shout at things for a while.

I extended the filesystem to handle the standard GSM phonebook stuff. It's still a little flaky and definitely needs going over with a hammer, but I can do cat /mnt/phone/SM/1 and get back the contents of the first entry on my SIM card.

January 3
Well, crap. Jukebox machine was dead this morning. The biggest PITA about it is that the screen's generally gone into powersave when it dies, so I can't see any kernel messages without, say, hooking up a serial console or something.

Didn't quite get the LUFS module finished as I got stuck trying to find a non-obvious bug. At least I know how to reproduce it...

Ok, the more I poke at this stupid phone the more I want to break it. Here's the latest discovery: if you download an image from it, and upload it, the listed file size is now the large image, not the thumbnail. You can't actually tell how big the file really is without trying to retrieve it. This makes writing a filesystem interface BLOODY HARD. Mutter mutter...

January 2
Back in Dublin. As I switched on the "car toys" (GPS mapping, MP3 player, Wireless scanner) for the drive to Ballina, I discovered that I'd broken both the scanner and the mapping through various housekeeping thingies. Before I left Ballina today I poked at the mapping code and discovered I'd left fallback stuff in there on the assumption that sooner or later I'd break things, so I tweaked that to activate itself automatically and all was relatively well once more.

In more bothersome news, there is something wrong with my underutilised MiniITX box. Specifically, it's crashing. It's been doing this since about December 18th. I've tried rolling back the kernel, running memtest, and running cpuburn, and it passes all those just fine, but firing up X and leaving it run for a bit results in a complete freeze after a bit. I've just tried it with VNC and it's locked up again, which excludes the potential that it's something to do with the graphics hardware and increases my suspicion that it's possibly something in the X upgrade that appeared not long ago.

Also this is again the time of the year when I discover that for the nth year running, the diary code that handles year rollover is broken.

Well, the MiniITX box has been up for over an hour with the older version of X running (well, VNC) so I guess I've found my problem. At least it's not another dead motherboard.

Continuing to hack away on my mountable phone filesystem. Should be done by bedtime, modulo actually making it reliable.

January 1
Party #2

previous month | current month | next month

Waider | Technorati Profile Wahey, January again.