Over the past year or so, I’ve been part of the team working on building the next version of the social news feed on Windows Live. Yesterday, the next iteration of this feature was made broadly available on http://home.live.com and http://profile.live.com. As I look back at the work we’ve done there are a number of things I love about the philosophy behind what we’ve built and the actual features we’ve implemented.

The above screenshot shows the header for Messenger Social feed on the Windows Live home page and captures a number of it’s key concepts.

Highlights from your Favorite People

One of the key problems we want to address with this release is the conflicting feelings of information overload from getting a flood of minutiae on a daily basis from people you’d barely consider acquaintances and the feeling of not seeing enough stuff from the people you actually care about because they are being drowned out by other less important people. The way we’ve approached this problem is described on the Messenger Preview site and excerpted below

Because most people today use a variety of social networks and content sharing sites, with different sets of friends and acquaintances dispersed throughout these disparate networks, it can be challenging — and exhausting — to visit different websites and create different accounts just to keep abreast of your friends’ updates. But it isn’t just about bringing all that data together. What’s really valuable is helping you filter through the clutter and get to those updates you really care about — the ones from those people who you communicate with most frequently. There are a lot of intelligent algorithms and machine learning that can help in this, but we’ve found one of the best ways is to simply ask people. So, Windows Live Messenger will come right to the source — YOU — and ask you to specify your favorites:

The Highlights filter shows the most interesting recent content from your social network and strives to ensure you are kept up to date with updates from your favorites even if they aren’t posting a mile a minute like some of your more active social networking friends.

 

The screenshot above captures what this means in practice. Since Omar is one of my favorites, his updates show up ahead of updates from Mint.com even though his are several hours older than those from the Mint fan page. We learned from experience that although a number of people find the Highlights filter to be a valuable way to cut through the clutter and view the most interesting updates from their social network, there are also times when we have time to kill and don’t mind swimming in the full stream. For those times, we also have a Recent filter which provides the classic reverse chronological view of a stream of updates from your social network.

People-centric not Service-centric

The fundamental idea behind social software is that it enables people to connect with other people. When we first shipped the feed in Wave 3, it was a key part of our design philosophy that we would bring together updates from multiple services into a single experience that emphasized your friends not the services where the data was coming from. One consequence of this is that updates from multiple services are shown in a single stream as shown in the screenshot from the previous section. We don’t provide tabs for multiple services because at the end of the day, what’s important to me is seeing what my friends said today not what my Windows Live friends said versus what my Facebook friends said. Instead our filters enable users to decide how they want to see updates from all of their friends as opposed to making service-centric distinctions.

Another nice touch is that once I’ve connected a service such as Facebook to Windows Live (more on that below) when I see an update from a friend in my feed, not only do I have the options of communicating with him or viewing his data on Windows Live but also communicating with him via that service as well. 

and when I click “Send a message (Facebook)” above, it actually takes me to Facebook to send Omar a message via their messaging feature.

Bi-Directional Connections to Where your Friends are

In our previous release, we had a feature called Web Activities which enabled users to share the activities they performed on other sites such as Facebook, Flickr, MySpace and others with their friends on Windows Live. A consistent bit of feedback we got was that people wanted our integration with other sites to be much deeper. They wanted to be able see what their friends where doing regardless of what network they were on and interact with their content. They also wanted to be able to share content with their friends regardless of what network they were on as well. In short, our customers wanted interoperability, not just data portability. With our current release we have obliged in spades…

When you first interact with the Messenger Social experience we ask you to connect your favorite services to Windows Live so you can see what your friends are up to all over the Web and share what you’re doing on other sites with your friends on Windows Live. If you got the prompt above when visiting http://home.live.com and clicked through to Facebook, you’d see the following options to create bidirectional data flows between Facebook and Windows Live.

As I mentioned before, this isn’t about “portability” and asking your friends to leave Facebook for Windows Live. Instead it is about allowing both sites to interoperate in a way that enables Windows Live users to stay in touch with their friends without either set of users having to switch services. Of course, Facebook isn’t the only social networking service we interoperate with in this manner as you can tell from the following screen shot

 

With these connections made, I not only get to see what my friends are doing across MySpace and Facebook from within Windows Live but can also broadcast my thoughts to them from within Windows Live as well.

Shortly after our features were made available yesterday I created the following status update

which caused that update to be shared to both my Messenger friends and my Facebook friends (see the handy iconography in the bottom right). You can see the results from both sites below

On Facebook On Windows Live

There’s more good stuff in the release as stuff rolls out across Windows Live and I’ll be writing more about what we’ve built in the coming weeks. Thanks for reading.

