Pegasus Mail Logo

Pegasus Mail and Mercury Developer News
For archived developer news articles, click here.

November 2013

Each year, the Queen of England makes a seasonal broadcast to her people around Christmastime, in which she gives the folk a good old pep-talk. A few years ago (I think just after Lady Diana had been killed), she used a latin phrase to describe the year past - she referred to it as an "Annus Horribilis", or "Horrible year". Well, this year has been one of those for me. In a case of life imitating Monty Python, every absurd thing that could go wrong seems to have gone wrong this year, and I will not deny that at times I have been skirting the abyss of desperation here in Dunedin.

The most lingering and destructive issue has been a nasty problem that somehow got introduced into Mercury at some point during the significant code rewrite process that was needed leading up to version 5. This problem manifests itself as occasional, sporadic deadlocks - situations where Mercury simply stops responding. It's not a crash as such, so neither the Mercury Loader nor the Windows Service Manager will restart it, and it just sits there doing nothing until someone restarts it manually. Of all the problems you could have in a piece of mission-critical software, this is just about the worst, so it was obvious that no release could occur until the problem was fixed.

Unfortunately, the problem is intermittent - it might take anywhere from twelve hours to a week to manifest itself, which made tracking it down extremely difficult. In the end, to simplify the task of debugging, I moved forward a process I had hoped to defer for one more release - I ported the code from the ancient Borland compiler I was using to a much more modern version of Microsoft Visual Studio. Although this took some time, it has given me much better tools to deal with the problem and will, I hope, allow me to bring out the v4.80 release I had hoped to bring out in May before the end of the year.

On the positive side, the delay caused by the deadlock problem has given plenty of time to test the completely rewritten TCP/IP code based on OpenSSL, and it's now working very well. A much-requested change, this will make Mercury's SSL support much more interoperable with other systems, and will allow you to use real SSL certificates issued by CAs. During the port to Visual C, I've also done a lot of work tidying up and modernizing the Mercury code - you may not realize it, but Mercury has been around for over twenty years now, and just as was the case with Pegasus Mail a couple of years ago, there was a lot of accumulated cleanup that really had to be done during the port.

For Pegasus Mail: The recent revelations about the unprecedented intrusion by security services into material that most normal people would rightly believe to be private has affected me enormously - I have found the whole "breach of faith" aspect of the saga incredibly upsetting. As a result, I have made a conscious decision to redirect my current work efforts in Pegasus Mail towards increased security and privacy. I am now adding strong encryption facilities to the program, with the particular aim of making them so easy to use that there will be no reason not to do so. The new Contact Manager, already a pivotal feature for version 5, becomes even more important when seen in this light: I have now found and implemented a fully-encrypted version of the SQL database I use for the Contact Manager, meaning that even if someone steals your contact file, it will be useless to them. I have also heavily beefed-up the provisions for storing encryption-related settings and certificates in the Contact Manager. In time, I will also support encrypted folder formats in the program, and we will finally have a truly secure mail client. Other work in Pegasus Mail has involved completely replacing the spelling checker with a full multi-lingual version based on the same spelling checker as used in OpenOffice and Libre Office, completely rewriting the program's TCP/IP module to use OpenSSL and fixing a host of small bugs. We hope to have an early edition of Pegasus Mail v5 available at least for public preview early in the New Year.

Finally, on a personal note, I feel I have to apologize for communicating poorly. It's kind of ironic that I got into this field because I was passionate about making it possible and easy for people to communicate with each other, but that I'm not actually that good at doing it myself. For the most part, it's simply a case of burn-out - I've been handling too much mail for too many years (nearly twenty-five years, in the case of Pegasus Mail), and I've reached a point where I rapidly become overwhelmed by even quite modest volume. This doesn't mean that my commitment to my community is any the less, though: I remain totally and utterly devoted to providing tools that fit the needs of my people, and to ensuring that they remain as relevant and capable as it is in my power to make them.

All the very best to you all.


-- David --

[ Page modified 4 November 2013 | Content David Harris | Design by Technology Solutions ]