April 28, 2005
@ 08:26 AM

I tend to talk about MSN Spaces a lot which makes people think I work on that team when in truth I work with them as well as with the MSN Messenger and Hotmail folks. Although its easy to find folks who work on Spaces by simply starting from Mike Torres's blog, it isn't so straightforward for Hotmail or Messenger. Below is a short list of a few of MSN communications services folks blogs I am aware of



There are a bunch of other blogs by the folks on the various client and server teams but these four are the ones that talk most about the products they work on. In fact, if you browse the various blog rolls on their spaces and mine you'll notice that most of the MSN folks use their spaces for personal stuff not work blogging.


Categories: MSN

April 28, 2005
@ 08:06 AM

Below is a grab bag of mildly interesting stuff that I happened to come across while browsing various blogs in the MSN Spaces universe

  • Today is Bloggers 101. I've already seen a bunch of Spaces blogs where folks have posted 101 facts about themselves. So far I've liked Deadites: My 101.

  • A couple of folks are trying to have an MSN Spaces block party. I don't know how successful it's going to be but this is the kind of thing folks used to use Meetup.com for. If they can't have a party I hope they at least get enough people to have a blogger dinner.

  • According to the PubSub linkcounts page for yesterday the most linked domains in the blogosphere where http://storage.msn.com (367,042 links links from 13,577 sites) and http://spaces.msn.com (30,727 links from 7,539 sites). Not only are we growing to be the biggest blog hosting service on the Web but it looks like we are becoming the most active community as well.


Categories: Mindless Link Propagation | MSN

Daniel Steinberg has a an article entitled Bosworth's Web of Data where he discusses some of the ideas Adam Bosworth evangelized in his keynote at the MySQL Users Conference 2005. Daniel writes,

Bosworth explained that the key factors that enabled the web began with simplicity. HTTP was simple enough that any "P" language or JavaScript programmer could build applications. On the consumption side, web browsers such as Internet Explorer 4 were committed to rendering whatever they got. This meant that people could be sloppy and they didn't need to be high priests of syntax. Because it was a sloppy standard, people who otherwise couldn't have authored content did. The fact that it was a standard allowed this single, simple, sloppy, open wire format to run on every platform.
The challenge is to take a database and do for the web what was done for content. Bosworth explained that you "need a model that allows for massively linear scalability and federation of information that can spread effortlessly across a federated web."

Solutions that were suggested were to use XML and XQuery. The problem with XML is that unlike HTML, there is not a single grammar. This removed the simple and sloppy aspects of the web. The problem with XQuery is the time it took to finish the specification. Bosworth noted that it took more than four years and that "anything that takes four years is not worth doing. It is over-designed. Intead, take six months and learn from customers."
The next solution used web services, which began as an easy idea: you send an XML request and you get XML back. Instead, the collection of WS-* specs were huge and again, overly complicated. Bosworth said that this was a deliberate effort on the part of the companies that control the specs, like IBM and Microsoft, which deliberately made the specification hard, because then only they could deliver technology to do it.
Bosworth predicts that RSS 2.0 and Atom will be the lingua franca that will be used to consume all data from everywhere. These are simple formats that are sloppily extensible. Anyone who wants to can use these formats to consume content or to author content. Contrast this with the Semantic Web, which requires that you get a large group of people to agree on the schema of everything.

There are lots of interesting ideas here. I won't dwell on the criticisms of XQuery & WS-* mainly because I tend to agree that they are both overdesigned and complicated. I also wont dwell on the apparent contradiction inherent in claiming that the Semantic Web is doomed because it requires people to agree on the same schema for everything then proposing that everyone agree on using RSS as the schema for all data on the Web. I have a suspicion of what he sees as the difference but I'll wait for a blog post from him clarifying that.

What I find very interesting is using RSS is the data access format for the Web. RSS gained popularity as a way to syndicate blog posts and news sites but its turned out to be a lot more versatile than that. Sites like Feedster and Amazon's OpenSearch technology show you can use RSS as a mechanism for providing search results and integrating search engines respectively. Podcasting shows you can use RSS to syndicate digital media content instead of just plain old text or HTML. With Amazon's syndicated feeds one can keep abreast of when new CDs, books and more are released.

Over the weekend I wrote the MSN Spaces photo album browser page which displays slideshows of all the photos in the various albums on a particular user's MSN Spaces space. This page also can display the photos on a randomly selected space. This webpage is entirely powered by RSS. The photos are obtained from the RSS feed for the Space and the list of random spaces is obtained by querying MSN search with the query "site:spaces.msn.com photo album" and requesting the results as RSS. In fact, the information from the MSN Spaces RSS feeds is enough to build something like the Flickr related tags browser, where instead of showing related tags one could show spaces related to the user from the information in their blog roll which happens to also be provided in the RSS feed. Pretty nifty and all without requiring building a REST, SOAP or XML-RPC API.

In situations where one simply wants to expose read-only data via a service on the Web, it's looking like RSS is the technology to beat. As more and more information is exposed as RSS feeds, there will be even more interesting things people will be able to do with this technology. At Microsoft we definitely are gung ho about exposing as much data as possible via RSS and I've been amazed at how much enthusiasm there is around the opportunites in this area.   

Side Note: Yesterday while at the Microsoft Research Social Computing Symposium I was chatting with Randy Farmer, who's one of the guys behind Yahoo! 360° and Yahoo's purchase of Flickr, and I mentioned that it seemed like 2003 was the year that RSS really started to take off. This was also the year that Dave Winer froze the RSS 2.0 spec and Sam Ruby gathered all the malcontents in the XML syndication space and gave them a shiny new toy to play with in Atom. Coincidence?


Categories: Syndication Technology | XML

Almost four years ago I wrote an article entitled C# from a Java Developer's Perspective which is still one of the most popular comparisons of C# and Java on the Web. The article gets a couple thousand hits a month and I still get email about it from developers thanking me for writing it. Given the amount of changes in Java 1.5 5.0 and C# 2.0 I think the time has come to update this article. Below is my proposed table of contents for the new version. I'd appreciate comments on anything people thing is either missing or placed incorrectly.

  1. The More Things Change The More They Stay The Same
    This section describes concepts and language features that are almost exactly the same in C# and Java.
    1. We Are All Objects
    2. Keyword Jumble
    3. Of Virtual Machines and Language Runtimes
    4. Heap Based Classes and Garbage Collection
    5. Arrays Can Be Jagged
    6. No Global Methods
    7. Interfaces, Yes. Multiple Inheritance, No.
    8. Strings Are Immutable
    9. Unextendable Classes
    10. Throwing and Catching Exceptions
    11. Member Initialization at Definition and Static Constructors
    12. Generics - new!!!
    13. Boxing - new!!!
    14. Variable Length Parameter Lists - new!!!

  2. The Same But Different
    This section describes concepts and language features that differ either only in syntax or in some similarly minor manner between C# and Java.
    1. Main Method
    2. Inheritance Syntax
    3. Run Time Type Identification (is operator)
    4. Namespaces
    5. Constructors, Destructors and Finalizers
    6. Synchronizing Methods and Code Blocks
    7. Access Modifiers
    8. Reflection
    9. Declaring Constants
    10. Primitive Types
    11. Array Declarations
    12. Calling Base Class Constructors and Constructor Chaining
    13. For or is that foreach loops? - new!!!
    14. Metadata Annotations - new!!!
    15. Enumerations - new!!!

  3. An Ever So Slight Feeling of Dj Vu
    This section describes concepts and language features that exist in C# that are similar to those that exist in Java but with a significant difference.
    1. Nested classes
    2. Threads and Volatile Members
    3. Operator Overloading
    4. switch Statement
    5. Assemblies
    6. Collections
    7. goto (no longer considered harmful)
    8. Virtual Methods (and final ones too)
    9. File I/O
    10. Object Serialization
    11. Documentation Generation from Source Code Comments
    12. Multiple Classes in a Single File
    13. Importing Libraries
    14. Events
    15. Cross Language Interoperability

  4. Now For Something Completely Different
    This section describes language features and concepts that exist in C# and have no Java counterpart.
    1. Deterministic Object Cleanup
    2. Delegates - changed!!!
    3. Value Types (Structs)
    4. Run Time Type Identification (as operator)
    5. Properties - changed!!!
    6. Multidimensional Arrays
    7. Indexers
    8. Preprocessor Directives - changed!!!
    9. Aliases
    10. Runtime Code Generation
    11. Pointers and Unsafe Code
    12. Pass by Reference
    13. Verbatim Strings
    14. Overflow Detection
    15. Explicit Interface Implementation
    16. Friend Assemblies - new!!!
    17. The Global Namespace Qualifier - new!!!
    18. Continuations (Iterators) - new!!!
    19. Partial Classes - new!!!
    20. Anonymous Methods - new!!!

  5. Wish You Were Here
    This section describes language features and concepts that exist in Java and have no C# counterpart.
    1. Checked Exceptions
    2. Cross Platform Portability (Write Once, Run Anywhere)
    3. Extensions
    4. strictfp
    5. Dynamic Class Loading
    6. Interfaces That Contain Fields
    7. Anonymous Inner Classes
    8. Static Imports - new!!!


