I'm sorry, Dave, I can't do that: ghosts of Radio

I was ready to mail Brian St Pierre to ask if his Kit change was done, as I finally got off my duff sufficiently to write a bit that will prevent HTML in one item from mucking up HTML in another--that is, make sure all of each aggregated story's HTML is properly nested and closed. I had been softening the problem on the backburner a while, then today Adam Curry has a new item that mucks it up. So I wrote the script.

Unfortunately, according to comments in my Radio's xml.aggregator.storyArrivedCallback, the fix won't work unless you make a change in that script. I wrote:

bundle /\/call the callbacks: moved to before building story table, so the callbacks can fucking matter 8/4/02; 7:58:56 PM by MP

While at the moment I feel only resigned consternation, I was obviously hot about it at the time. My previous work there was a callback to convert pre tags into ps and codes. That was a very annoying problem that I fixed, and I'm glad I fixed it, even if UserLand hasn't. (I know they haven't fixed the callback problem, as their update would've erased my comment.)

Also, the way they wrote the callback caller in that storyArrived script, a failing callback will prevent all subsequent callbacks from running. This meant I was trying to debug my new script when it wasn't even being called, and had to dig around to debug it, which is when I found the comment in the first place.

I'm sorry to vent to all you nice users, but this is frustrating. I don't mind per se the philosophy of zero breakage, but the vehemence with which it's held does not appeal. "Zero breakage" sometimes means "whatever we threw together first wins", even if that's buggy--and especially if the bug lingers for a while, and isn't called out until much, much later. It can't be changed, because it will break all the workarounds.

UserLand is often called on their habit of inventing and adding whizbang features rather than fixing long-standing problems, but zero breakage actively prevents them from fixing some of them. UserLand has to encourage loyalty by adding, when subtracting makes more robust software. Radio's chief argument against competitors is, "It's buggy, but it does these neat things the competition doesn't." You can't say that if your neat things have moldered. I know I stopped eyeing Movable Type a couple weeks when tcp.im came out.

Usually in a group you'll have a vocal chap who insists, sometimes violently and to the point of discrediting himself, the old way was better because it's the old way. UserLand acknowledges the ten or twenty "people" in that group who long ago tied themselves to that platform with the same gravity as the people who are here now, trying to make something work sensibly for themselves. Understand that for every Radio user you meet, the ghosts of ten or twenty Frontier users hang on their backs.

Ultimately this drives migration to other software. The friction of conforming to the past, especially when it's wrong, builds up until it strikes heat of reaction; you boil over and switch to some other product. When you switch from Radio UserLand to Movable Type, NetNewsWire, LiveJournal, AmphetaDesk, a script you whipped out in an afternoon, anything--you are free to do the Right Thing with your design or implementation, even if you thought something entirely contradictory was the Right Thing three years ago. When you switch from Radio UserLand, those ghosts are the weight that lifts.