Hacker's Diary

A rough account of I did with Emacs recently.

January 31
Moving bits from one server to another had me stuck in the office until almost 9pm. On the plus side, it all actually worked.

January 30
After much abuse, I learned not only how to set up a Lotus user (and tweak same), but also how to get the Blackberry working with bidirectional mail. I'm not terribly happy with the networking model, though.

January 29
Gradually beating Samba into the shape I want, with occasional bug reports and subsequent code commits from Team Samba.

Mom's machine still causing trouble. Something up with the monitor or the video card or some combination of the two. Bah.

One of those links without comment...

January 28
Happy Birthday, sis!

Not content with working on her own machine, mom is now fixing computer problems for her friends.

January 27
When your mom phones you up and asks for help with the computer, you tell her how to get out of Microsoft Word or whatever. When my mom phones up and asks for help with the computer, I tell her how to reconfigure the CD-R to be a Secondary Master instead of a Primary Slave, and also which bit is the video card. Alas, it appears that either the video card or the monitor cable is causing trouble.

January 26
Added 'rmdir' to the commands that nftp.pl supports. I think I'll send the cleaned-up version back to Russell once I'm done poking at it.

You're definitely in trouble when you look at a text parsing problem and think, "this would be easier in Emacs Lisp".

The problem in question was to automate cleaning of the Mailman admin interface for the BBDB mailing list. I'm tired of dealing with the stupid thing by hand. Of course, I'm not the only person who thinks Mailman is an irritating piece of crap.

Ugh. The Armada mouse button pad is cunningly built in such a way as to prevent you from disassembling it without breaking it. Brilliant. And the only place I've found that lists prices for replacements is quoting about $50 for this piece of metal and plastic.

More idiotic hackery:
Module FvwmEvent
*FvwmEvent: Cmd 
*FvwmEvent: PassID
*FvwmEvent: focus_change "Current Exec perl -e 'printf( \"[%s][%s][%s][%s]\\\n\", scalar(localtime(time)), @ARGV)' '$n' '$c'>> $HOME/tmp/focus"
That delightful snippet gives me a log of focus changes. I think I can plausibly tie this to worktimer.pl or something.

A little log snippet:
21:39 waider says, "ok. so who is the bigger moron here: the guy who
     posts to the list from a virus-infected machine, or the dozen
     mail admins who have their super-sensitive alert systems set
     up to post "YOU HAVE A VIRUS" notices to the *list*, or the 
     list admins for not, you know, blocking this sort of crap?"
21:40 waider says, "I could always set up an auto-responder to reply
     to "you have a virus" with "you have a moron""
Of course, that sort of automated mail has consequences.

January 25
Fixed up some of the diary stuff to use the helper function I wrote last month to compute forward and backward month refs and other stuff. Yay me!

I was going to set up a bridge on Blimp from the wireless card to the ethernet card so that my WLAN would be on the same logical network as my wired network. Turns out that you can't do this due to some restriction of the wireless cards relating to MAC address. Bah. Also, I completely wiped out all my wireless config on Blimp, which had been, uh, entertaining to set up. So now I've got to try and piece it back together from notes in this diary. D'oh.

Oh hurray. After spending over a month in repairs, Klortho has two non-working mouse buttons. Middle and right, so I get to pretend I'm a Mac user until I either open it up to check the wiring (mouse ain't that complicated) or scream at Compaq down the phone. Morons. No, really, MORONS.

I set up ange-ftp over ssh as done by Russell Standish. The code isn't pretty, and I spent a half-hour cleaning it up so it'd run under 'perl -w', but given a week or two I'll probably find it useful. I'm not overly happy that it uses yet another config file - it should be possible to do something with the .netrc that Emacs already supports, since Emacs can do hostname completion out of there. I'm also not overly happy that it makes a new connection for each operation; it'd be nice if it used an asynchronous sftp process or something to do the work with a single connection.

January 24
Happy Birthday Diarmuid!

Entertaining "moment" with Windows: moving someone on a Windows 98 box to a new domain. Give them a default password on the new domain. Change the domain. Reboot (why?). "Your password has expired, please set a new one". Enter the default password, the new password for the machine, the new password for the machine. Dialogue box: Can't do that, your password for windows networking is incorrect. What's really wrong is that the password for the desktop, as stored in the PWL file, is incorrect. Meanwhile, it's gone and done something to the network password that requires you to go back and reset it on the PDC again.

In the end, I used VNC to allow the users to set their own password directly on the PDC for the new domain. Yeesh.

