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.

Enjoy.


 

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

March 31, 2005
@ 03:45 PM

Bloglines just published a new press release entitled Bloglines is First to Go Beyond the Blog with Unique-to-Me Info Updates which is excerpted below

Oakland, CA -- March 30, 2005 -- Ask Jeeves®, Inc. (Nasdaq: ASKJ), today announced that Bloglines™ (www.bloglines.com), the world’s most popular free online service for searching, subscribing, publishing and sharing news feeds, blogs and rich web content has released the first of a wave of new capabilities that help consumers monitor customized kinds of dynamic web information. With these new capabilities, Bloglines is the first web service to move beyond aggregating general-audience blogs and RSS news feeds to enable individuals to receive updates that are personal to their daily lives.

Starting today, people can track the shipping progress of package deliveries from some of the world’s largest parcel shipping companies—FedEx, UPS, and the United States Postal Servicewithin their Bloglines MyFeeds page. Package tracking in Bloglines encompasses international shipments, in English. Bloglines readers can look forward to collecting more kinds of unique-to-me information on Bloglines in the near future, such as neighborhood weather updates and stock portfolio tracking.

“Bloglines is a Universal Inbox that captures all kinds of dynamic information that helps busy individuals be more productive throughout the day—at the office, at school, or on the go,” said Mark Fletcher, vice president and general manager of Bloglines at Ask Jeeves. “With an index of more than 370 million blog and news feed articles in seven languages, we’re already one of the largest wells of dynamic web information. With unique-to-me news updates we’re aiming to be the most comprehensive and useful personalized information resource on the web.”

So it looks like Bloglines is evolving into MyYahoo! or MyMSN which already provide a way to get customized personal information from local news and weather reports to RSS feeds and email inboxes. 

I've been pitching the concept of the digital information hub to folks at work but I think the term 'universal inbox" is a more attractive term. As a user spends more and more time in front of an information consumption tool be it an email reader, RSS reader or online portal, the more data sources the user wants supported by the tool. Online portals are now supporting RSS. Web-based RSS readers are now supporting content that would traditionally show up in a personalized view at an online portal.

At MSN, specifically with http://www.start.com/2/, we are exploring what would happen if you completely blurred the lines between a web-based RSS reader and the traditional personalized dashboard provided by an online portal. It is inevitable that both mechanisms of consuming information online will eventually be merged in some way. I suspect the result will look more like what Steve Rider's team is building than MyYahoo! or Bloglines do today.

As I mentioned before we'd love feedback about all the stuff we are doing at start.com. Don't be shy send your feedback.


 

Categories: MSN | Syndication Technology

I recently read Joe Beda's post on Google 20% Time and it actually left me with a lot of questions as well as a better understanding of why there is a steady flow of ex-B0rg to Google's Kirkland office. I found some of his points interesting, specifically

