Older blog entries for bcully (starting at number 31)

Weird. My account disappeared, but when I recreated it I got my old diary entries back. And I'm still a Journeyer, even though the actual certifications have vanished.

29 Jul 2004 (updated 29 Jul 2004 at 17:13 UTC) »

Hmm, been a looooong time. I'm going to UBC for grad school. It was a tough choice between it and NYU, and if I'm being honest with myself, a lot of the decision came down to me wanting Canadian permanent residence. On that front, all my documents were mailed a couple of months ago, including the check (oops, cheque) and the medical exam. As far as I know, I'm just waiting for the final paperwork now. Of course I haven't heard anything from CIC since I sent everything out, and they are impossible to contact.

Anyway, I'm moving to Vancouver in a week! It's pretty exciting, even though the move is going to be really stressful (and I'm sure I'll miss New York quite a bit. Maybe I can get people to honk horns outside my window).

I quit my job and went to China for a couple of weeks to visit my sister (very cool, especially hearing her talking away in putonghua to various surprised locals). Now I've got some free time and I've been programming again. I did a few minor mutt patches, including SSL client side certificate support, and some icecast work: nonblocking libshout with theora support (both rewrites of initial code by the tireless Karl Heyes), and a crossfader for ices, which made me surprisingly happy considering how simple it was. After I put it in play, I discovered that a lot of my MP3s have a few seconds of silence at the end, so I wrote a little script to find out where that silence starts and trim it. It's too much of a sloppy hack to release, but I might fix it up, since googling came up with nothing that does the same thing. Why is that? It seems to be a common problem.

abg: Take a look at daemon from the libslack package.

Not much news - studying a lot for the GRE CS test, which appears to be more intensive than I had expected. I'm still finalizing the set of grad schools I'll be applying to. Is it wrong that I started picking them based on what cities I wanted to live in?

I also applied for permanent residence in Canada a while ago, but the letter I got back said "thanks for your application. It will be about 60 weeks before we look at it." So obviously I need to make other plans in the mean time.

I need to get back to work on the mutt driver API. I'm probably about halfway along the initial conversion, but the grad school application process and a big, not-yet-finished redesign of my radio station have been consuming most of my time.

Now that libshout 2.0 and IceS 0.3 are finally out the door, it's time to unwind from all that icecast hacking. And the best way to do that is, of course, to hack on mutt.

I've fixed a couple of long standing IMAP bugs concerning multiple connections, and have begun a project I've wanted to start for ages: I'm building a mailbox driver API. The idea is to sanitize the driver-specific interfaces and remove any #ifdef DRIVER code into the driver. There's a lot of that in the current monolith. Once it's done, the code will be much easier to maintain for everyone. And it should make it possible to drop in additional drivers (say, NNTP) with no fuss. Finally they could be made dynamically linkable, which is nice for package maintainers.

My approach is to move the code over piecemeal, instead of dropping off a 200k chunk of new code or a brand new mutt. This will make it easier to track the upstream CVS, easier to verify that each piece is working, easier for other developers to understand, and more likely that the API will make it into the mutt core. Plus, there's the instant gratification factor.

So far I've done two functions - one that tells whether the driver can open a given mailbox (path or URL), and one that opens the mailbox. It's going pretty smoothly right now, but of course I'm attacking the easier parts first. I know it'll get hairy a bit later.

I'm doing more Canadian permanent residence paperwork tonight.

MichaelCrawford: Sounds like you want pinning, an APT technique for reliably installing packages from outside your source distribution. You could pin your base system on Woody, and then fetch a more recent mozilla from another source (like unstable).

In other news, I've been doing a lot of work with icecast. Libshout 2.0 should be official within a week (barring unpredicted horrible bugs), along with perl and python bindings.

I dropped the ball on Canadian permanent residence for a while, but have recently picked it up again. I've got most of the paper work together except for the letters of reference from my previous employers. After that it's just mailing them and crossing my fingers. And waiting. Is it wrong to mention emigration on July 4th?

It'd be cool if the threshold function on the recentlog were extended to cover comments on articles too. The GNU-Darwin thread would certainly be much less aggravating to read.

I'm looking into emigration to Canada. It looks like I have enough points (just barely) and enough savings, but I'd like to talk to someone who's done it instead of just printing out the forms and sending the cashes. I've got lots of Canadian friends, but none who started out as Americans...

I finally switched back to mutt. Mail.app is nice but its shortcomings became more and more irritating. I missed:

  • threading
  • save hooks
  • proper polling of mailboxes other than the Inbox over IMAP
  • being able to choose my From: address at all, and especially having it chosen automatically based on the To: of the message I was replying to
  • mailcap
  • speed. The text interface is just a million times faster, even though Mail.app has an IMAP mailbox cache. Go figure.

Things that I'll miss from mail.app:

  1. Inline image/HTML viewing
  2. Integration with AddressBook.app, where I keep all my contacts

Well, 1. isn't that big a deal. Mailcap can spawn Navigator so it's really only an additional keystroke and a very small delay.

2 drove me nuts, so I wrote a little AddressBook plugin for lbdb last night. It was surpisingly straightforward, considering I've never done Objective C (let alone Cocoa) before. I'd be a little embarrassed if anyone saw the code, but it works, and that makes me happy. I've missed you, mutt!

Loads of ices work. I ported it to libshout2 (and wrote a bunch of unfinished libshout2 code to boot, like metadata handling), fixed vorbis mono/bigendian problems, added ID3v2 support, and handled sample rates other than 44.1 kHz, and finally got mono output working.

Trying to have multiple versions of autoconf/automake/libtool for different projects is a real horror show so far. I haven't touched mutt (the only CVS code I use that requires an autoconf no newer than 2.13) on account of it. Well, to be fair, I've been busy with icecast stuff anyway.

I finally did it. I don't know whether it was smart or stupid, but I gave notice Friday. In three weeks I'll be in Paris for the first time in ten years. A friend of mine has a few months off before becoming a stinking lawyer, so she's taking her first big trip and invited me along as a travel safety blanket.

I didn't like the work, but I guess a lot of people don't like their work. What clinched it is that all my hobbies dried up while I was working there - minimal music, no free software, little reading. Just metro boulot dodo, as I heard it put ten years ago :)

Hopefully this is good news for users of mutt/IMAP. I feel pretty bad about the way I disappeared from mutt (and icecast), but I wasn't getting anything else done either. The dark cloud lifts...

Tromey: I bet libtool gets it far worse than automake. Probably deservedly so (oops, naughty me).

I've done no development to speak of in ages. I continue to blame my job. But I'm looking forward to a little trip to Ireland in two weeks - maybe it will be rejuvenating.

Here's me in a turtle suit.

22 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!