The Open and Social Web

4,123 views

Published on

Slides from my session at Google I/O covering the latest and most important trends of the Social Web and dive deep into where this is all going, at the conceptual level.

From the concepts of digital identity, relationships, and social objects, this session will cover emerging technologies like WebFinger, Salmon, ActivityStrea.ms, OpenID, and OAuth.

http://code.google.com/events/io/2010/sessions/open-and-social-web.html

Published in: Technology, Travel
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,123
On SlideShare
0
From Embeds
0
Number of Embeds
105
Actions
Shares
0
Downloads
189
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

The Open and Social Web

  1. 1. The open & social web Social Web - Chris Messina This session will cover the latest and most important trends of the Social Web and dive deep into where this is all going, at both technical and conceptual levels. From the concepts of digital identity, relationships, and social objects, this session will cover emerging technologies like WebFinger, Salmon, ActivityStrea.ms, OpenID, OAuth and OpenSocial. Session type: 101 Attendee requirements: A web developer background and an interest in the social web. Tags: ActivityStrea.ms, Salmon, WebFinger, PubSubHubbub, PortableContacts, OpenID, OAuth, OpenSocial Hashtag: #googlesocial
  2. 2. The Open & Social Web Chris Messina May 19 Today I’m going to talk to you about Google and the Social web [CLICK] but really this is more about the social web.
  3. 3. <head> Before we get started, a few things.
  4. 4. <head> Before we get started, a few things.
  5. 5. @chris.messina buzz.google.com/chrismessina @chrismessina #io #googlesocial Before we begin, : chris.messina on Buzz; chrismessina on Twitter. The hashtag is #googlesocial
  6. 6. View live notes and ask questions about this session on Google Wave: http://j.mp/io-googlesocial Before I begin I’d like to invite you to view live notes and ask questions about this session on Google Wave at j.mp/io-googlesocial one more thing.
  7. 7. SURGEON GENERAL’S WARNING: THIS PRESENTATION IS LITE ON CODE Photo by Bob B. Brown - http://flic.kr/p/7g21oL THIS PRESENTATION IS LITE ON CODE. If you were expecting code... [CLICK]
  8. 8. Bridging the Islands: Building fluid social experiences across websites Joseph Smarr & John Panzer 3:00pm - 4:00pm in Room 9 I suggest you check out “Bridging the Islands” presented by Joseph Smarr and John Panzer this afternoon from 3:00pm to 4:00pm in Room 9. Now, I did want to make this experience less excruciating if you INSIST on seeing code... here’s a little moment of zen for you... ready? [CLICK]
  9. 9. [Pause for 5 seconds]
  10. 10. [Pause for 5 seconds]
  11. 11. </head> Ok, I hope that will hold you over. [CLICK] Let’s get into the meat of the talk... starting with a PROLOGUE to give you a sense for what I’m going to talk about today.
  12. 12. <body> Ok, I hope that will hold you over. [CLICK] Let’s get into the meat of the talk... starting with a PROLOGUE to give you a sense for what I’m going to talk about today.
  13. 13. Prologue Ok, I hope that will hold you over. [CLICK] Let’s get into the meat of the talk... starting with a PROLOGUE to give you a sense for what I’m going to talk about today.
  14. 14. First, these are two characters that you’re going to get to know over the course of this story. these are “open web technologists” they play an important role throughout our story... [CLICK]
  15. 15. “Open Web Technologists” First, these are two characters that you’re going to get to know over the course of this story. these are “open web technologists” they play an important role throughout our story... [CLICK]
  16. 16. Chapter 1 for example, in chapter 1, they introduce OpenID, a decentralized identity technology.
  17. 17. Chapter 1 for example, in chapter 1, they introduce OpenID, a decentralized identity technology.
  18. 18. Chapter 2 in chapter 2, they develop WebFinger, a technology for discovering information about email addresses.
  19. 19. Chapter 2 in chapter 2, they develop WebFinger, a technology for discovering information about email addresses.
  20. 20. Chapter 3 And finally, in Chapter 3 they introduce Activity Streams, Salmon, and PubSubHubbub ...which make it possible to share rich activities across networks, in real time, and then comment back with equal fidelity.
  21. 21. Chapter 3 And finally, in Chapter 3 they introduce Activity Streams, Salmon, and PubSubHubbub ...which make it possible to share rich activities across networks, in real time, and then comment back with equal fidelity.
  22. 22. The Open & Social Web these three chapters are the start of the story of the open and social web. and so we begin...
  23. 23. Chapter 1: The Trouble with Travel
  24. 24. Once upon a time... Once upon a time...
  25. 25. “Kate” there was a character named Kate.
  26. 26. “Jack” ...and a character named Jack.
  27. 27. Jack lived on this island. Kate lived on this island.
  28. 28. Jack lived on this island. Kate lived on this island.
  29. 29. One day, they decided to go for a vacation...
  30. 30. One day, they decided to go for a vacation...
  31. 31. Credit: xkcd - xkcd.com/256 traveling from one island to another...
  32. 32. Credit: xkcd - xkcd.com/256 traveling from one island to another...
  33. 33. ...To the big island. As it turned out, Kate and Jack met. And they liked each other. And then... [CLICK]
  34. 34. ...To the big island. As it turned out, Kate and Jack met. And they liked each other. And then... [CLICK]
  35. 35. ...To the big island. As it turned out, Kate and Jack met. And they liked each other. And then... [CLICK]
  36. 36. ...fell in love.
  37. 37. ...and got married. But on their wedding day... something missing: their families!
  38. 38. ...and got married. But on their wedding day... something missing: their families!
  39. 39. you see, when Kate and Jack left to go to the new island, they left their family and friends behind.
  40. 40. you see, when Kate and Jack left to go to the new island, they left their family and friends behind.
  41. 41. As it happened, visiting other islands had become a hassle. Immigration was a real pain in the butt, and having to fill out forms like these [CLICK]
  42. 42. As it happened, visiting other islands had become a hassle. Immigration was a real pain in the butt, and having to fill out forms like these [CLICK]
  43. 43. ...really turned people off from traveling. Especially when EVERY island wanted you to register with them! You could no longer just show up and hang out.
  44. 44. ...really turned people off from traveling. Especially when EVERY island wanted you to register with them! You could no longer just show up and hang out.
  45. 45. ...really turned people off from traveling. Especially when EVERY island wanted you to register with them! You could no longer just show up and hang out.
  46. 46. Worse still, every island forced people to learn a secret chant that they had to recite every time they came back to the island. [CLICK]
  47. 47. @!j &4K m$2 Worse still, every island forced people to learn a secret chant that they had to recite every time they came back to the island. [CLICK]
  48. 48. @!j &4K m$2 Worse still, every island forced people to learn a secret chant that they had to recite every time they came back to the island. [CLICK]
  49. 49. $%&"' ()*+! !"# &/0 *-1 $,&") )*+-. it was simply too much and over time, people just melted down from the stress of having to manage all these secrete chants!
  50. 50. it was simply too much and over time, people just melted down from the stress of having to manage all these secrete chants!
  51. 51.
  52. 52. some resourceful islanders got together and decided to solve this problem once and for all...
  53. 53. some resourceful islanders got together and decided to solve this problem once and for all...
  54. 54. Photo by Teresa Stanton OpenID is like a personal skeleton key for all your web accounts. By using an account that you already have to sign up for another website, not only is it more convenient, but you are able to start developing your own universal web identity — that, if you CHOOSE TO, you can own.
  55. 55. Unique OpenID Relying Parties As of July 1, 2009 Data from Janrain So as we’ve seen an explosion in the number of OpenID relying parties in the last five years — users are carefully considering which account they want to use to sign in.
  56. 56. Unique OpenID Relying Parties As of July 1, 2009 50,000 40,000 30,000 20,000 10,000 0 5 06 06 06 6 07 07 07 7 08 08 08 8 09 09 /0 /0 /0 /0 1/ 4/ 7/ 1/ 4/ 7/ 1/ 4/ 7/ 1/ 7/ 10 10 10 Data from Janrain 10 So as we’ve seen an explosion in the number of OpenID relying parties in the last five years — users are carefully considering which account they want to use to sign in.
  57. 57. Unique OpenID Relying Parties As of July 1, 2009 50,000 40,000 30,000 20,000 10,000 0 5 06 06 06 6 07 07 07 7 08 08 08 8 09 09 /0 /0 /0 /0 1/ 4/ 7/ 1/ 4/ 7/ 1/ 4/ 7/ 1/ 7/ 10 10 10 Data from Janrain 10 So as we’ve seen an explosion in the number of OpenID relying parties in the last five years — users are carefully considering which account they want to use to sign in.
  58. 58. OpenID usage trends OpenID Providers on UserVoice 34% 33% 10% 15% 8% Google Facebook Yahoo! Other Twitter Data from Janrain, May 2010 I want you to look at these graphs very carefully. Each color represents a different identity provider. Google - 34% Facebook - 33% Twitter - 15% Yahoo - 10%
  59. 59. OpenID usage trends OpenID Providers on Interscope Records 8% 12% 12% 52% 6% 10% Google Facebook Yahoo! Other Twitter MySpace Data from Janrain, May 2010 ...and on each site, people use different identity providers depending on the context. Google 12% Facebook 43% MySpace 24%
  60. 60. OpenID usage trends OpenID Providers on sulit.com.ph 10% 24% 1% 64% Google Facebook Yahoo! Other Chart from Janrain, January 2009 Especially when you’re thinking about an international audience, everything changes. Yahoo - 64% Google - 24% Facebook - 10%
  61. 61. OpenID usage trends Sign in preferences across all Janrain properties 23.5% Google 38.8% Facebook Yahoo! Other (MySpace, Windows Live, AOL, etc) 13.0% Twitter 5.8% 18.9% Data from Janrain, May 2010 And across all the sites that use RPX, a third-party authentication widget, we see a different composition: Google - 37% Facebook - 26% Yahoo - 11% Other - 18% Twitter - 6%
  62. 62. http://openid.net to learn more about openid, visit openid.net
  63. 63. And so the innovation of the village geeks were essentially to allow people of all island nationalities to visit with one another.... [CLICK]
  64. 64. by creating a system of interoperable identity and passport providers
  65. 65. ...which made everyone very happy.
  66. 66. So back with the islands, people were able to travel and visit each other just fine, but a new problem emerged with people finding homes on new islands.
  67. 67. Chapter 2: Staying connected So back with the islands, people were able to travel and visit each other just fine, but a new problem emerged with people finding homes on new islands.
  68. 68. “Kate” You remember Kate? Well [CLICK], this is where she comes from.
  69. 69. “Kate” You remember Kate? Well [CLICK], this is where she comes from.
  70. 70. “Jack” And Jack? [CLICK] He came from this island.
  71. 71. “Jack” And Jack? [CLICK] He came from this island.
  72. 72. Before Jack and Kate left to go live at the new island, their family and friends could just send messages to “Kate” or call up “Jack”. When they moved to the new island, their family and friends now needed to specify WHICH Kate and WHICH Jack they wanted to send a message to, making it much harder to stay in touch.
  73. 73. ? ? Before Jack and Kate left to go live at the new island, their family and friends could just send messages to “Kate” or call up “Jack”. When they moved to the new island, their family and friends now needed to specify WHICH Kate and WHICH Jack they wanted to send a message to, making it much harder to stay in touch.
  74. 74. As it happened, the open web technologists got together and decided to solve this problem once and for all...
  75. 75. As it happened, the open web technologists got together and decided to solve this problem once and for all...
  76. 76. WebFinger ...using a technology called “WebFinger”
  77. 77. The Hammer Stack Discovery for the open web WebFinger relies on an emerging set of technologies and formats that together we call “The Hammer Stack”
  78. 78. How WebFinger works Enter email: Email Lookup Let’s walk through WebFinger works in practice. So I’ll type my email in here and click LOOKUP [CLICK]
  79. 79. How WebFinger works Enter email: chris.messina@gmail.com Lookup Let’s walk through WebFinger works in practice. So I’ll type my email in here and click LOOKUP [CLICK]
  80. 80. How WebFinger works Enter email: chris.messina@gmail.com Lookup Let’s walk through WebFinger works in practice. So I’ll type my email in here and click LOOKUP [CLICK]
  81. 81. How WebFinger works Discovering a user’s WebFinger profile chris.messina@gmail.com We take the email I’ve supplied, split it at the @ symbol, and use grab the domain’s host- meta to discover the user’s WebFinger endpoint.
  82. 82. How WebFinger works Discovering a user’s WebFinger profile chris.messina@gmail.com { domain We take the email I’ve supplied, split it at the @ symbol, and use grab the domain’s host- meta to discover the user’s WebFinger endpoint.
  83. 83. How WebFinger works Discovering a user’s WebFinger profile chris.messina@gmail.com { domain We take the email I’ve supplied, split it at the @ symbol, and use grab the domain’s host- meta to discover the user’s WebFinger endpoint.
  84. 84. How WebFinger works Use host meta to retrieve an LRDD document $curl http://gmail.com/.well-known/host-meta
  85. 85. How WebFinger works Use host meta to retrieve an LRDD document $curl http://gmail.com/.well-known/host-meta
  86. 86. How WebFinger works Use host meta to retrieve an LRDD document $curl http://gmail.com/.well-known/host-meta
  87. 87. How WebFinger works Server returns LRDD document <?xml version='1.0' encoding='UTF-8'?> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'      xmlns:hm='http://host-meta.net/xrd/1.0'>   <hm:Host xmlns='http://host-meta.net/xrd/1.0'>gmail.com</hm:Host>   <Link rel='lrdd'         template='http://www.google.com/s2/webfinger/?q={uri}'>     <Title>Resource Descriptor</Title>   </Link> </XRD>
  88. 88. How WebFinger works Server returns LRDD document <?xml version='1.0' encoding='UTF-8'?> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'      xmlns:hm='http://host-meta.net/xrd/1.0'>   <hm:Host xmlns='http://host-meta.net/xrd/1.0'>gmail.com</hm:Host>   <Link rel='lrdd'         template='http://www.google.com/s2/webfinger/?q={uri}'>     <Title>Resource Descriptor</Title>   </Link> </XRD>
  89. 89. How WebFinger works Plugin acct: into URI Template http://www.google.com/s2/webfinger/?q={uri} so let’s bring back my email address and turn it into an acct: URI and plug it into the URI template we got from the host-meta file.
  90. 90. How WebFinger works Plugin acct: into URI Template chris.messina@gmail.com http://www.google.com/s2/webfinger/?q={uri} so let’s bring back my email address and turn it into an acct: URI and plug it into the URI template we got from the host-meta file.
  91. 91. How WebFinger works Plugin acct: into URI Template acct:chris.messina@gmail.com http://www.google.com/s2/webfinger/?q={uri} so let’s bring back my email address and turn it into an acct: URI and plug it into the URI template we got from the host-meta file.
  92. 92. How WebFinger works Plugin acct: into URI Template http://www.google.com/s2/webfinger/?q={uri} acct:chris.messina@gmail.com so let’s bring back my email address and turn it into an acct: URI and plug it into the URI template we got from the host-meta file.
  93. 93. How WebFinger works Plugin acct: into URI Template http://www.google.com/s2/webfinger/?q={uri} acct:chris.messina@gmail.com so let’s bring back my email address and turn it into an acct: URI and plug it into the URI template we got from the host-meta file.
  94. 94. How WebFinger works Retrieve WebFinger document $curl http://www.google.com/s2/webfinger/?q=acct:chris.messina@gmail.com
  95. 95. How WebFinger works Retrieve WebFinger document $curl http://www.google.com/s2/webfinger/?q=acct:chris.messina@gmail.com
  96. 96. How WebFinger works Retrieve WebFinger document $curl http://www.google.com/s2/webfinger/?q=acct:chris.messina@gmail.com
  97. 97. How WebFinger works XRD Profile <?xml version='1.0'?> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:chris.messina@gmail.com</Subject> <Alias>http://www.google.com/profiles/chris.messina</Alias> <Link rel='http://portablecontacts.net/spec/1.0' href='http://www-opensocial.googleusercontent.com/api/people/'/> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/> <Link rel='describedby' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='describedby' href='http://s2.googleusercontent.com/webfinger/?q=chris.messina%40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='http://buzz.googleapis.com/feeds/102034052532213921839/public/posted' type='application/atom+xml'/> </XRD> from here I can grab any service that I need.
  98. 98. How WebFinger works XRD Profile <?xml version='1.0'?> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:chris.messina@gmail.com</Subject> <Alias>http://www.google.com/profiles/chris.messina</Alias> <Link rel='http://portablecontacts.net/spec/1.0' href='http://www-opensocial.googleusercontent.com/api/people/'/> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/> <Link rel='describedby' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='describedby' href='http://s2.googleusercontent.com/webfinger/?q=chris.messina%40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='http://buzz.googleapis.com/feeds/102034052532213921839/public/posted' type='application/atom+xml'/> </XRD> from here I can grab any service that I need.
  99. 99. and so now if you wanted to do something like OpenID...
  100. 100. How WebFinger works XRD Profile <?xml version='1.0'?> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:chris.messina@gmail.com</Subject> <Alias>http://www.google.com/profiles/chris.messina</Alias> <Link rel='http://portablecontacts.net/spec/1.0' href='http://www-opensocial.googleusercontent.com/api/people/'/> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/> <Link rel='describedby' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='describedby' href='http://s2.googleusercontent.com/webfinger/?q=chris.messina%40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='http://buzz.googleapis.com/feeds/102034052532213921839/public/posted' type='application/atom+xml'/> </XRD> you would just take that XRD file...
  101. 101. How WebFinger works XRD Profile <?xml version='1.0'?> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:chris.messina@gmail.com</Subject> <Alias>http://www.google.com/profiles/chris.messina</Alias> <Link rel='http://portablecontacts.net/spec/1.0' href='http://www-opensocial.googleusercontent.com/api/people/'/> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/> <Link rel='describedby' href='http://www.google.com/profiles/chris.messina' type='text/html'/> <Link rel='describedby' href='http://s2.googleusercontent.com/webfinger/?q=chris.messina%40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='http://buzz.googleapis.com/feeds/102034052532213921839/public/posted' type='application/atom+xml'/> </XRD> and look for the rel value that you need and the appropriate endpoint.
  102. 102. Putting it together Making OpenID easier using an email address Enter email: Email Connect Lookup So, what if we turned this lookup service into an OpenID experience? Let’s try this with an email address! I hit connect...
  103. 103. Putting it together Making OpenID easier using an email address Enter email: Email Connect So, what if we turned this lookup service into an OpenID experience? Let’s try this with an email address! I hit connect...
  104. 104. Putting it together Making OpenID easier using an email address Enter email: chris.messina@gmail.com Connect So, what if we turned this lookup service into an OpenID experience? Let’s try this with an email address! I hit connect...
  105. 105. Putting it together Making OpenID easier using an email address Enter email: chris.messina@gmail.com Connect So, what if we turned this lookup service into an OpenID experience? Let’s try this with an email address! I hit connect...
  106. 106. and if I’m already logged in, I’ll be taken to a page like this, where I can click on button to sign in.
  107. 107. Putting it together Making OpenID easier using an email address Signed in as: Chris Messina 
  108. 108. Putting it together Making OpenID easier using an email address Signed in as: Chris Messina 
  109. 109. http://webfinger.info to learn more about webfinger, visit webfinger.info
  110. 110. and so the geeks had created a kind of “forwarding address” or “service discovery protocol” for the islanders...
  111. 111. and so the geeks had created a kind of “forwarding address” or “service discovery protocol” for the islanders...
  112. 112. and the people were happy once again.
  113. 113. Which brings us to the third part of our story... keeping in touch and sharing.
  114. 114. Chapter 3: Keeping in touch and sharing Which brings us to the third part of our story... keeping in touch and sharing.
  115. 115. so one other problem that islanders encountered was the slow delivery of correspondence. essentially they had to keep checking: was there a new message? how about now? how about now?
  116. 116. so one other problem that islanders encountered was the slow delivery of correspondence. essentially they had to keep checking: was there a new message? how about now? how about now?
  117. 117. so one other problem that islanders encountered was the slow delivery of correspondence. essentially they had to keep checking: was there a new message? how about now? how about now?
  118. 118. meanwhile, people also started capturing richer and richer content.
  119. 119. and tracking all of their activities in order to keep their friends and family up to date.
  120. 120. but sharing richer and richer media meant a need for more efficient and faster ways of sending this content around.
  121. 121. , Kate d r Kate nd H yd Isla hn is t 01209 ! s k e nst -ja but sharing richer and richer media meant a need for more efficient and faster ways of sending this content around.
  122. 122. some resourceful islanders got together and decided to solve this problem once and for all with a series of technologies...
  123. 123. some resourceful islanders got together and decided to solve this problem once and for all with a series of technologies...
  124. 124. PubSubHubbub the first technology is called pubsubhubbub
  125. 125. Rather than having to constantly check to see if there were new messages, now Kate could just sit back and relax. Whenever Walt sent a message, it would
  126. 126. Rather than having to constantly check to see if there were new messages, now Kate could just sit back and relax. Whenever Walt sent a message, it would
  127. 127. hms hubbub Rather than having to constantly check to see if there were new messages, now Kate could just sit back and relax. Whenever Walt sent a message, it would
  128. 128. hms hubbub Hubs stand in the middle and deliver content to the subscribers in real time.
  129. 129. (Slowed down 1000x) hms hubbub Hubs stand in the middle and deliver content to the subscribers in real time.
  130. 130. ActivityStreams let’s start with ActivityStreams.
  131. 131. 1999 This story starts back in 1999 when a format called RSS was introduced by Netscape as a content-gathering mechanism for My Netscape Network (MNN) back when portals were all the rage (pre-social networks). By providing a simple snapshot-in-a-document, web site producers acquired audience through the presence of their content on My Netscape.
  132. 132. so, you’d have someone like the NYTimes wanting to grow their online audience...
  133. 133. ...and they’d use RSS to get their content into the Netscape portal.
  134. 134. Copyright 2000 ZWave, LLC ...and they’d use RSS to get their content into the Netscape portal.
  135. 135. RSS <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <item> <title>When Will Location-Based Coupons Take Off?</title> <link>http://bits.blogs.nytimes.com/2010/03/12/when-will- location-based-mobile-coupons-take-off/</link> <pubDate>Fri, 12 Mar 2010 21:38:26 +0000</pubDate> <creator>By CLAIRE CAIN MILLER</creator> <description> People want to receive location-based cellphone coupons, but most have not, according to a Web analytics firm. </description> </item> </channel> </rss> RSS looks like this.
  136. 136. RSS title + link + description the only mandatory fields in RSS are title, link, and description — which makes it an extremely flexible format. The only problem is that aggregators have to do a lot of guesswork about what’s in it. this was complicated by the various flavors of RSS (0.9, 0.91, 0.92, 0.93, 2.0 et al)
  137. 137. 2005 this in 2005, a group of people got together to create a “better specified” syndication format called Atom.
  138. 138. Atom <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <entry> <title>When Will Location-Based Coupons Take Off?</title> <link rel=”alternate”>http://bits.blogs.nytimes.com/2010/03/12/when-will- location-based-mobile-coupons-take-off/</link> <id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id> <updated>Fri, 12 Mar 2010 21:38:26 +0000</updated> <author> <name>By CLAIRE CAIN MILLER</name> </author> <summary> People want to receive location-based cellphone coupons, but most have not, according to a Web analytics firm. </summary> </entry> </feed> here’s what ATOM looks like.
  139. 139. Atom title + link + summary + author + id + updated so, in five years, the required elements of RSS essentially doubled, and we now had a unique way to identity a feed entry, the author, and when it was last changed.
  140. 140. even still, this format was really still designed for the case of syndicating ARTICLES into PORTALS.
  141. 141. Copyright 2000 ZWave, LLC even still, this format was really still designed for the case of syndicating ARTICLES into PORTALS.
  142. 142. 2010
  143. 143. so, you take an article like this, turn it into RSS or ATOM...
  144. 144. so, you take an article like this, turn it into RSS or ATOM...
  145. 145. and the most interesting thing the browser can do for you is turn this rich and well designed page into something like this... [click]
  146. 146. and the most interesting thing the browser can do for you is turn this rich and well designed page into something like this... [click]
  147. 147. and yet we know that people are performing more and more activities online. and yet, regardless of its type, sites only publish this information as RSS or Atom
  148. 148. so no matter what, to sites like Friendfeed, Facebook, or Google Buzz, all these activities all look the same.
  149. 149. icons by Fast Icon so how do you differentiate all these different feeds when you only have one basic format?
  150. 150. This is where ActivityStreams comes in.
  151. 151. author title link In contrast to the basic model of RSS and ATOM...
  152. 152. actor verb object target the ActivityStreams model presents an “actor verb object” tuple, with an “target” parameter
  153. 153. Atom <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <entry> <title>...</title> <link rel=”alternate”>...</link> <id>...</id> <updated>...</updated> <author> <name>...</name> </author> <summary> ... </summary> </entry> </feed> so let’s take a typical Atom entry template...
  154. 154. Atom title + link + summary + author + id + updated (remember that the foundation of Atom is title, link, summary, author, id, and the updated time.)
  155. 155. Atom+ActivityStreams title + link + summary + author + id + updated + verb + object-type + target and let’s layer in verb, object-type, and target — reusing “author” for the actor element...
  156. 156. Atom+ActivityStreams <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">   <entry>       <title>...</title>       <link rel=”alternate”>...</link>       <id>...</id>       <updated>...</updated>       <author>         <activity:object-type>person</activity:object-type>         <name>...</name>       </author>       <activity:verb>post</activity:verb>       <activity:object>         <activity:object-type>note</activity:object-type>         <content type=”html”>           ...         </content>       </activity:object>   </entry> </feed> here’s what Atom+ActivityStreams looks like. Similar,
  157. 157. Atom+ActivityStreams <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">   <entry>       <title>...</title>       <link rel=”alternate”>...</link>       <id>...</id>       <updated>...</updated>       <author>         <activity:object-type>person</activity:object-type>         <name>...</name>       </author>       <activity:verb>post</activity:verb>       <activity:object>         <activity:object-type>note</activity:object-type>         <content type=”html”>           ...         </content>       </activity:object>   </entry> </feed> here are the new parts.
  158. 158. Atom+ActivityStreams <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">   <entry>       <title>...</title>       <link rel=”alternate”>...</link>       <id>...</id>       <updated>...</updated>       <author> person         <activity:object-type>person</activity:object-type>         <name>...</name>       </author> post       <activity:verb>post</activity:verb>       <activity:object> note         <activity:object-type>note</activity:object-type>         <content type=”html”>           ...         </content>       </activity:object>   </entry> </feed> so, see what this adds for the aggregator?
  159. 159. person post note as the most basic example, we’re essentially telling the aggregator that a person posted a note.
  160. 160. person shared link but this model works for someone sharing a link...
  161. 161. person started following person or someone following someone else...
  162. 162. service updated status or if a service updates its status.
  163. 163. so before activity streams, all of this syndicated data was treated the same and lead to overload!
  164. 164. so before activity streams, all of this syndicated data was treated the same and lead to overload!
  165. 165. so before activity streams, all of this syndicated data was treated the same and lead to overload!
  166. 166. icons by Fast Icon but now, with activity streams and relevancy filters, the most relevant, useful data streams to you based on the appropriate context.
  167. 167. icons by Fast Icon but now, with activity streams and relevancy filters, the most relevant, useful data streams to you based on the appropriate context.
  168. 168. Salmon So what happens when you get that nugget of information that begs to be responded to? If you’re on the same island as the sender, well, you walk right up to them... but if they’re not — and they live on another island, that’s where Salmon comes in.
  169. 169. Just as before, when you receive content, you want to respond to it. Salmon is one emerging, secure mechanism to push comments across the web. PubSubHubbub doesn’t work in this case because it uses a one-way channel. Instead, we rely on salmon’s excellent sense of smell to navigate their way back to where they came from.
  170. 170. Just as before, when you receive content, you want to respond to it. Salmon is one emerging, secure mechanism to push comments across the web. PubSubHubbub doesn’t work in this case because it uses a one-way channel. Instead, we rely on salmon’s excellent sense of smell to navigate their way back to where they came from.
  171. 171. 4 !"#$%&' 3'#$*!"#$%&' (&)*+,%#-. /01/2 5"#-6,! —6#5' Just as before, when you receive content, you want to respond to it. Salmon is one emerging, secure mechanism to push comments across the web. PubSubHubbub doesn’t work in this case because it uses a one-way channel. Instead, we rely on salmon’s excellent sense of smell to navigate their way back to where they came from.
  172. 172. 4 !"#$%&' 3'#$*!"#$%&' (&)*+,%#-. /01/2 5"#-6,! —6#5' Just as before, when you receive content, you want to respond to it. Salmon is one emerging, secure mechanism to push comments across the web. PubSubHubbub doesn’t work in this case because it uses a one-way channel. Instead, we rely on salmon’s excellent sense of smell to navigate their way back to where they came from.
  173. 173. We can also use the same mechanism to notify people when they are mentioned in posts. Think of salmon mentions as evolved trackbacks where you can now send a pingback to someone by using WebFinger to discover their salmon endpoint!
  174. 174. 4 !"#$%&' 3'#$*!"#$%&' (&)*+,%#-. /01/2 5"#-6,! —6#5' We can also use the same mechanism to notify people when they are mentioned in posts. Think of salmon mentions as evolved trackbacks where you can now send a pingback to someone by using WebFinger to discover their salmon endpoint!
  175. 175. 4 !"#$%&' 3'#$*!"#$%&' (&)*+,%#-. /01/2 5"#-6,! —6#5' '4 !"#$%&' 3'#$*!"#$%& (&)*+,%#-. /01/2 5"#-6,! —6#5' We can also use the same mechanism to notify people when they are mentioned in posts. Think of salmon mentions as evolved trackbacks where you can now send a pingback to someone by using WebFinger to discover their salmon endpoint!
  176. 176. 4 !"#$%&' 3'#$*!"#$%&' (&)*+,%#-. /01/2 5"#-6,! —6#5' #&*+%,-.#(' "#$%"&'()@ 8 ,91:"#$0 ! /&*+%,- 012)-,3),- 45647 ;<=>?! —$"-, We can also use the same mechanism to notify people when they are mentioned in posts. Think of salmon mentions as evolved trackbacks where you can now send a pingback to someone by using WebFinger to discover their salmon endpoint!
  177. 177. 2"+3"#$* !"#$@%&"''(% 2"4+)56+&#7 +89":7 )&"''(%*+,,, nst ! -./01 —:%&7+; We can also use the same mechanism to notify people when they are mentioned in posts. Think of salmon mentions as evolved trackbacks where you can now send a pingback to someone by using WebFinger to discover their salmon endpoint!
  178. 178. http://j.mp/pubsubhubbub http://activitystrea.ms http://salmon-protocol.org to learn more about these technologies, visit j.mp/pubsubhubbub, activitystrea.ms, and salmon-protocol.org
  179. 179. And so now we’ve put together three very exciting technologies and once again...
  180. 180. And so now we’ve put together three very exciting technologies and once again...
  181. 181. everyone was happy and partied all night long.
  182. 182. ...happily ever after and everyone lived happily ever after...
  183. 183. Epic-logue
  184. 184. Chapter 1 We first learned about how the problem of inter-island identity was solved with OpenID...
  185. 185. Chapter 1 We first learned about how the problem of inter-island identity was solved with OpenID...
  186. 186. Chapter 2 then we learned about how WebFinger could act as a kind of forwarding service to make it possible for people to stay in touch even aftey moved... and a secondary benefit was to make the process of using OpenID easier.
  187. 187. Chapter 3 Finally we learned about Activity Streams, Salmon, and PubSubHubbub which make it possible to share rich activities across networks, in real time, and then respond with equal fidelity.
  188. 188. Chapter 3 Finally we learned about Activity Streams, Salmon, and PubSubHubbub which make it possible to share rich activities across networks, in real time, and then respond with equal fidelity.
  189. 189. Google and the Social Web so let’s tie this back to Google and the Social Web.
  190. 190. Credit: xkcd - xkcd.com/256 At Google, we see the entire web as one big social environment, bridged by a number of open technologies....
  191. 191. Though they are still emerging and involving, Google is proud to support OpenID, WebFinger, OAuth, ActivityStreams, PubSubHubbub, and Salmon. Together these technologies represent several of the underpinning technologies that will form the foundation of the future web.
  192. 192. Though they are still emerging and involving, Google is proud to support OpenID, WebFinger, OAuth, ActivityStreams, PubSubHubbub, and Salmon. Together these technologies represent several of the underpinning technologies that will form the foundation of the future web.
  193. 193. And so that brings me to Google Buzz, Google’s latest entry into the social scene. As it turns out, all the technologies I just told you about help to power the Buzz platform. This helps frame the context for the work that Google is doing on the social web. In fact...
  194. 194. “ The idea is that someday, any host on the web should be able to implement these open protocols ... without any one company in the middle. DeWitt Clinton, Google Photo by Joi Ito Writing about Google Buzz, DeWitt Clinton said: “The idea is that someday, any host on the web should be able to implement these open protocols and send messages back and forth in real time with users from any network, without any one company in the middle.
  195. 195. “ Google Buzz will be just another node (a very good node, I hope) among many peers.” DeWitt Clinton, Google Photo by Joi Ito This is really important. The goal of Google Buzz, on one hand, is to create an excellent social experience for Google users...
  196. 196. Image from the Opte Project ...and on the other to promote the adoption and development of technologies that expand the size and participation on the social web.
  197. 197. </body> And with that... I’d like to conclude. And thank you for your attention.
  198. 198. </body> And with that... I’d like to conclude. And thank you for your attention.
  199. 199. </body> And with that... I’d like to conclude. And thank you for your attention.
  200. 200. Don’t forget to checkout out the Google Wave discussion: http://j.mp/io-googlesocial Make sure to check out the backchannel for this talk at j.mp/io-googlesocial
  201. 201. What's the hubbub about Google Buzz APIs? Chris Chabot, Marco Kaiser (Seesmic), Ming Yong (Socialwok) 1:45pm - 2:45pm in Room 8 make sure to check out Chris Chabot’s talk called “What's the hubbub about Google Buzz APIs?” featuring Loic Le Meur and Ming Yong from 1:45pm until 2:45pm in Room 8
  202. 202. Bridging the Islands: Building fluid social experiences across websites Joseph Smarr & John Panzer 3:00pm - 4:00pm in Room 9 And, for then for the code-heavy Part II of this talk, please see “Bridging the Islands” presented by Joseph Smarr and John Panzer this afternoon from 3:00pm to 4:00pm in Room 9.
  203. 203. Fireside chat with the Social Web team David Glazer, DeWitt Clinton, John Panzer, Joseph Smarr, Sami Shalabi & Todd Jackson Tomorrow (May 20) 2:15pm - 3:15pm in Fireside Chat Room Fireside chat with the Social Web team David Glazer, DeWitt Clinton, John Panzer, Joseph Smarr, Sami Shalabi & Todd Jackson Tomorrow (May 20) 2:15pm - 3:15pm in Fireside Chat Room
  204. 204. Answers & Questions Now I should have time for questions... And PLEASE COME UP TO THE MICS — and remember, a question begins with a capital letter and ends with a question mark!

×