Developer's musings
Every day something new...

I've had a number of people ask me if I could put together a blog posting describing what I'm doing at the moment, and what plans there are for Pegasus Mail and Mercury in the short-to-medium term.

Well, the first thing I'll tell you is that my current priority is to get Pegasus Mail v4.5 out the door. On the face of it, it won't look like much has happened, and I suspect many people will be rather disappointed by v4.5, but in reality, more than 50% of the entire codebase of the program has been modified in some way during the shift from Borland C++ to Visual C++; it's been a huge, largely unrewarding job that simply had to be done. In the process, though, we've caught and fixed literally hundreds of small and medium-sized bugs that have been present in the program for periods ranging from recent history to more than a decade.

A huge amount of effort this year has gone into releasing Mercury/32 v4.6 - once again, there was a lot of code modernization going on that doesn't yield obvious visible benefits, but which simply had to be done.

But not everything is porting code and fixing bugs. I've also been spending a lot of time familiarizing myself with new technologies that will have significant bearing on both Mercury and Pegasus Mail:

  • For Mercury, I've been spending a lot of time learning about CSS and XHTML, because the future of Mercury is clearly heavily web-oriented.
  • I've been spending a lot of time learning about SQL and particularly SQLite, because it's clear that both Pegasus Mail and Mercury are going to need robust database facilities in future.
  • I've developed my own object programming interface for both programs: this is a key technology that will have a huge bearing on future development by making it easier to extend the programs' capabilities without side-effects.
  • I'm well into developing a complete replacement for the fundamental message store used by both Pegasus Mail and Mercury. This new component, called MailStore,  is easily the single most important development in either product in more than a decade, and should be in a working state towards the end of this year.
  • I've spent a lot of time this year working on documentation - the bane of all programmers... The Mercury/32 Daemon Developer Kit in particular was a huge amount of work that was vastly overdue, and I do hope to start seeing new Mercury Daemons appearing before much longer.
  • Finally, I've spent a lot of time developing tools - either because I was forced to do so (as in the case of the new help system, which I was forced to do by Microsoft), or because I believe they'll be important in upcoming releases of either program.
I realize I'm not being quite as specific as I'm sure many of you would like: I'm not saying that "X feature will be working by August", or that "Y feature is now operational": I promise that as I get to a position where I can make reasonable statements about new developments I will do so, but in truth, the last two years have been a gigantic, painful, tedious process of modernization and tooling up for new capabilities, rather than actually working on those capabilities per se.

I also realize that I've been somewhat of a stranger to the forums this year: I apologize for that, and will say honestly that my absence has largely been a result of tech-support burnout... Doing technical support is a very soul-destroying process, because you're typically seeing people at their worst and most stressed, and nobody really likes spending all of their time dealing with the bad aspects of their work. As a result, spending too long doing technical support is a recipe for depression and loss of motivation, and I've been doing technical support at some level for nearly two decades now. It's my aim to become a more regular participant in the forums, although I will be consciously and actively trying to resist the self-destructive urge to solve every problem I see posted. I'd like to get back into the forums so I can enjoy interacting with the people who use my work without always burning myself out trying to fix all their problems.

So, there you have it - a slightly longer, and maybe slightly more candid posting than I intended, but I hope it serves to give you a little insight into where I am at the moment.

Cheers to you all!

-- David --

