Older blog entries for wlach (starting at number 33)

The last few days have been extremely sad. My colleague and friend, Deniz Sarikaya, passed away on Friday evening. My heart goes out to her family and those who were closest to her.

I'm going to miss those 12am theological discussions on the metro to NDG..

1 Feb 2005 (updated 1 Feb 2005 at 06:57 UTC) »
lkcl: TNEF is totally conceptually distinct from MAPI: it's an encapsulation format in which other things can be stored, including MAPI properties. Kind of like TAR, except the file format is undocumented and kind of hard to swallow at first blush (it's really not that bad once you grok it).

MAPI itself is really an API (as the name implies): used for accessing hierarchical folders, items within folders, and properties within items. The last one is really the killer: Microsoft really went to town coming up with all manner of arbitrary and incomprehensible ways to encode fairly simply things like recurrences and subject headers..

Kind of coincidental that you should write about this today-- I just had a (somewhat tongue-in-cheek) argument with several people in my office on my choice of name (WvMapi) for our MAPI-property/TNEF handling library, which is currently bundled with our GPLed Evolution connector for our proprietary groupware suite (with luck, one day it will be a seperate library). They claim that since the library's current purpose is to read/write TNEFs (and not implement the MAPI api), it should really be called WvTnef.

I claim that they (and their opinions) are wrong, and that it should be called WvMapi in honour of where it does its conceptual heavy lifting: decoding MAPI properties (which you might want to do without serializing them to TNEF). :-) pzion suggested calling it WvMapiProps as a compromise, but that just sounds clunky to me.. ah well, I'm sure we'll find a mutually acceptable name for it eventually.

I, Robot

Rented this one on my way home last night, as I didn't feel like hacking or reading. I was under the impression it was a rather mediocre movie with some amusing social commentary (like, say, Terminator 3). This impression has since been corrected. It was a truly horrible movie and I am a worse person for having seen it.

The last episode of Pure Pwnage had better acting and more exciting action sequences (not to mention less offensive stereotyping). I'd recommend downloading that (for free!) instead of wasting your time and money on yet another piece of obnoxious Hollywood claptrap..

21 Dec 2004 (updated 21 Dec 2004 at 09:55 UTC) »
freax: Ah yes, I forgot to mention that last Thursday. Thanks for the guide on building evolution out of CVS. It helped me out immensely (I added instructions on how to do the same thing in Ubuntu Warty: the differences were minor). Go collaborative knowledge!
17 Dec 2004 (updated 17 Dec 2004 at 08:02 UTC) »
Fun with 'winmail.dat' attachments

Ever had one of these? Likely you have if someone sent you a calendar, contact entry, or attachment from Outlook without thinking too hard about what they were doing.

The story behind them is rather long and boring: the short version is that they are something called TNEFs (transport neutral encapsulation format) which (in the case of calendar entries, contacts, and tasks) are extended to contain MAPI (messaging application programming interface) properties. If memory serves me correctly, Microsoft was originally hoping to get TNEFs adopted as the standard for encoding any form of electronic communication. Fortunately, that effort failed. Unfortunately, TNEF lives on as a way of encoding "leftover" information in an outgoing e-mail that does not fit neatly into a MIME message (why this sometimes includes file attachments escapes me at the moment).

Today being the Evolution hackfest and all, I thought it might be a neat idea to put my company's decoder for this format (called WvMapi, originally designed for our Evolution connector) to more general use by writing an E-Plugin for decoding contact and calendar attachments in Outlook-created messages.

It sounded like a great idea on the surface. Peter Colijn, Michel Émond, and myself had spent tons of energy making sure that WvMapi decoded just about everything you threw at it properly (the MAPI recurrence format for appointments is not pretty, let me tell you). Moreover, WvMapi spits out icals and vcards, which (according to the evo hackers) would be trivial to format into something that could be displayed in Evolution's mailer.

Alas, WvMapi is currently limited to parsing TNEFs which are exported directly from Outlook's data stores (and thus contain their full names, dates, descriptions, etc. inside a TNEF attribute called attMapiProps) and it seems as if the ubiquitous 'winmail.dat' attachments encode all of their MAPI goodness inside of the attAttachment attribute. I don't think it would be all that much effort to extend WvMapi to handle this sort of case (Lukasz Kosewski decoded how attachments are encoded in TNEFs during his last work term at NITI: I should see about getting his documentation and example code released as open source), but it's probably not a one day project.

