Friday, February 27, 2004
Thursday, February 26, 2004
Tuesday, February 24, 2004
Wow, I just get done talking about some cool extensions for NewsGator 2.0, and another one pops up.
John Bristowe and Jeff Julian have built an ESF extension for NewsGator. With this extension installed, if a feed publishes information about an event in a certain way, a new item will get added to Outlook's calendar with the event details.
John has a sample feed and a screenshot in Outlook on his weblog...check it out. This is really beginning to demonstrate the power of RSS extensions, when used with an extension-aware client. Nice job, guys!
Until you realise that this will not buy you a home - but a parking space. "
Sunday, February 22, 2004
Saturday, February 21, 2004
by Christopher Hitchens "
Wednesday, February 18, 2004
Tuesday, February 17, 2004
Sunday, February 15, 2004
Telegraph | News
Times Online - Sunday Times
In recent months there have been several government initiatives � including the asylum bill and the domestic violence bill � that may constitute a serious breach of the law. So far as is known, there has not been a word of disapproval or even of caution from Falconer."
spectator.co.uk
spectator.co.uk
Wired News: The Russian Nesting Doll of Games
The New Republic Online: Lights! Camera! Being!
Edited"
Telegraph | Opinion
Friday, February 13, 2004
BBC NEWS | Health | Mobile 999 callers 'pinpointed'
John Gotze writes to say the Danish government has included RSS 2.0 in its "government interoperability framework called the Reference Profile."
Paolo Valdemarin nails it.
Microsoft source code leaked out. The software giant says part-blueprints of its Windows operating system have been leaked on the internet. [BBC News | Technology | UK Edition]
I've always been told that Linux is secure because all source code is available on the web. Now they're telling me that Windows is not secure because some source code has been leaked on thw web. Who knows... maybe some hacker will fix some bugs ;-)
spectator.co.uk
This partner vs pardner distinction reminds me of the time that I assumed the Pride Rugby Sevens was a gay event rather than sponsored by a brewery.
The Sun Newspaper Online - UK's biggest selling newspaper
Economist.com | Public inquiries
AK-MP3
The "AK-MP3" player is built into the ammunition clip of a Kalashnikov. It can be swapped with the real magazine carrying bullets and inserted into the weapon.
The device is being advertised on the internet by a Buckinghamshire-based company set up by a group of Russian businessmen who sell audio books.
It comes with enough storage space to hold 3000 audio books or 9000 songs.
Former Russian rock star Andrey Koltakov, a partner in the dotcom company offering the AK-MP3 for sale, said: "This is our bit for world peace - hopefully, from now on many militants and terrorists will use their AK-47s to listen to music and audio books."
The accessory costs just over $200 or around $400 with hundreds of audio books already loaded on to it.
According to those marketing it the stainless steel body makes it "uniquely suitable for outdoors".
AK-47s are nicknamed widow-makers and are the favoured choice of killers across the globe from Marxist guerrillas in Colombia to Saddam Hussein loyalists in Iraq. They were also used by IRA snipers. They are capable of firing 600 rounds a minute.
BBC NEWS | World | South Asia | French FM faces India Sikh anger
Thursday, February 12, 2004
The New Republic Online: etc.
--letter from Senator John Kerry to Wallace Carter of Newton Centre, Massachusetts, dated January 22 [1991]
'Thank you very much for contacting me to express your support for the actions of President Bush in response to the Iraqi invasion of Kuwait. From the outset of the invasion, I have strongly and unequivocally supported President Bush's response to the crisis and the policy goals he has established with our military deployment in the Persian Gulf.'
--Senator Kerry to Wallace Carter, January 31 [1991] "
Yuk Yuk
Guardian Unlimited | Online | Audible revolution
BBC NEWS | Business | BT Group shrugs off revenue drop
'This has offset much of the impact of the 6% decline in our traditional business,' said chief executive Ben Verwaayen."
BBC NEWS | World | South Asia | The drugs threat to Afghanistan
BBC NEWS | World | South Asia | Maharashtra woos medical tourists
Seminar Details - Multi-University/Research Lab (MURL) Seminar Series
Who: Dave Winer
Telegraph | News | Palestinian PM's firm 'helps build Israeli wall'
PC Pro - Computing in the Real World
Oh Dear. I used to use this all the time. I must find the Registry fix.
Wednesday, February 11, 2004
Foreign Policy
Foreign Policy
Wired News: Munich Open Source Plows Ahead
Tuesday, February 10, 2004
BBC NEWS | Entertainment | Music | Downloads outsell DVDs and vinyl
Times Online - Health
Electric Cinema | The Experience
ThisisLondon
But now technology giant Philips has developed digital displays which look like paper and can be read at any angle and in any light.
Its device - developed in co-operation with a company called E Ink Corporation - uses 'electronic ink' to create screens that are six times brighter than traditional liquid-crystal displays used in flat-panel TVs and computers."
PREVIEW: Curious George
Exactly what I thought about Crime and Punishment.
Sunday, February 08, 2004
NEWS Travel - On the spice trail [September 28, 2003]
So it was when the former Beatle jetted into the tiny state of Kerala along the south western tip of India early last year in search of inner peace. "
World66, the travel guide you write: visited countries
BBC NEWS | Technology | Computers power Cirque spectacle
WSJ.com - A Historian's Take on Islam Steers U.S. in Terrorism Fight
Hearing this claim 'one too many times,' Mr. Lewis says, he politely shot back, 'Excuse me, but you've got your history wrong. The Turks got rid of the Crusaders. The British got rid of the Turks. The Jews got rid of the British. I wonder who is coming here next.'"
The Chronicle: 1/16/2004: Lending a Lasting Hand
The most controversial of the plans is the universal basic income, whose best-known contemporary proponent is Philippe van Parijs, a professor of economic and moral philosophy at the Catholic University of Louvain, in Belgium. In his 1995 book Real Freedom for All: What (if Anything) Can Justify Capitalism? (Oxford University Press), Mr. van Parijs argues that the liberal value of freedom presumes that humans have an array of realistic choices. And having such choices, he says, depends in turn on having at least a certain level of resources. Therefore society should guarantee everyone a basic income, which would be financed through progressive taxation. The basic income, Mr. van Parijs says, should be as large as the economy can efficiently sustain."
This basic income idea is fascinating.
Friday, February 06, 2004
Seattle Weekly: News: Media: Survivors of the Fray by Nina Shapiro
Thursday, February 05, 2004
ThisisLondon
A security guard and a clubgoer were injured at the SO.UK Soho nightclub next to the Teatro private members' club in Shaftesbury Avenue"
BBC NEWS | Technology | Janet's breast makes net history
SocietyGuardian.co.uk | Voluntary sector | Reversal of fortune
Thanks Matt
I lost my copy. I love the Internet: Hagakure (PDF). [John Robb's Weblog]
I've been meaning to read this ever since seeing the excellent Ghost Dog. Thanks John.
Mark Pilgrim explains the different flavours of RSS
I have often stated (1, 2, 3) that there are 7 different and incompatible versions of RSS. This was based on an embarassingly simple formula: I counted the version numbers in use (0.90, 0.91, 0.92, 0.93, 0.94, 1.0, and 2.0) and came up with the number
7. But recently some people have taken to claiming that there are not 7 versions (despite obvious evidence to the contrary), and even if there are, that they are somehowcompatiblewith each other so it doesn't really matter. So I dug a little further to precisely document the incompatible changes in each version of RSS.I would like to publicly apologize for my previous misstatements. There are not 7 different and incompatible versions of RSS; there are 9.
In March of 1999, Netscape released RSS 0.90. RSS 0.90 looks like this:
Example 1. RSS 0.90
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">
<channel>
<title>Mozilla Dot Org</title>
<link>http://www.mozilla.org</link>
<description>the Mozilla Organization web site</description>
</channel>
<image>
<title>Mozilla</title>
<url>http://www.mozilla.org/images/logo.gif</url>
<link>http://www.mozilla.org</link>
</image>
<item>
<title>New Status Updates</title>
<link>http://www.mozilla.org/status/</link>
</item>
</rdf:RDF>
In July of 1999, Netscape released RSS 0.91. Netscape's RSS 0.91 was intentionally incompatible with RSS 0.90. They dropped the RDF-compatible syntax and redesigned RSS to be pure XML. They also added a DTD which defined several allowable entities (more on these below).
Netscape's RSS 0.91 looks like this:
Example 2. Netscape RSS 0.91
<!DOCTYPE
rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
<textinput>
<title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textinput>
<skipHours>
<hour>0</hour>
</skipHours>
<item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description>1 < 2, 3 < 4.
In HTML, <b> starts a bold phrase
and
you start a link with <a href=
</description>
</item>
</channel>
</rss>
In June of 2000, Userland took Netscape's RSS specification, removed Netscape's copyright statement, made several incompatible changes, added a Userland copyright statement, called it
RSS 0.91, and claimed that it was compatible with Netscape's RSS 0.91.Userland's flavor of RSS 0.91 looks like this:
Example 3. Userland's RSS 0.91
<rss version="0.91">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
<textInput><title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textInput><skipHours>
<hour>24</hour></skipHours>
<item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description>1 < 2, 3 < 4.
In HTML, <b> starts a bold phrase
and
you start a link with <a href=
</description>
</item>
</channel>
</rss>
Userland's RSS 0.91 is incompatible with Netscape's RSS 0.91 in several ways:
- Netscape's RSS 0.91 specifies that
<hour>
within<skipHours>
has a range from 0 to 23. Userland's RSS 0.91 specifies that<hour>
has a range of 1 to 24.- Netscape's RSS 0.91 contains a
textinput
element. Userland's RSS 0.91 contains atextInput
element. Note the capitalization; XML element names are case-sensitive, so this is a completely different element.- Netscape's RSS 0.91 uses a DTD which allows publishers to use 96 named entities:
,¡
,¢
,£
,¤
,¥
,¦
,§
,¨
,©
,ª
,«
,¬
,­
,®
,¯
,°
,±
,²
,³
,´
,µ
,¶
,·
,¸
,¹
,º
,»
,¼
,½
,¾
,¿
,À
,Á
,Â
,Ã
,Ä
,Å
,Æ
,Ç
,È
,É
,Ê
,Ë
,Ì
,Í
,Î
,Ï
,Ð
,Ñ
,Ò
,Ó
,Ô
,Õ
,Ö
,×
,Ø
,Ù
,Ú
,Û
,Ü
,Ý
,Þ
,ß
,à
,á
,â
,ã
,ä
,å
,æ
,ç
,è
,é
,ê
,ë
,ì
,í
,î
,ï
,ð
,ñ
,ò
,ó
,ô
,õ
,ö
,÷
,ø
,ù
,ú
,û
,ü
,ý
,þ
, andÿ
. Userland's RSS 0.91 removes the DTD, therefore all of these named entities are invalid and may not be used.In December of 2000, the RSS-DEV Working Group released RSS 1.0, which they claimed was compatible with RSS 0.90. (In fact, it is completely incompatible and shares no elements with RSS 0.90 at all, since it uses a different namespace.) RSS 1.0 was also intentionally incompatible with both Netscape RSS 0.91 and Userland RSS 0.91, due to RSS 1.0's RDF syntax.
RSS 1.0 looks like this:
Example 4. RSS 1.0
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/">
<channel>
<title>Example Dot Org</title>
<link>http://www.example.org</link>
<description>the Example Organization web site</description>
<items>
<rdf:Seq>
<rdf:li resource="http://www.example.org/status/"/>
</rdf:Seq>
</items></channel>
<image rdf:about="http://www.example.org/images/logo.gif"/><image
rdf:about="http://www.example.org/images/logo.gif">
<title>Example</title>
<url>http://www.example.org/images/logo.gif</url>
<link>http://www.example.org</link>
</image>
<item
rdf:about="http://www.example.org/status/">
<title>New Status Updates</title>
<link>http://www.example.org/status/</link>
<description>News about the Example project</description></item>
</rdf:RDF>
Later in December of 2000, Userland released RSS 0.92, which they claimed was compatible with their flavor of RSS 0.91.
Example 5. RSS 0.92
<rss version="0.92">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
<textInput>
<title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textInput>
<skipHours>
<hour>24</hour>
</skipHours>
<item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description>1 < 2, 3 < 4.
In HTML, <b> starts a bold phrase
and
you start a link with <a href=
</description>
</item>
</channel>
</rss>
RSS 0.92 is incompatible with Netscape RSS 0.91 for all the reasons that Userland RSS 0.91 is incompatible with Netscape RSS 0.91. It is also incompatible with Userland RSS 0.91, because the content model of
<description>
was changed from plain text to HTML. The RSS 0.92 example (example 5) appears identical to the Userland RSS 0.91 example (example 3) in every way except the version number, but it means something different. To create an RSS 0.92 feed that means the same thing as example 3, you need to escape the<description>
, like this:Example 6. RSS 0.92, properly escaped
<rss version="0.92">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
<textInput>
<title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textInput>
<skipHours>
<hour>24</hour>
</skipHours>
<item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description>1 &lt; 2, 3 &lt; 4.
In HTML, &lt;b&gt; starts a bold phrase
andyou start a link with &lt;a href=
</description></item>
</channel>
</rss>
In April of 2001, Userland released a draft of RSS 0.93, which they claimed was compatible with RSS 0.92 and their flavor of RSS 0.91. Although never officially
blessedfor public use, RSS 0.93 is in fact currently being used by companies as large as Disney (who is quite proud of it). RSS 0.93 shares the same content model as RSS 0.92, and is therefore incompatible with all versions of RSS prior to 0.92. It also adds an optional<expirationDate>
element, the significance of which will become apparent shortly.RSS 0.93 looks like this:
Example 7. RSS 0.93
<rss version="0.93">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
<textInput>
<title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textInput>
<skipHours>
<hour>24</hour>
</skipHours>
<item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description>1 &lt; 2, 3 &lt; 4.
In HTML, &lt;b&gt; starts a bold phrase
and
you start a link with &lt;a href=
</description>
<expirationDate>Sat, 29 Nov 2003 10:17:13 GMT</expirationDate></item>
</channel>
</rss>
In August of 2002, Userland released a draft of RSS 0.94, which they claimed was compatible with RSS 0.93, RSS 0.92, and their flavor of RSS 0.91. Although never officially
blessedfor public use, RSS 0.94 is currently being used by several popular technically-oriented sites such as Ars Technica, as well as the official project feed for at least one RSS aggregator.RSS 0.94 is incompatible with all previous versions of RSS in several ways:
- RSS 0.94 is incompatible with RSS 0.93, because RSS 0.94 drops the
<expirationDate>
element introduced in RSS 0.93.- RSS 0.94 introduces a significant change to the content model: a new
type
attribute on the<description>
element, which gives the MIME type of the description. The default type is "text/html", which means that if not specified, RSS 0.94 shares the content mode of RSS 0.92, and is therefore incompatible with all versions of RSS prior to RSS 0.92. And if type is specified, RSS 0.93-aware clients that do not know about the new attribute will misinterpret the content by incorrectly assuming it is HTML.Due to odd historical circumstances, no official copies of the RSS 0.94 specification exist. The above-linked RSS 0.94 specification incorrectly claims that it describes RSS 2.0.
RSS 0.94 looks like this:
Example 8. RSS 0.94
<rss version="0.94">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating>
<textInput>
<title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textInput>
<skipHours>
<hour>24</hour>
</skipHours>
<item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description type="text/plain">1 < 2, 3 < 4.
In HTML, <b> starts a bold phrase
andyou start a link with <a href=
</description></item>
</channel>
</rss>
In September of 2002, Userland released RSS 2.0, which they claimed was compatible with RSS 0.94, RSS 0.93, RSS 0.92, and their flavor of RSS 0.91. RSS 2.0 is incompatible with all previous versions of RSS in several ways:
- RSS 2.0 drops the
<rating>
element that was allowed in Netscape's RSS 0.91, Userland's RSS 0.91, RSS 0.92, RSS 0.93, and RSS 0.94.- RSS 2.0 drops the
type
attribute introduced in RSS 0.94, becauseit is a mistake to add confusion to the all-important description element.The RSS 2.0 specification states that<description>
may contain HTML, but there is no way for consumers to programmatically distinguish HTML from plain text (especially text that talks about markup). In other words, the content model for RSS 2.0 isHere's something that might be HTML. Or maybe not. I can't tell you, and you can't guess.RSS 2.0 looks like this:
Example 9. RSS 2.0
<rss version="2.0">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<textInput>
<title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textInput>
<skipHours>
<hour>24</hour>
</skipHours>
<item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description>1 &lt; 2, 3 &lt; 4.
In HTML, &lt;b&gt; starts a bold phrase
andyou start a link with &lt;a href=
</description></item>
</channel>
</rss>
In November of 2002, Userland released RSS 2.01, which they claimed was compatible with RSS 2.0, RSS 0.94, RSS 0.93, RSS 0.92, and their flavor of RSS 0.91. RSS 2.01 changes the semantics of the
<skipHours>
element. In RSS 0.94, RSS 0.93, RSS 0.92, and Userland's RSS 0.91, hours had a range of 1 to 24. In RSS 2.01, hours now have a range of 0 to 23. RSS 2.01 shares the content model of RSS 2.0, which means it is incompatible with RSS 0.94 and all versions of RSS prior to RSS 0.92.RSS 2.01 looks like this:
Example 10. RSS 2.0, post-11/11/2002 (RSS 2.01)
<rss version="2.0">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<textInput>
<title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textInput>
<skipHours>
<hour>0</hour>
</skipHours><item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description>1 &lt; 2, 3 &lt; 4.
In HTML, &lt;b&gt; starts a bold phrase
and
you start a link with &lt;a href=
</description>
</item>
</channel>
</rss>
The RSS 2.01 specification was published in place of the RSS 2.0 specification; no official copies of the RSS 2.0 specification exist. As you can see from example 10, RSS 2.01 feeds use the same "2.0" version number as RSS 2.0, making it impossible to programmatically distinguish them. All RSS 2.0 feeds must be assumed to be RSS 2.01 feeds, despite the fact that RSS 2.01 is incompatible with RSS 2.0. This means that, if you published an valid RSS 2.0 feed on November 10th that contained
<hour>24</hour>
, you would wake up on November 11th to find that your feed had become invalid while you slept.In January of 2003, Userland changed the already-published RSS 2.01 specification, to add a
<rating>
element again. The content model remains the same, which means RSS 2.01 is still incompatible with RSS 0.94 and all versions of RSS prior to RSS 0.92.RSS 2.01 now looks like this:
Example 11. RSS 2.0, post-1/21/2003 (RSS 2.01 rev 2)
<rss version="2.0">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>an example feed</description>
<language>en</language>
<rating>(PICS-1.1 "http://www.classify.org/safesurf/" l r (SS~~000 1))</rating><textInput>
<title>Search this site:</title>
<description>Find:</description>
<name>q</name>
<link>http://example.com/search</link>
</textInput>
<skipHours>
<hour>0</hour>
</skipHours>
<item>
<title>1 < 2</title>
<link>http://example.com/1_less_than_2.html</link>
<description>1 &lt; 2, 3 &lt; 4.
In HTML, &lt;b&gt; starts a bold phrase
and
you start a link with &lt;a href=
</description>
</item>
</channel>
</rss>
Once again, the new RSS 2.01 specification was published in place over the old specification; no official copies of the previous version of the RSS 2.01 specification exist. Neither the revision number of the spec ("2.01") nor the version number of the format ("2.0") was changed, making it impossible to programmatically distinguish between them. This means that if a feed contains a
<rating>
element and declares itself as RSS 2.0, it is impossible to know whether the feed is valid unless you also know when the feed was created.Summary
There are 9 versions of RSS, all of which are incompatible with various other versions. RSS 0.90 is incompatible with Netscape's RSS 0.91, Netscape's RSS 0.91 is incompatible with Userland's RSS 0.91, Netscape's RSS 0.91 is incompatible with RSS 1.0, Userland's RSS 0.91 is incompatible with RSS 0.92, RSS 0.92 is incompatible with RSS 0.93, RSS 0.93 is incompatible with RSS 0.94, RSS 0.94 is incompatible with RSS 2.0, and RSS 2.0 is incompatible with itself.