I've had a number of people ask me if I could put together a blog posting describing what I'm doing at the moment, and what plans there are for Pegasus Mail and Mercury in the short-to-medium term. Well, the first thing I'll tell you is that my current priority is to get Pegasus Mail v4.5 out the door. On the face of it, it won't look like much has happened, and I suspect many people will be rather disappointed by v4.5, but in reality, more than 50% of the entire codebase of the program has been modified in some way during the shift from Borland C++ to Visual C++; it's been a huge, largely unrewarding job that simply had to be done. In the process, though, we've caught and fixed literally hundreds of small and medium-sized bugs that have been present in the program for periods ranging from recent history to more than a decade. A huge amount of effort this year has gone into releasing Mercury/32 v4.6 - once again, there was a lot of code modernization going on that doesn't yield obvious visible benefits, but which simply had to be done. But not everything is porting code and fixing bugs. I've also been spending a lot of time familiarizing myself with new technologies that will have significant bearing on both Mercury and Pegasus Mail: <ul><li>For Mercury, I've been spending a lot of time learning about CSS and XHTML, because the future of Mercury is clearly heavily web-oriented.</li><li>I've been spending a lot of time learning about SQL and particularly SQLite, because it's clear that both Pegasus Mail and Mercury are going to need robust database facilities in future.</li><li>I've developed my own object programming interface for both programs: this is a key technology that will have a huge bearing on future development by making it easier to extend the programs' capabilities without side-effects.</li><li>I'm well into developing a complete replacement for the fundamental message store used by both Pegasus Mail and Mercury. This new component, called MailStore,  is easily the single most important development in either product in more than a decade, and should be in a working state towards the end of this year.</li><li>I've spent a lot of time this year working on documentation - the bane of all programmers... The Mercury/32 Daemon Developer Kit in particular was a huge amount of work that was vastly overdue, and I do hope to start seeing new Mercury Daemons appearing before much longer.</li><li>Finally, I've spent a lot of time developing tools - either because I was forced to do so (as in the case of the new help system, which I was forced to do by Microsoft), or because I believe they'll be important in upcoming releases of either program.</li></ul>I realize I'm not being quite as specific as I'm sure many of you would like: I'm not saying that "X feature will be working by August", or that "Y feature is now operational": I promise that as I get to a position where I can make reasonable statements about new developments I will do so, but in truth, the last two years have been a gigantic, painful, tedious process of modernization and tooling up for new capabilities, rather than actually working on those capabilities per se. I also realize that I've been somewhat of a stranger to the forums this year: I apologize for that, and will say honestly that my absence has largely been a result of tech-support burnout... Doing technical support is a very soul-destroying process, because you're typically seeing people at their worst and most stressed, and nobody really likes spending all of their time dealing with the bad aspects of their work. As a result, spending too long doing technical support is a recipe for depression and loss of motivation, and I've been doing technical support at some level for nearly two decades now. It's my aim to become a more regular participant in the forums, although I will be consciously and actively trying to resist the self-destructive urge to solve every problem I see posted. I'd like to get back into the forums so I can enjoy interacting with the people who use my work without always burning myself out trying to fix all their problems. So, there you have it - a slightly longer, and maybe slightly more candid posting than I intended, but I hope it serves to give you a little insight into where I am at the moment. Cheers to you all! -- David --

Dear David.

I wish you all the best for your work for 4.5. I like to work with Pegasus Mail and I'm looking forward for the new version. Because the current Pegasus is runnig fine on my system I will wait for the new version "until it's finished". I understand that this rewriting process is depressing but it's great that you are going through it and I believe it will be worth it. Keep it up and - well - take a look back at the huge Pegasus and Mercury community you've created. You've done some huge steps so far!

A.

Dear David. I wish you all the best for your work for 4.5. I like to work with Pegasus Mail and I'm looking forward for the new version. Because the current Pegasus is runnig fine on my system I will wait for the new version "until it's finished". I understand that this rewriting process is depressing but it's great that you are going through it and I believe it will be worth it. Keep it up and - well - take a look back at the huge Pegasus and Mercury community you've created. You've done some huge steps so far! A.

Thanks for the update.

I'm curious: Why did you feel the need to move from Borland to Microsoft?

I read your ealier post about the frustration with Microsoft's abandonment of their old help systems in newer OS releases. Surely you're not the only developer to face this. Maybe your home-grown help system could be sold as another stream of income.

Thanks for all your efforts.

Thanks for the update. I'm curious: Why did you feel the need to move from Borland to Microsoft? I read your ealier post about the frustration with Microsoft's abandonment of their old help systems in newer OS releases. Surely you're not the only developer to face this. Maybe your home-grown help system could be sold as another stream of income. Thanks for all your efforts.

My Borland compiler environment dates from 1995, and it is getting increasingly difficult to work with: each new version of Windows introduces some feature I can't support without compiler support, and debugging has been getting more and more precarious. In the end, moving to MSVC was the only possible option if I had any plans of bringing the code into the 21st century.

The help system is a work in progress: it works well for the English help in v4.5, but we've run into some problems with it for the translations, so they'll continue to use WinHelp in the short-term.

My Borland compiler environment dates from 1995, and it is getting increasingly difficult to work with: each new version of Windows introduces some feature I can't support without compiler support, and debugging has been getting more and more precarious. In the end, moving to MSVC was the only possible option if I had any plans of bringing the code into the 21st century. The help system is a work in progress: it works well for the English help in v4.5, but we've run into some problems with it for the translations, so they'll continue to use WinHelp in the short-term.