January 23
Talk about a fully-loaded system... Kernel 2.4.20, with ACL patches to ext3 and Large File, 32-bit UID, and Unicode patches to smbfs, with Samba HEAD including ACL support, with LDAP, and with winbindd running until such time as I get the LDAP group mapping stuff automated. All I need now is to fix smbcacls to print out the ACL information in a format that getfacls can use, and/or implement acl support in smbfs.

January 22
Yay! Klortho is back! And it only took me two attempts to reassemble the drive mounts so I could put the hard drive back into it...

January 21
Fixed a bug (ish) in Samba's PDC-cloning code, so now it almost does everything for me. Still need to get automatic group mappings working.

The SpamAssassin-Milter patch was accepted, yay! I really should update my nethead page, since I've also gotten a fix in SaVi (a piece of software Lloyd hacks on) among other things.

January 20
Verified my code for SpamAssassin-Milter, reposted it to the list, and rebuilt my local copy. I'm deploying it today, now that I'm happy with the bugfix.

Also, Micromail update.

More abuse of Samba 3. Slowly beginning to understand how various parts interact; unfortunately, there's some redundancy in the code which clouds the issue.

January 19
Happy Birthday, Hannah!

Normally I have complete disregard for djb due to his loonware ("let's reinvent all the standard internet tools from scratch, because the existing ones are buggy") but I really, REALLY like his list of patent letters.

Helped mom out with the installation of a new CD Writer. Strangely, it exhibited exactly the same behaviour as the one it replaces: it's detected okay, but double-clicking on the drive in Windows results in an "Abort, Retry, Fail" dialog box. Weird.

January 18
Got some code from someone who's implemented an XAUTH server. I should hopefully be able to abuse it into client-side code. First things first, though: get it to compile against current kernel, etc.

Rebuilt Fozzie, my old 486 box. Well, by rebuilt I mean put enough of my spare parts into it to boot it up with Red Hat 6.2. I'm sure I have a reason for this other than storing spare parts somewhere besides in the pile of bits on the bed.

January 17
Further digging reveals a defunct list discussing IPsec config at The VPN Consortium. It appears that the defunct draft I was looking at really is defunct, and Cisco - who are responsible for the new draft - are piling XAUTH onto the existing infrastructure instead.

January 16
Decided I'd investigate the whole XAUTH thing in IPSec and see if I couldn't figure it out.


It's not made easy by the fact that it's covered by expired drafts, and there's an amount of required knowledge before you can even read the drafts. Anyway, here's what I've got: the Cisco box sends four Vendor IDs, one of which is XAUTH and the rest of which presumably Cisco could explain to me. From my reading of the spec, FreeS/WAN would be perfectly justified in returning an INVALID_PAYLOAD flag at this point, thus perhaps shortcircuiting the whole exchange. It doesn't, however; it just notes the fact that it's skipping all the Vendor ID stuff. The Cisco is then supposed to send FreeS/WAN a config request packet, as far as I can tell; however, from reading the logs on the Cisco, it's waiting for a config request packet. Perhaps if I bodge FreeS/WAN to send a Vendor ID indicating that it might be willing to do XAUTH, the Cisco will oblige me with a config request.

Adding to the fun is that the config request mechanism is also a draft, and as far as I can see uses an Exchange Type that collides with another draft, since noone could agree on any of this.

January 15
Hmm. I have a RIM Blackberry to play with. For values of play meaning work. First impressions: it's got no IR port. I mean, REALLY. Who's producing handheld devices these days with no IR port?

Decided to build a Knoppix disc to try out. Like I said, when you buy a CDR, suddenly everything needs to be burnt to CD.

Learned items for the day:

Latest on Klortho, per phonecall from Compaq, is that they've order parts which are due to be delivered on Friday. Bleh. One more week of waiting, I guess.

After a bit of poking and prodding, I got FreeS/WAN talking to a Cisco box. Seems the Cisco can be pretty insistent about the obsolete xauth protocol.

January 14
In which I have the working day from hell, followed by an exceedingly pleasant evening in the bar with Jon Orwant.

January 13
Mostly sleeping off last night's insanity. There's still some oddity on the network. Windows gets so attached to IP addresses it's not funny. And this from a system that historically prefers broadcasting over directed queries, too.

I submitted a story to Slashdot last night regarding the browser that supposedly speeds your browsing by up to 6x. It got bounced in fairly short order. I see there is now an entry describing this high-speed browser along with a note to the effect that several people submitted it but information is scarce. Fair enough. I also note in roughly the same period an unsubstantiated story regarding SCO claiming royalties from Linux vendors for unspecified Unix IP. I'm wondering how many people submitted that story before the guys at Slashdot deigned to run it.

