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