What Are Syndication Feeds

Next Page

Book Cover
What Are Syndication Feeds
By Shelley Powers
...............................................
Publisher: O'Reilly
Pub Date: December 2005
Print ISBN-10: 0-596-52697-0
Print ISBN-13: 978-0-59-652697-9
Pages: 24

Table of Contents
Overview

When you enter the world of syndicated content, you're often faced with the question of what is the "proper" way to do syndication. While syndication feeds have become a standard tool on the Web--you've seen their signposts: a little orange button labeled XML in white letters, or maybe buttons that say Atom, RSS 2.0, RSS 1.0, or even Feed--it is important that your syndication feed be an extension of your site. It should reflect your interests, your concerns, and your choices. This edoc will help you learn about these pervasive little blobs of XML markup: their purpose, the elements that make up a feed, the different formats, and the tools for generating and consuming feeds.

The tutorial starts with a succinct description of what a feed really is, then it covers:

  • What Makes Up a Feed: A look at the common container and entry elements for a feed, and what they do.

  • Industry Support: An overview of the major players and tools for syndication feeds.

  • Discovering Feeds: How to make your site easy to subscribe to.

  • Subscribing To and Reading Feeds: A look at various aggregators and how to use them.

  • Which Feeds Work Best for You: Should you use RSS 1.0, RSS 2.0, or Atom? Or all of them? Here's how to decide.

This tutorial will help you get your syndication feed up and running, so you can then forget about it and focus instead on what's really important at your site: the content you are providing to the world.

Next Page


Table of Contents

Previous Page
Next Page

Book Cover
What Are Syndication Feeds
By Shelley Powers
...............................................
Publisher: O'Reilly
Pub Date: December 2005
Print ISBN-10: 0-596-52697-0
Print ISBN-13: 978-0-59-652697-9
Pages: 24

Table of Contents

Copyright
What Are Syndication Feeds
 | The Players
 | Contents
What Makes Up a Feed
 | Container Elements
 | Entry Elements
Publishers: Industry Support
Discovering Feeds
Subscribing to and Reading Feeds
 | New Syndication Challenges
Deciding Which Feed Works Best for You
 | Other Issues
 | Here I Am, World
 | Summary
About the Author

Previous Page


Copyright

What Are Syndication feeds by Shelley Powers

Copyright © 2005 O'Reilly Media, Inc. All rights reserved.

ISBN: 0596526970


What Are Syndication Feeds

By Shelley Powers

Syndication feeds have become a standard tool on the Web. You've seen their signposts: a little orange button labeled XML in white letters, or maybe buttons that say Atom, RSS 2.0, RSS 1.0, or even Feed. These are files with content formatted in XML, and they contain a reverse chronologically ordered set of most recently published items.

Most major publications provide some form of feed. In this tutorial, you'll learn about these pervasive little blobs of markup: their purpose, the elements that make up a feed, the different formats, and the tools for generating and consuming feeds.

Syndication feeds have become a standard tool on the Web. You've seen their signposts: a little orange button labeled XML in white letters, or maybe buttons that say Atom, RSS 2.0, RSS 1.0, or even Feed. These are all examples of syndications feeds. They are files with content formatted in XML, and they contain a reverse chronologically ordered set of most recently published items.

Most major publications provide some form of feed. In this tutorial, you'll learn about these pervasive little blobs of markup: their purpose, the elements that make up a feed, the different formats, and the tools for generating and consuming feeds. I'll also show you some of the new variations on feeds, such as podcasting, and the modifications companies such as Microsoft and Apple are adding to the specification.


The Players

The history of syndication feeds goes back to the days when Microsoft and Netscape were competing for domination in the "browser wars," and is just as contentious. However, for the majority of people interested in syndication feeds, most of this early history doesn't matter. What does, is an overview of the primary syndication feeds that are in use today.

One of the most common feed formats is called RSS 2.0, with the RSS in this case meaning "Really Simple Syndication." RSS 2.0 is an XML format, considered highly stable, that allows for extensions only through the use of namespacesa way of prepending ownership on specific field names, so the same names can be used for different purposes without collision.

The RSS 2.0 specification is currently being maintained at Harvard; its website is blogs.law.harvard.edu/tech/rss. Though the specification is frozen, there is a Creative Commons license on it that allows any developer to code for the format, and to publish tools to provide feeds meeting the format's specification. An advisory board of three people makes any decisions about the status of the specification.

