In his post Really Simple Sharing, Ray Ozzie announced Simple Sharing Extensions for RSS and OPML. He writes

As an industry, we have simply not designed our calendaring and directory software and services for this “mesh” model. The websites, services and servers we build seem to all want to be the “owner” and “publisher”; it’s really inconsistent with the model that made email so successful, and the loosely-coupled nature of the web.

Shortly after I started at Microsoft, I had the opportunity to meet with the people behind Exchange, Outlook, MSN, Windows Mobile, Messenger, Communicator, and more. We brainstormed about this “meshed world” and how we might best serve it - a world where each of these products and others’ products could both manage these objects and synchronize each others’ changes. We thought about how we might prototype such a thing as rapidly as possible – to get the underpinnings of data synchronization working so that we could spend time working on the user experience aspects of the problem – a much better place to spend time than doing plumbing.

There are many great item synchronization mechanisms out there (and at Microsoft), but we decided we’d never get short term network effects among products if we selected something complicated – even if it were powerful. What we really longed for was "the RSS of synchronization" ... something simple that would catch on very quickly.

Using RSS itself as-is for synchronization wasn't really an option. That is, RSS is primarily about syndication - unidirectional publishing - while in order to accomplish the “mesh” sharing scenarios, we'd need bi-directional (actually, multi-directional) synchronization of items. But RSS is compelling because of the power inherent in its simplicity.
And so we created an RSS extension that we refer to as Simple Sharing Extensions or SSE. In just a few weeks time, several Microsoft product groups and my own 'concept development group' built prototypes and demos, and found that it works and interoperates quite nicely.

We’re pretty excited about the extension - well beyond the uses that catalyzed its creation. It’s designed in such a way that the minimum implementation is incredibly easy, and so that higher-level capabilities such as conflict handling can be implemented in those applications that want to do such things.

The model behind SSE is pretty straightforward; to sychronize data across multiple sources, each end point provides a feed and the subscribes to the feeds provided by the other end point(s).  I hate to sound like a fanboy but SSE is an example of how Ray Ozzie showed up at Microsoft and just started kicking butt. I've been on the periphery of some of the discussions of SSE and reviewed early drafts of the spec. It's been impressive seeing how much quick progress Ray made internally on getting this idea polished and evangelized.