Categories: Technology

Aaron Skopnnard has posted a response to my Contract-First XML Web Service Design is No Panacea blog post. In his post The virtue of contract-first Aaron Skonnard writes

I love being challenged on my opinions. I've been challenged extensively regarding my opinion on contract-first development, although mostly by folks at Microsoft like Don , Doug , and Dare . The funny thing is when I have the same discussions with folks in the field building systems today, it's a no-brainer.
So why the disconnect between vendors and the rest of the world?
I believe it's because most vendors don't see (or appreciate) the main virtue of the contract-first approach, which has more to do with collaboration than interoperability. The latter is a result of the former. Let me explain.
Interoperability is the net result of a well-designed contract. By "well-designed" I mean a contract that experiences fewer interoperability issues when used across a variety of toolkits. Simply using contract-first does not guarantee a good contract. However, increased collaboration during contract does. This means getting all parties (everyone who will have to deal with the contract) involved early, during design, so you can identify what will and won't work in each implementation environment. This allows you to bring local expertise to the table early in the process before the implementation investment begins. This process influences the subset of XSD constructs that can be safely used given the identified limitations.
The first thing that I'll point out is that I'm not a 'vendor'. Now that I work at MSN, I am as much a customer of the XML Web Services stuff coming out of the Indigo folks as anybody else. My approach to XML Web Service design comes from the perspective of having to figure out what strategy we should use when deploying services that will be used by millions of customers either directly or indirectly.
With that out of the way, I can focus on the fundamental error in the generalization presented by Aaron Skonnard. He writes "This means getting all parties (everyone who will have to deal with the contract) involved early, during design". Unfortunately there is simply no chance that
providers of XML Web Services on the Web whether they are big companies like Microsoft, Google and Amazon or small startups like del.icio.us, Bloglines or Flickr can poll all the potential users of their XML web services to figure out what XSD constructs their toolkits can handle and then design a schema that uses the intersection of these features.
The approach Aaron encourages may work if you are in a small company and are designing services that will be used by a few parties but doesn't really work if you are providing services on the Web or even at a large company where it is hard to get everyone who will be using the service in the same country let alone the same meeting room. The latter scenario is what likely happened in the original mail to XML-DEV which sparked my blog post on Friday.
I should clarify that when I say 'code-first' development that this doesn't mean that there shouldn't be guidelines as to what types are exposed as XML Web Services. At work we've settled on using a small set of types within XML Web Services; System.Int32 and other numeric types, System.Double, System.String, System.DateTime, System.Boolean, various instances of System.Enum and arrays of System.Byte for base 64 encoded binary data. The only collection types we pass around are arrays. This maps to a very small subset of XSD and is reminiscent of the set of types supported in XML-RPC.
With these guidelines our developers can build XML Web Service applications in a 'code first' manner yet have a high degree of confidence that the services we build will be interoperable across various toolkits. One doesn't have to be an expert (or even deeply knowledgeable) about complex technologies like XSD and WSDL to build XML Web Service applications in this manner. And quite frankly, I think it is a waste of our developer's time to make them experts at these technologies when it tangential to the bulk of the work their code has to do.


Categories: XML Web Services

I mentioned in a recent post that I was considering writing an article entitled Using Javascript, XMLHttpRequest and RSS to create an MSN Spaces photo album browser. It actually took less work than I thought to build a webpage that allows you to browse the photo albums in a particular person's Space or from a randomly chosen Space. 

I haven't used Javascript in about 5 years but it didn't take much to put the page together thanks mostly to the wealth of information available on the Web.

You can find the page at http://www.25hoursaday.com/spaces/photobrowser.html 

The page requires Javascript and currently only works in Internet Explorer but I'm sure that some intrepid soul could make it work in Firefox in a couple of minutes. If you can, please send me whatever changes are necessary.  


Categories: MSN | XML

The current issue of Seattle's favorite free weekly newspaper has an article entitled Microsoft Caves on Gay Rights which describes recent happenings in local politics about how Microsoft apparent withdrawal of support for a state bill that would prevent discrimination against gays and lesbians may have been key in preventing the law from passing.

I've tried to write down my feelings about the issue several times over the past few days but words have escaped me. In the meantime you should read some posts from others at Microsoft who've done a better job a capturing their disappointment with our employer than I seem able.

  1. Robert Scoble: Steve Ballmer's memo posted, my reply
  2. Cyrus Najmabadi: Gay Rights (part 2)
  3. Adam Barr: Microsoft and the Anti-Discrimination Bill

I also strongly disagree with Vic Gundotra's post in his response Responding to Scoble. Corporations should not be amoral entities that only exist to generate money. They employee members of a community, they exist as part of community and their actions affect both local and global communities. Sometimes the greatest sins are acts of omission instead of commission.

I hope this feeling of disappointment will soon pass.


Categories: Life in the B0rg Cube

Every once in a while I see articles like Aaron Skonnard's Contract-First Service Development which make me shake my head in sorrow. His intentions are good but quite often advising people to design their XML Web services starting from an XSD/WSDL file instead of a more restricted model leads to more problems than what some have labelled the "code-first" approach.

For example, take this recent post to the XML-DEV mailing list entitled incompatible uses of XML Schema

I just got a call from a bespoke client (the XML guru in a large bank)
asking whether I knew of any XML Schema refactoring tools.

