The big news at the moment is the RSS Validator, which ensures that your RSS feeds are valid. If you don't know what that means and you do care, then Dorothea has helpfully written up a short guide to RSS and what it means to be valid. Suffice to say here that RSS is an important component of the Semantic Web. My feeds are valid, now.
That's not what I'm going to talk about, though. What I'm going to talk about is attention to detail. The validator was written by Mark Pilgrim, Sam Ruby, and Bill Kearney, and it shows the attention to small details that we've come to expect from Mark's code. For example, it didn't just tell me that my feed was invalid with some incomprehensible errors. Instead, it identified me as an old Movable Type user, and provided a link to an upgrading Movable Type RSS HOWTO. That's very nice indeed.
Mark and Sam are going through the early release bugfixing game at the moment, and responding quickly. This is all good stuff.
At HAL2001, there was a talk by Hugh Daniel of the FreeS/WAN project called "The tragedy of software quality in OS/GPL systems". He talked about error reporting, and how errors reported to the user are meaningless technobabble. His opinion was that an error should have a short and meaningful description, a longer description that goes into more detail, and some suggested fixes. If there's one suggested fix then the code shouldn't abort and display the suggested fix to the user, it should try and do the suggested fix itself and then see if it works. Don't bother the user if you don't have to. Be intelligent. Mark's projects have a real tendency to be this intelligent; look at the RSS Parser, which Mark describes as "ultra-liberal". It copes with lots of poor input and responds with elegance, which is a massive improvement on either dying with an error (either an error generated by the program or, worse, an error *in* the program) or just not working or producing incorrect output. Look at wvdial, which actually bills itself as "the intelligent internet dialer" -- a PPP dialup program for Linux that doesn't require configuration. It connects to the PPP server and attempts to work out what it is; you don't need to tell it whether it's PAP or CHAP or whatever, because the software can know without your help. If you don't have to help software, then you shouldn't need to do so.
Daniel talked about how he didn't want to see anything on Freshmeat before version 1.0 -- there are too many prototype projects out there which are abandoned or never going to be finished. I've already written about how Sourceforge is full of dead projects and that the "market forces" argument for massively parallel open-source development on many many alternatives doesn't seem to work. A trend toward more intelligent software might arrest that unwanted proliferation, because people would be more assured of the software they had; coders might be more inclined to hack on existing codebases rather than reimplementing 90% of a program because they don't like the other 10%. Pipedream? Perhaps. But with coders like Mark and Sam around as role-models, perhaps things are beginning to change.
© sil, October 2002