ncm: I may be biased as a New Yorker and one of the more than one hundred thousand people who publically protested the war in New York City before it started, but I doubt you have any idea what "most Americans" think. Maybe you find it comforting to believe that the government wouldn't behave the way it does without the support of "most Americans"? I can see why, but it's unfortunately a bit naive. If you were American, what would you have done to prevent the invasion?
More mercurial hacking: I've written a remote diff extension, to allow you to diff against other repositories. This also supports diffs against local branches, which is why I wrote it.
I've just rewritten "local branch" support for Mercurial. These are basically clones that share a working directory, making the cost of using branches much lower. One of the more common complaints I hear about Mercurial is from git users who miss git-style branches. Hopefully this extension fixes that.
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.
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.
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.
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.
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?
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!