Hacker's Diary
A rough account of what I did with Emacs recently.
- October 31
- Looks like the core dumping was down to some incautious legacy
code I uncovered while throwing away bits of the original RVP
plugin.
Hacked in a few more chunks of code and yay, I think I've got a
good 80% of this thing done. Which has, incidentally, involved
removing most of the existing code... next step is to get some
poor fool to try it out against a real RVP server instead of the
hacked-up mess of Perl I have here. Which I should probably beef
up into a proper RVP server, incidentally.
- October 30
- Hmm, that's annoying. Got a chunk of tricky stuff in the RVP
client working, and then it started spontaneously dying in the
middle of Gaim code, and I can't see why.
- October 29
- Spent an "entertaining" half-hour trying to figure out
why changes I was making to a file weren't having any effect
before I realised that the fileserver was running an older copy of
said file. D'oh.
You know you're in for a somewhat parochial Irish movie when the
cast lists Marty Whelan playing himself; however, The Actors also stars Michaels Caine
and Gambon, and Dylan Moran, and the rather gorgeous Lena
Headey. Gambon's Dublin accent has to be heard to be believed -
it's the real deal! And the interior of the pub looks suspiciously
like one of the lunch spots near work. This is a great movie, and
not just on account of it being set in Dublin - the story's sharp,
the performances excellent, and Dylan Moran is just pure
genius.
I think at this point I've got most of the bases covered in the
RVP client, at least in as much as it behaves itself reasonably in
my testing environment. There are still lots of XXX
comments in the code, i.e. places that really need to be
revisited, and there's still a bunch of legacy code sitting in
there that I think I have, at this point, pretty much entirely
replaced. However, there's also a small shortage of features,
including such things as a properly-functioning buddy list. Still,
might be good enough to have a few people whack a real RVP server
with so I can see how well it behaves.
- October 28
- Tough day at work; when I got home I was in no fit state for
anything computer-wise.
- October 27
- Continuing to hack on the NTLM auth, mainly engaging in a
longwinded way of proving that I need to read up on glib's
hashtables or something. Certainly all this string-splitting isn't
the best way to go about header manipulation.
- October 26
- Aha. I knew NTLM auth needed persistent connections, but I
didn't check to see if Apache was offering them. And, of course,
it wasn't. So now I'm at least getting a "wrong
password" error instead of nothing at all. The problem is
that it's the right password, so I need to figure out what's wrong
with that.
Aha. It's my choice of testing client. curl's NTLM auth
appears not to want to talk to my PDC. At least I now have working
NTLM auth, so I can get back to the task at hand, viz. cleaning up
the RVP stuff again.
- October 25
- Simply putting in a mod_perl NTLM auth handler didn't work with
the Windows clients, either, so it's not ropey client code. I'm
still trying to figure out what it's doing, if
anything.
- October 24
- Ripped out part of the old RVP data struct (why are we
maintaining two buddy lists, eh?) and then attempted to cope with
the resulting breakage. Not entirely successful, alas; I need to
do some more digging to find out what's broken.
Switched on NTLM auth on the web server using
Apache2::AuthenNTLM, but it doesn't appear to be
working. Or maybe it is, but I can't tell.
- October 23
- Last week I ended up more-or-less cloning a chunk of code (to
handle URL fetches) from Gaim because all the useful bits weren't
exported. Today I find Gaim also has some nifty async DNS stuff
which is also not exported. This rather sucks.
The dialogue Get Carter is a bit stilted in
places, and the few fights in it are totally hammy, but I still
enjoyed the movie. The camerawork in particular was very inventive
and not distractingly so - it's one of those things that's so
clever you're not aware of it until later. I'm vaguely curious
about whether they changed the ending for the remake, too, but I'm
not sure that I'm curious enough to actually rent it.
Despite what I'd heard, Constantine did not make me want to
throw things at the TV; I liked the storyline and characters and
on the whole all seemed to work rather well. Perhaps I'd think
differently if I'd read the comics, but I haven't,
so. I particularly liked Lucifer as played by Peter Stormare;
probably one of my favourite characters in the whole film,
actually. And I also rather liked Constantine's
"batcave" above the bowling alley. And the holy shotgun
was just the business.
- October 22
- Spent most of the day working on the RVP stuff again, having
gotten Samba up and running as a PDC on the fileserver and, after
several fumbles, joining various machines to the thus-created
domain. I now need to backend the RVP server into the domain so
that the PDC handles authentication and what not.
- October 21
- Samba still not built, due to some brokenness in the RPM
stuff. I don't think it's actually supposed to build on RedHat 7.3
any more, at least not without a small amount of kicking. I should
probably fix it.
- October 20
- Finished off notification parsing in the client, for some value
of "finished"; it now recognises typing notifications as
well as messages. I think the next task is to clean up the bizarre
callback-inhibit stuff, including not having the entire client
disconnect just because someone's blocked you... the server no
longer uses any of the old notification code, but this has
possibly revealed new and exciting bugs. It does
correctly pass back message failures, which is how I know that the
client blows up on blocking.
Happy birthday, Natalia!
- October 19
- When you write some code inside eval(), make damned
sure that the code outside it is rock solid. It's not a good
thing for your exception-handling code to cause exceptions!
Set Samba 3.0.20b building, with several intentions, one of which
is to provide a decent user structure for an RVP backend. Also in
RVP-land, cleaned up notification a little so that it can now
properly send notifications when someone signs on. This is still a
little broken in that it only provides for a single sign-in per
user, but it'll do for now as that's all I'm using.
- October 18
- Machine suddenly goes semi-catatonic. Log in from
elsewhere. Wait. Run top wait. A 1 gigabyte
Firefox process. Guys, I think you should maybe use valgrind more
often.
Adding a protocol to LWP, even one that piggybacks on an existing
protocol, is far messier than it should be.
Well, it took a lot of running backwards to get this far forward,
but I now have enough of an RVP server to allow my clients to talk
to each other. It's still missing huge chunks and isn't too good
at internal cleanup (see previous comment about overly persistent
data) but it means I can concentrate a bit more on cleaning up the
Gaim plugin rather than trying to figure out what's wrong with the
server.
- October 17
- Team America: World Police
was an interesting idea but nowhere near as funny as I
expected. The fact that every second character sounded like
Cartman didn't help. Oh well, at least I can scratch it off the
wishlist.
- October 16
- Went to upload some files to the MP3 toy and got an odd error
(basically ENOENT without a context in which it made sense). On
further inspection it turned out that the MP3 was in an invalid
format (22KHz rather than the 44 the toy wants) so I went digging
in the code to fix it. In the process I found that the HAL layer
was lying about whether the device was mounted or not, and added
code to dig the mount point out of /proc/mounts if HAL
doesn't seem to be able to give a useful answer.
More RVP hackery; I am having some trouble with persistent data
being a little too persistent. I think it might be down
to using transactional locks when I wasn't doing any transactions,
so I've switched that off to see if it improves
matters.
I am gradually beginning to understand the RVP code, which means
I've spent way too much time staring at it. Also it makes me
twitch a lot. I've replaced a chunk of ad-hackery with a single call to
libxml2 which seems to handle the job far better. On the
flipside, I'm doing a lot of manual XML digging that I could
probably do with XPath, but I didn't read that page of the
libxml2 documentation yet. I think maybe I'll see if I
can get it working the slow and horrible way, and then go back and
redo it with XPath.
- October 15
- Vodafone appear to have changed their site somewhat again,
requiring more hacking of the scraper. Now it just looks for a
form with a username field and uses that as the login form. Guess
I should probably check for a password field, too...
The Wild Bunch is another one of
those "don't make 'em like this any more" movies. Not
without its flaws: some of the cuts were a little jarring in terms
of continuity, and some of the cinematography is simply dated or
perhaps a little ponderous, but on the whole this was a blast. I
saw this movie years ago and the only part of it that stuck in my
head was the big shootout at the end, which is far shorter than I
recall. Well worth seeing, though.
Found some handy web parsing code in Gaim to use for RVP which
unfortunately it doesn't export, so I copied it straight into the
RVP code block. I figure I'll eventually run all the web i/o code
through a single parsing block with switched handlers, as opposed
to the current code which has multiple near-identical parsing
blocks.
- October 14
- John stopped by for a few beers, so to hell with this computing
lark for the evening...
- October 13
- Went to a pub quiz, came second, came home with a bottle of
wine. Whee!
- October 12
- Slightly put out by differences in Gaim behaviour in two almost
identical environments. The beating with sticks will
continue.
- October 11
- Rebuilt a 1.0.1 version of Gaim and compiled the plugin against
it. Seems to be working better than I'd expected. Hmm.
Finally got around to shutting down the waider.ie mail/web server
in order to throw in the extra 256MB DIMM I've had lying around
for ages. Also took out the DVD/CD writer and replaced it with a
DVD-ROM; I'm going to put the writer into the fileserver box to
maybe do off-disk backups or something equally exciting. Either
way, it stops me from tying up the web/mail server with
bus-mastering activity.
- October 10
- Another birthday outing. Yeesh. I spent less time going to pubs
when I was unemployed!
It appears some of what I've been making work for Gaim 1.5 doesn't
work for Gaim 1.0.1. Bah. I will have to backport, which means
having a local copy of 1.0.1 to abuse.
- October 9
- Ah, Microsoft, Microsoft, Microsoft. It turns out that the
reason I was having trouble getting the MSN client to talk to my
hacked-up RVP server is that the MSN client is sensitive to the
order of XML elements at the same level in at least one
of the server responses. At least, though, I've figured that out
and can now have the MSN client connect to my fake
server. Yay!
After some more abuse, I've managed to make working
status-on-login code both on client and server sides. Async
notification is going to be harder because it requires me to make
potentially blocking connections within Apache, and I need to find
out how to do that without holding up an entire server
instance.
- October 8
- More fiddling with RVP on the server side. I'm beginning to
wonder if maybe the official RVP client, i.e. MSN, is unhappy with
non-auth connections.
I can't say that Elektra was worth waiting for. Mostly
it seemed to move far too slowly for what, let's face it, should
be an in-your-face bubblegum movie. Plus I think there was far too
much included in it. It's all very well having a team of bad guys
but when all of them except the Boss are dispatched with little to
no effort - almost incidentally, it seems - you start wondering if
they were in the movie solely because someone produced a checklist
of characters. The connection to Daredevil, which is somewhat
pivotal to what I know of the Elektra comics, was referred to so
quickly that if you weren't paying attention you'd miss it. And
the whole flashback-to-tortured-childhood routine was way
overdone. Once or twice, fine. Every time the director needs an
explicit motive for Elektra's actions? Hi, give me some credit as
an intelligent observer, eh? I can put two and two together
without having to count on my fingers and all. On the whole,
disappointing - particularly given the various writers and artists
of the comics who showed up on the extras; I bet "Frank
Miller's Elektra, directed by someone who respects his
talents" or maybe "script by Brian Michael Bendis"
would have made for a far more satisfying movie.
- October 7
- Correllating logfiles is really, REALLY tiresome work,
especially when there's nothing obvious to show having done
it.
- October 6
- Arguing with Apache::Session over the creation of a
session with a given name. It appears it's not possible; if you
pass in a name, it has to be for an existing session
store. Gah.
- October 5
- Birthday drinks for Jonny. Eep, where's the night gone?
- October 4
- Belated happy birthday, Cathal! Per yesterday's diary entry I'm
blaming Mozilla's alleged calendar for the fact that I didn't get
a reminder.
Maybe I should write my own calendaring
software. Bwhahaha. Right. I think it would be more in my line to
resurrect the Emacs/iCal glue I had half-heartedly thrown together
at A Previous Employment in order to avoid dealing with Microsoft
Outlook.
- October 3
- Further adventures in calendaring: Mozilla's calendar continues
to suck. I mean, when presented with a box that says, "A
script is causing this to run slowly; do you want to abort it?
[Cancel] [OK]", which button do you press? (Answer: neither;
kill the damned program, delete your calendar files, and stop
pretending it's of any use)
- October 2
- Ok, so now I know how to look up SRV records. That wasn't
fun.
- October 1
- Doing bad, bad things with macros in a spec file. Muhahahah. Go
have a look at the spca5xx bits on the patches page.
I should stop renting movies from the Far East as I obviously
don't get them. I've just watched Casshern, and about the only thing I
can definitely say about it is that it's anti-war. It's like
someone took bits of The Matrix trilogy, Pink Floyd's The Wall,
Blade Runner, and a random selection of manga, and then couldn't
decide if it should be soundtracked with orchestral music or '80s
power rock, since the music switches between the two rather
jarringly. Most of the action sequences are cut in such a way that
it's hard to tell what's going on, and to further confuse matters
there seems to be flashback of the action cut into the action
sequences which, er, uh, yeah. And the happy couple explodes. No,
really. They do. Kaboom. I can't recommend this or not recommend
it because I'm still scratching my head.
previous month | current month | next month