The spec looks good modulo the issues that tend to dog Microsoft when it ships specs like this. For example,  is a lack of detail around data types (e.g. nowhere is the date format used by the spec documented although you can assume it's RFC 822 dates based on the examples) and there is also the lack of any test sites that have feeds which use this format so enterprising hackers can quickly write some code to prototype implementations and try out ideas.

Sam Ruby has posted a blog entry critical of Microsoft's practices when it publishes RSS extension specifications in his post This is Sharing? where he writes

The first attribute that the the Simple Sharing Extensions for RSS and OPML is to “treat the item list as an ordered set”.  This sounds like something from the Simple List Extensions Specification that was also hatched in private and then unleashed with great fanfare about five months ago. Sure a wiki was set up, but any questions posted there were promptly ignored.  The cone of silence has been so impenetrable that even invoking the name Scoble turns out to be ineffective. 

Now the Simple List Extensions Specification URI redirects to an ad for vaporware.  Some things never change.

Should we wait for version 3.0?

I agree with all of Sam's feedback. Hopefully Microsoft will do better this time around.


I just chatted with Torsten this morning and we've decided to ship the next release of RSS Bandit this weekend, on November 27th to be exact. As part of the final stretch, we've reached the point where we have to request for translators.

As RSS Bandit is a hobbyist application worked on in our free time, we rely on the generosity of our users when it comes to providing translations of our application. Currently we have completed translations for Brazilian Portuguese, German and Traditional Chinese. We also have folks working on Hindi and Dutch translations. If you look at the supported language matrix for RSS Bandit, you'll not that this means we don't have translators for previously supported languages like Polish, French, Russian, Japanese, Turkish or Serbian. If you'd like to provide your skills as a translator to the next release of RSS Bandit and believe you can get this done by this weekend then please send mail to . We'd appreciate your help.


Categories: RSS Bandit

Nick Bradbury has a post entitled An Attention Namespace for OPML where he writes

In a recent post I said that OPML would be a great format for sharing attention data, but I wasn't sure whether this would be possible due to uncertainty over OPML's support for namespaces.
As I mentioned previously, FeedDemon already stores attention data in OPML, but it uses a proprietary fd: namespace which relies on attributes that make little sense outside of FeedDemon. What I propose is that aggregator users and developers have an open discussion about what specific attention data could (and should) be collected by aggregators.

Although there's a lot of attention data that could be stored in OPML, my recommendation is that we keep it simple - otherwise, we risk seeing each aggregator support a different subset of attention data. So rather than come up with a huge list of attributes, I'll start by recommending a single piece of attention data: rank.

We need a way to rank feeds that makes sense across aggregators, so that when you export OPML from one aggregator, the aggregator you import into would know which feeds you're paying the most attention to. This could be used for any number of things - recommending related feeds, giving higher ranked feeds higher priority in feed listings, etc.

Although user interface and workflow differences require each aggregator to have its own algorithm for ranking feeds, we should be able to define a ranking attribute that makes sense to every aggregator. In FeedDemon's case, a simple scale (say, 0-100) would work: feeds you rarely read would get be ranked closer to zero, while feeds you read all the time would be ranked closer to 100. Whether this makes sense outside of FeedDemon remains to be seen, so I'd love to hear from developers of other aggregators about this.

I used be the program manager responsible for a number of XML technologies in the .NET Framework while I was on the XML team at Microsoft. The technology I spent the most time working with was the XML Schema Definition Language (XSD). After working with XSD for about three years, I came to the conclusion that XSD has held back the proliferation and advancement of XML technologies by about two or three years. The lack of adoption of web services technologies like SOAP and WSDL on the world wide web is primarily due to the complexity of XSD. The fact that XQuery has spent over 5 years in standards committees and has evolved to become a technology too complex for the average XML developer is also primarily the fault of XSD.  This is because XSD is extremely complex and yet is rather inflexible with minimal functionality. This state of affairs is primarily due to its nature as a one size fits all technology with too many contradictory design objectives. In my opinion, the W3C XML Schema Definition language is a victim of premature standardization. The XML world needed experiment more with various XML schema languages like XDR and RELAX NG before we decided to settle down and come up with a standard.

So what does this have to do with attention data and XML? Lots. We are a long way from standardization. We aren't even well into the experimentation stage yet. How many feed readers do a good job of giving you an idea of which among the various new items in your RSS inbox are worth reading? How many of them do a good job suggesting new feeds for you to read based on your reading habits? Until we get to a point where such features are common place in feed readers, it seems like putting the cart way before the horse to start talking about standardizing the XML representation of these features.

Let's look at the one field Nick talks about standardizing; rank. He wants all readers to track 'rank' using a numeric scale of 1-100. This seems pretty arbitrary. In RSS Bandit, users can flag posts as Follow Up, Review, Read, Reply or Forward. How does that map to a numeric scale? It doesn't. If I allowed users to prioritize feeds, it wouldn't be in a way that would map cleanly to a numeric scale. 

My advice to Nick and others who are entertaining ideas around standardizing attention data in OPML; go build some features first and see which ones work for end users and which ones don't. Once we've figured that out amongst multiple readers with diverse user bases, then we can start thinking about standardization.


We are getting down to the end game for getting the Nightcrawler release of RSS Bandit. This is where all the more unfun parts of the release happen such as dealing with translations and tracking down performance bugs such as memory leaks or issues with multithreading. To take my mind of some of the tedium I'm going to have to deal with today, I've decided to spend some time thinking about the Jubilee release of RSS Bandit which should ship sometime next year

One of the features I'm evaluating is Reading lists for RSS which was discussed by Nick Bradbury in a blog entry he posted last month where he wrote

Last week Dave Winer proposed the idea of reading lists for RSS, which are more-or-less OPML subscriptions. I like this idea - a lot - and in fact a few FeedDemon customers have requested this feature in the past.

In a nutshell, the idea is that you'd subscribe to an OPML document which contains a list of feeds that someone is reading, some organization is recommending, or some service has generated (such as "Top 100" list). Changes to the source OPML document would be synchronized, so that you're automatically subscribed to feeds added to the reading list. Likewise, you'd be unsubscribed from feeds removed from the original OPML.

There are a number of implementation details that would need to be worked out (ex: would a FeedDemon user really want to be automatically unsubscribed from feeds dropped from the source OPML, especially if that user had flagged some posts in those feeds for future reference?), but details aside, I'm curious whether this is something you'd like to see, and if so, how do you think the idea can be improved upon?

This feature initially made me skeptical since it seems like a solution looking for a problem. Then again I thought the same thing about enclosures in RSS and I've been proved wrong by the podcasting phenomenom. So instead of ignoring the idea I'd like to see whether our users think this feature makes sense and if so how they expect us to resolve certain problems that would arise from implementing such a feature.

The first problem that comes up in implementing RSS reading lists based on OPML is what to do when a feed is pulled from the list by the owner of the feed list. Do we automatically delete the subscription? Do we prompt the user and if they decide to stay subscribed to the feed, move it out of the reading list? Another question is how to deal with feeds that the user is already subscribed to that are in the reading list?

What do you think?

November 20, 2005
@ 04:19 PM

Given the very negative beef that offshoring has in the U.S. technology industry I've found it interesting how favorable Microsoft employees are towards the practice. From reading the blogs of various Microsoft employees, it seems a number of different products now have part of their development team in Asia. Below are excerpts from a few of blog posts that highlight this trend.

In his post Some Kahuna Stuff, Omar Shahine of Hotmail Windows Live Mail writes

Finally, Aditya announced that he will be moving to Shanghai, to work in our MSN Shanghai Tech Center. We actually have a small team of really smart developers and testers over in Shanghai that are working on various aspects of Kahuna. For those of you that have Kahuna accounts, they are responsible for getting the MSN Calendar into the M3 release of Kahuna which is a project I worked on in my "spare time" while also working on Kahuna M3. I'll be going over to Shanghai in a few weeks to hang with them.

Aditya (who is one of the folks I manage) is one of the co-creaters of FireAnt, the technology that we built Kahuna on. While he'll be missed around the hallways of our campus, he'll be continuing to do some great stuff over in China. It's an amazing opportunity, and I'm really excited about growing and building a strong product development team there.

In his post Travel and Books Chris Anderson of Avalon Windows Presentation Foundation writes

Just got back from China. I spent last week visiting the Microsoft office in Beijing. The Avalon team is partnering with a group in China to produce some of the control and features in Avalon. It was great to get to meet all the folks over there. So, over the past 3 weeks I've spent 1 in LA, 1 in Seattle, and 1 in Beijing.

In the post IE Development in China, Christopher Vaughan of the Internet Explorer team writes

Tony Chor, Rob Franco, and myself are in Beijing today as we make our way to Kuala Lumpur for the Hack-In-The-Box conference. We have a great team over here in what we call the ATC (Advanced Technology Center). In the past 6 months they’ve gone from just starting to adding serious value to IE 7. The folks over here have already contributed to IE 7 by re-writing the select control which Chris Wilson alluded to in his post from the PDC. Other improvements that we’ll see come out of the ATC for IE include improving our bi-directional font support, font linking and fallback improvements, and increased accessibility support. Watch for more blog posts in the future from our teammates here in China covering the kinds of things they’re working on.

I think it's really cool that Microsoft employees are comfortable with the fact that it is a global company. I've seen some of the emotion and rhetoric around offshoring and U.S. companies get ugly which is unfortunate. Of course, Microsoft has a rather diverse and international work force which probably helps a lot.


Categories: Life in the B0rg Cube

November 20, 2005
@ 03:58 PM
In his post Dinner with Dan'l Lewin of Microsoft Dan Bricklin writes
I was invited to a little dinner tonight, along with John Landry and some others, with the visiting Dan'l Lewin of Microsoft...Earlier in the dinner we all introduced ourselves and Dan'l answered some questions about Live...Basically, he sounded like he couldn't say much and/or didn't know the answers and that we'll find out more in the spring (and is probably pretty happy the recording didn't come out...). He didn't seem keen on the idea of OWA-like (Outlook Web Access) versions of Word, Powerpoint, and Excel. Some of us let him know that's what we expected him to say but were surprised because it's what people want. (I had already told him some about wikiCalc.)