For those looking for a more immediate route to getting this sort of thing going, I'd recommend looking at the ytnef project. Playing around with the converter a bit, I managed to get it spitting out some simple icals and vcards from winmail.dat's. I have a hard time believing that it does as good a job at decoding MAPI properties as we do, but maybe I'm just being arrogant. I didn't look at it much further because of potential licensing/IP issues: ytnef is licensed under the GPL, and I may be forced to use WvMapi in my company's closed source projects.

Words to the wise

Two pints of kilkenny, two irish coffees, capped off with two regular coffees are not a good recipe for sleep or sanity. I haven't felt this bad since I took ephedrine in university (also not recommended).

Ubuntu is amazing

Managed to install a working + wonderful system on my home computer even in this state of jitteriness and zero attention span (of course I had the dry-run experience of installing it at work for a mission-critical project: always the best way to evaluate software).

It's been a while I've felt so enthusiastic about a linux distribution (I think my last discovery of this magnitude was 'apt-get' in Debian): I feel almost behoven to get out there and spread the good news.

10 Nov 2004 (updated 10 Nov 2004 at 07:38 UTC) »
Skinny Puppy

My ears are ringing but the concert was amazing: the perfect cathartic antitodote to recent events. So maybe the new stuff isn't at the same level as the old, but so what? The audio-visual presentation was simply amazing: vaguely reminiscent of the Kraftwerk show I saw last spring, with the adrenalin, angst, and leftist political bent (nothing quite like seeing george w.'s aircraft carrier escapade to the tune of deep down trauma hounds) upped 100%. Wow.

libwpd

I really need to release version 0.8.0. Would be kind of unbelievable if OOo 2.0 wound up using an "unstable" snapshot from last August..

18 Oct 2004 (updated 18 Oct 2004 at 16:37 UTC) »
Hippie Coffee

So, last Saturday I needed new coffee (the Cuban stuff my parents bought for me on their recent trip had run out, alas). As usual, I headed out to the local Metro and made a bee-line for the "organic fair trade coffee" section. In addition to the usual fare, I noticed a tin with what looked like a marijuana leaf on it. Picking it up, I read the label: "Combination of medium roast coffee and hemp seeds (Cannabis Sativa)" (I think you're supposed to focus on the CANNIBIS SATIVA).

I chuckled to myself "what a bunch of stupid neo-hippie trash" (I have no in-principle objection to hemp, only complete idiocy like this) and began to walk away, bag of "normal" coffee in hand. I got all of 5 steps before the old saying popped into my head: "Come on, you know you want to try it". How bad could it be?

In other news, I think NITI's Montréal office is about to get some "free" coffee.

Life

Long time, no update. But winter is now over, and many months of blissful summer days await.

I'm heading to Sweden for a brief holiday tomorrow. Looking forward to spending some quality time near the sea, in Skåne.

Donning the Fedora

I downloaded Fedora Core 2 yesterday to install onto my new laptop (my old one, which was running debian-unstable, was stolen roughly a month ago). Installation (over NFS) was pretty much painless, and the base system seems up to RedHat's usual standard.

Initial impression of the desktop is relatively positive, minus the Gnome SMB browser which still seems to crash immediately when I try to browse NITI's internal network. It's rather unfortunate really: I had heard some good things about the one in 2.6. Both GNOME and KDE's SMB backend are based on libsmbclient: why one works while the other doesn't bears investigation. I might look into this after I return.

I still think that Ximian Desktop 2 is the best Linux desktop environment out there. I'm not sure whether it's the menus, the artwork, the panel layout, the gnome print dialog, OpenOffice.org Ximian edition, or something else entirely-- but it just feels right.

Work

.. continues. Unfortunately, I'm not sure if I can say anything about the bits that I'm really excited about at the moment, so I'll have to keep my mouth shut on this one for now.

Independant Hacking

libwpd progress seems to have stalled somewhat after a huge release last February. Fridrich's been doing some impressive mapping of WordPerfect indent functions to tab stops (paragraph properties), and I've been slowly trying to expunge the libgsf/glib dependancy, but that's about it.

Sun (Hamburg) did some QA work back in March/April, but I just haven't had time to really look into the bugs in any depth.

I'm going to try to book some time off to work on libwpd full time in the semi-near future, but help would be enthusiastically welcomed here.

KDE 3.2

I meant to post this earlier, but whatever.

Last week, ppatters showed me the new SMB ioslave in KDE 3.2. It's very, very impressive. We browsed around our internal network (which is rather complex) in konqueror without a hitch. Authentication perfectly sane. No weird crud around file names. No invalid directories. Yes!

Major props to both the KDE and SAMBA teams for making this happen. I can't imagine the difficulty of reverse engineering the SMB protocol (I'm told it's totally nuts), but it looks as if all the pieces have finally fallen into place. This is a big, big step forward for Linux on the desktop.

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