Hacker's Diary
     A rough account of what I did with Emacs recently.
     
  - December 31
 
  - End of the year... mostly cleaning up bits and pieces of junk
    code. The RVP is running under valgrind at the moment to see just
    how leaky it is when doing nothing. Bye bye 2005!
 
  - December 30
 
  - RVP: weirdness with caching DNS lookups (again I find myself
    cursing the fact that the async DNS stuff the Gaim authors wrote
    is locked up in private functions) which is possibly down to a
    static variable not behaving as I expected. I've fixed up most of
    the ACL parser at this point, plus the transfer of data from
    temporary records to the buddy list records, and I've fixed a bug
    in the buddy-remove code. Progress, of sorts, is being
    made. Of course, as soon as I get into my stride the stupid server
    hits the locking bug again, despite my attempts to switch it off
    per the instructions in the documentation.
    
    Had another go at XPath, but the only positive result was finding
    a bug in my crappy RVP server. Which, apparently, MSM doesn't care
    about, which tells you all you need to know about its XML
    parsing... XPath is annoying me, so I'm ignoring it in favour of
    crawling across XML trees looking for the bits I want. Ick.
 
  - December 29
 
  - Ok, I see why AuthenNTLM locks in the code, but I'm not
    clear why it gets triggered. I can see how to switch it off, too,
    which is more important.
    
    About 35 minutes into Five Easy Pieces I'd
	completely lost interest. I'm afraid this so-called 70's classic
	does nothing for me.
    
    The Recruit, on the other hand, did
	a good job of keeping me both engaged and guessing right up to the
	end. Pacino sort of reverts to his character from The Devil's Advocate at
    the end (I guess that's his "bombastic speech" routine
    or something) but this is a pretty tight movie all told.
    
    More RVP work. Found a gaping hole in the ACL parsing, which
    really would be a lot cleaner if I'd just go and learn XPath;
    however, having fixed that I can now deal with unsolicited ACLs
    and passing them onto a newly-added buddy. Not sure how often this
    is actually an issue, but it's something I'd been
    missing.
 
  - December 28
 
  - Found myself watching Six Shooter, which is a pretty grim
    short film - IMDB refers to it as a black comedy but I'm not sure
    I saw any laughs in it.
    
    Found the crashing bug in the RVP code I mentioned a few days
    back: a frickin' debug message dereferincing a null pointer in a
    code branch where I knew the pointer was null. Bah. Did a bit more
    work on unsolicited status info which fills a gap or two I wanted
    filled before releasing anything.
 
  - December 27
 
  - Back in Dublin. O Brother, Where Art
    Thou? was kinda fun, but not exactly epic brilliance. I did
    like the music, though.
 
  - December 26
 
  - Christmas movie-watching included Churchill: The
    Hollywood Years which was hurtfully funny. In fact, I think I
    missed a minute or so because I was laughing so hard. I also
    watched Pirates of the Caribbean 
    (again) and managed to miss the start of The Santa Clause
    (again).
 
  - December 25
 
  - Woo! I got a pile of books and DVDs for Christmas!
    
    I also spent a few minutes fixing up the tracks on my
    "MP3" player as the last time I loaded it up it didn't
    detect the serial number properly, so the scrambling didn't
    work. I'd started to write an in-place fixer program, when I
    realised I just needed to copy the tunes off using the cp
    tool I made, then copy them back on with the correct serial
    number. Hurrah for laziness!
 
  - December 24
 
  - Off to the family mansion for Christmas. The gps toy did silly
    things on the way, but mostly worked right. The silliness was
    caused by bouncing over rough "national route"-class
    roads.
 
  - December 23
 
  - So I'm showing someone that the RVP client works and *blam* it
    falls over. D'oh. Looks like something to do with the hashtable I
    use to deal with unsolicited notifications, which is all fairly
    flaky code at the moment.
 
  - December 22
 
  - Woohoo, the bugfix works! I need to do a valgrind or two on the
    code now, and then I'll offer a version 0.5 or something for
    download and abuse. Complete with a list of things I've not
    implemented...
 
  - December 21
 
  - Found an insanely stupid bug in the NTLM code, which was at
    least where I'd expected to find it. It's the code I've done the
    least work on and it's full of statics which I really need to get
    rid of because I don't know if it's getting called from threads or
    not. Still, that should be the last of the immediatly
    show-stopping bugs. There's still a question of how some data was
    getting corrupted, but it may simply be a matter of dealing with
    uninitialised memory.
 
  - December 20
 
  - Implement feature. Test feature. Cry when feature works exactly
    as designed, but design was wrong. Wah.
 
  - December 19
 
  - Patched up the redirect code in RVP a little; it might actually
    work, now.
 
  - December 18
 
  - Further adventures in RVP: having the server set a subscription
    timeout of 120 seconds makes the windows client TOTALLY unhappy,
    by which I am determining it resubscribes well before the
    timeout. I'm currently trying to figure out exactly how much
    "well before" constitutes. Also found the server bug
    that prevented resubscribes from working: when the client
    resubscribes, it doesn't say what kind of subscription it's
    making, it just passes in the subscription ID; you then need to go
    look at the subscription list to find out exactly what kind of
    subscription that is.
    
    And more fun. There's an undocumented POLL method. Triffic. Also,
    as I suspected, the protocol is wide open to spoofing,
    particularly if you're running in fixed-port mode. Muahah.
    
    And an undocumented message type. How come I never found any of
    this stuff before?
 
  - December 17
 
  - Well, that was annoying. The default setup for Gnome on Fedora
    Core interprets Ctrl-Alt-Del as "log out of desktop",
    which isn't quite what I wanted to do with a dozen windows
    open.
    
    Trying to clean up the RVP NTLM auth code somewhat so that it's
    less network-abusive. In doing so, I run into, once again, some
    sort of flaw in the AuthenNTLM module which makes it hang
    occasionally. Something to do with locking, I think.
    
    Saw most of Fatal Instinct, which wasn't bad
    - not as good as a Zucker/Abrahams/Zucker flick, and the whole
    "source of incidental music is an item on the set" gag
    was overused, but still good for a few giggles.
 
  - December 16
 
  - Ah, I remember this back in the day when I obsessively tracked
    kernel releases: install new kernel, break everything. Woo
    woo.
 
  - December 15
 
  - Turns out Safari (or, I dunno, some other Damned Thing) wasn't
    happy with my front-page IFRAME. I'm really not sure what was
    wrong, actually. Maybe it's the MTU problem I mentioned a while
    back, too. Either way, I wasn't happy with the IFRAME anyway, so
    I've gotten rid of it while I think of something better to do with
    the front page.
    
    I've never seen any of the League Of Gentlemen stuff before, so my
    first taste of it was The League Of
    Gentlemen's Apocalypse and I can't decide if I'm simply not
    getting the in-jokes, or if it's more of the sort of humour I
    dislike, or maybe it's just not that funny. The conceit is kinda
    amusing - fictional characters find out they're being written out
    of existence and go hunting for their creators in the real world
    to try and prevent their extinction - but I found myself poking at
    web pages and wandering off for a cuppa in the middle of the
    movie, so I can't say I was hugely impressed. Curiously, it's
    largely filmed in Ireland; I could've sworn the opening shot was
    somewhere like Cape Clear, and it turns out I may not have been
    far wrong!
 
  - December 14
 
  - Working on those glitches, I am. Also having yet more fun with
    cryptodisks. Yeek.
    
    Hum. Something appears to have changed in POE that stops
    http://proxy:8080 from working - it breaks trying to
    resolve. If I say proxy.waider.ie it works fine, but my
    resolver is already configured to add the domain. WTF?
    
    After some effort and a bit of finger-crossing, I managed to
    hand-mount the encrypted partition. I still have to figure out
    what's missing from my initrd that's preventing it from
    auto-mounting, but hey. Baby steps. The ones that worked were
    to use gpg to decrypt the key into a file under the initrd
    shell, then use the modified losetup program and the key directly
    rather than using the redirect through gpg. There's that insecure
    feeling about having a key in the clear on the highly temporary
    non-swapping ramdisk, but *handwave*
    
    Eventually I come to the conclusion that loop-AES is only
    marginally compatible with dm-crypt, and hacking is
    required to improve on that. Bah.
 
  - December 13
 
  - So the good news is that I have clearance to spew my RVP code
    out on the web. The bad news, for anyone looking for it, is that
    I'm not yet inclined to do so until I fix some of the more
    embarrassing glitches. There is that chunk of code over at
    sourceforge that you can use, you know.
 
  - December 12
 
  - Hmm, fun and games trying to do kernel upgrades on the
    crypto-disk system. Mainly non-functional fun and
    games. Grr.
    
    Adam and Paul is sort of an
    Irish Trainspotting without the
    glamour, much of the humour, or the extensive timespan. In other
    words, it's a pretty grim day in the life of two junkies in Dublin
    as they try to score, and the most humour you'll get out of it is
    an occasional slapstick-induced smile. Grim, grim,
    grim.
 
  - December 11
 
  - Spent most of the day at a museum in Turlough (near Castlebar)
    meaning I spent most of the evening driving back to Dublin. Well,
    not really. I got lucky enough with traffic that I was home before
    9:30, but that did account for most of the
    evening.
 
  - December 10
 
  - Saw the second half of Cutthroat Island, which I
    believe was a total flop (bankrupted its production company,
    according to IMDB); I can't say it was particularly bad, in that
    I've seen a lot worse movies, but it wasn't exactly gripping,
    either.
    
    Snow Falling On Cedars
    had an interesting story but I wasn't wholly impressed with the
    film, particularly the jump-cuts during the expository flashback
    sequences. Probably I'd have been better off reading the
    book.
 
  - December 9
 
  - The funniest thing about Point Break is that the poster-boy
    for the goofy slacker has noticeable trouble playing an FBI agent
    playing a goofy slacker. Still, some nice surfing and skydiving
    bits, and I did watch the entire thing. And I own it on DVD,
    too. I'm not really in a position to complain about
    it.
 
  - December 8
 
  - As predicted, ended up flushing the entire thing. Now to figure
    out whether I want to actually trust it with real data.
 
  - December 7
 
  - More crypto fun. The filesystem was damaged, and
    nothing I could think of doing with debugfs and tunefs would get
    it back into a state where I could mount it as ext3. In the end I
    mounted it as ext2, copied off the files that weren't trashed, and
    remade the filesystem. Bah. I'll probably end up flushing the
    entire thing anyway, but this is hardly a good failure
    mode.
 
  - December 6
 
  - Ok, so I have indications that the split-brain filesystem may be
    something to do with loop device on a file coupled with a
    journaling filesystem, but only indications thereof.
 
  - December 5
 
  - Dealing with a split-brain filesystem: first, it mounts ok, then
    it starts giving errors, and when I fsck it I get the sort of
    failures that indicate that it shouldn't have mounted at
    all. Bizarre. Just as well it's a copy...
    
    In other news, my 3com router is doing something naughty with
    MTU. Specifically, I think it's blocking MTU discovery; besides,
    it's got the annoying trait of blocking traceroute
    outbound. Anyway, I decided to check for a firmware
    update. There is one. I read the instructions. They do not fill me
    with confidence:
	
      5. Upgrading to This Release
      [...]
      - Back up your existing configuration. The upgrade will
        not erase your configuration, but 3Com recommends backing it
        up, in case there is a problem with the upgrade
        process.
 
      [...]
      -Resetting the device back to its factory default settings is
      required for proper operations.
      -Do not reuse configuration backup's from a previous version
      after an software upgrade.
     So, I can back up my config, but I have to factory-reset the
     device, and I can't use the backed-up configuration. Excellent. I
     think I'll leave that be for now.
 
  - December 4
 
  - Eventually got the RVP server moved from a FC4 box (Apache 2,
    mod_perl 2) to a FC3 box (Apache 2, mod_perl 1.99) and went back
    to trying to implement more of the missing bits in both client and
    server. I think the server data structures need some rejigging but
    it's sufficiently awkward to do that I've been avoiding it for
    most of the day, resorting instead to chasing random crap in the
    client. I'm somewhat bothered by operational differences between
    the 1.0.1 version of Gaim as shipped with RHEL3 and the 1.0.1
    source version.
    
    More fun with linux and encrypted filesystems. I'm trying to
    migrate from The Old Way to The New Way without losing all my
    data, and I'm beginning to think that the right thing to do is
    boot off a brand new kernel with crypto support and futz with it
    until it mounts the current encrypted partition, then figure out
    how to translate that futzing into an initrd. Right now I'm
    staring at the paragraph in the mkinitrd man page that
    "explains" the token required in /etc/fstab if
    your root partition is on a loop mount and trying to figure out
    exactly what it's telling me to do.
 
  - December 3
 
  - In moving the RVP server bits from one machine to another I
    discover once again the pain in the neck that is mod_perl version
    changing. I think I might finally have gotten it to at least not
    bomb out, but yeesh.
 
  - December 2
 
  - Been wondering for a while why changes made to BBDB's mail
    auto-filtering wasn't taking. Eventually I realised it's because
    /home/waider isn't my "live" home directory on
    the box that runs the filtering. D'oh.
 
  - December 1
 
  - Finding Neverland is about as
    schmaltzy as you'd expect a movie based on the genesis of Peter
    Pan to be, but hey, Johnny Depp. It's actually a pretty good
    movie, but probably not to everyone's taste. I accidentally
    switched on the writer/director commentary at the start and it was
    far more saccharine than anything in the movie itself ("oh,
    that's a great title" "no, you were great in hiring me
    to make that title" la la la la)
  
 
 previous month | current month | next month
 
 
 
   
     | Waider |  | 
     Wow. Christmas again. |