Not that I feel bitter or anything.

There's gotta be a Google-related word for searching for something and getting back one of your own pages bitching about the problem in the top ten search results.

January 12
Get in car. Drive 14 miles to office. Press F1. Drive 14 miles home.

Welcome to the world of the future.

January 11
Tooling around with the spare parts bin, I managed to get an Adaptec SCSI card working on Blimp, but the spare SCSI drive I have appears to be either tanked or misconfigured, and I don't have much SCSI-fu to do anything other than randomly frob settings until it works. The tentative idea is to build a new drive for Broom (the Mac) since I don't have a CD drive to boot Broom from and the drive that's in it is an almost-full 250MB one.

I was going to set up Mozilla to send mailto: links to VM, but it appears that in rewriting the browser from scratch they've dispensed with the easy way of doing that in favour of waiting for an interminable standards process to finish. And the site the standard refers to is, well, not responding. Oh, but if you're in Windows or Mac land you can set your default mailer to do the work. Hurrah.

Trying to rebuild pilot-link ith my patches - and even without them - and it's failing, for some reason. Bizarre.

Aha. Perl with threads turns
int dirty;
int (*Perl_Tdirty_ptr(((PerlInterpreter *)pthread_getspecific((*Perl_Gthr_key_ptr(((void *)0)))))));
I guess I need to change all occurrences of "dirty" to something more specific to the job at hand... I've put the new patches up in the usual place.

Humma. Putting the 60GB drive into Gonzo seems to have cleared the crash problem. Grr. That means I have yet another duff 30GB drive, I guess. I'll try it in Blimp... and just after I'd typed that, Gonzo crashed again. Okay. Motherboard.

January 10
Spare parts for the A3010 arrived this morning, whee! Go Simtec!

Decided to bite the bullet and rebuild Perl with threads. Bleah. Of course, that broke all my Perl toys because it changed @INC...

Right, well, after a bit of mucking around with CPAN and cpanflute2, I now have not only restored my Perl setup, but also gotten it all under RPM control. Hi-YAH!

Well, it took a few false starts and some brief scares (as in "oh no, I've killed it"), but I now have a 4MB A3010 with a 1GB hard drive. Woo! The POWER!

January 9
After seeing a particularly heinous piece of code in SpamAssassin-Milter biting someone, I thought it might be a neat hack to rewrite it in Perl. Sure enough, there's a Perl module to handle Milters, so I ask CPAN to build it. No dice, it wants a fully built sendmail source dir. Okay, fetch fetch build build perl perl. Now it wants a Perl interpreter that's been built with threading. Uh. At this point, I'm giving up on it. I'll just fix the C++ code instead and try not to cry too much.

Spent a bit of time with the C++ code, posted an uncorrected version to the spamassassin-milter list, swore, posted the corrected version, abandoned it to the four winds. Yeesh. I hate C++.

January 8
I was about to install a Palm application from source when I discovered that I have absolutely no Palm development tools on Qaz. Weird, that; I guess I never installed 'em when Qaz became my primary machine. Anyway, I'm now downloading RPMs from half a dozen different sources so I don't end up with a bunch of unowned crud in /usr/local again.

Mailed Dublin City Corporation to harass, er, inquire about the fact that the Merrion Gates traffic camera has been "coming soon" for several months now. The cameras are pretty good, providing coverage of major routes in the city centre and some more suburban points; however, if I had access to the Merrion Gates camera I could make an informed decision about the route to the office in Santry. As it stands, I just drive on up the congested knot that is the Rock Road.

Gonzo is currently engaged in transferring the contents of the big disk, as planned last night. And boy is it taking a long time. But hey, I can consider it a backup or something.

Cool. Someone's finally done a proper job on a driver for GT6801-based scanners. And hmm, I see mention of the GT6801 in the kernel driver. Feckers seem to have fixed it while I wasn't looking... wait, no, they haven't. The Russian patch supports a single endpoint, whilst the kernel driver requires two or three. Patch patch. I've had to add in the USB IDs to scanner.h; the rest of the patch applies cleanly to the default Red Hat kernel, yay!. Sergey also appears to have some minimal support for integrating this recalcitrant beast into the SANE project, which is good. And there's the gt68xx backend page. A bit of abuse, and presto, I'm scanning. Woohoo!

