Sometimes dealing off the bottom of the deck saves a lot of time.
I really like Thunderbird (the Mozilla mail/news/RSS program), but like any software it has its imperfections, one of which particularly bugs me. I get a lot of mail (jokes, slide shows, movies) that I want to circulate to the same list of people. That much is easy: I just created a mailing list in one of my Tbird address books, containing all the names and addresses. The problem is that the inbound message usually comes from someone on the list, and I don't want to send it back to them. So the plan is to blind carbon the list, delete the person who sent it to me, and ship it ... except that Tbird does not expand the list in the Bcc: (or To: or Cc:) field.
Searching on line, I discovered that I'm far from the only person bothered by this omission. I used to fudge it by creating a pseudo-individual (rather than a mailing list) whose e-mail "address" was actually a list of all the addresses. Tbird would duly fill in this long list in one Bcc: line, and then hitting enter or tab in that line would split it into individual lines that could be selectively edited. That stopped working reliably a version or so ago (the wages of exploiting an undocumented "feature"), so it was back to Google, where I found the answer: a nifty extension called AddExpandedList. Select the list in the contacts panel, right click it, and you have options to add the list in expanded form to any one of To:/Cc:/Bcc:.
I found it a few days ago and added it to all three of my Thunderbird 3.0 installations. So of course Mozilla came out with the upgrade to TB 3.1 today, and it blocked AddExpandedList on the grounds that it was allegedly incompatible with TB 3.1. Sigh.
That led me to start looking for information, tutorials etc. on how to write a TB extension. Skipping an hour or so of travail (out of date information, stuff that made my eyes water, ...), I found the Mozilla Add-on Builder, a wizard that asks you a few questions and then hands you the skeleton of an extension. That doesn't get you very far, since you still have to do the coding yourself. In looking at what the builder gave me, though, I noticed that the install.rdf file (which essentially tells TB what it's about to install) contains a field maxVersion that gives the highest TB version number with which the extension is compatible. (If this were a cartoon, a lightbulb would pop up over my head at this point.) So I opened the installation package for AddExpandedList in a zip utility, opened its version of install.rdf in a text editor, and sure 'nuff it had maxVersion=3.0*. I changed that to 3.1 and TB happily re-installed the extension (which works just dandy with TB 3.1). Saved me who knows how many hours of trying to learn how to write my own extension!
(Update: Not too long after I posted this, a new version of AddExpandedList came out that works with TB 3.1.)