I'm really glad to hear that you're looking at SQL databases for future datastores. In my opinion, this will open up tremendous new possibilities for future releases.

If you can use somebody else's database technology as a foundation, then you will immediately gain so much more time to focus on your own core specialties (i.e. e-mail apps). Perhaps this is cliche, but with the complexity of today's technologies, I think the only way to survive is to focus on YOUR own core competency (e-mail) and let other folks focus on THEIR core competencies (data storage).

Don't get me wrong, the good old days when you could fully understand your app all the way down to assembly code were great. But those days are over, it is a necessity nowadays to build upon foundations laid by others (e.g. SQL databases).

Anyway...great to see this blog post! Thanks!

I'm really glad to hear that you're looking at SQL databases for future datastores. In my opinion, this will open up tremendous new possibilities for future releases. If you can use somebody else's database technology as a foundation, then you will immediately gain so much more time to focus on your own core specialties (i.e. e-mail apps). Perhaps this is cliche, but with the complexity of today's technologies, I think the only way to survive is to focus on YOUR own core competency (e-mail) and let other folks focus on THEIR core competencies (data storage). Don't get me wrong, the good old days when you could fully understand your app all the way down to assembly code were great. But those days are over, it is a necessity nowadays to build upon foundations laid by others (e.g. SQL databases). Anyway...great to see this blog post! Thanks!

Dear David,

thank you for the great programmes you develop. I use Pegasus for years now, and I'd use Mercury if I was Admin here -- thank ~God~ I'm not. I partly feel the same as you in what you said about technical supporters' feelings, programme support is part of my job too, but I don't think one is _bound_ to suffer from depression when he does this job.

I stumbled on the word MailStore ... there is a programme that is a boon for people who are forced to use other proprietary e-mail products (M$ in the first) eg in their job, and this is called MailStore. Please have a look at http://www.mailstore.com/en/. You should find out if there is a problem in using the same name just before that apparently financially potential company threatens you by the club of their alleged "intellectual property".

Have a nice time.

mupan

Dear David, thank you for the great programmes you develop. I use Pegasus for years now, and I'd use Mercury if I was Admin here -- thank ~God~ I'm not. I partly feel the same as you in what you said about technical supporters' feelings, programme support is part of my job too, but I don't think one is _bound_ to suffer from depression when he does this job. I stumbled on the word MailStore ... there is a programme that is a boon for people who are forced to use other proprietary e-mail products (M$ in the first) eg in their job, and this is called MailStore. Please have a look at http://www.mailstore.com/en/. You should find out if there is a problem in using the same name just before that apparently financially potential company threatens you by the club of their alleged "intellectual property". Have a nice time. mupan

Correction: MailStore is a boon for people who are forced to use proprietary e-mail products (M$ in the first) eg in their job, rather than: other proprietary. Sounds as if pmail was proprietary, which is not the truth, in respect to mail format and standards.

Correction: MailStore is a boon for people who are forced to use proprietary e-mail products (M$ in the first) eg in their job, rather than: other proprietary. Sounds as if pmail was proprietary, which is not the truth, in respect to mail format and standards.

Don't worry, don't hurry. As long as it keeps lean and clean I'm happy.

Take time to care of yourself.

Don't worry, don't hurry. As long as it keeps lean and clean I'm happy. Take time to care of yourself.

PingBack from http://www.rimonabantexcellence.com/t.php?aHR0cDovL2NvbW11bml0eS5wbWFpbC5jb20vYmxvZ3Mvd2lucG1haWwvYXJjaGl2ZS8yMDA4LzA3LzIxL2V2ZXJ5LWRheS1zb21ldGhpbmctbmV3LmFzcHg=

PingBack from http://www.rimonabantexcellence.com/t.php?aHR0cDovL2NvbW11bml0eS5wbWFpbC5jb20vYmxvZ3Mvd2lucG1haWwvYXJjaGl2ZS8yMDA4LzA3LzIxL2V2ZXJ5LWRheS1zb21ldGhpbmctbmV3LmFzcHg=
live preview
enter atleast 10 characters
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified
Saving...
Saved
With selected deselect posts show selected posts
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing
Discard draft