Dan Bricklin’s working on an RSS generator. That’s a good thing: Dan working on things is always good, and we need a simple, run about anywhere program to generate RSS for (mostly-) static sites, or for software releases, or anything else where you don’t want to build a whole weblog just to have an RSS feed.
ListGarden’s written in Perl, currently distributed for testing as a Windows-only self-contained executable: download it, start it, and you have a tray icon that will open the interface in the browser. Set up a feed with the basic channel-level info, tell it where to publish, as a local file or via FTP, and then adding an item is as easy as, well, adding a weblog post: you have a form with title, link, and description, and some options to set a date or have it generated and to set a guid, have it generated, or copy over the link. There are a few program options, to set how many items to display, and which fields to include on the new entry form, and a few things you can do at the list of entries (reorder, delete, or edit), but for the most part, it fits perfectly with Really Simple Syndication: it just does what it needs to do, simply.
So, why am I saying “probably, it is too complicated”? Because of the two bugs I found on my very first item. I’m not looking to insult Dan, who does more for the world of computing in an average week than I’ll do in my whole life, and, I only found them right off because I’ve been obsessing about syndication long enough to know where some bodies are buried. Still, I thought they were illustrative.
One of the tenents of Really Simple Syndication is that it should be dead easy for any competant programmer to just bang out some code that will either read or write RSS. It should be dead obvious to anyone who can be bothered to look at the spec how to do it. That’s why I’m absolutely delighted to see that ListGarden (0.9.18) incorrectly uses
<guid> rather than
<guid isPermaLink="false"> when it is generating a non-URI guid. Having lived with the shame of being the only person on earth not to memorize the simple fact that “a guid’s a permalink unless isPermalink isn’t” for a day shy of one year, I’m honored to be joined by someone like Dan Bricklin.
The other problem I spotted isn’t so much an RSS problem as it is a browser-as-XML-source problem: ListGarden uses HTML with no character encoding specified on the input form, which means it gets the HTML default, iso-8859-1, and says that the output is iso-8859-1. Unfortunately, it’s not known nearly widely enough that that just won’t work out well. You will have people paste in curly quotes and other characters that don’t appear in iso-8859-1, and when they do browsers will silently submit the form in Windows-1252 instead. Win-1252 has characters at code points that are undefined in iso-8859-1, so if you just pass them through, you’ve produced a fatal error in your XML (though, one so common that very few RSS readers will actually halt and catch fire when they see it, so if you don’t validate you might not even know). Two ways out: you can either just use utf-8 for both the HTML page encoding and your output encoding (a very safe choice, since browsers will do the right thing with a utf-8 page, and utf-8 is the native encoding for XML), or you can convert anything in the illegal-in-iso-8859-1 range to numeric character entities which will skate right through anything.
But if you need an easy Windows program (or, an easy Mac/Linux/server-side program, if you wait a bit) to create a feed for something other than a weblog, give ListGarden a spin. Just stay away from the curly quotes and non-link-guids, for now.
(And, yes, I do feel guilty about writing about our lack of Best Practices documentation when I’ve got an abandoned wiki section started for it. Maybe someone would like to buy a $50,000 t-shirt from me, so I could work on it full-time?)