SSE Update and Tutorial


SSE Update


I’d like to thank the community for providing valuable feedback on the SSE spec through the FEED-TECH mailing list.  We’re learning a lot from you, and appreciate your questions, comments, suggestions.  Based on the feedback we’ve received and some discoveries we’ve made building sample code, we’ve released a revision of the SSE Specification (version 0.91). You can track the specific changes we’ve made to this revision of the spec in the change history, and we’ll be archiving all previous versions of the spec, at least for duration of the review process.  I’d like to highlight a few changes we’ve incorporated that are attributable to the community review process:


Thanks to:



  • Charles Cook pointed out via the FEED-TECH mailing list that there are cases where independent replication of hierarchical items could result in cycles (in which two items each point to the other as a parent). To address that possibility, we’ve added a deterministic algorithm to break cycles.
  • Yc J suggested that we add a spec version number to the format (to deal with future compatibility). Makes perfect sense, and we’ve added it in this rev.

Things Not Yet Addressed in this Version:



  • Date Format: We’re still contemplating how best to properly define the date format. As Danny Ayers, Sam Ruby, David Powell and others have pointed out, there are better date formats than RFC 822. For example, we’re trying to figure out how to support dc:date. (Though we’ve at least fixed the examples and have stated explicitly that valid dates are RFC 822 with 4-digit years [which is the format for RSS 2.0]).

Also, I’d like to highlight some examples of “SSE in the wild” that have recently emerged.  It’s great to see early adopters like Matt Terenzio take the initiative with projects like SkinnyFarm.  If you have used SSE in a project and would like to share your experience with the community, please let us know via the mailing list.


Tutorial and Samples


We’ve received lots of requests – both from the community and from within Microsoft- for samples, samples, samples of SSE code in action.  We heard you. Here is a tutorial outlining “SSE 101” with accompanying samples.  The tutorial walks through a progression of modifications to SSE-enabled RSS feeds, highlighting both the XML feed content along with easy-to-read commented JavaScript code that you can run on your own feed to start “kicking the tires”.  Paresh Suthar, a member of our concept development team, deserves the credit for creating the sample; this is just the first in a series of samples and documentation we plan to provide to the community.


I encourage you to download the tutorial and provide feedback to the feed tech mailing list. If you haven’t already, please subscribe to the list by sending email to: listserv@discuss.microsoft.com with the message body “subscribe feed-tech” or use the web-based subscription form.


– Jack


Comments (6)

  1. Wai Yip Tung says:

    ISO8601 for date. I really don’t see why in year 2006 a new spec would continue to use an archaic, US centric, hard to generate, hard to parse date format. Just like nobody would design a new protocol today without considering the data would be non-ASCII.

  2. David says:

    I am just start to look at rss. How will atom fit into the mix. I see atom 1.0 and rss 2.0 feeds availible so does that mean both standards will be followed or will extensions for rss 2.0 be heavily used?

  3. In the tutorial, in one of the first examples, the namespace delaration says,

    <rss version="1.0" xmlns:sx" . . .

    You mean version="2.0" right?

    Keep up the good work. I’m becoming a Microsoft lover.

  4. Paresh Suthar says:

    Good catch Matt T. – we did mean version="2.0" and we’ll update the contents as soon as we can.

  5. Ray Myers says:

    Can’t wait for you guys and gals to apply Notes replication scheme to meshed calendaring.

    As a Lotus Notes power user for years, I seldom encountered a replication conflict of any great import.  And…synchronization re: indexes was simply, well…transparent!  For those of you who recall the Dbase/FoxBase ongoing indexing fiasco, you’ll appreciate this additional transparency inherent in the Notes schema.  Bottom Line:  Bulletproof!

    I can feel the excitement from here!  Makes coming to work…fun, eh?

    Hey, here’s an idea:  Why not bring online services to the marketplace in a 3-tiered, phased approach?  For instance:

    Let’s say we want Word online ("WordLine"?) to get to the customers ASAP.  

    1.  We build WordLine1 – Fully functional online MSWord with Help Lite.  Customer features cannibalized in chunks from MSWord, downloaded and applied to the document.  Document stored on user’s computer means online storage model need not be built, yet.  

    Revenue model is pure advertising with most-often-download-features costing the most to the advertiser.  BENEFITS:  Rapid deployment with promises to customers that WordLine2 is coming soon (Not Microsoft soon, mind you, Live Services soon).

    2.  WordLine2 – Server Farm buildup, SuperHelp buildup and SuperBack buildup means:

    a.  Fully-functional online MSWord

    b.  SuperHelp – HelpLite plus community help plus a FULL-FEATURED ONLINE, ACCREDITED TRAINING PROGRAM FOR THREE (3) LEVELS OF WORD.

    c.  SuperBack – Customer is assured his/her documents are backed up at server farm.  Encryption, with key stored at Microsoft, offered for local PC backup.  This gives doubters the security they need to do online applications.

    Revenue model is advertising-prescription.  Prescription model is ala Ebay/Paypal.  Customer is billed in a "painless" and incremental fashion and Microsoft can get in the business, optionally, of being a "MicroPal".  Hey, why not?

    BENEFITS:  Low customer costs because of continued advertising model, high feature benefits including security, for the customer enhanced and diverse revenue streams for Microsoft.

    3.  WordLine3 –  Same as 2. but totally prescription.  BENEFITS:  Business and Individuals who don’t want the ads.

    This approach can be applied to all online services with bundling of two (2) or more services giving prescription discounts, etc.  It also insures quick-to-market deployment of basic packages which can grow as they are developed.

    Just my two cents.

  6. john says:

    Interesting reading, thanks man.