Archive for September, 2002

Mindless Coding.

Saturday, September 28th, 2002

Throwing code at a problem doesn’t solve it. Mindlessly following the trends solves it even slower. Start trying to combine mindless coding with sheep-like trend following and I start to wonder why I bother implementing anything.

This goes just as much for the RSS/RDF/ESF/TLA argument as for the (.*)back discussion. RDF is a specification for describing resources. XML is a method of representing data. RSS 0.9 was an XML format for representing the last few items on a site, which was then developed into a method for syndicating site data (though what I would call perversion on the – originally positive – description tag. As far as I’m concerned, I’d say that RSS /0\.9./ was a good implementation of the original idea, but RSS2 (and 1.0 for that matter) has stopped being a format, and started being a specification. The line is thin, but important, and it’s been crossed. And as soon as it was crossed (Which was when Dave Winer released 2.0) I started working on ESF. I shall explain the difference between what I’m calling a specification and a format.

A specification describes a method of doing something. For example, I spent the last couple of hours clearing my desk. The specification for that was “Set out several containers, mentally label them, and throw things into them as necessary”. I defined the containers as “Bin”, “Computer bits”, “Washing Up”, “CDs/DVDs”, this was a format. The specification defines how to define the format. RSS 0.9 was a format, because it had set tags which you put data into, it defined – fairly rigidly – what data went into which bin. And it defined this using XML, because XML is fairly easy to parse.

2.0 (I didn’t even look at 1.0, because I knew that the people who did 0.9 didn’t do it, and therefore didn’t mentally flag it as “official”) is a specification. It defines a method by which other people can define formats as well, Dave did it himself with the blogChannelModule. Yes, folks, it’s the namespace argument again. Adding the namespace suddenly made RSS a scary thing because I, as a developer that has to try to understand this crap, now have a potentially infinite number of tags, all of which somebody, /somewhere/ will want me to support. It also means that RSS, far from doing one thing well (which it did), can now do an infinite number of things, many of them identical, at the whim of some tinpot developer. Or, because I don’t trust single people to come up with perfect standards alone, Badly. Let’s take an example. Let’s, in fact, take the blogChannelModule, because it’s the first public example I know of.

The blogChannelModule allows you to add to your list of subscribed blogs to an RSS feed in opml format. And your list of friends. And a random link you happen to want to point at. Dave has, in fact, invented a way of sharing your current blog reading list. Woot, Yay, and pass the tax rebate. Except that so does the Foaf protocol. Yay for multiple protocols doing the same thing. Lets hope the best man wins, yes?

The problem I have with namespaces is weight of data. Obviously, I can ignore whatever data I don’t want, but in a couple of years if RSS2 really takes off (it might not) then it’ll be possible to have hundreds of namespaced “extensions” or “features” ranging from how you can find out about the feed’s favourite music, top fifty cute cat pictures, current projects, Top ten angry cat pictures. All interesting information, but not necessary to get a list of updates, which is the most common use of the standard. There has to be a better system for the semantic web than drowning everyone who wants to just get the latest stuff in megabytes of pointless data.

“Only support what you like”, will be the response, which totally misses the point. The point is that we are surrounded by cargo-cult programmers, who will mindlessly implement all new things they can do just so they can say they’ve supported it, and it’s going to mean that their RSS feeds become huge. Not that, I should point out, that cargo cult code is inherently bad, I’ve no doubt that the “Ooh, shiny new spec, lets play” accounted for part – if not most – of the events of the last week, but it’s vital to remember that it’s incredibly hard to take features /out/ of a released system.

Oh, and while I remember, a question. What does RSS stand for?

Syndicate Wars

Thursday, September 26th, 2002

Everyone Sounds Foolish?
Excluding Source Fun?
Embracing Standadized Flash?
Enemies Should F…Um…Find­out­more­about­each­other­maybe­go­out­for­a­coffee­and­try­to­work­out­their­differences­without­screaming­at­each­other­via­a­text­based­medium?

Cool, double word score, treble points for inventing a new word.

Eliminating Sordid Fumes?
Exorcising Spirit Fluid?
Exercising Sore Feet?
Entreeting Standardized Formats?
End Sort Fnook?
Estriplant Slarty Feemabigale?

What could Jonathon‘s new syndication icon stand for?

…and, by reading comments, I may have accidently insulted Bb with my mention of her in the spec introduction. Once I’ve managed to place words in an order that makes sense, I should email and explain before I get death by blogging…

Bibliophile

Wednesday, September 25th, 2002

So, How does someone confused and dazed from a – for him – major amount of publicity reward himself for getting discussed in the weblog community, and thus fulfilling his lifelong ambition[1] to be linked to by Mark Pilgrim?

By going into Borders on the way home from work and spending part of his pay cheque, is how.

That is, at least, what I told myself.

On the bus home, the battery on my MP3 player gave out, so I went into Borders to buy a new pack. On the way in I discovered Iain Bank’s new book, Dead Air. Shortly afterwards I spotted Mil Millington‘s new book, Things My Girlfriend And I Have Argued About. That went into the basket as well. Did I mention I picked up a basket? This was a mistake.

I wandered to the Scifi section, and resisted Robert Rankin‘s new book by turning away from it… and immediately saw Zodiac, the only Neal Stephenson book I have yet to read. *click* Basketwards it goes. Panicking now, I span around only to catch my eye on the book of The Princess Bride. *click*. *ARGH*. The books! They are leaping into the basket! I fend them off with a sweep of my hat, and jump aboard the escalator, into the music section, where the books will never get me…

Mmmmm… CDs….

One Marcy Playground CD later, I’m running for the stairs. I have to get out while I can still pay my rent. NO! A Starbucks! ARGH!!!!!!

I resist. Make it to the stairs, circle the outskirts of the scifi/fantasy section though the mini-store of Paperchase, resisting printed books in favour of a nice blank one I can fill in later… Argh, another thing in my basket… Yet I make it to the cash desk with no further incident, though a Tony Hawk‘s book does try for the kamikaze manoeuvre, but I bash it away with ease. I leave the shop, with a bag of books, sixty quid poorer, and without an AA battery to my name…

[1] This isn’t quite true.

Syndicated Inc.

Wednesday, September 25th, 2002

Crikey.

Hello world.

Okay, so the story so far would be that at half nine last night I released the ESF, which I’ve been promising to do (although not online) for a while. Then Peter used it, Mark linked to it (pointing out a major flaw in the idea, the fact that MT doesn’t support epoch timestamps. I really should have checked that. Um, anyone out there got any ideas for how I could kludge that? I’m playing with my own MT install (I do have one at home. Know thy enemy and all that), but it’s currently exceeding my knowledge) and at that point it sort of snowballed. I’ve been sitting at work watching it spiral out of control. Can I be scared now?

Questions have been asked. Fingers have been poked. “What happens if you want to put a newline in a title?” they ask. “You don’t” I answer “Titles are titles, stop trying to use it as RSS. It’s for passing along headlines, /not/ stories”. “What happens if my link has a tab in it, eh? What then?” “then your link has greater problems than ESF, friend”. “It doesn’t do anything RSS doesn’t do better?” “It does everything it needs to. And it’s staying stable. Promise.”

Then there were more valid questions. Like “What mime type is it?” “text/plain”. “Why doesn’t it…?” “Because it doesn’t need to”, and also, the all pervasive “why?”

Because I’m trying to develop on standards that are shifting beneath my feet, because I’m fed up of the whining that appears to dog the entire processes, because I don’t belive that adding features alone makes anything better, because I think the new RSS is taking the format somewhere it doesn’t need to go…

But mainly because people have been using the basis for this standard – plain and simple ascii – for decades, http is built upon it, as is email, news, and the configurations for almost every unix system ever. The only way it could be more standard is if I used “<field>: <data>”, but colons are special in URLs.

And because the idea of more than half of any given downloaded file being metadata appeals to me not at all in a world where bandwidth is paid by the megabyte. XML is useful, but I think that for small files – and this type of syndication should not /be/ large files – it’s over engineering.

ESF

Tuesday, September 24th, 2002

Are you also fed up with the continuing war between RSS 0.9* and 1.0 and 2.0 and whatever else they invent today?

Me too.

So today I invented the Epistula Syndication Format. ESF. It isn’t XML. It isn’t RDF. It’s just data. Quick, reliable, and I’m never going to change the spec in such a way as to break the previous version. Ever. Promise. The spec is in nodes. It’s staying that way. Even Shelly could use it :-)