Switching teams at Google is a very fluid process.  An engineer can be 40% on one project, 40% on something completely different and 20% on his or her own thing.  That mix can be adjusted as project requirements change.  Switching groups should also not have an affect on your annual review score because of arbitrary team politics.   Joining a new group is more about find a good mutual fit then going through HR and a formal interview loop.  When there is an important project that needs to be staffed the groups and execs will evangelize that need and someone who is interested is bound to step up.  If it is critical to the business and no one is stepping up (I don't know if this has occurred or not) then I imagine it would go come down to a personal appeal by the management team
...
There is a big difference between pet projects being permitted and being encouraged. At Google it is actively encouraged for engineers to do a 20% project. This isn't a matter of doing something in your spare time, but more of actively making time for it. Heck, I don't have a good 20% project yet and I need one. If I don't come up with something I'm sure it could negatively impact my review.

He also mentions the openness of the Google intranet which I find less interesting because I expect that as the company grows it will have to start dealing with the kind of leaks that Apple and Microsoft has. Given the company's history of tightly controlling its message (the extremely boring press release style posts on the Google blog, the firing of Mark Jen, etc) I expect that once leak sites in the style of Neowin and Microsoft-Watch spring up around Google's actions, there will be tighter control over access to internal content.

The first set of questions I have are around his comments on switching teams. At Microsoft it is common knowledge that switching teams in the middle of the annual review cycle is guaranteed to screw up your score. Due to stack ranking managers are obligated to give some people low scores and it is always easy to tell the new guy "Everyone's been here for a year you were only here for a few months so you didn't contribute as much". My first manager at Microsoft was actually pretty good about this which I'm thankful for. This is the main reason I left the XML team without waiting for the release [or even the second beta] of version 2.0 of the .NET Framework which I spent about two years working on. Once I had decided I was going to leave it made the most sense to do so at the beginning of the next review cycle independent of where we were in the ship cycle of the product. The first question swirling through my mind about Joe's post is how does Google allow people to fluidly move between teams yet not get screwed during annual reviews?

The other thing I find interesting are his comments on 20% projects. I was recently part of a leadership training class where we were supposed to come up with a presentation as a team and the topic we chose was launching a 20% project at Microsoft. One of the things we got hung up on was deciding what exactly constituted a valid 20% project. If the company mandates strongly encourages me to have a 'pet' project then what guidelines is the project expected to follow? If my pet project isn't software related, such as a woodworking project, can it be considered a valid use of my 20% time? What if my pet project benefits a competitor such as Mark Pilgrim's Butler which ads links to competing services to Google pages?

I personally haven't needed a formal 20% program while at Microsoft. I've written lots of articles and worked on RSS Bandit while still being able to deliver on my day job. Having flex time and reasonable autonomy from management is all I've needed.

My suspicion is that 20% pet projects are a cheap way for Google to do new product development and prototyping in a light weight manner as opposed to being a way to encourage people to spend time working on their hobbies. This is a 'code first' approach to launching new products. Developers actually write cool apps and then someone decides whether there is a market or business model for it or not. This is in contrast to the 'VP first' or 'talk first' approach of new product development at places like Microsoft where new projects need to be pitched to a wide array of middle and upper management folks to get the green light unless the person creating the project is in upper management. At the end of the day with either approach one has to pitch the product to some management person to actually ship it but at least with Google's "code first" approach there already is a working app not just a dollar and a dream.


 

Categories: Life in the B0rg Cube

MSN services such as MSN Spaces and MSN Messenger require one to create a Passport account to use them. Passport requires the use of an email address which is used as the login name of the user. However as time progresses people often have to change email addresses for one reason or the other. On such occassions I've seen a couple of requests internally asking for the ability to change the Passport account an MSN Spaces or MSN Messenger  account is associated with. 

Doing this is actually quite straightforward in the general case. All one has to do is go to the Passport.net website and click on the 'View or edit your profile' link which should have an option for changing the email address associated with the Passport. And that's it.

Thanks to a recent changes made by some of the devs on our team, the renaming process now works seamlessly in MSN Messenger. You don't have to import your existing contact list to the new account nor do your contacts have to add the new email address to their contact list. Instead the change to your email address propagates across the MSN network in about an hour or so.

The are some caveats. The first is that renaming a Passport to a Hotmail account isn't supported at the current time. Another is that you may be prevented from changing your display name from the new email address in MSN Messenger for some time. This means that your friends will see you in their contact list as yourname@example.com (if that is your email address).

The above information also applies if you've been asked to change your MSN Messenger email address because your employer is deploying Microsoft Live Communications Server 2005 with Public IM Connectivity (PIC).  


 

Categories: MSN

Recently I was chatting with Steve Rider on the Start.com team about the various gotchas awaiting them as they continue to improve the RSS aggregator at http://www.start.com/1/. I mentioned issues like feeds which don't use title's like Dave Winer's and HTML showing up in titles.

I thought I knew all the major RSS gotchas and RSS Bandit handled them pretty well. However I recently got two separate bug reports from users of WordPress about RSS Bandit's inability to handle extension elements in their feed. The first complaint was about Kevin Devin's RSS feed which couldn't be read at all. A similar complaint was made by Jason Bock who was helpful enough to debug the problem himself and provide an answer in his post RSS Bandit problem fixed where he wrote

I can't believe what it took to fix my feed such that Rss Bandit could process it.

I'm just dumbfounded.

Basically, this is the way it looked:

						<rss xmlns:blog="urn:blog">
   <blog:info directory="JB\Blog" />
   <channel>
      <!--  Channel stuff goes here... -->
   </channel>
</rss>

				

This is what I did to fix it:

						<rss xmlns:blog="urn:blog">
   <channel>
      <!--  Channel stuff goes here... -->
   </channel>
   <blog:info directory="JB\Blog" />
</rss>

				

After debugging the Rss Bandit code base, I found out what the problem was. Rss Bandit reads the file using an XmlReader. Basically, it goes through the elements sequentially, and since the next node after <rss> wasn't <channel>, it couldn't find any information in the feed, and that's what was causing the choke. Moving <blog:info> to the end of the document solved it.

The assumption I made when developing the RSS parser in RSS Bandit was that the top level rss element would have a channel element as its first child element. I handle extension elements if they appear as children of the channel or item element since these seem logical but never thought anyone would apply an extension to the rss element. I took a look at what the RSS 2.0 specification says about where extension elements can appear and it seems my assumption was wrong since it states

RSS originated in 1999, and has strived to be a simple, easy to understand format, with relatively modest goals. After it became a popular format, developers wanted to extend it using modules defined in namespaces, as specified by the W3C.

RSS 2.0 adds that capability, following a simple rule. A RSS feed may contain elements not described on this page, only if those elements are defined in a namespace.

Since there is no explicit restriction of where extension elements can appear it looks like I'll have to make changes to be able to expect extension elements anywhere in the feed.

My apologies to the folks who've had problems reading feeds because of this oversight on my part. I'll fix the issue today and refresh the installer later this week.