His problem is that one of their systems (from a big company)
does not handle recursive elements.  Another one of their
systems (from another big company) does not handle substitution
groups (or, at least, dynamic use of xsi:type.) Another of their
systems (from a third big company) does not handle wildcards.
(Some departments also used another tool that generated ambiguous

This is causing them a major headache: they are having to
refactor 7,000 element schemas by hand to munge them into
forms suited for each system.

Their schema-centricism has basically stuffed up the ready
interoperability they thought they were buying into with XML,
on a practical level. This is obviously a trap: moving to a
services-oriented architecture means that the providers can
say "we provide XML with a schema" and the pointy-headed bosses
can say "you service-user: this tool accepts XML with a schema
so you must use that!" and the service-user has little recourse.

This is one of the problems of contract first development that many of the consultants, vendors and pundits who are extolling its virtues fail to mention. A core fact of building XML Web services that use WSDL/XSD as the contract is that most people will use object<->XML mapping technologies to either create or consume the web services. However there are fundamental impedance mismatches between the W3C XML Schema Definition (XSD) Language and objects in a traditional object oriented programming language that ensure that these mappings will be problematic. I have written about these impedance mismatches several times over the past few years including posts such as The Impedence Mismatch between W3C XML Schema and the CLR.

Every XML Web Service toolkit that consumes WSDL/XSD and generates objects has different parts of the XSD spec that they either fail to handle or handle inadequately. Many of the folks encouraging contract first development are refusing to acknowledge that if developers  build schemas by hand for use in XML Web Services, it is likely they will end up using capabilities of XSD that are not supported by one or more of their consuming applications. The post from XML-DEV is just one example of this happening. When I was the program manager for XML Schema technologies in the .NET Framework I regularly had to help customers who had to deal with the interoperability problems they encountered because they'd read some article extolling the virtues of schema first design which failed to acknowledge the realities of the XML Web Service landscape.

From my experience "contract first" design is actually more likely to lead to interoperability problems than "code first" design. The only time this isn't the case is when the schema designer actually pays attention to use a minimal subset of XSD as opposed to using its full capabilities. This is one of the reasons I have tried to provide some guidance on what XSD features to avoid in my XML Schema Design guidelines series on XML.com.

However it is far easier to avoid these missteps if one starts from objects instead of XSD/WSDL since the expressiveness of objects is less than that of XSD which automatically means the web service contracts are less complicated. I remember getting this insight from Don Box and Doug Purdy a couple of months ago and rejecting it at the time since it seemed anti-XML but now I realize that it is actually the most practical thing to do.


Categories: XML | XML Web Services

Walt Mossberg of the Wall Street Journal recently tried out MSN Spaces and has a review in today's issue. His review Microsoft Service Lets You Create A Nice Blog, But Limits Tweaking contains the following excerpts

If you think that only techies can launch a blog, or Web log, to share their views with friends, family or the whole Internet -- think again. Numerous online services make it dead simple for anyone to create a blog, at no cost, with no technical knowledge whatsoever.
Google got a big jump when it bought a service called Blogger (blogger.com). Today, the company hosts an estimated eight million blogs. Yahoo is developing an elaborate service called Yahoo 360 (360.yahoo.com), which offers blogging and other features designed to connect people. It's currently in a test phase, open only by invitation.

Microsoft has just launched its own blogging service, called MSN Spaces (spaces.msn.com). Because it's the newest of the giants' offerings to complete its test phase, I decided to try it out. Microsoft says it already has more than seven million blogs in Spaces, and is adding new ones at a rate of over 100,000 a day.

My verdict: MSN Spaces is very well done. It makes it easy to create a simple, attractive blog with text, links and photos, and to customize the blog in interesting ways

The review was quite favorable which is great news for us because it means we've done a good job at hitting our target demographic. This is awesome given that this is just the first version. 

A number of the criticisms in the article related to limited customizability are things we are aware about and plan to address in future releases. Y'all should nag Karen with your ideas. :)

As for the number of spaces created so far, that isn't a typo. We've added over 2.5 million spaces since it came out of beta two weeks ago. 100,000 new spaces a day is actually a conservative number, we were seeing multiples of that number shortly after launch but I assume our current adoption rate will hover at that number for now.


Categories: MSN

I recently stumbled on a post entitled The end of the quest for the perfect RSS reader which made my day. The author wrote

RSS readers have lately been appearing all over the place, however, until recently I wasn’t able to find the perfect one. My needs are not huge. I want a reader which can synchronize feeds and read posts between several PCs, have a useful and selectable notification mechanism so I don’t miss important news, but still don’t get bothered with less important ones, display feeds in a tree without favicons, be robust and fairly fast, provide descent search functionality and saved searches, flag news items for easy follow up and review.

I have tried most of the existing Windows and web based aggregators, and each one had some of these missing. I recently checked the new version of RSS Bandit and my quest for the perfect RSS reader seems to have come to an end. RSS Bandit features all I need and provides even more nice goodies like integrated Feedster and Google searches.

If you are not completely satisfied with your reader, give RSS Bandit a spin. You won’t regret it.

It's really good to see people getting so much use of my favorite RSS reader. Of course, there is still a lot of interesting stuff we'd like to add to make it even better. Check out the roadmap for the Nightcrawler release to see where we plan to go in the next release.

If you currently aren't an RSS Bandit user but would like to try it out, download the latest version from here.


Exhibit A: From The Submarine by Paul Graham

PR people fear bloggers for the same reason readers like them. And that means there may be a struggle ahead. As this new kind of writing draws readers away from traditional media, we should be prepared for whatever PR mutates into to compensate. When I think how hard PR firms work to score press hits in the traditional media, I can't imagine they'll work any less hard to feed stories to bloggers, if they can figure out how.

Exhibit B: From My Dinner With Microsoft's Jim Allchin in Thomas Hawk's weblog

Last night I had a unique opportunity to sit down with Jim Allchin, Microsoft’s Group Vice President for Platforms, for dinner along with a group of other bloggers and technologists and discuss the future development of Longhorn as well as see an early demo of the Longhorn technology firsthand.

Exhibit C: From A comment on Slashdot by Thomas Hawk about the dinner

I do feel that there is room in the world of journalism for hard news, op/ed and yes, openly biased writing where the blogger places him or her self as a participant in the news itself.

Was I thrilled to be having dinner with Allchin? Of course. I'm a huge Microsoft enthusiast. I have been an advocate of the digital home for many years and I think that Microsoft may represent our best chance possible of making the digital home of the future a reality.

Was I really enthused about Longhorn? Absolutely. From what I saw it was really was amazing. I spend hundreds of hours every year organizing digital media in front of all five of my Windows PCs. The technology that I saw will save me hundreds of hours of work going forward. This is really exciting to me at a personal level.


It looks like I didn't get an Extreme XML column out last month. Work's been hectic but I think I should be able to start on a column by the end of the week and get it done before the end of the month. I have a couple of ideas I'd like to write about but as usual I'm curious as to what folks would be interested in reading about. Below are three article ideas in order of preference. 

  1. Using Javascript, XMLHttpRequest and RSS to create an MSN Spaces photo album browser: The RSS feed for a space on MSN Spaces contains information about the most recent updates to a user's blog, photo album and lists. RSS items containing lists are indicated by using the msn:type element with the value "photoalbum". It is possible to build a photo album browser for various spaces by using a combination of Javascript for dynamic display and XMLHttpRequest for consuming the RSS feed. Of course, my code sample will be nowhere near as cool as the Flickr related tag browser.

  2. Fun with operator overloading and XML: This would be a follow up piece to my Overview of Cω article. This article explores how one could simulate adding XML specific language extensions by overloading various operators on the System.Xml.XmlNode class.

  3. Processing XML in the Real World: 10 Things To Worry About When Processing RSS feeds on the Web: This will be an attempt to distill the various things I've learned over the 2 years I've been working on RSS Bandit. It will cover things like how to properly use the System.Xml.XmlReader class for processing RSS feeds in a streaming fashion, bandwidth saving tips from GZip encoding to sending If-Modified-Since/If-None-Match headers in the request, dealing with proxy servers and authentication.

Which ones would you like to see and/or what is your order of preference?


Categories: XML

Lenn Pryor who until quite recently was the Director of Platform Evangelism at Microsoft has left the company for greener pastures. If you don't know of Lenn you should read the notes on Lenn Pryor from Robert Scoble's book blog. Lenn was the guy who came up with Channel 9 and was instrumental in Microsoft hiring Robert Scoble. Particularly interesting is the following description from Robert Scoble's book blog about Lenn's day job

Much of Pryor's job is to serve as a bridge between Scoble and other company elements, such as PR where he has worked to help each to see the other's value and respect each other's turf.

So one might wonder why a guy who was probably been most responsible for the increased corporate transparency at Microsoft would want to leave the company. The answer is in his blog post Goodbye Microsoft, Hello Skype where he writes

I have a lot to say about both companies right now. Microsoft lost me for many reasons, Skype gained me for many reasons. I will let you draw your own conclusions rather than disparage my Microsoft colleagues or over hype my new colleagues and company. I don't believe in writing diatribes and manifestos when moving on from a job so I will spare you the soapboxing. Microsoft has its challenges, we all know what they are, they are more than apparent these days. Skype has its opportunties we all know what they are, who wouldn't like to see the communication and collaboration technologies in their lives get much much smarter and cheaper?

I decided to swap problem sets from one that I am not passionate about any more to one that I AM deeply passionate about. I just couldn't go on being an evangelist for a gospel that I don't believe I can sing. I am returning to focus on what I enjoy most, building amazing things that make people happy, change lives, and make money. In this case Skype was a better place for me to do this and one that shares my core values and beliefs in how the future of both software and business will unfold.

I know lots of people at Microsoft who have voiced the same sentiments that Lenn has. Some like the Mini-Microsoft blogger are anonymous voices in the wilderness begging for change, some like Mark Lucovsky [and Lenn Pryor] leave for other companies that they feel can still make a difference while others have tried to find somewhere at Microsoft that isn't overwhelmed by the current malaise that has smothered main campus. I'd count myself in the latter camp.

At least once a week I want to post a blog entry about how much my job rocks. Unfortunately I haven't found a way to do this that doesn't paint a negative picture of other parts of the company. Our VPs get it and are very open to communication, the product teams have a vision of what they want to build and they want to build it as quickly as possible, and we literally have millions of happy users who are excited about our products. In the places where we are lagging, we have lots of efforts under way to reverse the trend.

I didn't get that feeling when I worked on main campus nor do I see it the few times a month I have to go down there to meet with various folks. However unlike the Mini-Microsoft blogger I don't think Microsoft is Better Off Without Ballmer but I do think something should be done about the company's current funk and it definitely should involve some executive heads rolling.

I hope it doesn't take the stock hitting $10 before some action is taken.


Categories: Life in the B0rg Cube

My mom is a journalist so I tend to take the responsibilities of the media very seriously. Unfortunately, I live in the United States where it seems the American media does not. An excellent description of the malaise that has spread across the American media landscape can be found in Laurie Garrett's memo to Newsday colleagues upon her resignation. She wrote

The deterioration we experienced at Newsday was hardly unique. All across America news organizations have been devoured by massive corporations, and allegiance to stockholders, the drive for higher share prices, and push for larger dividend returns trumps everything that the grunts in the newsrooms consider their missions. Long gone are the days of fast-talking, whiskey-swilling Murray Kempton peers eloquently filling columns with daily dish on government scandals, mobsters and police corruption. The sort of in-your-face challenge that the Fourth Estate once posed for politicians has been replaced by mud-slinging, lies and, where it ought not be, timidity. When I started out in journalism the newsrooms were still full of old guys with blue collar backgrounds who got genuinely indignant when the Governor lied or somebody turned off the heat on a poor person's apartment in mid-January. They cussed and yelled their ways through the day, took an occasional sly snort from a bottle in the bottom drawer of their desk and bit into news stories like packs of wild dogs, never letting go until they'd found and told the truth. If they hadn't been reporters most of those guys would have been cops or firefighters. It was just that way.

Now the blue collar has been fully replaced by white ones in America's newsrooms, everybody has college degrees. The "His Girl Friday" romance of the newshound is gone. All too many journalists seem to mistake scandal mongering for tenacious investigation, and far too many aspire to make themselves the story. When I think back to the old fellows who were retiring when I first arrived at Newsday — guys (almost all of them were guys) who had cop brothers and fathers working union jobs — I suspect most of them would be disgusted by what passes today for journalism. Theirs was not a perfect world — too white, too male, seen through a haze of cigarette smoke and Scotch — but it was an honest one rooted in mid-20th Century American working class values.

Honesty and tenacity (and for that matter, the working class) seem to have taken backseats to the sort of "snappy news", sensationalism, scandal-for-the-sake of scandal crap that sells. This is not a uniquely Tribune or even newspaper industry problem: this is true from the Atlanta mixing rooms of CNN to Sulzberger's offices in Times Square. Profits: that's what it's all about now. But you just can't realize annual profit returns of more than 30 percent by methodically laying out the truth in a dignified, accessible manner. And it's damned tough to find that truth every day with a mere skeleton crew of reporters and editors.

This is terrible for democracy. I have been in 47 states of the USA since 9/11, and I can attest to the horrible impact the deterioration of journalism has had on the national psyche. I have found America a place of great and confused fearfulness, in which cynically placed bits of misinformation (e.g. Cheney's, "If John Kerry had been President during the Cold War we would have had thermonuclear war.") fall on ears that absorb all, without filtration or fact-checking. Leading journalists have tried to defend their mission, pointing to the paucity of accurate, edited coverage found in blogs, internet sites, Fox-TV and talk radio. They argue that good old-fashioned newspaper editing is the key to providing America with credible information, forming the basis for wise voting and enlightened governance. But their claims have been undermined by Jayson Blair's blatant fabrications, Judy Miller's bogus weapons of mass destruction coverage, the media's inaccurate and inappropriate convictions of Wen Ho Lee, Richard Jewell and Steven Hatfill, CBS' failure to smell a con job regarding Bush's Texas Air Guard career and, sadly, so on.

What does it mean when even journalists consider comedian John [sic] -- "This is a fake news show, People!" -- Stewart one of the most reliable sources of "news"?

I'm surprised I haven't seen this letter floating around the blogosphere. Then again I don't read political blogs so for all I know this is last month's news. I suggest reading the entire letter, it is quite sobbering.


Evan Williams recently met with Jim Allchin and wrote about in his blog post Dinner with Jim Allchin. Evan writes

One of Jim's repeated statements was that he wanted to bring "this stuff" to the masses. I asked for clarification because, in a lot of Microsoft's talk, they speak of RSS and blogging as the same thing. He agreed they weren't the same thing, and it seemed to be RSS he was talking about implementing in a variety of ways throughout Windows (e.g., built-in readers, automatic feed generation from a variety of lists...). While Microsoft does have a blogging tool, that's MSN—not Jim's department.

We discussed, briefly, how cool it would be if Windows had, say, the Atom API built in—and then that, it already would had the Atom API been built on WebDAV. Hmmm...I've heard that before.

It seemed pretty clear to me that it is not in Allchin's edict to create web services that bridge the gap between the desktop and the web—which, to me, seems like the future of computing (not to mention, the real potential power play against Google, et al). His job is to create another Windows. They will make more plumbing for others to plug in such services—and I assume it will be within MSN's edicts to do so. But they didn't do much (nor has anyone else) to take advantage even of the stuff that's in XP (such as Save to Web via WebDAV), to Allchin's dismay, it seemed.

I have seen a lot of interest across Microsoft for bringing RSS to the masses and all of us working on MSN Spaces definitely do want to bring blogging to everyone. There are definitely  cool things coming up in the next year or two.

As to whether MSN takes advantage of the various WebDAV related features of Windows XP? I suggest taking a look at the article on Publishing Web Site Content with Windows XP specifically at the section entitled Publishing to Remote Locations Using WebDAV. Not only do we support the WebDAV functionality in Windows XP in our properties such as MSN Groups but since there are so many Windows XP users out there, we don't dare change it without risking causing a negative user experience for a lot of people.

Guess who has to deal with the WebDAV legacy as part of his day job? :)


Categories: Life in the B0rg Cube | MSN

April 15, 2005
@ 07:39 PM

I've been bemused by a number of posts attacking Volvo by Henry Copeland who runs BlogAds.com. In his recent posts, such as Volvo buys safety, gets dreck and Volvo Whiplash, Henry Copeland attacks Volvo for sponsoring MSN Spaces where most blogs have a small readership as opposed to paying him to put ads on the weblogs of "A-List" bloggers such as Dave Winer and Andrew Sullivan which have a larger number of readers than the average MSN Spaces blog.

I could write an entire essay refuting this type of thinking but Chris Anderson has already done so in his article The Long Tail. It is a very insightful look at how to view audiences for  content and the fallacy of chasing after the big hits or popular content to garner success in the market place.


Categories: MSN

I've recently ben thinking about the problems facing search and navigation systems that depend on metadata applied to content provided by the creator of the content. This includes systems like Technorati Tags which searches the <category> elements in various RSS feeds and folksonomies like del.icio.us which searches tags applied to links submitted by users.

A few months ago I wrote a post entitled Technorati Tags: Why Do Bad Ideas Keep Resurfacing? which pointed out that Technorati Tags had the same problems that had plagued previous metadata self-annotation schemes on the Web such as HTML META tags. The main problem being that People Lie. Since then I've seen a number of complaints from developers of search engines that depend on RSS metadata.

In a comment to a post entitled Blogspot Spam in Matthew Mullenweg's weblog, Bob Wyman of PubSub.com writes

A very high percentage of the spam blogs that we process at PubSub.com also come from blogspot. We’ve got more serious “problems” in Japan and China, however, for the English language, blogspot is pretty much “spamspot.” It is, as always, disappointing to see people abuse a good and free service like that offered by Google/Blogspot in such a way.

In a post entitled Turning Blogspot Off Scott Johnson of Feedster wrote

All Blogspot blogs right now are included in every Feedster search by default. And now, due to the massive problems with spam on Blogspot, we're actually at the point of saying "Why don't we make searching Blogspot optional for all Feedster users". What's going on is that spammers have learned how to massively exploit Blogspot -- to the point where at times 90% of the blog traffic we get from Blogspot is spam.

Now that's bad. Actually this spam issue just plain sucks. And its starting to ruin the user experience that people have with Feedster.

The main reason these spam blogs haven't started affecting the Technorati Tags feature is that Blogspot doesn't support categories. However it is clear that the same problems search engines faced when they decided to trust HTML metadata are beginning to show up when it comes to searching RSS metadata. This is one place where established search engines would have a leg up on upstarts like Feedster and PubSub if they got into the RSS search market since they've already had to adapt to all sorts of 'search engine optimization' tricks.

On a related note, combining the above information about the high number of spam blogs on Google's Blogspot service with the recent article Bloggers Pitch Fits Over Glitches which among other things states

In fact, enter "Blogger sucks" in Google and you get 720,000 results, with most of the entries on the first few pages (read: the most popular) dedicated to these exasperating tech snafus. It can make for some pretty ugly reading. Imagine what they might say if they actually paid for the service?

But if you look at Blogger's status page, which lists service outages, you can see why they are so mad.

It seems that Doc Searles may have been onto something about Google quiting innovating in Blogger.  


My friend Derek, who's the dev lead for MSXML (the XML toolkit used by practically every Microsoft application from Office to Internet Explorer), has a blog post entitled XML use in the browser where he writes

C|Net has an article on what people have started calling AJAX. 'A'synchronous JavaScript and Xml. I have seen people using MSXML to build these kinds of web-apps for years, but only recently have people really pulled it all together enough, such as GMail or Outlook Web-Access (OWA). In fact, MSXML's much copied XMLHTTP (a.k.a. IXMLHttpRequest) (Copied by Apple and Mozilla/Firefox) was actually created basically to support the first implementation of OWA.

I've been thinking about what our customers want in future versions of MSXML. What kind of new functionality would enable easier/faster developement of new AJAX style web applications? XForms has some interesting ideas... I've been thinking about what we might add to MSXML to make it easier to develop rich DHtml applications. XForms is an interesting source of ideas, but I worry that it removes too much control. I don't think you could build GMail on XForms, for example.

The most obvious idea, would be to add some rich data-binding. Msxml already has some _very_ limited XML data-binding support. I have not looked much into how OWA or GMail work, but I bet that a significant part of the client-side jscript is code to regenerate the UI from the XML data behind the current page. Anyone who has used ASP/PHP/etc is used to the idea of some sort of loop to generate HTML from some data. What if the browser knew how to do that for you? And knew how to push back changes from editable controls? You can do that today with ADO.

Any other ideas? For those of you playing with 'AJAX' style design. What are the pain points? (Beside browser compatibility... )

If you are building applications that use XML in the browser and would like to influence the XML framework that will be used by future versions of Microsoft applications from Microsoft Office to Internet Explorer then you should go over to Derek's blog and let him know what you think.


Categories: XML

A recent favorable review of RSS Bandit on About.com pointed out a missing feature that I've seen more and more of our users asking for. The bottom line of the review reads

RSS Bandit is a nice and very capable feed reader that lets you browse news in an organized fashion. Its flexibility, virtual folders and synchronization abilities are great, but it would be even greater if it integrated with Bloglines and NewsGator Online, too.

Although we have various options for using RSS Bandit from multiple computers, many users find them inaccessible because they don't have access to an FTP server or a WebDAV server. Also in certain cases, one may not want to install RSS Bandit on a machine that was being used temporarily but instead use a Web application which could then be synchronized with RSS Bandit later on.

The main reason I didn't include syncing to Bloglines in the Wolverine release is that the Bloglines sync API is not very rich. RSS Bandit users can flag posts, delete them, mark read posts as unread and so on. None of this functionality is supported by the Bloglines sync API. Similarly users cannot add or delete feeds using the Bloglines sync API. This means that there really isn't any way I could fully synchronize the state of an RSS Bandit instance with a person's Bloglines subscriptions. It seems the API was designed with the assumption that the user would be using Bloglines as their primary RSS reader not the other way around.

The way FeedDemon got around this problem was to create a separate channel group for Bloglines subscriptions which has limited functionality compared to other channel groups but is synchronized with the user's Bloglines subscriptions. This looks like the only reasonable approach as opposed to waiting indefinitely for the Bloglines sync API to develop more functionality.

The above argument also applies to syncing with the Newsgator Online service.

In the Nightcrawler release I'll ensure that we provide syncing to both Bloglines and Newsgator Online. However this will be via synchronized channel groups which won't be compatible with the existing synchronization mechanisms that use FTP and WebDAV today.


Categories: RSS Bandit

April 12, 2005
@ 05:21 PM

This morning I found an interesting article about the growth of blogging entitled The Blogging Geyser: Blogs Blast from 31.6 Million Today to Reach 53.4 Million by Year End. Below is an excerpt about various blogging services which I found interesting  

Perseus prepared a segmentation of the key blog hosts by analyzing the sites on two dimensions - momentum (new user accounts averaged over the life of the service) and longevity (length of time operational) - establishing four key segments: Leaders, Challengers, Upstarts and Niche Players.

The leaders (high momentum, long-time players) were BlogSpot, LiveJournal and Xanga, all launched in 1999. At the end of the first quarter of 2005, each had between 6.6 and 8.2 million accounts. The primary challenger (high momentum, new player) is MSN Spaces , which launched in North America in December 2004 and was closing in on 4.5 million accounts at the end of the first quarter .

Upstarts (moderate momentum, new players) included Six Apart's TypePad and Greatest Journal among others. Niche players demonstrated longevity but little momentum.

Blogging Is A Feature, Too

One of the newer aspects of blogging is that it's now an added feature being incorporated into other web applications. Social networking sites like the reinvented MySpace.com and teen sites like Bolt.com now offer blogging as a standard feature of their online accounts. Blogging appears to be used by just 4.7 percent of Bolt's 4.5 million accounts and by a somewhat greater percentage of MySpace.com's 12 million accounts. While neither service has been included in this study, they are testaments to the continued expansion and growth of web logs.

A lot of us working on MSN Spaces have been pretty humbled and impressed by how quickly the service has grown. During the beta period the service was acquiring users at the rate of about a million signups a month. When the site had about 4.5 million users we were seeing about 160,000 to a 180,000 updates a day which is about 4% of blogs being updated a day. These numbers compare quite favorably with LiveJournal's statistics which currently show they have 6.7 million blogs with 350,000 to 370,000 updates a day which is about 5% of blogs being updated a day. Given that LiveJournal is one of the most active and tight-knit blogging communities on the Web, it seems that MSN Spaces is definitely doing some things right.

Given that the service is now out of beta along with MSN Messenger coming out of beta I expect that its growth rate will increase over the next few months. It is pretty exciting to realize that the stuff I'm currently working on as part of my day job will directly affect millions of people. 


PS: A minor clarification to the article. Spaces actually launched in 14 languages and 26 markets worldwide last year, not just North America. 


Categories: MSN

April 12, 2005
@ 04:44 PM

This is primarily a bug fix release that fixes a couple of issues that weren't caught in beta testing for the previous release.

Download the installer from here. Differences between v1.3.0.26 and v1.3.0.29 below.


FEATURE: The 'Take over proxy settings from Internet Explorer' feature now supports proxy configuration scripts.

FEATURE: Traditional Chinese translation added.

FIXED: Application would crash on startup with the following error message; "ArgumentOutOfRangeException: Length cannot be less than zero"  

FIXED: Dates in the RFC 822 format not containing the seconds caused problems

FIXED: Search scope settings in search folders are lost after restart of the application

FIXED: A web search engine cannot be removed from the list of defined search engines

FIXED: Column layouts not synchronized during remote storage

FIXED: RSS 2.0 feeds with extension elements before the <rss> element could not be read

FIXED: HTTP Digest authentication was not supported for feeds

FIXED: Enable Alert Windows for New Items setting resets on remote feedlist download or on restart

FIXED: Feed Desktop Alerts now display the newest item(s) first

FIXED: Feeds with invalid value in the HTTP "Last-Modified" header could not be read.

FIXED: Application would crash with the following error message; "NullReferenceException caused in WinGuiMain.SaveUIConfiguration() at ThreadedListView.FeedColumnLayoutFromCurrentSettings()"


Categories: RSS Bandit

April 10, 2005
@ 04:47 PM

There are some words that when I read in prose, such as blog posts, immediately let me know the author is either a pretentious windbag or just plain clueless. The most recent addition to this list is Web 2.0. For an example of what I mean, read Technorati, Bloglines, and The Economics of Feeds.

I suspect a lot of the people yacking about Web 2.0 now are the same ones who were gushing about the New Economy a few short years ago.

Despite my dislike of the term, it is likely I'll be at the Web 2.0 Conference this fall.



Categories: Ramblings

Jonathan Pincus contacted me a few days ago about being part of a birds of a feather session on "20% Time" at the 15th Annual Conference on Computers, Freedom & Privacy. It will be held at the Westin in Seattle at 9PM on Thursday, April 14th.

It seems there'll be someone from Google there as well which should interesting. I'd like to hear how Google handled some of the issues raised in my post Some Thoughts and Questions About Google 20% Time.


Categories: Technology

I saw an link to an interesting site in Robert Scoble's post Paul remixes Google Maps and Craig's List in interesting new way  where he writes

What happens when you mix Google Maps with Craig's List? Paul Rademacher shows us.

This is a cautionary tale for Microsoft: them who has the best API's will get used in the most interesting new ways.

Like Ballmer says: developers, developers, developers, developers, developers...

Actually this has little to do with APIs given that there is neither an official Craig's List API nor is there a Google Maps API. This looks more like a combination of HTML screen scraping for getting the Craig's List data and good old fashioned reverse engineering. I suspect Paul didn't have to do much reverse engineering in the Google Maps case because Engadget already published an article called HOW-TO: Make your own annotated multimedia Google map which shows exactly how to build your own applications on top of Google Maps.

Despite that this is definitely a cool hack.

This shows one of the interesting side effects of building an AJAX site. You basically have to create an API for all the Javascript callbacks from the web browser back to the server. Once you do that, anyone else can call this API as well. I doubt that the Google folks anticipated that there would be this much interest in the API the browser uses the talk to the Google Maps server.

PS: Is anyone other reader of Scoble's blog irritated by the fact that he can't point to anything on the Web without throwing some Microsoft spin on it?


Categories: Technology

I just stumbled on a post by Phil Gyford entitled With great audiences where he discusses whether bloggers have a responsibility to do more fact checking once they grow to having a large audience. Phil writes

With this greater audience comes a greater responsibility. If 100,000 people are reading your words you need to be more certain about what you say than if it’s just for a bunch of mates. I can’t help feeling that Boing Boing has stepped past the hazy mark where it can get away with publishing off-the-cuff posts about events in the world without spending some of the time and money we assume those ads are generating on checking facts. Let’s look at a couple of examples that might have benefited from more research.

In January there was a post about a man who was arrested for attempting to hack a tsunami appeal website. For Boing Boing the juicy story wasn’t that the man was arrested (as reported by BBC News a week earlier) but that he was arrested for using an unusual browser, which the company managing the donations mistook for a hacking attempt. It’s a great story, but Boing Boing’s basis for this report comes from a source on an unnamed mailing list. Cory’s introduction to the mailing list quote reports the event as fact, not rumour, and this no doubt contributed to hundreds of other weblogs in turn reporting the event as fact.

Leaving aside the mindless gullibility of all these other webloggers, when readers start assuming what you post is fact this is probably a sign that you should be checking those facts a little more.

The second example is Boing Boing’s post about a high-school principal who “banned blogging” because it “isn’t educational”. Part of the blame lies with the source story at the Rutland Herald whose over-eager sub-editors misleadingly headlined the story “High school bans blogging”. In fact the school banned a single website and the principal simply issued a sensible warning about children weblogging — as with any activity online, kids should be careful with the information they make public.

But Boing Boing got carried away with the newspaper’s headline, repeating it in theirs even though a cursory read of the newspaper article reveals that no one “banned blogging”. The newspaper claims the principal doesn’t think blogging is educational, and Cory could certainly have criticised him for this alone, although it would make for a less dramatic post. The repetition of the lie about the principal banning blogging, rather than his apparent opinion, is possibly also what prompted a reader to suggest people should email the principal to complain.

A professional publication should have called the school to verify the story before simply republishing it. Otherwise the publication would, perhaps, end up criticised on Boing Boing like the Indian news agencies that blindly repeated a hoax in February.

I found Phil's post via Clay Shirky's post Banning blogging, 'Toothing, and Yoz. Clay Shirky seems to agree with Phil and goes one step further to admonish bloggers who simply echo what they read on the Web without applying critical thinking to what they are reading. He also points out that Boing Boing is not alone in this behavior by writing

My employer is a victim of the half truths and rumors Slashdot spreads on an almost weekly basis. There are lots of stories about Microsoft that are now part of the IT culture which are mainly rumors started on Slashdot. A few months ago the MSN Spaces team was the target of a flood of critical posts in the blogosphere after a misinterpretation of the terms of use for the service were posted to Boing Boing. This doesn't seem much different to me than supermarket tabloids that are always reporting rumors about  Brad & Jen, Nick & Jessica or J-Lo & P.Diddy. 

The most interesting response to Phil's post I've seen is Danah Boyd's post in defense of BoingBoing (or why i'm not a journalist) which argues that Cory and Xeni (Boing Boing editors) are simply blogging as a form of self expression and the fact that they have a large readership should not be considered a responsibility by them.

