So at work we use a combination of subversion for source code control and Trac to… well, to provide an RSS feed I think. I actually don’t know why we use Trac specifically, since I don’t think we use any of its other features other than the commit notification stuff. In any case, one of the best features of Trac is its ability to create an RSS feed for any individual sub portion of your source tree. In case you are wondering why this is excellent — well, getting hundreds of commit e-mails for every commit to projects you don’t really care too much about, combined with the fact that I find commit e-mails to be kind of annoying due to them interrupting my general workflow, means that I was quite looking forward to when our group was going to switch to subversion and use Trac. Unfortunately after this happened, I was unable to use an RSS reader until the sys admin re-enabled http authentication (web authentication forms are evil!), as all of the server is password-protected. And even after this got fixed, I tried pretty much every RSS client out there (I was used to using Pulp Fiction, but it really just treats RSS feeds as e-mails, more or less). One of my requirements was Growl support, since that seemed like it would make my life much easier: to get a Growl notification for every commit. I really liked the idea of RSS Menu, but it was kind of inadequate in this regard — it simply sent a “new feed item received” typed Growl notification. This was mostly unhelpful. For a few days, I tried NewsFire (which is really annoying by the way, if you haven’t paid for it. If you want to try it out, it continually bounces its dock icon every few hours telling you to register — it would be nice if it didn’t do this until you had at least tried the app for a couple of days). NewsFire was pretty cool (and impressively shiny!), since it did pretty much what I wanted with Growl, but even still I liked the idea of the app being more minimalist like RSS Menu.
My first thought was to e-mail the RSS Menu author, in the hopes that he would be amenable to making the Growl changes I wanted. He was quite nice in telling me that he was rewritten portions of the app and that it might be awhile. Oh well. My second thought was, “well, how hard can it be to write an RSS Reader?” I had already done something simple in the past using libxml2 on Linux, in order to automatically torrent files from and RSS feed based on regex matching. I figured I could just use this source as a starting point, and everything would be great.
Well, one weekend later (and a couple of days of testing), I bring to you the new app RSS Growler. It’s powered by core data (quite fun to use, once you understand how it works), web kit, and Growl. It works impressively well, and is extremely shiny because it is designed specifically with trac RSS feeds in mind (although it will probably working fine with other RSS feeds as well).
It is pretty cool in that it manages multiple feeds and takes the top most recent feeds, showing them in the main drop down menu, with older feeds in submenus (it is a menubar app, like RSS Menu). It recognizes if your feed is a trac feed and parses it, finding web links in the commit log and displays them as sub menu items with regards to the main feed item. For each item in the top most recent feeds, it automatically gets the item via web kit and caches it to your hard drive as a safari webarchive. Then when you click on the link, it opens up the cached version of the page. It displays all of the information you need in the Growl notification (revision number along with author, and the commit log), and it has the option of show each separate feed as a separate item in Growl, so that you can customize the display per feed.
The one caveat is that you want to make sure you use a trac feed that has verbose=on in the query string, which you can do by customizing the display of the revision log before clicking the RSS button in safari to get the RSS link — this way you get the entire commit log and not just the first sentence or so.
Anyway, I think it’s really great, and so have some other people — so visit the RSS Growler page now!