When .NET first came out, I was looking for a way to learn it. At the time, Peter McIntyre and I were writing a new course on ASP.NET (now INT422). One of the assignments we used for a long time was a web-based email application, and it was a lot of fun. To make it so the students didn’t have to worry too much about the underlying email functionality, I took on writing the backend email parts.
Very quickly I found that .NET didn’t have great built-in support to do most of what I wanted to do–maybe that’s changed today, I don’t know. At any rate, I wrote what I needed, and the students used it. After the first offering of the course, I had some time and decided to add IMAP support so we could work with our school’s email server (the number one request I got from the students). This meant implementing all of RFC2060, (now obsoleted) which meant the birth of NetMail. I wish I could give you a URL, but I never released the source. It’s probably somewhere on my old laptop, unloved, untouched.
I spent so much time with that damn spec, trying to get it right. It burned itself into my brain for life. After I finished coding it, various things took over my life, including having two children, new courses, etc., and I never did anything with it.
So today, I was pleased to finally be able to pull that knowledge out again as I tried to fix a pesky IMAP bug in Thunderbird (see bug 459487). What good is all that IMAP knowledge taking up space in the back of your mind if you can’t find at least some use for it? I have to admit, I didn’t think it would see the light of day again.
Here’s to worthless knowledge becoming useful.