Maybe I'm just a corny comic book geek but I've always felt "With great power, comes great responsibility". To each his own, I guess.


Categories: Ramblings

April 7, 2005
@ 02:50 PM

The final version of MSN Messenger 7.0 is out.

You can catch the offical word from the press release Global Availability of MSN Messenger and MSN Spaces Connects People Around the World. Highlights below

 MSN Messenger Makes Instant Messaging More Dynamic Than Ever

Globally, more than 155 million customers rely on the MSN Messenger service each month to connect with their friends and family and, collectively, exchange more than 2.5 billion instant messages (IMs) every day. MSN Messenger 7.0 is available today worldwide in 26 languages and introduces improved video, voice and personalization features that allow people to communicate in more meaningful ways than ever. Available for download at http://messenger.msn.com, MSN Messenger 7.0 has added new features since its December 2004 public beta release, including these:

  • Free PC-to-PC video conversation. The new, free MSN Video Conversation service,1 powered by Logitech technology, connects people with one-click synchronized audio and video, and offers full-screen video viewing - the next best thing to really being there.
  • Ability to talk over the Internet for free. MSN Messenger 7.0 includes higher-quality audio functionality so customers can enjoy free,2 real-time PC-to-PC voice conversations with friends and family around the world.
  • PC-to-mobile communications. Customers will soon be able to stay in touch by sending IMs to friends and family who aren't on their PC. Customers in selected countries will be able to send SMS text messages from MSN Messenger to mobile phones - even if the person they are sending to doesn't have an MSN Messenger account - and the mobile user can reply to the MSN Messenger user.3 This feature will be available in multiple markets this spring.
  • Greater personalization. New personalization options, including Winks, Dynamic Display Pictures and theme packs, help customers show their personality and their mood. Customers can choose from a selection of free content or get premium content from companies such as AG Interactive, the media subsidiary of American Greetings Corp., Wisepost/YNK, 3H Group PTY Ltd., Saw-you.com and Techno Design Internet Programming for a small fee.
  • Instant MSN Search capability. MSN Messenger 7.0 offers a Shared Search button in the conversation window so people can find answers instantly through MSN Search while they continue their conversation.
  • Photo-sharing options. Customers can have more fun with their friends by sharing photos during a conversation and viewing a slide show together. People can save shared photos and add pictures of their own to the photo swap session.
  • Unique presence options. People can now display a personal message alongside their Messenger name and status. The customized message can include a greeting that expresses their mood or show the name of a song the person is listening to on Windows Media® Player or iTunes Player. With one click, customers can go to MSN Music to purchase the song or listen to a snippet.

