There's a good chance this will be among the stranger posts I've made to this blog. You see, I've just come off a drug-induced coding frenzy, the likes of which I've never seen before.
Now, I should explain that before you get the wrong idea. A few weeks ago I was diagnosed with sudden hearing loss (SHL), and my doctor prescribed a steroid called prednisone to treat it. Among prednisone's side effects is an abundance of manic energy and a decreased need for sleep - in other words, it was made for programmers. I've heard of people feverishly redecorating their houses while taking the stuff, but in my case I re-architected FeedDemon.
It started quite innocently. I was running into problems integrating with NewsGator's synchronization API due to the way I designed FeedDemon. FeedDemon works on a per-group basis, so that only feeds in the active channel group (folder) are displayed and updated. I chose this approach to keep memory and bandwidth consumption low, and also to avoid overwhelming users with a huge list of feeds, but unfortunately it has limited the degree of synchronization that FeedDemon can have with other RSS readers.
My plan was to change this in FeedDemon 2.0 several months from now, but I found myself with such a wealth of energy that I decided to expend some it by seeing how involved it would be to make the switch now. At first I made a few small changes, but before long I was coding like a madman, creating new classes, ripping out old code and building new components at a frenzied pace.
My first day of coding like this ended at 5:30AM. My second day started two hours later. By the end of the third day I had written well over 7,000 lines of new code and reworked thousands more. Stepping back at the end of it all and looking at what I had done reminded me of that scene in The Shining - you know the one, where Shelley Duvall's character discovers that her husband has filled an entire manuscript with the phrase "All work and no play makes Jack a dull boy." In my case, though, rather than write something nonsensical, I actually wrote some pretty fine code.
Because the changes touched upon so many areas of FeedDemon, I wasn't able to compile the code for the entire three days. So when I was done, I took a deep breath and tried compiling it. I'd love to say it worked right off the bat, but the truth is I had to make a few tweaks before it would compile without error. However, once it compiled it ran smoothly - I had completely recoded FeedDemon's foundation in three days, and I'll be damned if it didn't work!
At this point I haven't decided whether all these changes will be included in the upcoming FeedDemon 1.6 - I'll need to do a whole lot of testing before I decide that - but the end result of this coding marathon is that FeedDemon will have a slew of oft-requested features. In the short term the UI will continue to work on a per-group basis, so that you only view feeds in the active group, but feeds in inactive groups will update in the background. In addition, these changes will make it much easier to offer the folder-based UI that so many have asked for - expect to see this sooner than planned!
Oh, and here's how the story ends. A few weeks ago I was interviewed by Inc. Magazine for an article about software support, and they decided to send out a photographer to snap my picture. The photographer showed up at the tail end of the third day of coding, at which point I was long overdue for some serious sleep. I was so tired that I soon found smiling to be far too much effort, so I just kind of sat there like a mannequin and waited for it to end. So...if you happen to catch the article, think back to this post when you see the picture :)