Sometimes when you're in a hole, it can seem as if the effort required to climb out of it is just more than you'll ever be able to manage, as though the task is just too hard, with too little reward at the end, and all you want to do is to give up and rest. I found myself in such a hole at the start of 2007.
Put simply, I was completely burned-out. I had been working on Pegasus Mail for 18 years, Mercury for 14, and my fortunes were in head-long decline. Money was in short supply, collections of old source code needed huge amounts of updating, and I had simply answered too much mail.
I probably need to explain what I mean by "answered too much mail". From the earliest days of Pegasus Mail (1989 was when it sent its first ever message), I've always kept an open mailbox: unlike the lead developers at large corporate software firms, I don't have a carefully-guarded e-mail address - the same address that people could use to mail me in 1994 (the only time I've ever updated it) can still be used today, and I make no attempt to hide it. The price of this has been a veritable deluge of mail over the years, with everything that accompanies that - there has been praise, there has been hate, I've made friends and occasionally lost them, but above all, there have been bug reports.
Now, for a software developer, bug reports are like accusations of failure: when you're as involved in your work as I am, each report is sharp and painful like a paper cut - it's very hard to pull back emotionally and see them as the positive things they actually are (because they allow you to make your work better). Each one knocks you back a little, and after 17 years of dealing with them, I had reached a point where I was almost phobic about them. At the start of 2007, I was in a mental and emotional place where I actually *dreaded* opening my new mail folder. For someone who has always regarded communication as being the gift I most wanted to give people, this was an ironic and unnatural position to be in.
January 2007, then, was when I faced a kind of "mini crisis" in my life - not quite a breakdown, but it was a very, very unhappy time. Somehow, though, with help from my friends, my very dedicated beta test teams and from a hardcore group of committed users in the Pegasus Mail and Mercury communities, I clawed my way out of the pit. But to do so, I had to make some changes, and to accept that there were things I just couldn't do any more: in particular, I simply couldn't handle the same volume of mail that I had up until then.
So this, then, is my apology if you have found me unresponsive in the last few years. I am deeply conscious that I do not communicate with my community as well as I either should, or would wish to. Cutting down the amount of mail I handle has been an essential part of the process of easing myself back into a working state, but however unavoidable it might have been, it's still an adjustment I don't like. Increasingly, I am relying on my beta test team and supporters to ensure that things I really need to know get escalated to me through channels I can sustain. That's one reason why this community site is such a god-send for me - even if I don't participate here as much as I might wish to, people I trust implicitly *are* participating all the time, and they regularly refer issues to me, thereby reducing my communication burden, for which I am enormously grateful.
Five years on, and the start of 2007 now seems mercifully distant. After a long period of time where I didn't, I am now actually enjoying doing the work again. The dismal process of updating and modernizing old, clunky code is now mostly done, and new, more interesting projects give me something to look forward to each day. No matter how quiet I may seem to be, rest assured that I am anything but idle: good things are happening in Dunedin - indeed, it's hard for me to tell you how frustrating it is that the time required to bring them to completion seems so great. I guess this is just the inevitable evolution of software: user expectations are now so much higher than they were ten years ago, and the environments richer, more complex and more difficult: doing even very small, seemingly simple tasks can now take a depressingly long time. I am, however, very excited by the things I'm producing at present, and can't wait until they're ready for me to be able to show them to you.
The only real problem I haven't resolved from the dark days of 2007 is that of funding. Initiatives like the Pegasus Mail Thousand have basically failed because of my personality - I simply don't like asking for help, because I don't like the idea of being a nag or a nuisance, and because a core part of the New Zealand psyche is the idea of not being pushy, not promoting yourself. I am, in a sense, my own worst enemy.
I've never been very good at the whole "let's make money out of this" aspect of software - it's not the primary reason I do any of this: my clear preference would be not to have to ask for anything - to make Pegasus Mail and Mercury into the pure gifts I would like them to be. But I have to eat, as well, and that's getting harder and harder. In spite of my own inertia and poor fund-raising skills, though, there are still quite a few people who, even without prompting or reminders, still send donations for Pegasus Mail: I see every donation, and the morale boost they provide is as valuable as the money they provide: my heart-felt thanks go out to you all. I still live in the quaint, naive hope that some day a corporation or foundation might offer some kind of sponsorship - after all, the amounts required are actually pretty tiny - but I guess this is fantasy in 2012. I'm clearly going to have to do something, but at this stage, I don't know what it is.
So, there it is, straight from the heart. I live for the day when I can again offer something exciting and of real value to my community - after all, they're - no, "you're" the number one reason I keep doing this.
All my very best to you,
-- David --
Just a short post to wish everyone a wonderful festive season - have a Happy Christmas, and let's look forward to a prosperous New Year - in fact, "New Decade"! (Scary, isn't it).
Pegasus Mail v4.52. with fixes for Windows 7, is now ready, and will be out between Christmas and New Year. In the New Year itself, January is likely to be quiet on the public front, but things should start heating up in February.
To everyone who has supported me this year, especially my beta test team and all those who have signed up for the Pegasus Mail Thousand (about 500 so far), my thanks for all your help and backing: please accept my warmest wishes and have a wondeful break.
-- David --
I've resisted doing anything very much with Windows Vista until now, but eventually reality catches up with fantasy, so I finally decided it was time to get going. So, I've now got Windows Vista UItimate running here on a laptop (a Dell XPS1530), and over the next few weeks will be taking a bit of time to familiarize myself with its ins and outs.
First impressions usually don't really mean too much - the most I'd usually say about them is that they're a useful indicator of the things you *liked* in previous versions of the OS. In this case, there are a few first impressions that come to mind.
- Vista seems to want to connect to the Net for *everything*. My Dell came with a TV tuner card, and Windows even wants to connect to the Net before I can use that. Now, I accept that the Net is pretty much omnipresent now, but even so, there are still going to be plenty of times when you want to use a laptop disconnected.
- UAC... Well, I guess that about says it all. I've used this machine for probably three hours so far, and I'm already SO frustrated with the unending UAC prompts that I'm going to turn them off. This is a case of Microsoft getting an important feature so totally wrong that I don't even know why they bothered.
- The Windows "sidebar"... I've thought and thought, and I just can't see what use it has. None of the gadgets that comes with the system really seems to have any point to me at all, and I struggle to imagine anything that I would want there. It looks to me like a feature looking for a justification... But of course, other people's mileage may vary.
- The arbitrary changes to the "Start" menu - in particular the ugly new "programs" menu with its odd scrollbar and strange positioning - these seem like changes that will only serve to frustrate and annoy users used to the way XP worked. Of course, many times you think this, then a few months later (after you've become used to the new approach) you wonder how you ever lived without it... But I don't think this will be one of those cases.
- The arbitrary changes to where everything is really annoy me - control panels are changed, things have been moved, simple tasks have become enormously difficult (for example, I actually had to open the machine up by removing two torx screws to find the WLAN card's MAC address so I could tell my WLAN about it - something that was a simple right-click under XP).
- I don't know if I'm ever going to get used to the new Window close/minimize/maximize controls - they just look as though someone has positioned them carelessly during window layout, the way they are (for those few of you who might not have encountered Vista yet, these controls are now half the height of the caption bar and anchored to the top edge of the bar - they look really out of place to me).
- The look of the system is quite slick, but doesn't really seem complete to me somehow... I can't quite put my finger on it yet, but I think possibly it seems a little "over-stylized" to me - it seems kind of "busy". I'm sure I'll get used to that, though.
As an aside, the XPS1530 is a pretty cool piece of kit - slim and light, attractive to look at, yet still with everything you could ever want on board. I'd have no problems recommending it, regardless of what I end up thinking of Vista.
As I use the system more and develop clearer feelings about the issues, I may write more here on the subject.
-- David --
Well. 2008... Amazing.
It's been 2008 for about 23 hours now, and I admit I'm still wondering what happened to 2007 - it seemed to be over almost before it began.
Many years ago, Queen Elizabeth, in one of her Christmas Broadcasts, described the year she had just had as her "Annus Horribilis", a term that has been widely reused, recycled and abused since then. Although I don't much like resorting to cliché, I have to admit that her little latinate touch was just the right term to describe the way I feel about 2007. Put simply, 2007 was, overall, not a great year for me - it started out badly, and got worse. BUT, and this is a big but, towards the end of the year, it also began to get better, and I now allow myself to feel some quiet hope that the road ahead is finally clearer and less treacherous.
2007 was a year of rebuilding for me - in almost every way. For Pegasus Mail and Mercury, the year was about massive reconstruction, followed by a process of consolidation - making right, then making good. Although frustrating, many of the processes I've had to go through with both products this year were necessary and unavoidable, but with them largely complete, the way is open for smoother development in future. Expect to see more releases in 2008 than there have been in the last two years combined, as we finally begin moving towards Pegasus Mail v5, and as Mercury gets more and more robust and refined.
No blog reflecting on 2007 would be complete without mentioning the work of Peter Stromblad in setting up this community: I believe this site has created a wonderful forum for both programs, and its existence has certainly eased the burden of technical support (which was getting very hard to cope with in previous years) on me and my team. I realize that I've been quiet for the last couple of months, after an initial burst of postings - I expect to get back into more regular attendance in the course of the next few weeks.
Finally, I'd like to thank everyone who has believed in Pegasus Mail and Mercury during the hardest year of their long lives, but especially my beta test team, without whom I simply could not function at all.
So then, in these final minutes of January 1st 2008, I'd like to offer you all my warmest wishes for the New Year: let's get this show on the road - I'm looking forward to enjoying the journey. :-)
-- David --
I've been doing this (writing software) for most of my 46 years, and professionally for well over 20 now: one notion that imprints itself more and more forcibly upon me with each passing year is how much more complicated everything seems to get.
I suppose it is in the nature of the human animal to elaborate: caves become tents, which become mud huts, then grow into drafty stone castles, and eventually into towering skyscrapers... Or, bones become sharpened sticks, which become arrows and spears, then muskets, rifles, machine guns until now the US military is testing the "vomit cannon" (a weapon that induces mass nausea by sound waves). With each innovation, every incremental step along the path from humble hamlet to sparkling skyline, things get more complex... One seldom-understood effect of this is that knowledge becomes more and more specialized: any chimp can wield a bone as a weapon, but how many single people would know how to build a vomit cannon from scratch? As tasks get more complex, they progressively surpass the ability of any individual to encompass them in their entirety. The way humans deal with this problem is by specializing - by splitting the task into smaller, more manageable pieces then splicing them together at the end.
The problem with dealing with complexity in this way is that it also introduces complication. Fred Brooks famously stated that "Adding manpower to a late software project makes it later", which can be taken as a general comment on the complication that arises when you increase the number of people involved in any task (not just software tasks). Different people approach problems in different ways, have different priorities, and differing sets of skills: considering this, it always seems miraculous to me that *any* large software project ever yields results at all, let alone working well.
Pegasus Mail is now around 460,000 lines of C code, and Mercury around 200,000. By commercial standards, these are middle-sized projects, and well beyond the optimum size for a single developer. With size comes complexity and complication - nothing in these programs is easy any more - indeed, it makes me weep when I compare the productivity that I could achieve when I was writing the early DOS versions of Pegasus Mail back in 1990 with the almost glacial progress I can manage now. Features that I could have added in a day back then would take a month now, and the depth of knowledge and background required to do them is vastly greater. I think I'm a better programmer now than I was in 1990, but it takes me ten times longer to achieve anything, and it's hard to describe how frustrating that is.
I must admit that when I think of Windows Vista with its tens of millions of lines of code, I can scarcely credit that it works: and the more I consider it, the more a kind of visceral, almost feral mistrust arises in me - how can I trust something so complex that no single human being is capable of fathoming it in its entirety? Would I trust my life to it? My reputation? My identity? Honestly, it's beginning to scare the hell out of me that we're becoming so dependent on this type of technology.
Perhaps I'm being silly, wistful and naive, but wouldn't it be nice if things were simpler? "Simple" is the lost virtue of this age, and I can't help but worry that we're going to miss it far more than we realize.
-- David --
Just wanted to put up a short posting to explain why I've been almost entirely absent from the community forums for the last couple of weeks.
I'm dealing with a number of issues at the moment, and simply haven't had any time available to me. I'm working hard on finishing the WinPMail to Visual C port, aiming for a release in the very near future, and am completing a v4.53 release of Mercury which should also be out very soon. There's also a relatively low-importance security update for MercuryI which I've had to track down and fix - I should be able to release that in the next couple of days, although I stress it's a fairly low-risk issue, because it requires a successful login to work.
As well as this, we're doing some system modifications here and I have had some personal issues to attend to.
So, I apologize for the silence, but I should be back in the mix before very much longer.
-- David --
Yesterday, the US Dollar hit its lowest point ever against the New Zealand Dollar.
In that one sentence, you can see encapsulated much of the financial pain and difficulty that developers like me have been experiencing for quite some time. Many people don't realize that different countries use different currencies, and that those currencies' values change over time in relation to each other. What this means is that when someone pays me some amount in US Dollars, I actually receive a different amount in New Zealand Dollars (my local currency). The amount I receive depends on a floating, variable rate called an "exchange rate", which is the amount a bank will pay for a foreign currency, and which is affected by all sorts of economic factors.
For the last five years, the US Dollar has been in a kind of freefall against most other currencies, as the US economy flirts around the edge of international collapse. This has meant that US currency has been worth less and less - but most people probably don't realize *how much* less. Well, as a matter of interest for myself, I did a comparison yesterday. On July 18 2002, if someone had paid me US$1000, I would have received NZ$2039.15. Five years later, the same US$1000 would have yielded NZ$1250.93 - that's a difference of $788.22, or well over a third. My New Zealand dollars still buy me pretty much what they bought me five years ago (inflation is pretty low over here), but I'm getting far fewer of them. Standard economic wisdom has it that I should simply increase my prices to cover the currency changes, but if I did that, a US$150 license would now be costing close on US$250, and most customers simply won't wear increases like that. What's more, my so-called "business model" has traditionally made it quite difficult for me to increase prices in any event, because I have always felt it was a matter of honour to accept any price I had previously advertised.
By contrast, if someone had paid me EUR1000 in 2002, I would have received NZ$2024.29, whereas now I would receive NZ$1724.13 - still a drop (reflecting the relative strength of the New Zealand economy), but nothing like as severe a drop as the USD, where more than a third of my income has simply vanished in a puff of banker's logic.
I bet most people have never even thought about things like this - after all, not many people really do much in the way of international transactions... But for people like me, for whom almost every transaction is international, it's quite a serious issue, and there's no sign of relief on the horizon. So, we tighten our belt a little more and eat out a little less... <grin>.
Important disclaimer: This is not intended as any form of solicitation of support from my users, who have been generous and kind beyond my expectations: it's just an exposition of a problem most people probably aren't even aware exists, and is provided purely as an insight.
-- David --
Last weekend, I wrote my first ever program in C#. Now, admittedly, in keeping with long-established historical tradition, it was only "Hello world", but even so, it felt like a step into a whole new universe.
I've been writing programs for a very long time now - getting on for thirty years, in one form and capacity or another. I've mostly written in C, although I did a lot in Pascal back in the CP/M days (I can hear the younger members saying "CP what?!?" as I write this), and have even written programs in (ugh) Basic. I'm probably one of only a handful of people left alive who can actually remember how to program in Focal-8, and I've spent years trying to forget how to write in Fortran... But C# is a sign of how much the world has moved around me, and how different everything has become.
For someone used to using the Windows Win32 API and writing procedural code, the C# and .NET way of doing things can be quite mind-boggling, particularly when you throw in some of the new .NET 3 features such as Avalon (Windows Presentation Foundation). There is quite literally so much information density there that I find myself asking again and again how anyone can ever learn enough of this stuff to be able to work with it competently. It's also daunting to think that the way you've been doing things for nearly twenty years is finally reaching the end of its usefulness, and that soon (all too soon!) change is going to be forced upon you whether you like it or not... So the world moves on.
I guess there are two ways you can deal with change - you can either resist it and hope that enough other people resist it to cause it to fail, or you can embrace it early and hope to reap the benefits over time. Both approaches have risks, but historically it's a truism that (in the immortal words of Douglas Adams) "Resistance is useless!" - or, if you take a more sinister viewpoint, "Resistance is futile - you will be assimilated". I for one find the intricacy and depth of the C# / .NET combination strangely seductive - the first time I've been able to say that about a Windows technology since Windows 95 was introduced. Whether this is the path I need to be walking is something I'm thinking about a lot at the moment: I haven't made my mind up for sure one way or another, but I'm definitely approaching it with an open mind, and even some enthusiasm.
Time will tell, I guess.
-- David --
Over the years, a comment I have heard frequently is that people would like to know a little more about the person behind the programs... This blog is my answer to that request: I'm sure it will bore many people, and annoy some, but such is the way of the world...
As such, this blog is intended as a piece of pure self-indulgence... It's
a place where I will periodically comment, rant, muse, or ponder things
that interest me at the time. There is no democracy here: only I can post in this blog - I hope, however, that people will perceive it as a benevolent dictatorship.
My interests are quite wide and varied, but include photography (I was a professional photographer many years ago), fine wine, music, English literature, comedy and cooking, so expect to see that type of stuff occurring here from time to time.
I don't guarantee that I'll update this blog frequently or copiously, but I promise I'll do my best.
Cheers to you all!
-- David Harris --
Author, Pegasus Mail and Mercury.