As cool as this list of features is, it isn't exhaustive since it doesn't mention features that shipped in the beta from last year such as setting your online status on login, gleams or contact cards.

I definitely have been overusing features like showing the name of the song playing in iTunes, Dynamic Display Pictures and Winks. This release is off the hook. Grab it.  


Categories: MSN

April 7, 2005
@ 02:29 PM

As some of you may have noticed the MSN Spaces homepage changed last night. It is officially out of beta and there have been a few enhancements to the service made in the transition.

You can catch the offical word from the press release Global Availability of MSN Messenger and MSN Spaces Connects People Around the World. Highlights below

Over the past year MSN has seen consumers' appetite for richer, personalized online communications services surge globally, as evidenced by the rapid growth of MSN Messenger and MSN Spaces. Since the MSN Spaces beta version was introduced in late 2004, more than 4.5 million Spaces have been created, making MSN Spaces one of the fastest-growing blogging services in the world.


MSN Spaces Offers Consumers Easy Way to Connect and Share Photos, Music and More

With today's launch, MSN Spaces, a blogging service, will now be available in 15 languages and 30 markets worldwide. While MSN Messenger enables people to connect in real time, MSN Spaces augments their IM relationship by enabling people to connect on their own time, letting friends and family know they have something new to share via "gleam" notifications on their MSN Messenger contact list. MSN Spaces is a dynamic online scrapbook where consumers can easily post blogs, photo albums, personal music lists and more, essentially telling the story of their life. Customers have control over whom they share their Space with: limiting it to a few, sharing only with those on their MSN Messenger contact list, or opening it up to the worldwide Internet.

