I hate to admit it, but I’m pretty much connected at the hip with Microsoft Outllook. 90% of the work that I do is driven by email, and Outlook makes it fairly easy for me to manage those messages, track the work I’m doing with tasks, and keep up on my appointments, all in one place. If it isn’t in Outlook, I’m likely to forget to look at it—I’ve even developed the habit of noting my phone messages in tasks as I listen to them because of the likelihood that I’ll be interrupted before I get to return the calls and then forget to do so when the little red light on my phone turns off.
I like to keep track of a number of websites–for everything from news, to notices of updates to software I use and support, to blogs of friends and other interesting people. I became an early adopter of RSS when Netscape first introduced the idea on their MyNetscape portal, setting up an elaborate homepage to track all of my favorite sites. Over the years I’ve tried many different approaches for managing and reading these RSS feeds, from online readers to desktop clients. Desktop clients always seemed to work the best since they could keep track of what I’ve already seen, but they weren’t portable. I can access web clients no matter where I am, but most only show the most recent updates to a site and don’t remember what I’ve already read. And with both approaches, I actually have to remember to look at them, something that I often forget to do when I get busy.
I stumbled on the Outlooks RSS features by accident, but when I found them, Outlook instantly became my new way to manage RSS. Outlook stores feed items as messages. Once a feed is parsed, all of the items in it are stored in Exchange folders, keeping them available forever, alongside my email. I also have the ability to move RSS items to other folders for archiving and I can forward an article delivered by RSS to someone else as if it was an email. Outlook does a pretty good job of remembering what RSS items it has already downloaded, so once I delete an item, it usually doesn’t come back. This isn’t perfect, however, and I often end up with duplicates, especially when I’m logged in on two computers at the same time.
Outlook was good, but not perfect, so I continued to look for something better. I “discovered” Google Reader, a web-based feed aggrigator that offered many of the things I liked about Outlook, like the ability to track the article’s I’ve read and the ability to access articles that are older than the default number of items served up in the RSS feed. With an Android app available, my feeds are available anywhere I go, too. I had seen Reader in the past and liked what it could do, but being a web app, using it meant losing the tight integration with my email that I had come to love in Outlook, so I never adopted it.
In my continued quest for a “perfect solution,” I found a number of blog posts and Q&A sites offering suggestions for Outlook-Reader integrations, from importing an OMPL file from Google to setting Reader as a folder’s web page. Google’s OPML file is just a listing of the original RSS feeds to which you’ve subscribed, so this approach leaves me with nothing different than what I’m doing now—Google Reader completely leaves the picture. And with the web page method, I’d lose the tight intergration that lead me to switch to Outlook in the first place.
Not happy with any of the solutions I found, I decided to create my own. Google has not published an API for reader, but based on the research of Martin Doms, it appears that such an interface may have once been an intent. With the Help of Dmitrij Duhnich’s Google Reader API Class, I was able to whip up a solution in a matter of hours.
Using Dmitrij’s class, I retrieve the 20 newest unread entries for a subscribed feed. These are returned as a PHP stdClass object that I reformat into an RSS 2.0 feed using SimpleXML. The key, however, is that I mark each item unread as I add it to the RSS feed. When Outlook pulls the feed, it gets only items it’s never seen before. By marking the items read, I ensure that I’ll never get duplicates, no matter how many different computers I use to retrieve my feeds.
I call my tool Fed (as in the past-tense of the word feed) because once it’s fed you an item, it will never feed it to you again. Right now it exists as only a few extremely rough PHP files. If there’s an interest, I’ll cosider cleaning up my code and releasing it.