Note Now Playing: Usher - OMG (featuring Will.I.Am) Note


 

Categories: Social Software | Windows Live

April 29, 2010
@ 01:45 PM

Earlier this morning, Ori Amiga posted Messenger across the Web on the Inside Windows Live blog. Key excerpts from his blog post include

Earlier today, John Richards and Angus Logan took the stage at The Next Web Conference in Amsterdam where they announced Messenger Connect – a new way for partners and developers to connect with Messenger. Messenger Connect allows web, Windows and mobile app developers to create compelling social experiences on their websites and apps by providing them with social promotion and distribution via Messenger.

Messenger Connect

Messenger Connect brings the individual APIs we’ve had for a long time (Windows Live ID, Contacts API, Messenger Web Toolkit, etc.) together in a single API that's based on industry standards and specifications (OAuth WRAP, ActivityStrea.ms, PortableContacts) and adds a number of new scenarios.

The new Messenger Connect provides our developer partners with three big things:

  • Instantly create a user profile and social graph: Messenger user profile and social graph information allows our shared customers to easily sign-in and access their friends list and profile information. This allows our partners to more rapidly personalize their experiences, provides a ready-made social graph for customers to interact with, and provides a channel to easily invite additional friends to join in.
  • Drive engagement directly through chat indirectly through social distribution: By enabling both real-time instant messaging conversations (chat) and feed-based sharing options for customers on their site, developers can drive additional engagement and usage of their experiences by connecting to the over 320 million Messenger customers worldwide.
  • Designing for easy integration in your technical environment: We are delivering an API service that will expose a RESTful interface, and we’ll wrap those in a range of libraries (including JavaScript, .NET, and others). Websites and apps will be able to choose the right integration type for their specific scenario. Some websites prefer to keep everything at the presentation tier, and use JavaScript libraries when the user is present. Others may prefer to do server-side integration, so they can call the RESTful endpoints from back-end processes. We're aiming to provide the same set of capabilities across the API service and the libraries that we offer.

I’m really proud of the work that’s gone into building Messenger Connect. Although I was in some of the early discussions around it, I ducked out early to focus on the platform behind the new social view in Messenger and didn’t have much insight into the day to day of building the product. However I’ve got to say I love the way the project has turned out. I suspect a lot of web developers will as well.

Kudos to Ori and the rest of the team.

Note Now Playing: Ludacris - My Chick Bad (featuring Nicki Minaj) Note


 

Categories: Platforms | Windows Live

Over on the Inside Windows Live blog there’s a new post titled Preview of the new Windows Live Messenger which talks about a key part of what I’ve been working on over the past year or so. Interesting tidbits from the blog post include

Today in a speech at the Universidade de São Paulo in Brazil, Steve Ballmer is sharing a preview of the new Windows Live Messenger. In this post we want to talk more about our philosophy and approach for this new version.
...

Staying in touch with close friends

Most people today visit at least one social network and dozens of content sharing sites, get email with photos and social notifications, and of course, maintain accounts in numerous places with different sets of friends and content. So we focused on connecting Messenger to the social networks you already use, and prioritizing the most important updates so you can quickly see what your favorite people are doing, wherever they’re doing it.

We know your close friends share using email, IM, and social networks. So we brought all of those together into a single view. The status from your Facebook friends who don’t use Messenger? Check. The photos your mom sent you as plain old e-mail attachments? Check. The Office docs you’re collaborating on with friends in SkyDrive? Check. And the stuff your favorite Messenger friends are doing on hundreds of sites they choose to share from? Check.

And since simple “aggregation” can make things worse instead of better, we focused on prioritizing the people that matter most to you, so you don’t miss the handful of important updates from your closest friends and family just because your college and work “friends” are broadcasting their whole life every minute of the day. Just tag your favorite people, and we optimize your feed for the stuff those people are doing. Of course, it’s not 100% exclusive to your favorites – the most interesting things from your other friends like photos, videos, and links (especially the ones being commented on a lot) are there too. This makes us a great companion to the services you already love like Facebook, Flickr, MySpace, LinkedIn and more – and when you have time to go beyond those most important updates, diving deeper into those sites is just a click away.

Lastly, we recognized that we could connect your social updates to the power of the Windows PC and really bring it to life. So we took advantage of the latest advances in hardware and graphics to give you a modern social experience. This means that Messenger brings beautiful high-resolution views of the photos, videos, and links that your friends are sharing, right to your desktop. View their Facebook albums, gorgeously presented so that they're fun to browse through and easy to comment on. Messenger is also the simplest way to update your status and instantly post it to other sharing sites you use. You can even bring your photo albums right into high-definition video chats with your friends.

