Syndicating Monash:
An Introduction to RSS

Michael Lowe

Faculty of Education, Monash University

Who am I?

What do I know about RSS?

What am I going to talk about?

Syndicate?

According to Dictionary.com

  1. An association of people or firms formed to engage in an enterprise or promote a common interest.
  2. An agency that sells articles, features, or photographs for publication in a number of newspapers or periodicals simultaneously.

What is RSS?

History of RSS

Popularity Contest

source Syndic8.com (Aug. 2005) from 99,650 feeds (figures less than 2% ignored)

What can you use RSS for?

News sites such as The Age and even the Essendon Football Club create RSS feeds to promote their news

RSS Reader: IE 7 beta

IE 7 The Age RSS feed

RSS Reader: Safari

Safarid: News feed

What else can you use RSS for?

Aggregation of RSS

Flickr, Del.icio.us and Tada list RSS feeds

example aggregation

What is preventing adoption

Attempts to resolve problems

So how do I go about making RSS?

Structure of RSS 2.0

<?xml version="1.0"?>
<rss version="2.0">
<channel>
.... channel info .....
.... item ....
.... item ....
.... item ....
.... item ....
</channel>
</rss>

RSS 2.0 Channel Elements

<channel>
  <title>Channel Title</title>
  <link>http://www.example.org</link>
  <description>Example RSS Feed</description>
  <managingEditor>
    Michael.Lowe@education.monash.edu.au
  </managingEditor>
  <pubDate>Thu, 25 Aug 2005 16:00:00 +1000</pubDate>
  <language>en</language>
</channel>

Required fields: title, link and description.

pubDate must comply with RFC 822

RSS 2.0 Item Elements

<item>
  <title>Syndicating Monash: Introduction to RSS</title>
  <link>http://www.its.monash.edu/staff/web/slideshows/</link>
  <description>
    What is RSS and what can I use it for? A quick introduction
    and talk about RSS its increasing popularity and variety of
    uses. Finally, how can we use it at Monash?
  </description>
  <enclosure url="http://www.example.org/rss.mp3" length="123000" 
    type="audio/mpeg" />
  <author>Michael.Lowe@education.monash.edu.au</author>
</item>

All child elements of item are optional. But, at least one of title or description should be present

All RSS 2.0 Elements

Examples (RSS 1.0)

<rdf:RDF>
<channel rdf:about="http://safari.java.net/">
<title>java.net</title>
<link>http://safari.java.net/</link>
<description>java.net</description>
<language>en-us</language>
<image rdf:resource="http://safari.java.net/images/safarilogo.gif"/>
<items>
  <rdf:Seq>
  <rdf:li resource="http://safari.java.net/0321369297"/>
  </rdf:Seq>
</items>
</channel>
<image rdf:about="http://safari.java.net/images/safarilogo.gif">
    <title>java.net</title>
    <url>http://safari.java.net/images/safarilogo.gif</url>
    <link>http://safari.java.net/</link>
    <description>java.net</description>
</image>
<item rdf:about="http://safari.java.net/0321369297">
    <title>Secrets of Podcasting: Audio Blogging for the Masses</title>
    <link>http://safari.java.net/0321369297?a=102682</link>
    <description>If you thought Internet radio was cool, wait until you experience podcasting</description>
    <dc:publisher>Peachpit Press</dc:publisher>
    <dc:creator>Bart G. Farkas</dc:creator>
    <dc:subject>Usability</dc:subject>
    <dc:date>August 09, 2005</dc:date>
</item>
</rdf:RDF>

RSS Libraries for coding

Magpie RSS example

<?php
	require_once 'rss_fetch.inc';

	$url = "http://monash.edu/rss.xml";
	$rss = fetch_rss($url);

	echo "Site: " . $rss->channel['title'] . "<br />";
	echo "<ul>";
	foreach ($rss->items as $item) {
		$title 	= $item['title'];
		$url	= $item['link'];
		echo "<a href=\"$url\">$title</a></li>";
	}
	echo "</ul>";
?>

Extending RSS

Including extensions (XML Namespaces)

<?xml version="1.0"?>
<rss version="2.0"
    xmlns:ev="http://purl.org/rss/1.0/modules/event/"
    xmlns:dc="http://purl.org/dc/elements/1.1/" >
  <channel>
    ....
  </channel>
</rss>

RSS Event Module

<item>
  <title>Syndicating Monash: Introduction to RSS</title>
  <link>http://www.its.monash.edu/staff/web/slideshows/</link>
  <description>What is RSS and .... </description>
  <enclosure url="http://www.example.org/rss.mp3" length="123000" 
    type="audio/mpeg" />
  <author>Michael.Lowe@education.monash.edu.au</author>
  <ev:startdate>2005-08-25T16:00+10:00</ev:startdate>
  <ev:enddate>2005-08-25T17:00+10:00</ev:enddate>
  <ev:location>B15, Building 3A, Monash Uni, Clayton</ev:location>
  <ev:organizer>Web Resources & Development</ev:organizer>
  <ev:type>Workshop</ev:type>
  <dc:subject>RSS</dc:subject>
</item>

Do the right thing. Validate!

feed validator

Auto Discovery

After you have created a RSS feed, how do you let people know it is available? Allow autodiscovery! What & how do I do that?

<link rel="alternative" type="application/rss+xml" 
      href="rss.xml" title="My RSS Feed" />

Browser support for Auto Discovery

Did you know?

Thunderbird: Select Account Type

Select account type

Thunderbird: Name Account

Name account

Thunderbird: Feed Management Options

Feed Management options

Thunderbird: Add RSS feed

Add RSS feed

Thunderbird: Review feed subscriptions

Review feed subscriptions

Thunderbird: Read RSS Feed

Reed RSS feed

What are we doing at Monash?

What else could we do?

References

Questions