I can understand the Office guys aren't keen on building Web-based versions of their flagship apps but they are going to have get over it. They will eventually have to do it. The only question is whether they will lead, follow or get the hell out of the way.


Categories: Life in the B0rg Cube

I wrote my first gadget for yesterday; the MSN Spaces Photo Album Browser. Screenshot below

It didn't take that long but it was a frustrating experience trying to find documentation. I resorted to a combination of combing the Microsoft Gadgets forums, reading the source code of existing gadgets and reading the sparse documentation at We definitely have a lot of work to do in making this stuff more accessible to developers.

While working on it, I did get a fantastic tip for debugging Javascript from Matt. I didn't realize that I could use Visual Studio to debug any Javascript currently running in Internet Explorer in three steps. This is also explained in the IE blog post Scripting Debugging in Internet Explorer

  1. In Internet Explorer, select Tools->Internet Options…->Advanced->Disable Script Debugging
  2. In Visual Studio, select Debug->Processes
  3. In the Processes dialog, select the IE process you want to debug and then click the Attach button

That's it. Now you can set breakpoints and party like its 1999. Being able to debug script in this manner saved me hours of wasted time because it let me know that the object models exposed by and are different. Somebody definitely needs to hustle and get some documentation updated.


Categories: Web Development | Windows Live

November 19, 2005
@ 02:54 AM

Another Windows Live service shipped this week, From the site

Already own your own Internet domain name?

