< | >

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

Woo, new job!