More thoughts on RSS
25th June 2003
I helped my girlfriend set up an RSS feed for her (home brewed) weblog last night. Explaining what RSS was was easy. Explaining what she needed to put in her feed took a little bit longer. All she needed to do was provide a feed of entries, each with a title, the full body of the entry, the date it was posted and a permalink to the archived entry. In working out how to do this, we identified the following steps:
- Pick an RSS version, out of RSS 0.9x, RSS 1.0 or RSS 2.0. The 0.9x series was out because there was no way of presenting the date of an entry, so it was between 1.0 and 2.0. 1.0 had all that unnecessary RDF stuff in (is there really a good reason for the
<rdf:Seq>
element?) so she went with RSS 2.0. - Pick a date format, out of
>dc:date<
and<pubDate>
(see Mark Pilgrim’s recent entry for information on the difference).<pubDate>
won on the strength of being part of the core RSS 2.0 spec. - Pick a way of serving the actual entries, from the following alternatives:
- Entity encoded HTML in the
<description>
element. - Entity encoded HTML in a
<content:encoded>
element. - Unencoded XHTML in a
<body>
element with a namespace.
- Entity encoded HTML in the
- Pick a way of providing the permalinks. Up until RSS 2.0 this would have been done with the nice and simple
<link>
element, but 2.0 introduced the more confusing<guid>
element as well. The<link>
element was chosen as the move obvious of the two.
It took less time to write the PHP than it did to decide on the elements to use in the feed in the first place. I’ve been following RSS for a while so I was in a position to guide her through the quagmire, but I can’t imagine it would have been much fun working it out without a guide.
I support the Road map for a new format. Another format may seem like the last thing we need but the current situation is pretty much untenable and forward motion has got to be a good thing. The few concerns I had have been answered by Tim Bray in his latest essay on the subject.
More recent articles
- llamafile is the new best way to run a LLM on your own computer - 29th November 2023
- Prompt injection explained, November 2023 edition - 27th November 2023
- I'm on the Newsroom Robots podcast, with thoughts on the OpenAI board - 25th November 2023
- Weeknotes: DevDay, GitHub Universe, OpenAI chaos - 22nd November 2023
- Deciphering clues in a news article to understand how it was reported - 22nd November 2023
- Exploring GPTs: ChatGPT in a trench coat? - 15th November 2023
- Financial sustainability for open source projects at GitHub Universe - 10th November 2023
- ospeak: a CLI tool for speaking text in the terminal via OpenAI - 7th November 2023
- DALL-E 3, GPT4All, PMTiles, sqlite-migrate, datasette-edit-schema - 30th October 2023
- Now add a walrus: Prompt engineering in DALL-E 3 - 26th October 2023