Though not covered elsewhere in this document, an earlier version of RSS 2.0 called RSS 0.92 (or even 0.91) is in fairly wide use at several different websites. However, since it is primarily an older version of RSS 2.0, I'm only mentioning it in case you come across it.

A second major syndication feed is also called RSS, and it's RSS 1.0. In this case, RSS stands for "RDF Site Summary" because RSS is formatted as RDF/ XMLa vocabulary based on a formalized model that is then serialized (written out) in XML.

RSS 1.0 is maintained by a loose organization of interested developers and other folks who mainly do their work in a Yahoo Groups mailing list at groups. yahoo.com/group/rss-dev/. The specification has been stable for several years, and can be seen at web.resource.org/rss/1.0/. In 2005 another group went through the specification and provided a recommended 1.1 release of RSS 1.0 to cover several corrected items. RSS 1.1 can be seen at inamidst.com/rss1.1/. For the most part, though, many implementations of the RDF version of RSS are still at RSS 1.0.

The final common format for syndication feeds is called Atom (http://atomenabled.org/). It was created using a wiki, with all interested people invited to participate and contribute. Atom 1.0 was released in August 2005, and is under the auspices of the Internet Engineering Task Force (IETF), an international standards organization. Note, though, that Atom existed as a 0.3 release for a considerable length of time and organizations may be still running this now obsolete version.

There are other variations and versions of syndication feeds, but the threeRSS 2.0, RSS 1.0, and Atomare the ones most commonly used, and as such, the only ones we'll discuss from this point on. Before we get into working with feeds "in the wild," we'll take a look at what generally goes into each of these feeds.


Contents

What Makes Up a Feed

A look at the common container and entry elements for a feed, and what they do.

Industry Support

An overview of the major players and tools for syndication feeds.

Discovering Feeds

How to make your site easy to subscribe to.

Subscribing To and Reading Feeds.

A look at various aggregators and how to use them.

Which Feeds Work Best for You

Should you use RSS 1.0, RSS 2.0, OR Atom? Or all of them? Here's how to decide.


What Makes Up a Feed

For all the discussion given to syndication feeds, their format and use is really quite simple. Each feed contains a certain number of individual items, usually with a title, content, category, author, and date. The overall feed also has information such as source title, last update (time), update frequency, site owner, and so on. Within these simple fields, there are various options that can lead to a great deal of variety from feed to feed. To better understand these, we'll look at each of the three major feeds to see which fields are shared, and which are unique to the specific format.


Container Elements

The feed "container" is information about the overall site that provides the feed, consisting of several fields that are listed once for the entire feed. Included within this container are the following fields that repeat across most syndication feeds:

link

This is the link for the site's URL, such as the weblog's URL.

title

This is the title for the site, such as the weblog's title.

description

This is a description of the weblog or site, and usually contains whatever subtitle is given for the site. In Atom, this is the subtitle field.

author

In Atom, author is a structure containing the author's name and email, or just the author's email. In RSS 2.0, this field is replaced by webMaster and managingEditor, which are email addresses. In RSS 1.x, this is replaced, usually, by dc:creator (which may be either a structure or a simple value).

date

In RSS 1.x, this field, usually dc:date, is the date the feed was updated. In Atom, this is the updated field; in RSS 2.0, this is the lastBuildDate.

generator

In RSS 2.0, this is the tool used to generate the syndication feed. The Atom feed also uses generator, while RSS 1.x uses generatorAgent.

copyright

Copyright information.

language

What language the text of the document is in.

id

This field is specific to Atom, and provides a unique identifier for the site.

image

An icon or image representing the feed or site for both RSS 1.x and RSS 2.x. In Atom, this would be icon, though logo can be used for a logo representation. In RSS 1.1 and RSS 2.0, image is a structure pointing to the image's URL, title, and link to site. In RSS 1.x, the image should be 88x31. In Atom, the icon "should have an aspect ratio of one (horizontal) to one (vertical), and should be suitable for presentation at a small size." In RSS 2.0, the image should have a maximum width of 144, and maximum height of 400; default is 88x31.

(Note that these aren't all the elements for each fieldjust those that are required and the most commonly occurring optional elements.)

Let's see some examples of feeds. The following is the head section of an Atom feed from O'Reilly's Radar weblog:

  <feed xmlns="http://purl.org/atom/ns#"
           xmlns:dc="http://purl.org/dc/elements/1.1/"
           xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"
           version="0.3" xml:lang="en">
      <title>O'Reilly Radar</title>
      <link rel="alternate" type="text/html" href="http://radar.oreilly.com/" />
      <modified>2005-10-13T17:13:35Z</modified>
      <tagline>http://radar.oreilly.com/</tagline>
      <id>tag:radar.oreilly.com,2005://24</id>
      <generator url="http://www.movabletype.org/" version="3.2">Movable Type
  </generator>
      <copyright>Copyright (c) 2005, O'Reilly Media, Inc.</copyright>
      <link rel="start" href="http://feeds.feedburner.com/oreilly/radar/atom"
               type="application/atom+xml" />
      ...
  </feed>

In the example, notice the modified date, title, and copyright notice. Here the field link identifies the feed's relationship with the document.

A RSS 1.0 feed from the same site looks like:

  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/"
       xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
       xmlns:admin="http://webns.net/mvcb/"
       xmlns:cc="http://web.resource.org/cc/"
       xmlns="http://purl.org/rss/1.0/"
       xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
  <channel rdf:about="http://radar.oreilly.com/">
  <title>O'Reilly Radar</title>
  <link>http://radar.oreilly.com/</link>
  <description>http://radar.oreilly.com/</description>
  <dc:creator />
  <dc:date>2005-10-13T08:47:28-08:00</dc:date>
  <admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=3.2" />
  <cc:license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/1.0/"
  />
  ...
  </rdf:RDF>

Notice that the first XML element is the main rdf:RDF, required for all RDF/ XML documents. Other than that, it is very similar to the Atom feed, other than some name differences and changes in the namespaces (the acronym identifiers that are located at the beginning of the document and are used to point to the schema where the elements arise).

There is one major difference between RSS 1.0 and the other syndication feeds, and that is that all the items included in RSS 1.0 feeds are first listed in a container- like element, and are then defined in full in other parts of the document. This container looks as follows:

  <items>
      <rdf:Seq>
      <rdf:li rdf:resource="http://radar.oreilly.com/archives/2005/10/re_sensible_
  email_messages.html" />
      <rdf:li rdf:resource="http://webkit.opendarwin.org/" />
      <rdf:li rdf:resource="http://radar.oreilly.com/archives/2005/10/bitkeeper_v_
  everyone.html" />
      <rdf:li rdf:resource="http://www.peatsbooks.com/books" />
      <rdf:li rdf:resource="http://www.engadget.com/entry/1234000207062697/" />
      <rdf:li rdf:resource="http://docs.yahoo.com/docs/pr/release1265.html" />
      <rdf:li rdf:resource="http://querybyhum.cs.nyu.edu/" />
      <rdf:li rdf:resource="http://www.tablesturned.com/" />
      <rdf:li rdf:resource="http://news.com.com/Palm%20drops%20Zire%2C%20Tungsten%
  20names/2100-1041_3-5893455.html" />
      <rdf:li rdf:resource="http://radar.oreilly.com/archives/2005/10/yahoo_
  research_berkeley_launch.html" />
      <rdf:li rdf:resource="http://www.dailykos.com/
  storyonly/2005/10/11/154544/44" />
      <rdf:li rdf:resource="http://radar.oreilly.com/archives/2005/10/eurooscon_
  maker_faire_lineup.html" />
      <rdf:li rdf:resource="http://radar.oreilly.com/archives/2005/10/google_maps_
  and_their_data_pro_1.html" />
      <rdf:li rdf:resource="http://radar.oreilly.com/archives/2005/10/your_money_
  or_your_mysql_1.html" />
      <rdf:li rdf:resource="http://radar.oreilly.com/archives/2005/10/skype_phone_
  from_linksys.html" />
      </rdf:Seq>
  </items>

O'Reilly Radar doesn't have an RSS 2.0 feed (discussed later in this article), so I pulled a sample from the Scripting News weblog of Dave Winer. Dave is the creator of RSS 2.0, a sample of which follows:

  <rss version="2.0">
    <channel>
    <title>Scripting News</title>
    <link>http://www.scripting.com/</link>
    <description>It's even worse than it appears.</description>
    <language>en-us</language>
    <copyright>Copyright 1997-2005 Dave Winer</copyright>
    <pubDate>Thu, 13 Oct 2005 04:00:00 GMT</pubDate>
    <lastBuildDate>Thu, 13 Oct 2005 15:42:37 GMT</lastBuildDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>UserLand Frontier v9.0.1</generator>
    <managingEditor>dwiner@cyber.law.harvard.edu</managingEditor>
    <webMaster>dwiner@cyber.law.harvard.edu</webMaster>
    ...
    </channel>
  </rss>

The use of namespaces in RSS 2.0 is fairly rare, but has become more common as other companies such as Microsoft and Apple have added discussion, something else discussed later in the article.

These are examples of the feed's head section. What goes into the entry sections is discussed later, with examples for entries included.

Note: Syndication feeds are created automatically using various tools, usually built into whatever tool you're using to create your website. These examples are provided purely for reference purposes, not as a guide in how to create a feed.


Entry Elements

Each individual entry at a site has its own entry within the feed, up to the number designated for each feed (this number does change, but usually ends up being between 5 and 15). In Atom, the entries are designated by entry elements, while in RSS 1.x and RSS 2.0, they're listed as item.

Examining the more comment elements within each entry:

title

The entry's title, if any.

link

The link or URL for the individual item.

guid

The unique identification of the item. In Atom, this is id.

description

In RSS 1.1 and RSS 2.0, the description is a text description or summary of the item. In Atom, the field for this value is summary.

content

The content is the encoded full content for the item, including any HTML or XHTML markup. The field could also be called content:encoded with RSS 1.x. If you specify both content and description, then the description (or summary) should be an abbreviated copy of the text. If you specify just the summary or description, and don't want to provide full content, you should not include the content field.

author

Author of item in Atom. This is dc:creator in RSS 1.x and RSS 2.0.

pubDate

Publication date of item. This is issued in Atom and dc:date in RSS 1.x.

category

The category of the item.

Examples of entries from all three feed types follow. First, Atom:

  <entry>
  <title>The WebKit Open Source Project</title>
  <link rel="alternate" type="text/html" href="http://feeds.feedburner.com/
  oreilly/radar/atom?m=520" />
  <id>http://webkit.opendarwin.org/</id>
  <created>2005-10-13T08:34:02Z</created>
  <modified>2005-07-03T09:06:11Z</modified>
  <author>
  <name>rael</name>
  </author>
  <dc:subject>apple</dc:subject>
  <dc:subject>browser</dc:subject>
  <dc:subject>affordances</dc:subject>
  <dc:subject>web</dc:subject>
  <dc:subject>etech</dc:subject>
  <dc:subject>etech06</dc:subject>
  <dc:subject>safari</dc:subject>
  <summary type="text/html" mode="escaped">By rael
  WebKit, the embeddable Web browser behind Mac OS X's Safari, Mail.app,
  Dashboard, and third party apps like NetNewsWire and TextMate, now makes
  nightly builds available....</summary>
  <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://radar.
  oreilly.com/">By rael
  WebKit, the embeddable Web browser behind Mac OS X's Safari, Mail.app,
  Dashboard, and third party apps like NetNewsWire and TextMate, now makes
  nightly builds available....
  <img src="http://feeds.feedburner.com/oreilly/radar/atom?g=520"/></
  content>
  <feedburner:origLink>http://webkit.opendarwin.org/</feedburner:origLink>
  </entry>

Next, RSS 1.0:

  <item rdf:about="http://webkit.opendarwin.org/">
  <title>The WebKit Open Source Project</title>
  <link>http://feeds.feedburner.com/oreilly/radar/rss10?m=520</link>
  <description>By rael
  WebKit, the embeddable Web browser behind Mac OS X's Safari, Mail.app,
  Dashboard, and third party apps like NetNewsWire and TextMate, now makes
  nightly builds available....&lt;img src="http://feeds.feedburner.com/oreilly/
  radar/rss10?g=520"/&gt;>/description<
  <dc:subject>apple browser affordances web etech etech06 safari</dc:subject>
  <dc:date>2005-10-13T08:34:02-08:00</dc:date>
  <feedburner:origLink>http://webkit.opendarwin.org/</feedburner:origLink>
  </item>

And finally, RSS 2.0:

  <item>
  <description>
 Blog Herald: <a href="http://www.blogherald.com/2005/03/06/a-short-history-of blogging/">
  A short history of blogging</a>.
  </description>
  <pubDate>Thu, 13 Oct 2005 05:46:28 GMT</pubDate>
  <guid>
  http://archive.scripting.com/2005/10/13#When:1:46:28AM
  </guid>
  </item>

There are other elements, optional for each feed, but these are the most commonly used fields for most feeds, unless you're audio broadcasting or podcasting, which we'll get into later in the document. Normally you don't have to worry about creating the feed, as whatever publishing or syndication feed tools you use will manage this for you. However, if you do want to ensure your syndication feed is working properly, you can validate it at the Feed Validator, found at feedvalidator.org.


Publishers: Industry Support

Though syndication feeds are becoming widespread at many different kinds of sites, they achieved their level of popularity today through their use in weblogging. If you haven't been exposed to weblogging, this is a type of site where entriesmost often created by one authorare listed out as they are created in reverse chronological order. Rather than entire articles, weblog entries tend to be personal jottings or updates of information, which may or may not include links to other online material.

Weblogs and syndication feeds tend to mirror each other in basic functionality. In fact, it's difficult to say which was the driving force behind dated, timelimited, reverse-ordered entries: weblogging or feeds. Regardless, all weblogging tools provide built-in functionality to generate feeds in one or more formats. Taking a look at several of these tools:

Blogger:

The granddaddy of hosted weblogging environments, Blogger still accounts for a significant percentage of weblogs. It originated as a separate entity, but is now owned by Google. Blogger provides only Atom as a builtin feed type, though if you're a Blogger Pro account holder, you can also select RSS 2.0. At this time, RSS 1.0 is not supported.

Six Apart:

Six A part currently supports three weblogging tools: the self-hosted Movable Type, with default templates supporting Atom and RSS 2.0; the hosted high-end weblogging tool TypePad, which supports RSS 2.0 and Atom; and the very popular LiveJournal, which also supports only RSS 2.0 and Atom. Unfortunately, the company references RSS 2.0 as just "RSS," which can be confusing, considering there are older legacy uses of RSS 0.9x still in usenot to mention RSS 1.0. However, when you see RSS in regard to any of these three products, know that this is RSS 2.0.

WordPress:

WordPress provides support for all three major syndication feed formatsRSS 1.0, RSS 2.0, and Atomin addition to some legacy formats, such as RSS 0.9x.

ExpressionEngine:

pMachine's ExpressionEngine provides support for all three major syndication feeds.

Blosxom:

Blosxom has several plugins that support RSS 1.x, RSS 2.0, Atom, and the RSS 3.0 format, a pure text-based, non-XML syndication feed that was created more as an object lesson in feed design than for actual use.

TextPattern:

Though the FAQ says that TextPattern supports only RSS 0.92, it also provides support for RSS 2.0 and Atom. I can find no evidence that it supports RSS 1.0. As with Six Apart, "RSS" is assumed to be RSS 2.0, though "feed" seems to refer to RSS 0.92.

Drupal:

More of a full-featured CMS (Content Management System) than a weblogging tool, Drupal provides support for Atom, RSS 1.0, and RSS 2.0, as well as RSS 0.92 in its core implementation.

Userland:

Userland features a group hosting tool, Manila, and a personal tool, Radio. Both support RSS 2.0 and Atom.

JournURL:

JournURL, a hosted environment with extensive community functionality, supports RSS 2.0 only.

PHP-Nuke:

Another community-based tool, PHP-Nuke has modules and generators that support RSS 1.0, Atom, and RSS 2.0.

And so on. As you can see, most tools provide support for RSS 2.0 and Atom, and several provide it for RSS 1.0, in addition to some other widely used legacy formats, such as RSS 0.92.

If your tool supports one format and you want to provide support for others, you have a couple of options. First, there are third-party modules, plugins, and other add-ins that can be added to your tool to provide support for the syndication feed format. The best way to find these is to query your favorite search engine for the type of syndication feed (such as "RSS 2.0"), with the name of the tool and the type of extension supported by the tool (such as "plugin"). This should return pages with discussion about additions.

Also check with support forums, and within any online documentation.

Another option to provide support for syndication formats is to use services that convert a feed from one format to another. The site 2rss.com will generate an RSS 2.0 feed given one formatted as Atom. However, use caution with sites such as this: they have been known to insert ads into feeds.

There is also software you can run at your site if you're running a self-hosted system that can convert the syndication format using a variety of techniques, such as XSLT, or even accessing the data in the database directly. In most cases, though, the syndication format supported by your tool should be supported by syndication feed aggregators, and as long as the feed is valid, the type of feed format shouldn't make a difference to your readers.

Once you've got your feed, you want to provide a way for people to subscribe to you. There are two different ways to do this, and both are discussed in the next section.


Discovering Feeds

Returning to the beginning of this article, those links or buttons labeled Atom, RSS, or XML all lead to a syndication feed. Clicking on them will open that feed in your browser (or whatever application you've defined to handle the feed). Either your publication tool adds this to your site, or you can add it easilyjust create a hypertext link with the appropriate label.

To make your site easier to subscribe toafter all, not every reader is going to know what to do with this XML file that opensyou can also include buttons and links that specific aggregators provide, such as Bloglines, NewsGator, and so on. These should be marked clearly at the site, or instructions provided in the tool. Again, your publication tool may also provide this.

The best approach of all to publicize a feed is to use autodiscovery. Autodiscovery involves putting a simple line into the HEAD section of each web document, and pointing the reference to the location of your feed. You also provide some information about the type of feed so that aggregators know how to find it.

An autodiscovery link looks as follows, depending on your publication tool:

  <link rel="alternate" type="application/rdf+xml" title="Entries in RSS 1.0"
          href="http://yourwebsiteloc.com/index.rdf" />

In this, the feed is RSS 1.0, located at http://yourwebsiteloc.com/index.rdf, and the type of file is application/rdf+xml. You can change the title to what you would prefer.

Your publication tool may provide much of this, like the following, in which case you'll want to use caution before changing the text:

  <link rel="alternate" type="application/rdf+xml" title="Entries in RSS 1.0"
          href="<?php echo get_settings('siteurl'); ?>/index.rdf" />

And you can provide multiple feeds, such as different formats, or a feed specifically for your comments, such as the following:

  <link rel="alternate" type="application/rss+xml"
          title="Recent comments in RSS 2.0"
          href="http://yourwebsiteloc.com/commentsrss2.php" />

The application type for RSS 1.x is application/rdf+xml; the one for RSS 2.0 is application/rss+xml; the one for Atom is application/atom+xml.

When you add this to a page, and your readers access the page with a syndication feed-sensitive browser, such as Firefox, your readers will see an indicator that the site has an associated feed(s) and that they may subscribe. If your readers put the URL for your site into whatever aggregator they use, again it should find the link to the syndication feed, with no other effort on your part.

You, too, can find the syndication feed for sites you want to subscribe to using any of these same techniques, and whichever aggregator you prefer. We'll look at a sampling of aggregation tools in the next section.


Subscribing to and Reading Feeds

Just as with publication tools and syndication feed formats, you have many choices about what kind of feed aggregator you use. You can use a browserbased tool, such as Firefox, in which case the feed shows up in a manner similar to a bookmark. Or you can use any number of desktop or web-based aggregators.

Wikipedia has an extensive list of news aggregators at en.wikipedia.org/wiki/ List_of_news_aggregators. Depending on your machine and operating system, you can choose from tools like FeedReader or RSS Bandit for Windows; NetNewsWire, NewsMac, and so on for the Mac; and Snownews or Olive for Unix. There are also a number of cross-platform tools from which to choose.

Some tools will be able to install as is; some may need to have other software installed. Follow the tool's installation instructions.

A desktop aggregator works by configuring how often you want it to check for syndication feed updates. A common choice is to check for updates hourlyto do so more frequently is considered "bad manners," as it can add unnecessary burden to the feed provider's bandwidth.

Once the tool is installed and configured, it's just a matter then of subscribing to sites as you find themfrom personal weblogs to major publications like the New York Times.

Another option is to use a web-based aggregator tool. The benefits of these are that you don't have to install the tool, and if you have many machines, you can access the aggregator from all of them. The disadvantage, of course, is that you don't have access to the feeds when you're offline, traveling on the train or plane, or the like.

Still, many of us like the ease of an online aggregator, especially if we access our subscriptions from many machines. There are not as many online feed services as there are desktop tools, but there is a good assortment.

One popular tool is Bloglines, found at bloglines.com. You can sign up for a free account and add subscriptions immediately, or even follow the service's recommendations for adding new subscriptions. The service sends out an automated bot to check for updates, and highlights subscriptions that have new entries. You can then read the entry in the right column of the web page.

Another popular tool is NewsGator, at newsgator.com. Just as with Bloglines, you can avail yourself of the free services, or subscribe to paid services, depending on your needs. Also like Bloglines, once you set up your NewsGator account, you can add subscriptions, either by browsing those provided by NewsGator or by providing the URLs for the subscriptions.

A last subscription service we'll look at is Feedster, at feedster.com. Again, as with the other services, you can add and remove feeds once you sign up for an account. In addition, you can also search for specific feed entries based on URL or keyword.

Which service you pick really depends on what you want, and which is most comfortable for you to use. My recommendation is for you to try them all, and then settle on the one you like best.


New Syndication Challenges

For being a simple concept, syndication feeds have generated a great deal of intense interest surrounding in the last few years. One reason is the introduction of podcasting. Though beyond the scope of this article, it's worth your time to provide a quick overview of podcasting, and how you can get started in this if you're interested.

Podcasting is making an individual recording in the nature of a radio broadcast, and then posting this recording in your weblog. When you include the link in your weblog to the file (usually in MP3 format), most tools will generate an enclosure statement in the feed for the item.

Other tools that are capable of playing the podcast will read through the syndication feed and pull out the enclosed sound file, storing it for playback. One popular playback device is the Apple iPod, hence the name podcasting.

(For more on getting set up as a podcaster, see the Endgadget tutorial at engadget.com/entry/5843952395227141/, the About.com how-to at radio.about. com/od/podcastin1/a/aa030805a.htm, and other tutorials at Wikipedia's podcast page, en.wikipedia.org/wiki/Podcasting.)

Podcasting started out slow enough, and then exploded when some major players became interested in the concept. Soon, radio and television networks were providing podcasts of some or even all of their shows. Some popular amateur podcasters took on a star quality comparable to well-known radio personalities. What caused a major explosion, though, was when Apple turned its corporate eye to the phenomenon.

In 2005, Apple announced support for podcasts in iTunes, and provided the ability for anyone to register their podcasts with the iTunes central server. Now, not only could you find podcasts through sites such as audio.weblogs.com and ipodder.org, you could also search for new 'casts using iTunes.

The iTunes rollout wasn't without some controversy. For instance, Apple only supported one syndication feed format: RSS 2.0. This choice was particularly controversial because there is confusion about how many enclosures RSS 2.0 supportsit's not specified in the RSS 2.0 specification. So, if you have a podcast linked in your weblog post (and they are linked, just like web pages), and you have a second in the same post, some tools will create two enclosures, while others will only create one for the first they find.

Other controversial aspects of Apple's adoption of syndication feeds and podcasts are the company's use of XML and other technical issues, but it is the enclosure issue that is most likely to impact you. To be safe, include only one audio file in any post to ensure your feed validates and is safely accessible.

(For more on Apple and podcasting see www.apple.com/itunes/podcasts/, phobos.apple.com/static/iTunesRSS.html, and www.apple.com/quicktime/tutorials/.)

Another major boost to the use of RSS happened when Microsoft announced its support for RSS in its upcoming operating system, code-named Vista; and the highly anticipated and long-delayed new release of Internet Explorer, IE 7.0. With RSS incorporation into Outlook, Office, and other Microsoft applications, we're sure to see even more of this rather simple, but popular XML.

Though Microsoft supports Atom, RSS 1.0, and RSS 2.0 in its browser, it will only support RSS 2.0 in its tools and operating system. This did create some discussion, because as you'll find out, people can get passionate about what syndication feeds they support.


Deciding Which Feed Works Best for You

All three syndicationfeeds work with the major aggregators, and are usually supported by most tools. Not all, though. Google, which owns Blogger, a very popular hosted weblogging tool, supports Atom and RSS 1.0 but not RSS 2.0. WordPress, a very popular open source tool, provides files to create all three syndication feed types, but comes automatically enabled for RSS 2.0 and Atom, and not RSS 1.0.

Do you need all three types? No. In fact, to support three types of syndication feeds is to cause some confusion as to how many people are subscribed to you in some centralized tools. For instance, Bloglines will give a count of subscriptions for each feed, not each site. If you provide all three feeds, then the counts are split across feed type.

If you don't provide all three, then which you pick depends on your needs and what your tool supports. As mentioned, tools like Blogger support only a subset of the tools, and others may support only one. If you're planning on podcasting then you probably should look into supporting RSS 2.0 at least, primarily because this is currently the only version that Apple supports. However, you don't have to pick RSS 2.0 to take advantage of Microsoft's new changes because most of these are internal to tool use, and not necessarily syndication feed-specific. The one Microsoft tool that would be a syndication feed consumer, IE or Internet Explorer, should support all three types.

I personally have the capability of supporting all three types, but I only support RSS 1.0. The main reason for this is that I use RDF/XML for all my other applications, and I want to be consistent. And since I don't podcast, Apple iTunes needs are not an issue. I've not yet found an aggregation tool that can't work with RSS 1.0, and I've been using this syndication type primarily for well over a year.

Your mileage may vary, though. See what your tools support, chat with others, and assess your needs. You may find that providing all three feed types is your best option.


Other Issues

You would think that providing a feed is enough to satisfy most needs, but it goes much further. For instance, one option you'll be given by most tools that generate feeds is whether to provide an excerpt or to provide full content. When you provide full content, this usually includes any photographs or other files you have embedded in your post.

If you provide full content, chances are most people will read your material in their aggregators rather than necessarily go to your website. You have to decide for yourself if you want to give people this option, or provide an excerpt only. Another issue is that if you do embed photographs, the aggregators may access the photos from your site, and this can be costly in terms of bandwidth.

Another point on full content versus excerpts is that many people like to get unread posts in their laptop-based aggregator and then read the posts while offline. They might read the posts on the train or plane, or in some other location. In addition, some people may read content using tools such as small PDA-like devices, which can handle the unformatted feed syntax.

Also, it's easier for people to read posts in their aggregators. Some folks are so stubborn, they won't even read a weblog or other site that doesn't provide full content. Most people, though, base their decision on the material rather than the technology, so I wouldn't let this attitude impact on your decision too much.

Another possibility with full-content feeds can and should impact on your decision, and that is that some sites republish feeds, and even provide their own comment and other systems so that these republished works are a little different than the original posting. If they are reputable, these sites will also note that the material is republished, and provide links to the original site. If they are less reputable, well, you may only find out about it by doing a search.

However, if you don't provide full content, any links within your content may not get picked up by aggregator tools such as IceRocket, Feedster, and so on. This means that people may not be aware that you've linked to their writing, and your link may not get included in their link countsa sometimes important issue in environments such as weblogging.

Another option is what uses to provide feeds for. Most tools allow you to provide feeds for categories, as well as comments. In fact, it may be difficult to remove this support. Check with your tool's vendor to see what it supports.


Here I Am, World

You've found a tool to generate your web content, and you've made the decision about full content versus excerpts, feed type, and whether you're going to be podcasting or not. You know where to look for feeds to subscribe to, and you've picked your aggregator to manage your subscriptions. Now, how do you let people know about your feed?

Again, as mentioned earlier, you or your tool should provide an autodiscovery link for each feed you support. With this, most tools can find and subscribe to your site immediately. You can also provide a link in your sidebar (or individual post for comments), though this approach is falling out of favor; after all, when you click on the link, you get XML, which is not humanly readable.

But how do you let people know you've updated? Well, many aggregators will automatically test your feed once every specified time period, usually no more than once an hour, no less than once a day. But most aggregators are dependent on being notified, and that's where the concept of pings comes in.

Popular ping services such as weblogs.com and blo.gs have web services that can be invoked by your tool to add your weblog to those in the recently updated list. An advantage to this is that any tool that monitors these services then knows you've updated. A downside, though, is that nefarious types such as weblog spammers use these lists to troll for innocent weblogs in which to dump spurious and usually offensive "comment spam."

Other services, usually blog search engines, provide ping capability and then use this information to access your feed to update their databases.

There is a master ping service, Ping-o-matic, at pingomatic.com, which can be customized to ping only specific services, and then can be invoked manually or included in your tool. Most popular tools, such as Movable Type, TypePad, WordPress, and others, automatically ping Ping-o-matic for you.

Most importantly, you need to ensure that your feed is working properly. Again, anytime you make a change in feed options, run your feed against the Feed Validator at feedvalidator.org. This will validate any of the three types: just pass in the URL of the feed.


Summary

When you enter the world of syndicated content, you'll be faced with many people telling you the "proper" way to do syndication. It is important to listen to their advice, especially if they tell you your feed is broken. However, one person's "broken" is another person's option, so always remember to validate your feed to verify that it is truly broken.

More importantly, your syndication feed is an extension of your site, and hence of yourself. It should reflect your interests, your concerns, and your choices. After several years of working with syndication feeds, one thing I can tell you that's truth: you will not please everyone.

Once your feed is validated, your options picked, your content published (excerpt or full content), and your services set up to be pinged, you are ready to forget about your syndication feed and focus instead on what's really important at your site: you, and the gifts you give of your writing, recordings, and art.


About the Author

Previous Page

About the Author

Shelley Powers is an independent contractor who specializes in technology architecture and software development. She's authored several computer books, including Developing ASP Components, Unix Power Tools 3rd edition, Essential Blogging, and Practical RDF. In addition, Shelley has also written several articles related primarily to web technology, many for O'Reilly.