My backlog in NetNewsWire has been getting to alarming proportions. I made the mistake of trying to deal with this by pulling some of the better blogs into a group that I would read more regularly - which just resulted in me getting bored while the backlog increased. It turns out that variety is good, who'd have thunk?
Anyway, as it was raining this weekend, I whipped up some code to try to deal with this problem. It's called FeedShuffle, and it's only really much use if you are a NetNewsWire 2.0 Beta user (which is actually not a small group.) From the README...
FeedShuffle is program that can be run as "Special Subscription" in NetNewsWire 2.0. It will generate an RSS feed containing a random selection of items from all of your other NetNewsWire subscriptions.
As NNW tracks which posts you've read by their GUIDs, things you've already read are marked read in the shuffled feed, so you don't end up reading things loads of times (famous last words.)
You can download the software from the following link: FeedShuffle.dmg.tar.gz (1242.7K)
(Update: to get the latest version of the software, check out the FeedShuffle Blog)
The software is, rather unfashionably, written in Java. The ROME RSS library made it a snap to write this. The disk image also has the source code, which I've put out under the Apache License, so feel free to fiddle around with it under the usual Ts and Cs.
Anyway, I doubt this software has much of a future - if people like it, I imagine Brent will make it a feature in the next version of NNW, which is as it should be. I was kind of expecting it to be there already, given that NNW 2 has "Smart Feeds".
(Update: I got linked by Brent, and there seem to be a few downloads already. I am now awaiting the flood of angry complaints and bug reports.)
So now Mark, why is it "rather unfashionable" to write in Java? Seems like a perfectly good programming language to me. Educate me, please. I make my living writing C++ (alas, on Windows) and it seems to me Java beats hell out of that for 90% of real-world uses.
Of course due to the Windows shackles in my professional life, I have no basis for comparison with Objective-C or Python or such.
shackles (as in "shackle") n. : a restraint that confines or restricts freedom (especially something used to tie down or restrain a prisoner)
How appropriate.
P.S. This little tool is (conceptually, at least) an answer to my (unfocused) prayers. Hopefully it will both increase my breadth of reading and decrease my feelings of guilt from the huge backlog.
Posted by: Rob | March 21, 2005 at 07:58 PM
Rob: the "unfashionable" comment was really a dig at advocates of Python, Ruby* or whatever this week's Language Of The Week is, rather than a dig at Java. I wrote this in Java because it's what I find easiest and probably do best, even though I spent most of the last year writing C++. Plus, the Java tools I have at my disposal (IntelliJ in particular) are just awesome.
(* I have rather liked Ruby, when I've tried it, but switching language always has a context switching overhead, especially to new-ish languages, and this was supposed to be a quick hack.)
Posted by: Mark | March 21, 2005 at 10:55 PM
Stupid question: how does this differ from a smart list set for "read status is not read," and limited to 100 items? Does a smart list pick items in order, where this randomizes them?
Posted by: Dan Ridley | March 24, 2005 at 12:13 AM
Dan: that's a good question and one I did ask myself. NNW doesn't let you set any kind of ordering by which the 100 would be selected, and the ordering it does do is not clear. If I create such a smart list, I get items from only four feeds (though one of them is my "shuffle" feed) which is clearly not what I want.
I ended up creating this exactly because I went to the smart list dialog wanting to create "100 unread selected by random" just like I would do in iTunes. Like I said in the post, this would not be a hard feature to bake directly into NNW - almost all of the UI is there.
Posted by: Mark | March 24, 2005 at 08:09 AM
Well, I finally got around to trying to install this this weekend, but can't get it to work. In NNW error log it says:
2005-03-26 08:47:16 -0500: Parse error for FeedShuffle: The XML parser could not parse the RSS data because the data was incomplete. Script file path: /Users/robb/Library/Application Support/NetNewsWire/Special Feeds/FeedShuffle/FeedShuffle
However, when I run FeedShuffle directly from the Terminal I get perfectly well formed looking XML to me.
Any thoughts?
Posted by: Rob | March 26, 2005 at 05:52 AM