One of the things you learn about when you start developing some piece of software is the ‘industry standard’ data structure for that software. You get to learn about PNGs or HTML or SVG and the previously written tools to help you use them… then comes the eye-opener. Whatever it is that you’re doing, if there’s more than half a dozen other people doing it one of them will be doing it badly. Someone out there will be spewing out malformed data in some format or another and making ten times as much work for the rest of us.
Since I started writing a podcatcher the biggest offender in the domain of web syndication appears to be FeedBurner. They are the Internet Explorer, the embrace-and-extend, of the podcasting world.
The desired format for storing data in an RSS feed is thus:
It really is incredibly easy to use… until FeedBurner step into the arena and start screwing with things. The first thing they did was convert the link attribute into a redirect with a meaningless name - eg, redirect.mp3?p=05. Completely useless for simple downloading cos question marks in filenames make baby Jesus cry. Who wants a directory full of files called variants on redirect.mp3?
And then, without a by-your-leave, they change the format again, to this:
link="
http://feeds.feedburner.com/~r/Example/~5/http%3A%2F%2Fwww.example.com%2Fdownload%2F05-Example.mp3"
Is that not just a complete disaster? If you want to get at the proper URL rather than the nonsense they give you, you have to either rip apart that nonsense and decode the URL entities back into a real web address. But FeedBurner have oh so kindly put the real address elsewhere in their own namespace tags
http://www.example.com/download/05-Example.mp3
So now I have to do a ridiculous check for and, if it exists, ignore the address given in the proper place.
I really feel deeply sorry for people who have to write parsers for a living. But seriously, the idea of these standards is so that crap like this isn’t necessary. Self-regulation is a wonderful thing if bawbags like these people don’t mess it up for the rest of us.
The worst thing is that they changed their feed formats on a whim; everybody else was left with their pants around their ankles and a bunch of half-working programs, and had to quickly work out what on earth had gone wrong.