Here’s a picture of the new social view for Messenger:

Picture of the new social view of the main Messenger window

This is a pretty exciting day for the team and I’ll be scouring the web looking to read what people think about what we’re building. If you want to learn more about the new version of Messenger, you can visit messengerpreview.com 

Later in the year, I’ll see what I can do about writing a post on the Inside Windows Live blog about the philosophy and technology that underlies this experience. Let me know in the comments what you would like to learn more about in such a post. 

Note Now Playing: DJ Khalid - All I Do Is Win (featuring Ludacris, Snoop Dogg, Rick Ross, and T-Pain) Note


 

Categories: Social Software | Windows Live

David Recordon of Facebook has an interesting post titled Why f8 was good for the open web where he talks about how some of Facebook’s announcements at their recent F8 conference increase the openness of the Web. He calls out the following four items as the key benefits to the web as a whole from the F8 announcements

  1. No 24-hour caching limit
  2. An API that is realtime and isn’t just about content
  3. The Open Graph protocol
  4. OAuth 2.0

Of these, the third seems to me to be the most beneficial to the Web as a whole. The first, second and fourth items are really about benefits to Facebook developers. Although I guess you could argue that such a significant service adopting OAuth 2.0 is great for increasing adoption across the Web. However this pales in comparison to the fundamental shifts in thinking introduced by the Open Graph Protocol.

Evolving the Social Graph

The first question is what problem does the Open Graph Protocol solve for Facebook and why are they releasing it?

Figure 1: The Facebook Social Graph in 2006

The original Facebook social graph had a one type of node and edge. The nodes were users and the edges were friend relationships. The operations you could perform on the nodes are also straightforward. How many friends does Jane have? Is Kim a friend of Mary? And so on. As more features were added to the site, new nodes and edges were added to the social graph

Figure 2: The Facebook Social Graph in 2009

Each of these nodes supports similar operations. By counting the number of incoming connections you can tell how many fan's Justin Bieber has, how many people want to show the world their love for the Ramblin’ Wreck or how many people have added Mary as a friend. However as Facebook tries to model more of our offline world, it is clear that these aren’t the only types of relationships that users can have nor are these nodes the only entities users can have a relationship with. Which brings us to…

Figure 3: The Facebook Social Graph in 2011

The Open Graph Protocol is the first step in allowing Facebook users express relationships with arbitrary social objects. If you aren’t familiar with the concept of social objects, Hugh McLeod wrote a great introductory post on this concept entitled social objects for beginners which is excerpted below

The Social Object, in a nutshell, is the reason two people are talking to each other, as opposed to talking to somebody else. Human beings are social animals. We like to socialize. But if think about it, there needs to be a reason for it to happen in the first place. That reason, that “node” in the social network, is what we call the Social Object.

Example A. You and your friend, Joe like to go bowling every Tuesday. The bowling is the Social Object.

Example B. You and your friend, Lee are huge Star Wars fans. Even though you never plan to do so, you two tend to geek out about Darth Vader and X-Wing fighters every time you meet. Star Wars is the Social Object.

Example C. You’ve popped into your local bar for a drink after work. At the bar there’s some random dude, sending a text on this neat-looking cellphone you’ve never seen before. So you go up to him and ask him about the phone. The random dude just LOVES his new phone, so has no trouble with telling a stranger about his new phone for hours on end. Next thing you know, you two are hitting it off and you offer to buy him a beer. You spend the rest of the next hour geeking out about the new phone, till it’s time for you to leave and go dine with your wife. The cellphone was the social object.

Example D. You’re a horny young guy at a party, in search of a mate. You see a hot young woman across the room. You go up and introduce yourself. You do not start the conversation by saying, “Here’s a list of all the girls I’ve gone to bed with, and some recent bank statements showing you how much money I make. Would you like to go to bed with me?” No, something more subtle happens. Basically, like all single men with an agenda, you ramble on like a yutz for ten minutes, making small talk. Until she mentions the name of her favorite author, Saul Bellow. Halleluiah! As it turns out, Saul Bellow happens to be YOUR FAVORITE AUTHOR as well [No, seriously. He really is. You’re not making it up just to look good.]. Next thing you know, you two are totally enveloped in this deep and meaningful conversation about Saul Bellow. “Seize The Day”, “Herzog”, “Him With His Foot In His Mouth” and “Humbolt’s Gift”, eat your heart out. And as you two share a late-night cab back to her place, you’re thinking about how Saul Bellow is the Social Object here.