Have us host e-mail and IM for you in a domain you already own.

  • Create up to 20 e-mail accounts within your domain
  • Get a 250 MB inbox for each account*
  • Check your e-mail from any Web-enabled PC
  • Junk e-mail filter protection using Microsoft SmartScreen technology
  • Virus scanning and cleaning of e-mail
  • Seamless access with MSN Messenger, MSN Spaces, etc.
  • This is a pretty cool service and one I've been wanting for a while. Now I can provide email addresses for myself and others without actually having to host a mail server. Sign me up, baby. 


    Categories: Windows Live

    I found an interesting comment by someone named Dave in response to Shelley Powers's post Always in Alt. Dave wrote

    Microsoft made the bed they are now laying in.

    (1) As Shelley put so well, they abandoned an exceptionally large group of developers when they moved to .NET - I should know, I was one of them. (Don’t worry for me… I’ve moved onto greener, less proprietary pastures. Screw me once MS, shame on you. Screw me twice, shame on me.)

    (2) Worse yet, they are looking to do it again with the latest “Live” demo and supposedly-leaked emails about changing directions. This is one part of what MS has shown us alot of since 2000… they can’t stay in a single direction!

    (3) But the larger part of their problems is this insistent craving they have to make bold announcements of products that, well, NEVER see the light of day in a timely manner. Let’s compare….

    This year alone Apple announced three new iPods models, one brand-new Mac model, one new software suite, an upgrade to their other suite, delivered a major upgrade to their OS - two months ahead of time.

    Microsoft? Well, after underwhelming the media with some pre-beta Longhorn bits (about 2 years late I might add) and holding their PDC which finally showed us developers something of which _might_ be released in another 12 months, they finally delivered - about 18 months late - upgrades to MSSQL and VS.NET. Office got a decent upgrade but users have little compelling reason to spend money on it. There’s XBox of course. And then they delivered the worst demo anybody has ever seen about a change in directions.

    Where does this leave us developers? Very unhappy. Of course, as Scoble would put it - “real soon now” that will change. Of course, he said that 2 years ago too. In the meantime, I have to make a living. Can I do it using Microsoft Live products? Um, “real soon now”. How about using the - actually, quite excellent - new features of ASP.NET 2.0? Well, since they were promised back in 2004….

    LOL. I guess I would have needed to tell my kids _12 months ago_ that I’d put food on the table “real soon now” if I depended on such PR talk.

    PR talk…. now THAT is what is very wrong with Microsoft nowadays.

    There are a couple of themes here that should be addressed. The first is that Microsoft abandoned developers with its .NET strategy. In the move to managed code, I believe Microsoft could have done a better job of satisfying large bodies of its developer constituents such as VB6 users. The classic VB petition is probably the most visible manifestation of this feeling of abandonment by our customers. As Soma pointed out in the discussion around his post "Rumors of my (VB6) demise...", the leap the incompatibility between VB6 and Visual Basic.NET was not a decision taken lightly by the Microsoft Developer Division but was deemed necessary to advance the platform.

    The next point that Dave brings up is that the latest "Live" announcements are a radical change of direction that will cause disruption among our developer customers. I think this isn't right on two counts. First of all, the announcements aren't that radical a shift. A number of industry watchers such as Mary Jo Foley and Joe Wilcox have rightfully focused on this being more of a "sharpening of focus" for Microsoft than a radical new strategy. A significant number of the "Live" offerings are existing offerings that have been given new purpose and clearer goals. As time progresses, the Windows Live platform will unfold. This platform isn't a new set of developer tools and runtimes that will obsolete the .NET framework. That would suck. Instead these are APIs built around the Windows Live offerings and more that will give developers more opportunities to build interesting applications that delight users. A taste of this platform is at and we will be announcing more details in the coming months. 

    Dave's final point is that Microsoft is fond of announcing stuff years before it is ready. That is true and as a Microsoft employee I hate it a lot. I was talking to Brian Arbogast about this on Monday, and he agreed that we should endeavor to only announce things that people can use right away or can shortly thereafter. This is the philosophy around  

    There definitely is a lot of confusion out there about Microsoft's "Live" strategy and exactly what the "supposedly-leaked memos" mean. Now that Ray Ozzie has started back blogging, I assume he'll be taking a personal role in clarifying what his "Live" strategy means to Microsoft, its partners and its customers. I've subscribed to his blog. Have you?


    Categories: Windows Live

    November 16, 2005
    @ 11:45 PM

    I finally got to try out Google Base and it does seem to be an interesting experience. It reminds me a lot of Of course, it's missing key functionality like web feeds and a proper API, but if I was told to build the next version of it would probably look a bit like Google Base. The three key improvements to being

    1. Supporting more item types beyond "favorite link". This means supporting metadata fields beyond title, link and description.
    2. Allowing users to define their own fields
    3. Adding  much better search capabilities
    This definitely looks like an experiment by Google to see what people do with the service which might explain it's unpolished look. It's not clear how people will end up using it but I'm sure they will since its the latest new thing from Google.


    Categories: Web Development