Awasu » Synchronizing RSS readers: a Really Hard Problem
Monday 5th January 2004 3:53 PM [General]

Brent Simmons (the author of NetNewsWire, a Mac RSS reader) talks about the challenges involved in synchronizing RSS readers running on different machines.

A good question would be: why isn’t synching already a feature of every newsreader already? It can’t be that hard, right—just read and write from a file somewhere that two copies of your newsreader can access.

I mean, what’s the hold-up? You just need something like a .newsrc. No big deal, it’s an old problem that’s been solved many times before.

Actually, he goes on to explain (correctly) that this is in fact an extremely difficult feature to implement. I sweat blood and tears implementing sync for Awasu but it was well worth it since I am really pleased with how well it came out. It works as it should, it works as you (the user) would expect and it is an extremely powerful solution in that you have fine control, if you want, over what exactly gets synchronized.

Brent lists five criteria for sync:

1. It’s merging, not cloning, of subscription lists.

Yep. Awasu does this. He talks about the difficulties involved with having at-work-only or at-home-only channels and figuring out how not to sync them. But given Awasu's ability to control what gets synchronized, you can handle this tricky case.

2. It also synchs read/unread states of individual items.

Yep. Awasu does this as well.

3. Your newsreader uploads and downloads your synch data so you don’t have to do it manually with a browser or FTP client or whatever.

The Advanced Edition of Awasu allows sync data to be transferred between machines via an FTP server. Andrew Bauserman also recently made a really cool suggestion for extending this mechanism that I will try to get in for the next beta.

4. Your newsreader knows (or at least guesses) when it needs to download and upload synch data.

Awasu does this at startup and shutdown, or when you explicitly request it. I experimented with getting Awasu to do it at regular intervals or predefined times but the current way is simpler and is more than adequate.

5. It works between different newsreader software on different operating systems.

I don't know if this is ever going to be practical. Every RSS reader has different configuration options and features and if you tried to agree upon a common set of settings that everyone would support, I don't think you would end up with very much. Furthermore, for commercial RSS readers (as both Awasu and NetNewsWire are), it's debatable if you even want that level of interoperability. It's like saying you run Microsoft Exchange at one office and Lotus Notes at the other but you want to keep the two in sync. Ain't gonna happen :-)

BTW, he also says:

This [interoperability] means getting a bunch of developers to agree on a format for synch data. That’s probably the easy part—the hard part will be testing to make sure X can synch with Y and Y can synch with Z and Z can synch with X.

Brent is very aware of the history behind RSS and so I'm amazed that he thinks that getting a bunch of developers to agree on anything can be considered the easy part :-) :roll:

So, Awasu meets 4 out of his 5 criteria and the 5th one is debatable anyway. I can live with that :-)

Have your say