When RSS 2.0 first came out, I designed an RSS 2.0 template for Movable Type, which later became part of the documentation for the RSS validator, which later became the basis for the RSS 2.0 template in Movable Type 2.64. When I first designed this template, Dave Winer praised it (and me), and he also pointed to Kevin Hemenway’s tutorial on Extending RSS 2.0 with namespaces.
When Sam and I first wrote the RSS validator, Dave Winer praised it (and us) and thanked us both privately and publicly for making a very positive contribution to the success of RSS
.
How times change.
Nowadays, namespaces are funky, and funky is wrong, because everyone must do RSS exactly as UserLand does. The RSS validator is now known as Mark and Sam’s validator, where Mark and Sam are grand arbiters making lots of value judgements that people should be on our case about
.
And people wonder why I invented Winer Numbers.
Oh, and just yesterday I learned that 99% of the webloggers in the world are using link incorrectly, including me. We’ve all been happily using link as a permalink, but apparently we should all be using guid as a permalink instead. This, despite the fact that when I first designed my RSS 2.0 template for Movable Type, Dave specifically praised me for using guid not as a permalink.
I can already anticipate the question from the engineers in the audience. And what of feeds that define both a
I hear them cry. link and a guid-as-a-permalink,Which one should you use?
Pesky engineers, always thinking of edge cases. Well, the RSS 2.0 specification doesn’t say. This is not a rhetorical question either; UserLand’s New York Times RSS feeds have both a link and a guid, but they’re different. Either could be used as a permalink, but the link is better (because it contains extra parameters in the query string that allow the full article to be read without an NYT login cookie). How do I know this? Because I looked at the feed and figured it out. How would a program know this? Umm…
It is also worth noting that, as of this writing, Dave’s RSS feed uses guids incorrectly. They claim to be permalinks, but they don’t point to the permanent link of the item because of timezone differences in the URL fragment. Presumably this is a temporary and easily correctable bug, but since Dave’s feed eschew link entirely, that leaves consumers with no working permalinks at all.
Finally, there is an effort underway by otherwise intelligent people like Brad Choate to make a new RSS 2.0 template for Movable Type that is not funky (whatever that means). But amid all the confusion, Brad’s been reduced to saying that his output is valid, both by Mark and Sam’s validator and UserLand’s… but the real RSS 2.0 validator — namely Dave Winer — will have to let me know if I’ve got it right.
Thank you, Brad. Thank you for proving exactly why we need a new format that is vendor-neutral, freely extensible, and thoroughly specified. I couldn’t have said it better myself.
§
Mark, I never said “namespaces are funky”. If note the funky examples, there were few namespace qualified elements which I didn’t put a ‘frowny’ on. My bone was only with elements that ‘replace’ existing elements. Also, I don’t completely agree with Dave on the ‘link’ versus ‘guid’ issue. Anyway, it’s great too see that changes are on the way and a high-five on ((Echo)).
— Don Park ![]()
Re: <link> vs <guid>:
1) Here is how the RSS 2.0 spec defines the <link> element of <item>: “The URL of the item.” I don’t know how I can interpret that as meaning anything besides that <link> is intended for the permalink for the <item>.
2) “… link should be used only to link to the article being described by the post.” This presumes that every weblog entry describes an external link, and only one link at that. I should think that weblogs have evolved past the point where every entry simply consisted of link + commentary. Most of my weblog entries include zero links. This is not unusual.
To digress a little, I’m sure that the RSS 2.0 spec is better than anything that I can come up with, but I’m afraid that I have to agree with everyone who thinks that it is underspecified. Besides this new weirdness with <link>, my main gripes are 1) handling of relative URLs is undefined (I don’t appreciate having to specify fully qualified URLs in my weblog posts because I like writing portable XHTML), and 2) no explicit provisions are made for including *both* the full text of a post and an excerpt/description. To meet the current expectations of RSS consumers, an RSS feed should always include an abbreviated description, and *optionally* the full text.
Rant about the deliberate vagueness of “funky” RSS deleted. Suffice it to say that this complete outsider to the world of RSS gives his unqualified support to the Echo/Pie effort.
— jacob ![]()
Ah, I see that <link> vs. <guid> has already been discussed on Sam Ruby’s blog…
— jacob ![]()
Since ‘funky’ is the geek-word of the month, i want to protest against ‘funky (X)HTML’.
If Funky RSS comes from using namespaces to overwrite native features of the spec, does that mean that HTML table-based layouts are funky even they are validating?
what about people who are using divs and spans to replace ps and other appropiate elements (http://www.adventcode.net/), is this funky HTML or what?
(here’s hoping to start my very own holy war :)
— mort ![]()
mort, No and No to your questions. A bikini stretched too far is no longer a bikini. (?!?)
— Don Park ![]()
This is absolutely why it is necessary to create something new. RSS is a bloody horrible mess, and its self-styled ‘Godfather’ is making up new rules that make it messier, instead of clearing it up.
Echo/Pie/Whatever (I like Echo) is a good idea. An easy-to-understand, consensus standard that is supported by the blogging tools and aggregators and backed by a validator will put an end to all this squabbling and allow bloggers to concentrate on generating content instead of just generating.
I’ve been reading this site quietly for quite some time now, never daring to join in on the discussion. But now I need to contribute something.
When I first learnt about RSS it was some years ago, and I thought “Hey, cool, with this you can include on your page headlines from other sites you like, neat” and I played around with it.
Then there came aggregators, and with them people can read your site without actually visiting them (never liked that, to impersonal), that’s great for those who want to use it.
All of this is *good* progress, but now.. there are what, 6-7 formats available? And every time someone in this community tries to do something about this inconsistency, you plunge into a flame war.
I agree with Mark that this recent forking shows exactly why a new format is needed. A format which is made by the community, for the community (cliché, but it’s what is needed).
Now I urge everybody to join in on this great innovition, and help out with creating a format to end all this silliness.
Simon: Echo is – as of yet – vapourware. It may become something really cool but praising it in the present tense is stretching it a bit far IMO ;-)
Yes. On all points and everything you said, Mark. I especially agree that Brad does, directly or indirectly, demonstrate why there must be, _must be_ a new way of doing things, or we’ll continue this same old thing, again, and again. And again.
And again.
One syndication feed format. Not one ‘RSS’. One syndication feed format.
You, I’d just like to take this moment to say that I think is a great idea and all, but in the midst of the Dave bashing, I’d like to point out that on the surface he is open to a new format, and if he adopts it and runs with it, we should all take note of him walking the walk in terms of supporting standards.
— Pat ![]()
Pat: +1
— Sam Ruby ![]()
I don’t know if vapour-ware is the right hole to peg Echo in; its an idea in rapid development. It it remains simply sensible I plan on implementing Echo in a Python-based CMS I’m building.
Yup, that’s a great definition of vaporware. ;)
It’s fine to stay on top of current developments and plan for the future. But if, for example, you said “I plan on implementing Echo in the Python-based CMS I’m building, to the exclusion of all other formats, protocols, and APIs”, then I’d say you were nuts.
— Mark ![]()
To the exclusion of all others… sounds like marriage vows! Been there… doing that. :)
It is my hope that Echo progresses quickly to the point where tool developers are keen to support it. Momentum is everything…
Pat: yes, fine, great. The initiative is open to all contributors.
However, given his history with RSS, we would be foolish not to be cautious and diligent. An concerted and ongoing effort must be made to make sure he does not co-opt the format and later claim that he is in some special position to say how competitors can use it. (cf http://blogs.law.harvard.edu/bloggingFormatsProtocolsMay2003 )
— Mark ![]()
Yeah, Dave’s recent comments abut link/guid rubbed me the wrong way, too. The RSS 2.0 spec says: “There are no rules for the syntax of a guid. [....] isPermaLink is optional, its default value is true. If its value is false, the guid MAY NOT BE ASSUMED TO BE A URL, or a url to anything in particular.” (emphasis mine).
Because guid might not be a permalink, or even a URL, I was hesitant to use it as such. Originally, I used link as my permalink (for some of the reasons that jacob mentioned above), and I used a isPeramaLink=”false” guid which was hashed from some my my post data, just because I could. But I found that some aggregators were trying to use the guid as a permalink anyhow, so now I put my permalink in both the link and guid elements. Bah.
In addition, I chose to use dc:creator over RSS 2.0’s author in my items, because the author of a particular item on my blog may not wish to make his or her email address public.
Funkadator says my feed is stinky-cheese funky, even though dc:author on items is my only namespaced element….
Funky.
— Dougal ![]()
What is it that you’re angry about now Mark? I can’t figure it out.
Mark, I think perhaps I read too much into your “A Fresh Start” article a few days ago. I had assumed you meant a fresh start from a divisiveness perspective as well as a technical perspective, but your two recent posts make me think I was wrong in assuming the former. I think a new vendor-neutral format is a great idea, but only if it means the number of RSS formats decreases down to one (ideally) rather than just increases by one. It seems like “a fresh start” shouldn’t be kicked off by carrying over the divisive wedges from the old battles.
I’ll go back to lurking now. I’m clearly out of my depth. It’s just the way it looks from here.
Without speaking for anybody but me; I’m seeing Echo as deprecation of other syndication formats; when most of the major aggregators support Echo, I plan on dropping regular RSS feeds.
— Arve ![]()
Dave, most of the arguments, technical and otherwise, seem to revolve around you in one way or another. I’m just tired of arguing, reading tea-leaves, and having technical arguments turn into political ones.
So, my personal position is that beyond a certain point, I don’t care whose fault it is, or who started it. Whether you’re starting the arguments, are provoking arguments from other people, or whether you are simply attracting attention from argumentative people unconciously, I just don’t care. It’s observably true that the arguments in this space are happening around you more than anywhere (or anyone) else.
The idea of simple XML syndication of content (which you’ve done so much to promote) has to move forward, and it seems as though RSS 2.0 can’t do so, in part becuase people feel you are holding it back (it doesn’t matter whether you are or not if enough people feel you are). For a while, namespaces seemed to provide a safe space to experiment and move forward, but all this ‘funky’ business has people looking over their shoulders again. It’s not a nice feeling, wondering if the ground under your feet is going to drop away.
A new effort, free (for the moment) of legacy issues and arguments, seems like it will provide a way forward, at least for a while. It’s possible that this effort will also get bogged down, of course. If so, I suppose we’ll just have to dig a brand new hole again and fill in this old one.
Dave: Mark’s comment was snarky and unnecessary. But you’re a grown man, and if one little remark passes your “unbelievably cruel” validator, it might be time to seriously reconfigure your emotional firewall.
Mark said something. Punt on it if you like. Take the high road and thank him for his time. Or flame him to a cinder. But please (and that’s a sincere “please”) save the entire universe of online communication the disservice of yet another adult trying to make other people responsible for his feelings. Explain and explore your feelings, rather than using their surface representations as interpersonal weapons of mass distraction.
Mark:
I was not able to comment directly to ‘Mort’ he had no email at his web site. This is a bit off topic but I would like to respond.
Mort:
This was code written to reconsider the idea of how a web page is constructed. In the past I have written XHTML 1.1 strict hat has validated. No doubt the new code will validate when I am finished. Its goal was to completely separate content from construct. Certain HTML tags have their own rules which is fine. Mark for example uses paragraph tags. For the record I don’t think tables are bad nor is the use of traditional HTML tags that emulate typesetting. The goal was to give mixed information the straightest line possible to output. I come from a audio electronics background. The best audio comes from a source that is not cluttered in the signal path with redundant processing.It seems that HTML and CSS overlap in certain respects. Doing what I did just made the XML/XSL CSS and HTML explict. Now they have their own jobs and conflict can be avoided. As a result the layout of the page can be flexable without running into conflicts between CSS and HTML. Or as Mark has aptly put it “Tag soup” this carries that concept to the edge. It is not finished. When it is the CSS you see know will also be optimized. So for the record: George Clinton is funky, the Parliments are funky, Bootsy Collins is funky. Writing explict minimal CSS and XHTML is not.
—Dave,—
— Truth Hurts.—
Dave, I’m not mad. I’m not even angry. The community simply wants a format that is vendor-neutral, freely extensible, and thoroughly specified. I am merely stating my opinion that RSS 2.0 is none of these things, and that you are the reason it is none of these things.
You are the damage we are routing around.
— Mark ![]()
Emotional Firewall. I gotta remember that one. Precious.
— Don Park ![]()
To, uh, ‘echo’ another poster, I’m very concerned that Echo will be an addition to the pile of formats that blogging tools and newsreaders must support, rather than a solution to the growing problem of too many formats, not enough validators/coders/bloggers/whatever.
(I’m also not fond of Echo as a name. I prefer ‘BS’ — “Blogging Syndication” — because I like its inherent snarkiness.)
I’m not suggesting BSEcho should be backwards-compatible with every syndication format that exists, nor am I suggesting that it must be so perfect and perfectly expandable that the whole thing won’t need to be scrapped in a few years when the cyber (User)landscape has changed again.
Rather, I’m suggesting that it has to be easy. *Really* easy. Easier than any single flavor of RSS is now. It has to be so easy and straightforward that non-programmers can learn it as fast as they learned html in the early days.
“How did they make that text <blink>? Oh, *that’s* how.” This should translate into “How did he syndicate that site? Oh, *that’s* how.”
Namespaces are confusing. XML is confusing. The term ‘guid’ is confusing. Nesting is confusing. I don’t doubt that you can explain it to the average Joan in a way that she can understand, but that’s not the point. The point is that the hallmark of future Internet success is making it so easy, you don’t need to work to learn it — you just need to play. Regardless of skill level.
If we’re gonna make a new format — and we should — let’s make it a good one for everybody.
“You are the damage we are routing around.”
That is unbelievably cruel.
Dave, my comment policy is quite clear, and linked from every comment form. Flames in comments are crossed out, and off-topic comments are deleted. This is not open to discussion; any further meta-discussion about the comment policy will be deleted as off-topic.
— Mark ![]()
Dave, your users are not permitted to modify your validator and redistribute their changes, therefore your validator is closed source.
On a separate and completely unrelated issue, your validator is also obsolete and unmaintained. It gives misleading results that harm and confuse the users you claim you want to help. You would do the RSS community a great service to formally and publicly deprecate it and point your users to our validator instead.
— Mark ![]()
I’m not going to respond to the speeches, this is about formats and protocols, not your personality or mine. Thank Tim Bray for kicking that bit off, I ain’t going to forget the bell he tied to my tail here. By the way, Mark keeps deleting and restoring posts.
The UserLand validator is not closed source, the source is provided to Radio and Frontier licensees, it’s the RSS compiler, xml.rss.compileService. Full source included. Maybe Mark will let this comment stay. In the meantime, I hope you all get some time away from the keyboard, the conversation here is getting pretty damned stale, imho, ymmv, etc etc.
“You would do the RSS community a great service to formally and publicly deprecate it and point your users to our validator instead.”
… or, alternatively, fix it and bring it up to date. Right Mark? That is an option?
Michael: sure, competing is always an option. You can even use our >350 test cases; they’re open source too.
— Mark ![]()
This puppy ain’t about to get off the porch and involve himself in a squabble amongst the big dogs. This puppy is going to sit on the porch and wait for the smart guys (and gals) to cook up some sort of format that I can implement.
See, that’s what I care about. I care about something that is going to work now and a year from now. I care about simplicity. I care about transparency. I have three feeds for an unread weblog now, am I to add a fourth?
I couldn’t care less about the politics, the history —or the axes you all seem so insistent on sharpening to a razors edge– all to better cut each other off at the knees with—. All I want, from the people I look to for technical progress, is a consensus. I don’t think I’m alone in this.
— Al ![]()
Mark, you leave out imho in your broad sweeping and often factually incorrect admonitions and lectures. Just a protocol observation. Imho, you would do a lot to help the RSS community if you learned the value of humility, the frailty of the human condition, and the fact that Mark Pilgrim is a human being just like the rest of us.
Dave: Surely IMHO is to be taken for granted in most conversations? I’m definitely not going to speak in IYHO, anyway.
— Marcus ![]()
Dave, you’re making your own sweeping generalization about Mark posting factually incorrect material. Mark has been pretty darn diligent about making factual corrections to his postings here (and elsewhere, AFAICT), and taking those corrections from just about anyone, as long as they’re backed up by something.
It’s possible that Mark could do a better job in distinguishing fact from opinion, but you won’t get anywhere without a specific example.
And that’s about as far off topic (and as meta) as I’m willing to get in Mark’s comments.
Re: “All I want, from the people I look to for technical progress, is a consensus.”
Al, it is important to note that Dave’s idea of consensus is “everyone must do it my way”. This is not a flame, it is a quote:
“”"
The same philosophy dictates an end to the disagreement over RSS. If they want respect for the formats and protocols they implement, they must do RSS exactly as UserLand does.
“”"
http://blogs.law.harvard.edu/bloggingFormatsProtocolsMay2003
Please read the full article and decide for yourself where the problem lies. Don’t forget to also read this article:
http://www.evhead.com/archives/2003_05_10_archive_default.asp
And this:
http://scriptingnews.userland.com/2003/06/08#standards
And this:
http://backend.userland.com/2003/06/14#a227
And this:
http://scriptingnews.userland.com/2003/06/15#donQuixote
Tired yet? Don’t stop until you’ve read all of these:
http://bitsko.slc.ut.us/cgi-bin/rss-links
And by the time you’re done reading all of that, and have clawed your eyes out of your skull in an attempt to PLEASE MAKE IT ALL STOP, we will have reached a consensus, here:
http://www.intertwingly.net/wiki/pie/
Happy reading!
— Mark ![]()
I’ve read it all now, Mark. Thanks for assembling the links.
The issue, at its core, is differing goals and intentions.
Pie/Echo/Pubs/etc has three things going for it:
1. A vocal, enthusiastic, supportive community sprouting up around it
2. An almost-naive innonce and freshness of purpose — meaning, like a college-grad, it’s got that clean, bright-eyed and bushy-tailed confidence behind it.
3. It’s clearly — at this stage — not for profit.
There hasn’t been a failure of RSS any more than there’s been a failure of ThinkPASCAL or Commodore 64s. Times, desires, and people change. And the technology matches.
RSS and EchoPieQuasimodo probably won’t be inter-compatible. Just like MSN, Yahoo! Messenger, and AIM. And then tools like the Trillian will sprout up, everyone will use her preferred system (whether it’s AIM, RSS 2.0, or something else), and the tools (e.g., aggregators) will take care of the rest.
Is that a fair way to anticipate — and even hope — this will progress?
Why not just have an (optional) “permalink” attribute in Echo? That way there will never be any more confusion about where to put a permanent link to a blog or news entry.
I am so sick of hearing about RSS though. You’d think it’s the most important story in the world if you read most blogs. I’ll be glad when Echo is released.
Also, if a (Echo or RSS) validator chokes because of something in the content of the blog description (like curly quotes or html), then that is a problem with the standard, not the user. The user should be able to type whatever they want for a blog entry. The software they use to create the Echo or RSS feed should wrap the content appropriately. Currently there is no appropriate way to do this in the RSS standard. There will be in Echo, according to some post at the movabletype blog.
Actually, I believe (not-)Echo will have a required permalink element.
http://www.intertwingly.net/blog/1506.html
— Mark ![]()
I am no longer accepting public comments on this post, but you can use this form to contact me privately. (Your message will not be published.)
§
© 2001–9 Mark Pilgrim