There are more examples in Hugh’s post but you get the idea. Social objects had been represented by “fan pages” in the Facebook world but with the Open Graph Protocol, it is now possible for any random website to become a part of Facebook’s social graph. This is a very powerful and liberating concept both from the perspective of what it enables Facebook’s platform to do but also because it gets rid of some ugly forms of lock-in. For example, Robert Scoble would no longer need to maintain a brand presence on Facebook at http://www.facebook.com/scobleizer that is different from his website at http://www.scobleizer.com to stay connected with fans of his blog who are Facebook users. 

Turning Web Pages into Social Objects

The process of turning a web page into a social object that Facebook can add to their social graph is very straightforward. From the Open Graph Protocol documentation we learn

To turn your web pages into graph objects, you need to add basic metadata to your page. We've based the initial version of the protocol on RDFa which means that you'll place additional <meta> tags in the <head> of your web page. The four required properties for every page are:

  • og:title - The title of your object as it should appear within the graph, e.g., "The Rock".
  • og:type - The type of your object, e.g., "movie". Depending on the type you specify, other properties may also be required.
  • og:image - An image URL which should represent your object within the graph.
  • og:url - The canonical URL of your object that will be used as its permanent ID in the graph, e.g., "http://www.imdb.com/title/tt0117500/".

As an example, the following is the Open Graph protocol markup for The Rock on IMDB:

<html xmlns:og="http://opengraphprotocol.org/schema/">
<head>
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="movie" />
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />
...
</head>
...
</html>

The following properties are optional for any object and are generally recommended:

  • og:description - A one to two sentence description of your object.
  • og:site_name - If your object is part of a larger web site, the name which should be displayed for the overall site. e.g., "IMDb".

For now Facebook supports a limited set of object types from the following categories; activities, businesses, groups, organizations, people, places, products & entertainment & websites. Once your page is marked up and categorized, the next step is to provide a way for users to add it to their social graph on Facebook. This is done by using adding the Facebook Like button to the page. From then onward, when a user clicks the Like button they become a fan of that page.

Not only is your page added to their profile but you can also send news feed updates to all the people who have liked your page (just like “Fan Pages” can) if you associate the Like button with your Facebook ID. Doing that provides you with an admin page where you can post news feed entries from.

The Return of the Semantic Web

One of the things I find most exciting about this development is that sites now have significant motivation to be marked up with extremely structured data which can then be consumed by other applications. Having such rich descriptive metadata will be a boon to search engines especially those from startups since some of the big guys consider their ability to extract semantics out of HTML tag soup a competitive advantage and have thus fought the semantic web for years.

In the social media space, a few people have focused on the fact that this data is put in place to enable sites to be added to Facebook’s social graph. However there is little reason why other social networking services couldn’t also read the same markup as a way to add those web sites to their social graph. For example, Yelp is one of the sites that now supports the Open Graph Protocol so when I click like the Pro Sports Club it is added to the list of “pages” I’m a fan of on Facebook. However I could just as easily see that being a [Twitter – Like] button which would add the Twitter account for the gym to my following list along with tweeting to my followers that I liked the gym. It would only take adding a markup element to what Yelp is outputting to indicate the Twitter account of the page being liked. With my Windows Live hat on, I can imagine going to Amazon or IMDB and clicking a [Windows Live – Like] button which would add the movie to my list of favorite things. There are a ton of possibilities this opens up in a totally decentralized way without forcing services or users to be locked into a particular social network.

This has been the dream Tim Berners-Lee has been pushing for years and I’m quite surprised to see Facebook being the service to take RDFa mainstream. One of the things I’m happiest about is that Facebook chose RDFa for their implementation instead of the much hyped yet weaker solution, microformats. As Evan Prodromou wrote a few years ago in his post RDFa vs. Microformats, RDFa encourages interoperable implementations between organizations and avoids naming collisions via namespacing as opposed to the microformats approach which requires a centralized committee process to add/remove elements from data formats. From my example above, adding support for indicating the Twitter account of a page that implemented the Open Graph Protocol would be as simple as adding an element namespaced to some Twitter URI. That is distributed extensibility in action.

Final Thoughts

This is a very exciting time for the Web. I suspect that this will be another Facebook platform hit that exceeds expectations. The same way no one could have predicted Zynga and Farmville when the Facebook platform first launched is the way I feel we’ll all be surprised at the sorts of things that will be powered by the Open Graph Protocol in the next year or two.

Note Now Playing: Timbaland - Say Something (featuring Drake) Note


 

April 19, 2010
@ 03:38 PM