January 7
Installed the 60GB drive in Gonzo. A very brief test established that it was quite happy to crash. So, I guess that's definitely a motherboard problem, then. Although I suppose I should really test it without the 30GB installed... to be sure to be sure, as it were.

Found a plausible-looking Socket 7 motherboard on the net and asked Donal to bring it home with him in February. I'll struggle on with a crippled server 'til then, I guess.

Figured out the Proliant bluescreen problem, and decided to abandon it instead of fixing the problem. I was, after all, testing stuff. Also figured out that it's okay to bring up a Samba PDC to bump off a Windows NT PDC; the latter will quietly turn itself into a workstation (not a BDC!) and only whine a little about services being unable to start and all that. There's the slightly iffy issue of SIDs, but I'm ignoring that.

While Gonzo was lying on its side, I took the opportunity to move the OS directories to the small disk, which is something I should have done ages ago. I can hoik everything off the big disk across the net to the 60GB (which is back in Blimp) and then throw the big disk into the "testing" bin or something. I'm still not 100% convinced that this is a motherboard problem. Or 100% a motherboard problem, even.

January 6
A simple task, today; install NT4 Server on a somewhat aged Proliant. I'm sure there's a perfectly good reason it kept bluescreening mid-install.

January 5
Urgh. It's just gone midnight, and I'm still working on office stuff. I have in mind to kill the person who set up this machine originally, such that all logical drives are striped across a single array meaning I had to trash everything in order to dink with just ONE of the logical drives.

Things learned:
  1. Restoring from tape with ArcServe
  2. NTFS across multiple partitions (volumes, basically)
  3. vncviewer -via ssh-gateway desthost:display
The last is basically a shortcut for setting up a ssh tunnel and then running VNC across it. How I didn't spot this before I have no idea.

Discovered that my Japanese input wasn't working Emacs; turns out the standard-display-european crap that was required back in, um, 19.whatever to get useful results from multilingual mails now actively breaks things.

More to the point, I can't seem to cut from Mozilla and paste into anything else. Even xclipboard is rendering the text as a bunch of questionmarks. That gritch aside, Jim Breen's WWWJDIC is an absolute gift for gaijin like me.

January 4
Blech. Off to the office to do foul things with hard drives.

January 3
Since this bit me, and HARD: if you are setting up a secondary MX that is intended to work when the primary is offline, make sure the mailertable entry has square brackets around the esmtp host. This is the answer to "mail loops back to myself" that they don't explicitly point out.

You wouldn't believe how long I spent poking at a sendmail config before I spotted that.

January 2
Continuing with the diary hackage. All day entries get a named anchor so I can reference 'em exactly. In the RSS feed. Also if I need to cross-reference (as I've done once or twice before).

I've also written a new function to calculate the forward and backword months and years from an arbitrary date. That should help with some of the hairier parts of the current code.

Phoned Compaq's repair centre to check on Klortho. They're going ahead with the repair and I should have it in three to five working days. For which I am reading Friday Next Week, Earliest.

Updated my spamass-milter patch to the current CVS release. There are some good ideas floating around that could perhaps do with being combined; someone has, in fact, offered a combining patch but they've messed about with the command-line switches, which is rarely a good idea.

Hacked on a bug-or-not in BBDB that's been bothering me for a while. Not 100% happy with the fix, but it'll do for now. Hey, development code, people.

Checked out Amphetadesk after reading someone raving about RSS. First impressions: LiveJournal's hacked-up RSS feed is a bit crap, and should really be extended out to the Friends page to make it really useful. It's not like they're getting banner revenue from direct visits to the site. It's a nice no-nonsense tool, though. The only thing it's missing is to automate the CPAN chunk of the installer - although I already had all the modules it needed anyway. Gnee.

Tempting fate, I am. Running two different versions of Java on the laptop at the same time. Woo.

January 1
Poking at various parts of my desktop (what with it being the new year, a good time for config changes) and I discovered why pam_ssh wasn't launching a ssh-agent for me - I hadn't configured it for session use. So I configured it, and now it's starting a root-owned agent which is of no use to me. Bizarre-o.

Whee! Got a reply from the author almost immediately: Linux' seteuid semantics don't work for pam_ssh, but there's a fix in CVS. Woohoo!

Poked at RSS some, with the ultimate intention that this diary should have an RSS feed. Heck, I could probably put an RSS feed up for the whole site as part of the magic update script. Also killed the font tags on the new diary entries. My stylesheet should be good enough to catch this stuff already, but I do need to backfill the older entries..

previous month | current month | next month

Waider 2003 already? Time flies when you're drunk.