But enough of the official spiel. As always the good stuff is to be found in the blogs. One of the changes made is that about 50 new themes have been added, providing users with more choices when deciding to customize their Space. Karen has the low down in her post new themes!. I saw a bunch of complaints while Spaces was in beta about the available themes being "ugly". A number of the new themes are quite simple yet elegant which I'm sure will appeal to the aesthetic folks out there.

We've also made some storage improvements as Mike points out in his post More storage, better comments... and more! . Specifically we've tripled photo storage space from 10MB to 30MB and there's no longer a length limit on comments. Also URLs in comments are automatically changed to hyperlinks (with rel=nofollow applied).

My favorite changes are the RSS & pinging enhancements which I had some input into. As Mike writes

Clicking on the orange RSS button or the "Syndicate" link above will no longer spit out raw XML to your readers using a modern browser.  Instead, they will see a "pretty printed" RSS feed with a link to learn more, subscribe in My MSN, or subscribe in an aggregator supporting one-click subscription (feed://) 

To see an example of what this looks like in practice, check out the RSS feed for my Space. If you are wondering what RSS readers support one click subscription, the list includes ShrookRSS Bandit, NewsGator, NetNewsWire, FeedDemonAwasu, SharpReader, FeedReader, WinRSS, VoxLite, and NewzCrawler.

Another cool RSS enhancement is that the number of comments one each post is now provided using the slash:comments elements. Now users of aggregators like RSS Bandit can track the comment counts on various posts on a space. I've been wanting that since last year.

Last year, Spaces sent pings to Weblogs.com when new posts were created. With last night's release this list has expanded to include Feedster, Technorati, PubSub, and My MSN.



Categories: MSN

Yesterday I saw the post entitled Running RSS Bandit on linux? where the author wrote

I am seriously thinking about throwing windows out of the window and moving back to linux for my home desktop.
The programs I use the most, like Eclipse, Firefox or Thunderbird, all run perfect on linux.
But there is one thing that is keeping me from switching right now: I am pretty hooked up to RSS Bandit, the C# based rss aggregator. One very nice feature is for example the possiblity to remotely storing the read state of the feeds.
Now the problem is that this application needs the .NET framework to run. I know there is a linux alternative for the .NET framework called Mono, but I don't have any experience with that.
Maybe this is a silly question, but would it be possible to make RSS Bandit run on linux using Mono?

It's rather flattering to know that at least one person finds RSS Bandit useful enough that it's all that's standing in the way of switching operating systems.

With regards to whether it is possible to run my favorite RSS reader on Mono, I doubt that will be possible. We use COM & Win32 interop in a bunch of places including when communicating with the Internet Explorer component.



Categories: RSS Bandit

I've slowly been appreciating the wisdom in using REpresentational State Transfer (REST) as the architectural style for building services on the Web. My most recent influences have been Nelson Minar's ETech presentation entitled Building a New Web Service at Google and a discussion on the XML-DEV mailing list last week.

The REST architectural style was first formally defined in Chapter 5 of Roy Fielding's Ph.D dissertation. It's principles are succintly distilled in the Wikipedia entry for REST which currently states

REST's proponents (sometimes referred to as RESTafarians) argue that the web has enjoyed the scalability and growth that it has as a result of a few key design principles:

  • A fundamentally stateless client/server protocol: each HTTP request/response pair is complete in itself, and participants are not required to take additional steps to track states (though in practice, many HTTP servers use cookies and other devices to maintain a session state).
  • A limited number of well-defined protocol operations: HTTP allows very few verbs, the most important of which (for REST) are GET, POST, PUT, and DELETE. These correspond fairly closely with the basic CRUD functions required for data persistence.
  • A universal means of resource-identification and -resolution: in a RESTful system, every piece of information is uniquely addressable in a single namespace through the use of a URI .
  • The use of hypermedia both for application information and application state-transitions: the resources in a REST system are typically HTML or XML files that contain both information and links to other resources; as a result, it is often possible to navigate from one REST resource to many others, simply by following links, without requiring the use of registries or other additional infrastructure.

These principles can be further distilled to the simple phrase, "Just use HTTP". However the problem with this is that lots of people actually don't use HTTP correctly. This ranges from the fact that many HTTP-based systems don't support the DELETE and PUT to the fact that many services based on HTTP ignore the specification that HTTP GET requests should be idempotent and safe. About the latter issue, the HTTP specification states

9.1 Safe and Idempotent Methods
9.1.1 Safe Methods

Implementors should be aware that the software represents the user in their interactions over the Internet, and should be careful to allow the user to be aware of any actions they might take which may have an unexpected significance to themselves or others.

In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered "safe". This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.

9.1.2 Idempotent Methods

Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property. Also, the methods OPTIONS and TRACE SHOULD NOT have side effects, and so are inherently idempotent.

There are a number of reasons for HTTP GET requests to be both idempotent and safe. Being idempotent means that various caching systems between the user and the web server from the browser cache to caching proxies can cache the request without worry that the web server was supposed to service that request. And as Sam Ruby pointed out in his post AJAX Considered Harmful being safe means unsuspecting grandmothers and bots everywhere cannot be tricked into modifying online databases simply by following a link.

However a number of web services that have been held up as examples of RESTful APIs actually violate these principles. These include the Bloglines sync API, the Flickr API and the del.icio.us API.

  1. An example of where the Bloglines sync API uses HTTP GET requests in a way that is not idempotent or safe is the getitems method which has a parameter to "mark unread items as read".

  2. An example of where the Flickr API uses HTTP GET requests in a way that is not idempotent or safe is the flickr.photosets.delete method which deletes a photo set.

  3. An example of where the del.icio.us API uses HTTP GET requests in a way that is not idempotent or safe is the http://del.icio.us/api/posts/delete function which 
    deletes a post from delicious.

This isn't to say all popular web services held up as RESTful APIs actually aren't. The Atom publishing  protocol is an example of a RESTful API that actually honors the principles behind  HTTP. However there are a number of plain old XML (POX) web services which people have begun to conflate with RESTful services which led to some confusion on my part when I started trying to figure things out in this space.

A good place to start when deciding to design a RESTful system is Joe Gregorio's article How To Create a REST Protocol.


Categories: XML Web Services

In his post Waiting for Attention… or something like it Steve Gillmor describes our conversation at ETech and responds to some of the thoughts in my post Nightcrawler Thoughts: Thumbs Up, Thumbs Down and Attention.xml. My post ignored some of the collaborative aspects to the solution to the attention problem that Steve would like to see. Specifically

First I go to my reputational thought leaders, the subs and recurring items that bubble to the top of my attention list. It’s a second-degree-of-separation effect, where the feeds and items that a Jon Udell and a Doc Searls and a Dave Winer prioritize are gleaned for hits and duplicates, and returned as a weighted stream. In turn, each of those hits can be measured for that author’s patterns and added in to provide a descending algorithim of influence. All the while, what is not bubbling up is driven further down the stack, making more room for more valuable content.

It’s important to remember that this is an open pool of data, massaged, sliced, and diced by not just a Technorati but a PubSub or Feedster or Google or Yahoo or any other service, and my inforouter will gladly consume any return feed and weight it according to the success (or lack of it) that the service provides in improving my results. Proprietary services can play here as well, by providing their unique (and contractually personalized) streams as both a value proposition for advertisers and marketers and as an attractor for more users of their service.

The part of the attention problem I focused on in my previous post was "Based on my reading habits, tell me what new stuff I should read" but Steve Gillmor points out that the next level beyond that is "Based on the reading habits of the people whose opinion I trust, tell me what new stuff I should read". People already do this to a lesser extent by hand today. People who subscribe to Robert Scoble's link blog or various individual RSS feeds in del.icio.us are basically trusting a member of their social network to filter out the blogosphere for them.

Once one knows how to calculate the relative importance of various information sources to a reader, it does make sense that the next step would be to leverage this information collaboratively.

The only cloud I see on the horizon is that if anyone figures out how to do this right, it is unlikely that it will be made available as an open pool of data. The 'attention.xml' for each user would be demographic data that would be worth its weight in gold to advertisers. If Bloglines could figure out my likes and dislikes right down to what blog posts I'd want to read, I find it hard to imagine why the Bloglines team would make that information available to anyone including the user. For comparison, it's not like Amazon makes my 'attention.xml' for books and CDs available to myself or their competitors. 

By the way, why does every interesting wide spanning web service idea eventually end up sounding like Hailstorm?


One of the things I have found most interesting about watching MSN Spaces over the past few months is seeing various communities beginning to form and watching regular people use their space to communicate that their thoughts and experiences with others. As with all communities there are the negative elements, various trolls who go around criticizing people's posts or who go around impersonating others in various comments.

Another interesting trend I've seen in a couple of spaces is a some resentment from adults that there are so many teenagers using MSN Spaces. The most significant manifestation of this being the Space titled Are you looking for adults and their spaces? where one enterprising MSN Spaces user has begun cataloguing various spaces whose authors are 18 and over.

Among the spaces listed on that page are a couple of my favorites. A few of the hundreds of spaces I've found interesting since the beta launch are below

What I like most about these Spaces is that their content is [mostly] not what you find in the Technorati Top 100 list which is dominated by men talking about technology and politics or women talking about sex. The above spaces just have regular people sharing the interesting and the mundane in their lives which sometimes do involve technology, politics and sex.

Perhaps it's the rise of reality TV that's made me find such spaces so very interesting. Of course, if you want technical content you can always check out the spaces of John Kountz or Scott Issacs.


Categories: Mindless Link Propagation | MSN