Older blog entries for bcully (starting at number 28)

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.

djcb: There already is a GTK+ front-end for mutt :)
Cactus: Tk's email address is in Singapore. Perhaps your prejudice is poorly founded?
Scandal: I for one have no objection to your SMTP patch (but it will be made to do TLS). In fact I think having skeletal SMTP and a configure option to use libesmtp too might not be bad, except I haven't looked at libesmtp and don't know how much additional code it might require in mutt...

As for disconnected mode being slow to develop - yeah, I haven't even planned to look at it until 1.4 finally comes out. But on top of that I've been so insanely busy with my job that I have to admit I've let the other projects fall into the weeds a bit. I personally am convinced that disconnected mode inside of mutt is a big win.

In other news, I'm insanely busy. So I was annoyed that when I spent my precious free time to see Brotherhood of the Wolf tonight it turned out to be one of the biggest turkeys I've ever seen. The advertising was slick, but why didn't someone tell me? Not only does it not make any sense at all but it shamelessly steals the cool tricks from at least 5 other movies. And, it looks like the director's previous experience was shampoo commercials. You could make a pretty good drinking game out of waiting for someone to face away from the camera and toss his or her hair.

19 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!