Hacker's Diary
A rough account of what I did with Emacs recently.
- April 30
- Chasing memory leaks in librvp. I'm convinced at this point that
valgrind is lying to me.
Murderball absolutely kicks
ass. It's a documentary about Wheelchair Rugby, and the
rivalry between the American and Canadian teams; the latter was
coached during the filming of the movie by a previous American
allstar who felt he'd been short-changed by the US. You absolutely
have to see this. I think Kyle Smith of the New York Post sums it
up nicely:"The quadriplegic rugby players of this
documentary taught us all a valuable lesson: Losing the use of
your limbs in no way diminishes your desire to kick the crap out
of your opponent."
Which is true.
I had a look at whiteboarding in MSM. As best I can tell, it's
essentially application-sharing with MS Paint, which means it's
probably not something I could easily implement a clone of in
librvp. So, back to bug squishing.
- April 29
- Cleaned up the file transfer code so it's almost sane. I think
I've fixed most of the potential blocking points; I've still not
implemented a few things like handling of BYE codes other than
"OK" but on the whole I'm pretty happy with
it.
- April 28
- Some pretty nefarious hacking and a few packet traces, and lo, I
have bidirectional file transfer in librvp. Of
course, now I need to go back over it and clean it up, so it's not
yet released. The weirdest part of it that I encountered is a
mandatory zero-byte write (!) from a receiving client to
effectively acknowledge receipt of a block of data. At least, once
I put that into the code it worked, and that pretty much
correlates with the packet traces I looked at.
- April 27
- Oook. Went out for "one" after work. Didn't make it
home until laaaaaate.
- April 26
- Some of the continuity skips in Dog Day Afternoon are so
jarring even the normally militant IMDb contributors haven't
bothered noting them. That said, it's an impressive piece of work,
although like any true story it's hard to believe it actually
happened - it wouldn't surprise me if they had to tone down
reality in order to make the story plausible.
- April 25
- The worst part of making such slow progress on file transfer
(inbound) is that it was in the large part caused by the fact that
I don't understand the code I wrote two months ago, and have to go
and figure it all out again. D'oh.
Tried a different tack on the unsubscribe stuff. Still not
completely right, apparently, when faced with multiple account
types (or some such). I may have to abandon it entirely, or make
it a conditional compile.
- April 24
- Hmm, seems like the unsubscribe stuff is still a bit
flaky. There's an undocumented (in the RVP docs) short form of
PROPPATCH, and there also appears to be a potential problem with
multiple logins with different view-ids.
- April 23
- Hacking some bits of wbinfo for use in the RVP server. It occurs
to me that a wbinfo Perl module would be pretty neat.
Boogie Nights was yet another
"enh" movie. Something to while away a couple of hours
but not exactly a must-see. I am amused to note that while the
director said he doesn't do sequels, there's a sequel in the works
for next year. Silly director.
Yay:You have successfully received C:\Documents and
Settings\waider\My Documents\My Received
Files\ganked-from-new-phone.txt from waider. Before opening this
file, you may want to scan it with a virus-scanning
program.
D'oh:Gaim has segfaulted and
attempted to dump a core file. This is a bug in the software and
has happened through no fault of your own.
Yes, I have
successfully managed to transfer a file from the Gaim client to
the Microsoft client, albeit with a post-transfer
segfault.
- April 22
- Finally figured out what I was doing wrong with the
disconnection stuff in Gaim: by the time the disconnection
function is called, the GaimAccount no longer has an associated
GaimConnection, so the proxy callback stuff quietly fails. So now
I have a horrible but working disconnection function (horrible
because it essentially busy-waits on the PROPPATCH and UNSUBSCRIBE
messages, since there's no way for me to tell Gaim to hang about
until they're done) which will, no doubt, cause something else to
break.
- April 21
- It appears that I may have now added Apache 2.2 compatibility to
the mod_ntlm_winbind code, through not using a deprecated API call
(d'oh).
Added a flickr sidebar to my front page because, hey, I
can.
- April 20
- From what little I recall of Fern Gully,
Titan A.E. is sort of the same thing
except in space. I'm not sure why I rented this other than yay,
quasi-Irish animation house (see Don Bluth's bio)
which had, er, no involvement since it folded some years before
this was made. I dunno, I have no more excuses.
Important RVP development: interpreting fonts and colours sent by
the Windows client. Vital, I'm sure you'll agree.
- April 19
- Doot doot. Which bug do I fix next? Oh hey, the Samba guys have
put my patches for mod_ntlm_winbind in SVN, if you need a copy. It
appears to be working pretty damned well at this point.
- April 18
- Much tooling around with CD-RWs and floppies and
handwaving.
- April 17
- Ok, what the heck. librvp 0.8
released.
And for good measure, here's my
test server. You'll note that it's not very secure; it's
intended as a testbed rather than an actual RVP server, but it
does the job well enough to fool the official client.
Fixed up (I hope) a coredump problem in mod_ntlm_winbind and sent
a patch to the Samba
folks. I'm not 100% sure, but I figure if you're testing that a
pointer to a memory blob is null, then you should null out the
pointer when you free the blob.
- April 16
- Crash is an excellent movie. It's not
perfect; there are a few loose ends that I'd like to have seen
cleaned up, but on the whole it's a really well-made (to use the
director's words) ensemble piece. Well worth seeing.
Cleaned up the last (I hope) of the multi-user chat insanity. I'm
debating whether to release this as 0.8; there are a couple of
important fixes, but nothing major. I guess I should go ahead and
put it out there.
- April 15
- I found the DVD extras for The 40-Year-Old Virgin
far more entertaining than the movie itself, possibly because they
required less attention. Having said that, the movie was entirely
predictable anyway. It's a bit of American Pie, a bit of Office Space, a bit of Swingers, really nothing you've not
seen before. Having said that, there are a few laugh-out-loud
moments, and the outtakes/deleted scenes/etc. are worth borrowing
someone else's copy for.
Fixed another group chat bug in RVP.
Did a live upgrade to FC5 on one machine. Predictably, it didn't
quite work, but I'd intended doing a rip-and-reinstall
anyway.
- April 14
- So, as expected, group chat still isn't fully sorted, but that's
okay; the fixes I was putting in last night were mostly
side-effects of other bugfixes.
- April 13
- Found a really obvious bug in RVP which had been plaguing a
coworker. Essentially, you're going to be very lucky if you can
successfully unsubscribe someone else from their own subscriber
list... not entirely sure why it breaks all subsequent stuff, but
that's probably a side-effect of the stupidity.
Fixed a few more bugs, and made it so you can instigate multi-user
chats from Gaim. It's clunky as hell, but there're no GUI hooks I
can hang an Invite button off, so.
- April 12
- Work's been very busy the last few days, resulting in a slightly
knackered Waider with no real interest in tackling bugs on the bug
pile. Normal service will be restored shortly. Or not. You know
how these things are.
On the plus side, an old friend has reappeared in my
life. Hurrah!
- April 11
- Happy Birthday to me! I bought myself a new domain: despite the
lack of whois information, I'm now the proud owner of
waider.eu. I've no idea what I'm going to do with this as
I registered it largely on spec.
- April 10
- So it turns out my NTLM Auth stuff for Apache 2 (go look in
Samba SVN, it's in there!) isn't exactly correct. In particular,
it may SEGV under some circumstances and may leave extra ntlm_auth
processes lying around under others. So I'm going to have to
figure out what exactly is broken, which means getting deeper into
the Apache 2 API than I'd really intended.
Also, as you'd expect, last night's bugfix has a bug. I forgot
that Gaim requires a plugin's normalize function to return a
static buffer; thus, if you call it twice in a row, you have to
save the value in between or it gets stomped on and you end up
comparing e.g. "foo" to "foo" instead of to
"bar" as you'd hoped. See previous ranting on the topic
of the Gaim API. In passing I've also updated my RVP server to
hand out the proper response for resubscribes, including (I think)
a 412 error if you try to resubscribe with the wrong URI, although
since I've fixed the Gaim bug I haven't tested this feature. I
should really finish off the ACL stuff for the server and punt it
out on the website.
- April 9
- Finished out the conversion of MPLE code to more generic NW
code; now I get to add handling for the newer version of the
format, at which point I will hopefully figure out which parts of
my API should be generic_function_calls_pointer_function, and
which should be call_pointer_function_directly. It's about 50/50
at the moment, and I'm not convinced it's right.
Bug! Found!When refreshing a lease, a successful
response from the PRESENCE SERVICE returns a response code of 200
– Successful.
In my code, I was treating a 200
response to a SUBSCRIBE as always belonging to my own subscription
(which is true for the initial subs, just not for lease
refreshes). The ironic part is that I'd flagged the code with
"I should check this." D'oh. Fixed, as they say, in the
next release.
- April 8
- Finally got around to watching Downfall, which I taped more
than a month ago... it's a powerful movie, and I found it
interesting in that much of the actual war aspects were implied -
the action never leaves a small number of locations in Berlin and
the bulk of the scenes are in the FürherBunker; the camera
cuts away from many of the suicides - even Hitler's is rendered as
a gunshot heard from outside. I've been nosing around in Wikipedia
a bit as a result, reading up on stuff like the inhabitants and
survivors of the bunker, the post-war trials, etc.
All the MPLE track stuff done, now just the filesystem stuff
left. Then I start working on the v2 stuff, and stomping on any
memory leaks I've inadvertently introduced along the way.
- April 7
- Subscription bug continues to elude me, so I'm concentrating on
finishing out the MPLE stuff while I wait for
inspiration.
- April 6
- Still chasing the subscription bug. I may have to resort to
valgrind to catch this, dammit. I still haven't come up with a
minimal test-case, either.
Added another couple of bits to the MPLE stuff.
- April 5
- Hrm, so I can see the bug, and I can see it's still happening
even though I thought I'd fixed it, and the best I can do is put a
bunch more logging on it and wait for it to happen
again. Bah.
Added another function to the new MPLE stuff. Step by step... soon
I'll be at the point I started with!
- April 4
- Kingdom Of Heaven is about 40
minutes too long and is full of really laboured dialogue
attempting to get across the rather simple notion, "why can't
we all just get along?". It was engaging enough that I didn't
turn it off halfway through, but it didn't exactly have me
clinging to the edge of the chair in anticipation,
either.
So I think I've fixed one RVP bug, but I'm doing various
long-running tests to verify it, plus I'm pretty sure the fix
leaks memory and that's another area I've been putting
off fixing. I guess I'll have to approach it sooner or later, but
what I really need to do first is figure out how to get some
arbitrary memory checker tool to ignore everything that happens
outside my control, e.g. leaks in GTK.
- April 3
- In fixing up my code that scrapes Vodafone's photo album into
Flickr, I discovered that my phonecam actually puts useful EXIF
data into the pictures and updated the script to take advantage of
this when setting the date. Excellent! Mind you, the photo album
website hasn't gotten any better (it recently vanished for a few
hours when (presumably) new code was rolled out referencing a
10.x.x.x address); where previously my photos were turned into a
two-shot slide show featuring the same picture (with different
filenames) and caption twice, it now features the
aforementioned double picture, but with some bizare XMLish caption
on the second, and a third image of a blank film frame (you know,
with sprocket holes along the edge) with the caption from the
first frame. I have no idea what they think they're doing with
this. Who knows, maybe it's a function of what my phone actually
sends them.
Started looking at the RVP code again as there are a few bugs that
need cleaning up.
- April 2
- Well, the new NW code is now dumping out something resembling
the contents of my MP3 player, but it's not quite right. On the
plus side, I've inadvertently discovered that my xterm can display
kanji...
Aha, that'd be on account of UTF16-to-UTF8 conversion on an
already-converted buffer. D'oh. Fixed that, and finished
implementing the folder handling, although there's some memory
leakage that I'll need to revisit once I've had another shouting
match with autoconf.
- April 1
- Added a function to cddb-mode.el to
convert Grip
multi-artist files (using TARTIST tags) back to
"normal" CDDB files.
Continuing to carve up the MPLE code with a chainsaw. I might well
be better off rewriting from scratch...
previous month | current month | next month
Waider | |
Summer's arrived early |