There's an interesting post on ReadWriteWeb about a burgeoning technology effort supported by a number of web companies titled XAuth: The Open Web Fires a Shot Against Facebook Connect which states

A consortium of companies including Google, Yahoo, MySpace, Meebo and more announced tonight that it will launch a new system on Monday that will let website owners discover which social networks a site visitor uses and prompt them automatically to log-in and share with friends on those network. The system is called XAuth and serves to facilitate cross-site authentication (logging in) for sharing and potentially many other uses.

Facebook and Twitter, the dominant ways people share links with friends outside of email, are not participating
...

What XAuth Delivers

It's like Facebook Connect, but for every other social network.

The gist here is that XAuth will make it easier for sites around the web to find out what social networks you are using, let you log in to those easily, access your permitted information from those networks in order to better personalize your experience on their site and easily share their content back into your social network. It's like Facebook Connect, but for every other social network. Any website can register as an identity provider with XAuth, too.

What About OAuth?

If you're familiar with OAuth, you might be wondering what the difference is between that system of secure authentication and XAuth. Here's one way to explain it: XAuth tells a webpage "this is where the site visitor does social networking." Then, OAuth is the way the user logs in there, granting the site permission to access their info without seeing their password. In other words, XAuth tells you where to ask for OAuth from.

Google's Joseph Smarr, recently hired because of his high-profile work on distributed identity systems across the web, says that XAuth is a provisional solution to the limitations of the cookie system. If you visit ReadWriteWeb, for example, our servers aren't allowed to check the cookies left on your browser by the social networks you use because they are tied to URL domains other than ours.

The first thing that is worth pointing out is that XAuth is not like Facebook Connect. Facebook Connect enables a website to associate a user’s Facebook identity, social graph and activity stream with the site. XAuth enables a website to discover which services an end user is a member of that support associating a user’s identity, social graph and/or activity stream with third party websites.

A practical example of this is the various sharing options at the bottom of this blog post (if you’re viewing it in the browser on your desktop PC)

This is a fixed list of options that where I had to write special Javascript code to handle each service. There are a few issues with this approach. The first is that people end up seeing exhortations to share on services they don’t use which is just visual noise in that case. Another is that, each of those widgets involves a Javascript call to the domain of the service which impacts page load times. In fact, I used to have a Reddit widget but took it out because their server was too slow and noticeably impacted rendering of my blog. Finally, I tend to keep the list small because I don’t want my blog posts to suffer from the NASCAR problem so some services that may be popular with my audience audience are left out (e.g. I have no widgets for sharing on Google Buzz, Slashdot or Digg).

How the XAuth specification attempts to solve this problem is fairly straightforward. Services that want to participate include some Javascript from http://xauth.org which writes some data to the local storage (not cookie) for that domain when the user visits the social network. At that point there is now an indication on the user’s machine that they are a member of the aforementioned social network. Then when the user visits a site such as my blog, I also include the same Javascript from but this time I ask it if the user is a member of the social networks I’m interested in. Once the list of sites is returned, I then only have to render sharing widgets from the sites I support which the user is a member of.

In general, I think XAuth is a legitimate attempt to solve a valid problem. However it should be made clear what problems XAuth doesn’t solve. For one, people like me who have an account on Facebook, Twitter, Digg, Google, Windows Live, Reddit,  Delicious, etc will actually have a more cluttered experience than we do today. I know I’m always a little confused when I visit a site that uses Clickpass since I can never remember if I’ve associated that site with my Facebook, Windows Live, Yahoo! or Google account. Similarly XAuth will potentially exacerbate the problem for the subset of people who are members of lots of social media sites. Another thing to be made clear is that this isn’t a replacement for delegated authentication and authorization technologies like Facebook Connect, Twitter’s @Anywhere or OAuth WRAP. Sites will still need to support all of these technologies if they want to reach the widest audience. This is just about hiding options from users that do not matter to them.

The one thing I’d keep an eye on is that XAuth provides a token that uniquely identifies the user as part of the results returned to the requesting site instead of a simply stating the user is a member of a specified social media site. This enables the requesting site (e.g. my blog) to potentially make some API calls to the social network site for information specific to the user without asking for permission first. For example, pre-populating the user’s name and display picture in a comment box. Since Facebook has already announced such functionality I guess people don’t think it is overstepping the bounds of the user relationship to enable this feature on any website the user visits without the user explicitly granting the sites permission to their profile information. It will be interesting to see if implementations of this feature steer clear of some of the creepiness factor of Facebook’s Beacon program which led to massive outcry in its day.

Note Now Playing: Jamie Foxx - Winner (featuring Justin Timberlake & T.I.) Note