google and the social web (mexico city dev fest 2010)

254
[email protected] @chrismessina factoryjoe.com

Upload: chris-messina

Post on 28-Jan-2015

110 views

Category:

Technology


0 download

DESCRIPTION

The slides from my talk "Google and the Social Web". A screencast of this talk is also available: http://www.vimeo.com/10958695

TRANSCRIPT

Page 1: Google and the Social Web (Mexico City Dev Fest 2010)

[email protected] • @chrismessina • factoryjoe.com

Page 2: Google and the Social Web (Mexico City Dev Fest 2010)

@chrismessina#devfest

@chris.messinabuzz.google.com/chrismessina

Hello.

Here are some useful coordinates before we begin: chris.messina on Buzz; chrismessina on Twitter.

The hashtag is #devfest

Page 3: Google and the Social Web (Mexico City Dev Fest 2010)

Google y la Web Social

Page 4: Google and the Social Web (Mexico City Dev Fest 2010)

Google Search I’m Feeling LuckyLucky

So Google is thought of by most people to be a search company. But it’s actually an information company.

Even still, there’s no reason why Google shouldn’t do more to enhance its information products with social information, helping to make more information that’s relevance, timely, and useful available to everyone.

Page 5: Google and the Social Web (Mexico City Dev Fest 2010)

Google Search I’m Feeling LuckySocial

So Google is thought of by most people to be a search company. But it’s actually an information company.

Even still, there’s no reason why Google shouldn’t do more to enhance its information products with social information, helping to make more information that’s relevance, timely, and useful available to everyone.

Page 6: Google and the Social Web (Mexico City Dev Fest 2010)

Google Search I’m Feeling LuckySocial

chris messina

So Google is thought of by most people to be a search company. But it’s actually an information company.

Even still, there’s no reason why Google shouldn’t do more to enhance its information products with social information, helping to make more information that’s relevance, timely, and useful available to everyone.

Page 7: Google and the Social Web (Mexico City Dev Fest 2010)

?

but there’s still a question about what this should really look like. And a question about the right way for Google to get involved with and help advance the social web.

Page 8: Google and the Social Web (Mexico City Dev Fest 2010)

Google Social Products

But Google has always had social products. From Google Talk to Reader to Docs...

Page 9: Google and the Social Web (Mexico City Dev Fest 2010)

Google Social Products

Google Talk Google Reader

Google Docs

But Google has always had social products. From Google Talk to Reader to Docs...

Page 10: Google and the Social Web (Mexico City Dev Fest 2010)

Google Social Products

BloggerShare your life online with a blog - it's quick, easy and free

CalendarOrganize your schedule and share events with friends

DocsCreate and share your online documents, presentations and spreadsheets

Google MailFast, searchable email with less spam

GroupsCreate mailing lists and discussion groups

OrkutMeet new people and stay in touch with friends

PicasaFind, edit and share your photos

ReaderGet all your blogs and news feeds fast

SitesCreate websites and secure group wikis

TalkIM and call your friends through your computer

TranslateView web pages in other languages

YouTubeWatch, upload and share videos

Communicate, show & share

Blog SearchFind blogs on your favorite topics

Search

EarthExplore the world from your computer

MapsView maps and directions

Web SearchSearch billions of web pages

but in fact, there’s a much broader social story at Google — it just hasn’t revealed itself with the same degree of obviousness that we see elsewhere in the industry.

Page 11: Google and the Social Web (Mexico City Dev Fest 2010)

In fact it’s important to keep in mind that Google’s original algorithm, called PageRank is Google’s original “social web” product. How so?

Page 12: Google and the Social Web (Mexico City Dev Fest 2010)

“PageRank can be thought of as a model of user behavior.”

Sergey Brin and Larry Page, 1998

Well, in the original academic paper that described PageRank, Larry and Sergey said that PageRank “can be thought of as a model of user behavior.”

Page 13: Google and the Social Web (Mexico City Dev Fest 2010)

At the time, the user model that they were describing was that of a user following links from one site to another — the “follow your nose” model of the “web of links”. From this kind of user behavior, the algorithm for PageRank was derived (click).

While that model has changed over time, the basic premise that links indicate a social signals remains relevant.

Page 14: Google and the Social Web (Mexico City Dev Fest 2010)

At the time, the user model that they were describing was that of a user following links from one site to another — the “follow your nose” model of the “web of links”. From this kind of user behavior, the algorithm for PageRank was derived (click).

While that model has changed over time, the basic premise that links indicate a social signals remains relevant.

Page 15: Google and the Social Web (Mexico City Dev Fest 2010)

At the time, the user model that they were describing was that of a user following links from one site to another — the “follow your nose” model of the “web of links”. From this kind of user behavior, the algorithm for PageRank was derived (click).

While that model has changed over time, the basic premise that links indicate a social signals remains relevant.

Page 16: Google and the Social Web (Mexico City Dev Fest 2010)

The signals that were once embedded in static HTML pages that could be crawled at one’s leisure are now predominantly being shared in social streams. And more importantly, the make up of social streams differs per person — which leads to an incredible opportunity to improve personalization and the relevance of search results.

Page 17: Google and the Social Web (Mexico City Dev Fest 2010)

The signals that were once embedded in static HTML pages that could be crawled at one’s leisure are now predominantly being shared in social streams. And more importantly, the make up of social streams differs per person — which leads to an incredible opportunity to improve personalization and the relevance of search results.

Page 18: Google and the Social Web (Mexico City Dev Fest 2010)

and so google can use those signals to personalize your search results, as they do with the social circle feature.

Page 19: Google and the Social Web (Mexico City Dev Fest 2010)

and so google can use those signals to personalize your search results, as they do with the social circle feature.

Page 20: Google and the Social Web (Mexico City Dev Fest 2010)

which brings us to Buzz, Google’s latest baby entry into the social web.

Page 21: Google and the Social Web (Mexico City Dev Fest 2010)

This is what Buzz looks like in Gmail, in case you haven’t seen it.

Page 22: Google and the Social Web (Mexico City Dev Fest 2010)

it also gives you a nice way to interact with media right from within buzz.

Page 23: Google and the Social Web (Mexico City Dev Fest 2010)

Announcing Buzz This Buttons

Page 24: Google and the Social Web (Mexico City Dev Fest 2010)
Page 25: Google and the Social Web (Mexico City Dev Fest 2010)
Page 26: Google and the Social Web (Mexico City Dev Fest 2010)
Page 27: Google and the Social Web (Mexico City Dev Fest 2010)
Page 28: Google and the Social Web (Mexico City Dev Fest 2010)
Page 29: Google and the Social Web (Mexico City Dev Fest 2010)
Page 30: Google and the Social Web (Mexico City Dev Fest 2010)
Page 31: Google and the Social Web (Mexico City Dev Fest 2010)

http://j.mp/buzz-this-api

Page 32: Google and the Social Web (Mexico City Dev Fest 2010)

Google Buzz and the social web

Page 33: Google and the Social Web (Mexico City Dev Fest 2010)

“ The best way to get a sense of where the Buzz API is heading is to take a look at http://code.google.com/apis/buzz/. You'll notice that the “coming soon” section mentions a ton of protocols—Activity Streams, Atom, AtomPub, MediaRSS, WebFinger, PubSubHubbub, Salmon, OAuth, XFN, etc.

DeWitt Clinton, Google

Photo by Joi Ito

“The best way to get a sense of where the Buzz API is heading is to take a look at http://code.google.com/apis/buzz/. You'll notice that the “coming soon” section mentions a ton of protocols—Activity Streams, Atom, AtomPub, MediaRSS, WebFinger, PubSubHubbub, Salmon, OAuth, XFN, etc.

Page 34: Google and the Social Web (Mexico City Dev Fest 2010)

“ What it doesn't talk much about is Google. That's because the goal isn't Google specific at all. 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.

DeWitt Clinton, Google

Photo by Joi Ito

“What it doesn't talk much about is Google. That's because the goal isn't Google specific at all. 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.

Page 35: Google and the Social Web (Mexico City Dev Fest 2010)

“ What it doesn't talk much about is Google. That's because the goal isn't Google specific at all. 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.

DeWitt Clinton, Google

Photo by Joi Ito

“What it doesn't talk much about is Google. That's because the goal isn't Google specific at all. 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.

Page 36: Google and the Social Web (Mexico City Dev Fest 2010)

“ The web contains the social graph, the protocols are standard web protocols, the messages can contain whatever crazy stuff people think to put in them. Google Buzz will be just another node (a very good node, I hope) among many peers.”

DeWitt Clinton, Google

Photo by Joi Ito

“The web contains the social graph, the protocols are standard web protocols, the messages can contain whatever crazy stuff people think to put in them. Google Buzz will be just another node (a very good node, I hope) among many peers.”

Page 37: Google and the Social Web (Mexico City Dev Fest 2010)

“ The web contains the social graph, the protocols are standard web protocols, the messages can contain whatever crazy stuff people think to put in them. 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, while on the one hand is create an excellent social experience on the web, is also to adopt and make use of technologies that expand the size and participation on the social web.

Page 38: Google and the Social Web (Mexico City Dev Fest 2010)

What is the social web?

Page 39: Google and the Social Web (Mexico City Dev Fest 2010)

Image from the Opte Project

So if this is the web, it’s important to understand that the goal is NOT for Google to own the web. On the contrary... [CLICK]

Page 40: Google and the Social Web (Mexico City Dev Fest 2010)

Image from the Opte Project

{ }So if this is the web, it’s important to understand that the goal is NOT for Google to own the web. On the contrary... [CLICK]

Page 41: Google and the Social Web (Mexico City Dev Fest 2010)

Image from the Opte Project

{ }So if this is the web, it’s important to understand that the goal is NOT for Google to own the web. On the contrary... [CLICK]

Page 42: Google and the Social Web (Mexico City Dev Fest 2010)

Image from the Opte Project

So if this is the web, it’s important to understand that the goal is NOT for Google to own the web. On the contrary... [CLICK]

Page 43: Google and the Social Web (Mexico City Dev Fest 2010)

Image from the Opte Project

the goal is for there to be many different players on the open web, providing choice for people, and competing to offer the best services around.

And this isn’t just for the bigger or more popular services. The goal is for a much larger, more interconnected social web to grow larger.

Page 44: Google and the Social Web (Mexico City Dev Fest 2010)

Image from the Opte Project

the goal is for there to be many different players on the open web, providing choice for people, and competing to offer the best services around.

And this isn’t just for the bigger or more popular services. The goal is for a much larger, more interconnected social web to grow larger.

Page 45: Google and the Social Web (Mexico City Dev Fest 2010)

Image from the Opte Project

the goal is for there to be many different players on the open web, providing choice for people, and competing to offer the best services around.

And this isn’t just for the bigger or more popular services. The goal is for a much larger, more interconnected social web to grow larger.

Page 46: Google and the Social Web (Mexico City Dev Fest 2010)

The web is better when it’s social

The web is better when it’s social.

And that means that we want to make sure that every page and site on the web can offer social functionality, and compelling social experiences.

Page 47: Google and the Social Web (Mexico City Dev Fest 2010)

What do I mean by social?

it’s about enabling new verbs on the web... verbs like follow, share, discuss, comment, mention, like, rate,

Page 48: Google and the Social Web (Mexico City Dev Fest 2010)

I saw this in a local supermarket back home in San Francisco.

I’ve seen similar signs all over the Mission, where I live.

Page 49: Google and the Social Web (Mexico City Dev Fest 2010)

This is where the social web begins — an invitation from the real world to join others online.

But the social web is about much more. However...

Page 50: Google and the Social Web (Mexico City Dev Fest 2010)

“Find us on Facebook”

“Follow us on Twitter”

This is where the social web begins — an invitation from the real world to join others online.

But the social web is about much more. However...

Page 51: Google and the Social Web (Mexico City Dev Fest 2010)

Engagement & interaction

This is where the social web begins — an invitation from the real world to join others online.

But the social web is about much more. However...

Page 52: Google and the Social Web (Mexico City Dev Fest 2010)

Source: groundswell.forrester.com

Participating

Consuming

...current trends indicate a 1-10-90 (the math doesn’t add up, no) split on creators, commentors, and consumers.

our challenge is to flip that trend [CLICK] — to help people feel more comfortable sharing online.

Page 53: Google and the Social Web (Mexico City Dev Fest 2010)

Source: groundswell.forrester.com

Participating

Consuming

...current trends indicate a 1-10-90 (the math doesn’t add up, no) split on creators, commentors, and consumers.

our challenge is to flip that trend [CLICK] — to help people feel more comfortable sharing online.

Page 54: Google and the Social Web (Mexico City Dev Fest 2010)

Google has developed OpenSocial and Friend Connect with that challenge in mind... and has found some positive successes.

But we’re not done yet. In fact, I’d argue that we’re just getting started.

Page 55: Google and the Social Web (Mexico City Dev Fest 2010)

• There are 40 or more active OpenSocial containers

• ...representing 820 million users worldwide (June 2009)

• 15,000 OpenSocial applications running on these social networks

• 315M+ app installs across these social networks

Google has developed OpenSocial and Friend Connect with that challenge in mind... and has found some positive successes.

But we’re not done yet. In fact, I’d argue that we’re just getting started.

Page 56: Google and the Social Web (Mexico City Dev Fest 2010)

• Tens of thousands of sites and millions of blogs are using Friend Connect, and these numbers continue to grow.

• 9 million 30-day-active friend connected sites (December 2009)

• 160,000 joins/day (which is >1/second) (December 2009)

• There are 40 or more active OpenSocial containers

• ...representing 820 million users worldwide (June 2009)

• 15,000 OpenSocial applications running on these social networks

• 315M+ app installs across these social networks

Google has developed OpenSocial and Friend Connect with that challenge in mind... and has found some positive successes.

But we’re not done yet. In fact, I’d argue that we’re just getting started.

Page 57: Google and the Social Web (Mexico City Dev Fest 2010)

OpenSocial, Friend Connect, and the middleS

ite C

ompl

exity

Long tail

The way I see it, Google has already invested a considerable amount of resources working with partners to develop technology for the head of the tail — the OpenSocial “containers”.

Google has also worked hard on Google Friend Connect.

It’s the middle here that we’re looking at working on now — whose needs will be covered by a series of emerging, open building blocks that we call the “social stack”.

Page 58: Google and the Social Web (Mexico City Dev Fest 2010)

OpenSocial, Friend Connect, and the middleS

ite C

ompl

exity

Long tail

The way I see it, Google has already invested a considerable amount of resources working with partners to develop technology for the head of the tail — the OpenSocial “containers”.

Google has also worked hard on Google Friend Connect.

It’s the middle here that we’re looking at working on now — whose needs will be covered by a series of emerging, open building blocks that we call the “social stack”.

Page 59: Google and the Social Web (Mexico City Dev Fest 2010)

OpenSocial, Friend Connect, and the middleS

ite C

ompl

exity

Long tail

The way I see it, Google has already invested a considerable amount of resources working with partners to develop technology for the head of the tail — the OpenSocial “containers”.

Google has also worked hard on Google Friend Connect.

It’s the middle here that we’re looking at working on now — whose needs will be covered by a series of emerging, open building blocks that we call the “social stack”.

Page 60: Google and the Social Web (Mexico City Dev Fest 2010)

Social Stack

OpenSocial, Friend Connect, and the middleS

ite C

ompl

exity

Long tail

The way I see it, Google has already invested a considerable amount of resources working with partners to develop technology for the head of the tail — the OpenSocial “containers”.

Google has also worked hard on Google Friend Connect.

It’s the middle here that we’re looking at working on now — whose needs will be covered by a series of emerging, open building blocks that we call the “social stack”.

Page 61: Google and the Social Web (Mexico City Dev Fest 2010)

Social Stack

OpenSocial, Friend Connect, and the middleS

ite C

ompl

exity

Long tail

The way I see it, Google has already invested a considerable amount of resources working with partners to develop technology for the head of the tail — the OpenSocial “containers”.

Google has also worked hard on Google Friend Connect.

It’s the middle here that we’re looking at working on now — whose needs will be covered by a series of emerging, open building blocks that we call the “social stack”.

Page 62: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

Here’s how.

Page 63: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile

Here’s how.

Page 64: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts

Here’s how.

Page 65: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities

Here’s how.

Page 66: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities• Connect

Here’s how.

Page 67: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities• Connect

The Glue

Here’s how.

Page 68: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities• Connect

The Glue• Email-style Identifiers (WebFinger)

Here’s how.

Page 69: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities• Connect

The Glue• Email-style Identifiers (WebFinger)• Service Discovery (LRDD)

Here’s how.

Page 70: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities• Connect

The Glue• Email-style Identifiers (WebFinger)• Service Discovery (LRDD)• Service Authorization (OAuth)

Here’s how.

Page 71: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities• Connect

The Glue• Email-style Identifiers (WebFinger)• Service Discovery (LRDD)• Service Authorization (OAuth)• Distributed Conversations (Salmon)

Here’s how.

Page 72: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities• Connect

The Glue• Email-style Identifiers (WebFinger)• Service Discovery (LRDD)• Service Authorization (OAuth)• Distributed Conversations (Salmon)• Real-time Publishing (PubSubHubbub)

Here’s how.

Page 73: Google and the Social Web (Mexico City Dev Fest 2010)

Social Building Blocks

Page 74: Google and the Social Web (Mexico City Dev Fest 2010)

Identity & Profile OpenID

Page 75: Google and the Social Web (Mexico City Dev Fest 2010)
Page 76: Google and the Social Web (Mexico City Dev Fest 2010)

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.

Page 77: Google and the Social Web (Mexico City Dev Fest 2010)

Why is OpenID important?

* People use different identities for different purposes* Ultimately choice and competition is a good thing to foster in this early landscape.* With greater diversity of providers, publishers may see the potential for wider distribution of shareable content.* Digital identity is in its infancy now; the final chapter has not yet been written.

Page 78: Google and the Social Web (Mexico City Dev Fest 2010)

Why is OpenID important?

• People use different identities for different purposes

* People use different identities for different purposes* Ultimately choice and competition is a good thing to foster in this early landscape.* With greater diversity of providers, publishers may see the potential for wider distribution of shareable content.* Digital identity is in its infancy now; the final chapter has not yet been written.

Page 79: Google and the Social Web (Mexico City Dev Fest 2010)

Why is OpenID important?

• People use different identities for different purposes• Ultimately choice and competition is a good thing to foster in this early landscape.

* People use different identities for different purposes* Ultimately choice and competition is a good thing to foster in this early landscape.* With greater diversity of providers, publishers may see the potential for wider distribution of shareable content.* Digital identity is in its infancy now; the final chapter has not yet been written.

Page 80: Google and the Social Web (Mexico City Dev Fest 2010)

Why is OpenID important?

• People use different identities for different purposes• Ultimately choice and competition is a good thing to foster in this early landscape.

• With greater diversity of providers, publishers may see the potential for wider distribution of shareable content.

* People use different identities for different purposes* Ultimately choice and competition is a good thing to foster in this early landscape.* With greater diversity of providers, publishers may see the potential for wider distribution of shareable content.* Digital identity is in its infancy now; the final chapter has not yet been written.

Page 81: Google and the Social Web (Mexico City Dev Fest 2010)

Why is OpenID important?

• People use different identities for different purposes• Ultimately choice and competition is a good thing to foster in this early landscape.

• With greater diversity of providers, publishers may see the potential for wider distribution of shareable content.

• Digital identity is in its infancy now; the final chapter has not yet been written.

* People use different identities for different purposes* Ultimately choice and competition is a good thing to foster in this early landscape.* With greater diversity of providers, publishers may see the potential for wider distribution of shareable content.* Digital identity is in its infancy now; the final chapter has not yet been written.

Page 82: Google and the Social Web (Mexico City Dev Fest 2010)

Now, unfortunately this is what OpenID often looks like today.

Page 83: Google and the Social Web (Mexico City Dev Fest 2010)

when people really just want this.

their goal is to get access to their account

To be fair, this is merely an uncomfortable transitional step along a much longer path towards open identity on the web. it is a means to an end, but not the end that we seek.

Page 84: Google and the Social Web (Mexico City Dev Fest 2010)

when people really just want this.

their goal is to get access to their account

To be fair, this is merely an uncomfortable transitional step along a much longer path towards open identity on the web. it is a means to an end, but not the end that we seek.

Page 85: Google and the Social Web (Mexico City Dev Fest 2010)

so this interface — with all these buttons, is what we call the “NASCAR”, which is named after the cars in the popular american racing sport.

Page 86: Google and the Social Web (Mexico City Dev Fest 2010)

Photo by Timothy Vogel

the result is what we call the “OpenID NASCAR” where everyone wants their brand shown on login forms....

But it’s this way for an important reason. People want — and exercise — choice when logging in.

Page 87: Google and the Social Web (Mexico City Dev Fest 2010)

Contextual identity

And as more relying parties come online, it’s increasing important that there is choice in identity providers.

For example, the OpenID that you might want to use to sign in to Basecamp may be different from the one that you want to use to sign in to Lady Gaga’s website.

And that idea proves out in case after case.

Page 88: Google and the Social Web (Mexico City Dev Fest 2010)

As of July 1, 2009Unique OpenID Relying Parties

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.

Page 89: Google and the Social Web (Mexico City Dev Fest 2010)

As of July 1, 2009

10/05 1/0

64/0

67/0

610

/06 1/07

4/07

7/07

10/07 1/0

84/0

87/0

810

/08 1/09

7/09

0

10,000

20,000

30,000

40,000

50,000

Unique OpenID Relying Parties

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.

Page 90: Google and the Social Web (Mexico City Dev Fest 2010)

As of July 1, 2009

10/05 1/0

64/0

67/0

610

/06 1/07

4/07

7/07

10/07 1/0

84/0

87/0

810

/08 1/09

7/09

0

10,000

20,000

30,000

40,000

50,000

Unique OpenID Relying Parties

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.

Page 91: Google and the Social Web (Mexico City Dev Fest 2010)

Companies that have adopted OpenID

So who’s actually adopted OpenID?

Well, as that chart suggests, there’s a lot of folks out there. And there are more coming online everyday.

Page 92: Google and the Social Web (Mexico City Dev Fest 2010)

Companies that have adopted OpenID

So who’s actually adopted OpenID?

Well, as that chart suggests, there’s a lot of folks out there. And there are more coming online everyday.

Page 93: Google and the Social Web (Mexico City Dev Fest 2010)

OpenID Usage Trends

This is some data from a company called Janrain that makes a product called RPX which makes it easy to integrate third-party authentication services.

Page 94: Google and the Social Web (Mexico City Dev Fest 2010)

UserVoice ProvidersOpenID usage trends

1%1%1%2%

4%

9%

13%

19%

52%

Google Facebook Yahoo!MyOpenID Other AOLVeriSign PIP Blogger ClaimID

Chart from Janrain, January 2009

I want you to look at these graphs very carefully. Each color represents a different identity provider.

Page 95: Google and the Social Web (Mexico City Dev Fest 2010)

Interscope Records ProvidersOpenID usage trends

24%

2% 0%1%

19%

43%

12%

Google Facebook Yahoo! MyOpenIDOther AOL MySpace

Chart from Janrain, January 2009

...and on each site, people use different identity providers depending on the context.

INTERSCOPE — Facebook, MySpace, Yahoo, Google

Page 96: Google and the Social Web (Mexico City Dev Fest 2010)

sulit.com.ph ProvidersOpenID usage trends

0%1%

1%

10%

24%

64%

Yahoo! Google Facebook MySpaceAOL Other

Chart from Janrain, January 2009

Especially when you’re thinking about an international audience, everything changes.

Yahoo, Google, Facebook

Page 97: Google and the Social Web (Mexico City Dev Fest 2010)

Sign in preferences across all Janrain propertiesOpenID usage trends

18.3%

6.3%11.4%

26.6%

37.4%

GoogleFacebookYahoo!TwitterOther (MySpace, Windows Live, AOL, etc)

Chart from Janrain, April 2009

Especially when you’re thinking about an international audience, everything changes.

Page 98: Google and the Social Web (Mexico City Dev Fest 2010)

Making OpenID easier

one of the challenges of OpenID has been figuring out how to make OpenID easier.

One of the biggest challenges is helping people to know what their OpenID is and to remember it.

Page 99: Google and the Social Web (Mexico City Dev Fest 2010)

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 100: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 101: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 102: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 103: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?• What’s your email address?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 104: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?• What’s your email address?• What’s your MySpace?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 105: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?• What’s your email address?• What’s your MySpace?• Twitter?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 106: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?• What’s your email address?• What’s your MySpace?• Twitter?• Are you on Facebook?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 107: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?• What’s your email address?• What’s your MySpace?• Twitter?• Are you on Facebook?• What’s your Gmail?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 108: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?• What’s your email address?• What’s your MySpace?• Twitter?• Are you on Facebook?• What’s your Gmail?• What’s your OpenID?

people can remember their address, their phone number, AOL screenname, email, MySpace... Twitter... Facebook? Gmail...? OpenID?

Page 109: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?• What’s your email address?• What’s your MySpace?• Twitter?• Are you on Facebook?• What’s your Gmail?• What’s your OpenID?• What’s your OpenID?

turns out that email addresses seem to be much more universal and memorable than an “OpenID”, and so the OpenID community has been working on ways to make it possible to use an email address as a way to bootstrap the OpenID authentication process. (more on that later)

Page 110: Google and the Social Web (Mexico City Dev Fest 2010)

• What’s your address?• What’s your phone number?• What’s your AOL screenname?• What’s your email address?• What’s your MySpace?• Twitter?• Are you on Facebook?• What’s your Gmail?• What’s your OpenID?

• What’s your email address?

turns out that email addresses seem to be much more universal and memorable than an “OpenID”, and so the OpenID community has been working on ways to make it possible to use an email address as a way to bootstrap the OpenID authentication process. (more on that later)

Page 111: Google and the Social Web (Mexico City Dev Fest 2010)

which brings us to WebFinger.

Page 112: Google and the Social Web (Mexico City Dev Fest 2010)

WebFinger

which brings us to WebFinger.

Page 113: Google and the Social Web (Mexico City Dev Fest 2010)

Discovery for the open webThe Hammer Stack

WebFinger relies on an emerging set of technologies and formats that together we call “The Hammer Stack”

Page 114: Google and the Social Web (Mexico City Dev Fest 2010)

How WebFinger works

ConnectEmailEnter email:

Page 117: Google and the Social Web (Mexico City Dev Fest 2010)

Discovering a user’s WebFinger profileHow WebFinger works

[email protected]

So here’s the identifier that the user supplied. We take it and split it at the @ symbol, and use host-meta to pull the user’s WebFinger.

Page 118: Google and the Social Web (Mexico City Dev Fest 2010)

Discovering a user’s WebFinger profileHow WebFinger works

[email protected]{local account

So here’s the identifier that the user supplied. We take it and split it at the @ symbol, and use host-meta to pull the user’s WebFinger.

Page 119: Google and the Social Web (Mexico City Dev Fest 2010)

Discovering a user’s WebFinger profileHow WebFinger works

[email protected]{

realm

So here’s the identifier that the user supplied. We take it and split it at the @ symbol, and use host-meta to pull the user’s WebFinger.

Page 120: Google and the Social Web (Mexico City Dev Fest 2010)

Discovering a user’s WebFinger profileHow WebFinger works

[email protected]{

realm

So here’s the identifier that the user supplied. We take it and split it at the @ symbol, and use host-meta to pull the user’s WebFinger.

Page 121: Google and the Social Web (Mexico City Dev Fest 2010)

Use host meta to retrieve an LRDD documentHow WebFinger works

$curl http://gmail.com/.well-known/host-meta

Page 122: Google and the Social Web (Mexico City Dev Fest 2010)

Use host meta to retrieve an LRDD documentHow WebFinger works

$curl http://gmail.com/.well-known/host-meta

Page 123: Google and the Social Web (Mexico City Dev Fest 2010)

Use host meta to retrieve an LRDD documentHow WebFinger works

$curl http://gmail.com/.well-known/host-meta

Page 125: Google and the Social Web (Mexico City Dev Fest 2010)

Server returns LRDD documentHow WebFinger works

<?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>

Page 126: Google and the Social Web (Mexico City Dev Fest 2010)

Plugin acct: into URI TemplateHow WebFinger works

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.

Page 127: Google and the Social Web (Mexico City Dev Fest 2010)

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}

[email protected]

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.

Page 128: Google and the Social Web (Mexico City Dev Fest 2010)

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}

acct:[email protected]

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.

Page 129: Google and the Social Web (Mexico City Dev Fest 2010)

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}acct:[email protected]

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.

Page 130: Google and the Social Web (Mexico City Dev Fest 2010)

Plugin acct: into URI TemplateHow WebFinger works

http://www.google.com/s2/webfinger/?q={uri}acct:[email protected]

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.

Page 131: Google and the Social Web (Mexico City Dev Fest 2010)

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/[email protected]

Page 132: Google and the Social Web (Mexico City Dev Fest 2010)

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/[email protected]

Page 133: Google and the Social Web (Mexico City Dev Fest 2010)

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/[email protected]

Page 134: Google and the Social Web (Mexico City Dev Fest 2010)

XRD ProfileHow WebFinger works

<?xml version='1.0'?><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>" <Subject>acct:[email protected]</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.

Page 135: Google and the Social Web (Mexico City Dev Fest 2010)

XRD ProfileHow WebFinger works

<?xml version='1.0'?><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>" <Subject>acct:[email protected]</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.

Page 136: Google and the Social Web (Mexico City Dev Fest 2010)

XRD ProfileHow WebFinger works

<?xml version='1.0'?><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>" <Subject>acct:[email protected]</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>

<Link rel='http://specs.openid.net/auth/2.0/provider' href='http://www.google.com/profiles/chris.messina'/>

from here I can grab any service that I need.

Page 137: Google and the Social Web (Mexico City Dev Fest 2010)

Putting it all together

ConnectEmailEnter email:

so let’s go back to the beginning of this flow.

Page 138: Google and the Social Web (Mexico City Dev Fest 2010)

Putting it all together

[email protected] email:

so let’s go back to the beginning of this flow.

Page 139: Google and the Social Web (Mexico City Dev Fest 2010)

Putting it all together

[email protected] email:

so let’s go back to the beginning of this flow.

Page 140: Google and the Social Web (Mexico City Dev Fest 2010)

OpenID AuthenticationPutting it all together

presuming I’m already logged in, I’ll be taken to a page like this, where I can click on button to sign in.

Page 141: Google and the Social Web (Mexico City Dev Fest 2010)

Easier sign-in using emailPutting it all together

Signed in as: Chris Messina

Page 142: Google and the Social Web (Mexico City Dev Fest 2010)

Easier sign-in using emailPutting it all together

Signed in as: Chris Messina

Page 143: Google and the Social Web (Mexico City Dev Fest 2010)

http://openid.nethttp://webfinger.info

to learn more, this is where it all happens.

Page 144: Google and the Social Web (Mexico City Dev Fest 2010)

Friends & ContactsPortable Contacts & OAuth

Page 145: Google and the Social Web (Mexico City Dev Fest 2010)

This is my social graph — a view of my connections and relationships.

Page 146: Google and the Social Web (Mexico City Dev Fest 2010)

now say that I find some new site that I want to sign up for and try out...

let’s say that site is Blippy, a website that allows you to see and discuss you and your friends’ shopping habits. but say I don’t want to use my Twitter or Facebook account to sign up — not yet.

Page 147: Google and the Social Web (Mexico City Dev Fest 2010)

now say that I find some new site that I want to sign up for and try out...

let’s say that site is Blippy, a website that allows you to see and discuss you and your friends’ shopping habits. but say I don’t want to use my Twitter or Facebook account to sign up — not yet.

Page 148: Google and the Social Web (Mexico City Dev Fest 2010)

when I arrive at my profile, you’ll see that it’s pretty bleak.

The problem, as you can see (CLICK) is that I’m not following anyone on this service. Of course to get the benefits from this service, I need to add friends...

Page 149: Google and the Social Web (Mexico City Dev Fest 2010)

when I arrive at my profile, you’ll see that it’s pretty bleak.

The problem, as you can see (CLICK) is that I’m not following anyone on this service. Of course to get the benefits from this service, I need to add friends...

Page 150: Google and the Social Web (Mexico City Dev Fest 2010)

I could try searching for my friends, but that’s timely and I really don’t want to be bothered.

Page 151: Google and the Social Web (Mexico City Dev Fest 2010)

?

I could try searching for my friends, but that’s timely and I really don’t want to be bothered.

Page 152: Google and the Social Web (Mexico City Dev Fest 2010)

So how do I bring my social graph that I store and maintain on another site into Blippy?

Page 153: Google and the Social Web (Mexico City Dev Fest 2010)

?

So how do I bring my social graph that I store and maintain on another site into Blippy?

Page 154: Google and the Social Web (Mexico City Dev Fest 2010)

Well, the obvious thing is import my address book and see which of my friends is already on the site...

However, the last thing that you want to do is ask for a user’s password. That’s information that should only be shared between the user and their provider.

Fortunately, there’s an alternative that’s gaining widespread adoption.

Page 155: Google and the Social Web (Mexico City Dev Fest 2010)

Well, the obvious thing is import my address book and see which of my friends is already on the site...

However, the last thing that you want to do is ask for a user’s password. That’s information that should only be shared between the user and their provider.

Fortunately, there’s an alternative that’s gaining widespread adoption.

Page 156: Google and the Social Web (Mexico City Dev Fest 2010)

it’s just a bad idea. don’t do it, [CLICK]

Page 157: Google and the Social Web (Mexico City Dev Fest 2010)

marshallkMarshall Kirkpatrick

and don’t betray your users.

Page 158: Google and the Social Web (Mexico City Dev Fest 2010)

anyway, the answer to the question of how to get the address book into Blippy safely? [CLICK]

Portable Contacts.

Page 159: Google and the Social Web (Mexico City Dev Fest 2010)

?

anyway, the answer to the question of how to get the address book into Blippy safely? [CLICK]

Portable Contacts.

Page 160: Google and the Social Web (Mexico City Dev Fest 2010)

Portable Contacts!

anyway, the answer to the question of how to get the address book into Blippy safely? [CLICK]

Portable Contacts.

Page 161: Google and the Social Web (Mexico City Dev Fest 2010)

Portable Contacts Primer{  "startIndex": 10,  "itemsPerPage": 10,  "totalResults": 12,    {      "id": "703887",      "displayName": "Mark Hashimoto",      "name": {        "familyName": "Hashimoto",        "givenName": "Mark"      },      "birthday": "0000-01-16",      "gender": "male",      "drinker": "heavily",      "tags": [        "plaxo guy"      ],      "emails": [        {          "value": "[email protected]",          "type": "work",          "primary": "true"        },        {          "value": "[email protected]",          "type": "home"        }      ],      "urls": [        {          "value": "http://www.seeyellow.com",          "type": "work"        },

...}

So what does Portable Contacts look like? Your typical JSON feed...

Page 162: Google and the Social Web (Mexico City Dev Fest 2010)

Typical ResponsePortable Contacts Primer

{{

      "id": "1",      "name": "Chris Messina",      "urls": [        { "value": "http://factoryjoe.com/blog", "type": "blog" }      ]    },    {      "id": "2",      "name": "Joseph Smarr",      "emails": [        { "value": "[email protected]", "type": "work", "primary": "true" },        { "value": "[email protected]", "type": "home" }      ],    }}

with some handy filtering abilities.

So you take a basic PoCo snippet like this and tweak your API call...

Page 163: Google and the Social Web (Mexico City Dev Fest 2010)

{    {      "id": "1",      "name": "Chris Messina",      "urls": [        { "value": "http://factoryjoe.com/blog", "type": "blog" }      ]    },    {      "id": "2",      "name": "Joseph Smarr",      "emails": [        { "value": "[email protected]", "type": "work", "primary": "true" },        { "value": "[email protected]", "type": "home" }      ],    }}

filterBy=name&filterOp=startswith&filterValue=ChrPortable Contacts Primer

and you’ll get this..

Page 164: Google and the Social Web (Mexico City Dev Fest 2010)

filterBy=name&filterOp=contacts&filterValue=plaxo.comPortable Contacts Primer

{    {      "id": "1",      "name": "Chris Messina",      "urls": [        { "value": "http://factoryjoe.com/blog", "type": "blog" }      ]    },    {      "id": "2",      "name": "Joseph Smarr",      "emails": [        { "value": "[email protected]", "type": "work", "primary": "true" },        { "value": "[email protected]", "type": "home" }      ],    }}

change it again, and you’ll get this.

Page 165: Google and the Social Web (Mexico City Dev Fest 2010)

So let’s go back to Blippy. Say I want to import my address book, but this time, let’s get rid of my password (CLICK).

Using Portable Contacts, this can be as easy as a single click.

Page 166: Google and the Social Web (Mexico City Dev Fest 2010)

So let’s go back to Blippy. Say I want to import my address book, but this time, let’s get rid of my password (CLICK).

Using Portable Contacts, this can be as easy as a single click.

Page 167: Google and the Social Web (Mexico City Dev Fest 2010)

Blippy.com

Blippy.com is asking for some information from your Google Account

So let’s go back to Blippy. Say I want to import my address book, but this time, let’s get rid of my password (CLICK).

Using Portable Contacts, this can be as easy as a single click.

Page 168: Google and the Social Web (Mexico City Dev Fest 2010)

Following56

and here we are — back in the app with activity without needing to manually find my friends.

Page 169: Google and the Social Web (Mexico City Dev Fest 2010)

http://portablecontacts.net

you can learn more at portablecontacts.net.

Page 170: Google and the Social Web (Mexico City Dev Fest 2010)

Now, the secret behind this is called OAuth.

How many people are familiar with OAuth?

Page 171: Google and the Social Web (Mexico City Dev Fest 2010)

Now, the secret behind this is called OAuth.

How many people are familiar with OAuth?

Page 172: Google and the Social Web (Mexico City Dev Fest 2010)

Photo by Damian Morys

Think of OAuth like your valet key for the web.

Page 173: Google and the Social Web (Mexico City Dev Fest 2010)

On the desktop

let’s take a look at how OAuth works on the desktop using the Yammer Adobe Air app.

Page 174: Google and the Social Web (Mexico City Dev Fest 2010)

when you launch the app for the first time, you’ll be asked to authorize access to your data.

Page 175: Google and the Social Web (Mexico City Dev Fest 2010)

the app will launch a page like this in your browser and you click authorize.

Page 176: Google and the Social Web (Mexico City Dev Fest 2010)

the app will launch a page like this in your browser and you click authorize.

Page 177: Google and the Social Web (Mexico City Dev Fest 2010)

4D56

next you’re given a special code to prevent what’s called “session fixation attack”.

Page 178: Google and the Social Web (Mexico City Dev Fest 2010)

return to the app and enter the code

Page 179: Google and the Social Web (Mexico City Dev Fest 2010)

and now you’ve granted access to the desktop app without needing to provide your password.

Page 180: Google and the Social Web (Mexico City Dev Fest 2010)

On the web

Page 181: Google and the Social Web (Mexico City Dev Fest 2010)
Page 182: Google and the Social Web (Mexico City Dev Fest 2010)
Page 183: Google and the Social Web (Mexico City Dev Fest 2010)

Friendfeed

Friendfeed.com is asking for some information from your Google Account

Page 184: Google and the Social Web (Mexico City Dev Fest 2010)

Now I’m signed in, and my contacts have already been brought in with a simple click.

Very simple, especially if I’m already signed in to my Google account.

Page 185: Google and the Social Web (Mexico City Dev Fest 2010)

On mobile

Page 186: Google and the Social Web (Mexico City Dev Fest 2010)

Start out with an iPhone app call FlightTrackPro.

Page 187: Google and the Social Web (Mexico City Dev Fest 2010)

now this app syncs with your TripIt account. So here we are in the app, and we need to login to connect to our TripIt account. We click login...

Page 188: Google and the Social Web (Mexico City Dev Fest 2010)

now this app syncs with your TripIt account. So here we are in the app, and we need to login to connect to our TripIt account. We click login...

Page 189: Google and the Social Web (Mexico City Dev Fest 2010)

and we’re taken into Safari, where we sign in through the web browser.

Page 190: Google and the Social Web (Mexico City Dev Fest 2010)

[email protected]

••••••••

and we’re taken into Safari, where we sign in through the web browser.

Page 191: Google and the Social Web (Mexico City Dev Fest 2010)

We see an access request... and scrolling down

Page 192: Google and the Social Web (Mexico City Dev Fest 2010)

we see that we can Grant Access here. Note that all the permissions are spelled out simply here.

Page 193: Google and the Social Web (Mexico City Dev Fest 2010)

we see that we can Grant Access here. Note that all the permissions are spelled out simply here.

Page 194: Google and the Social Web (Mexico City Dev Fest 2010)

If we grant access, Safari fades out, bringing the app back into focus.

Page 195: Google and the Social Web (Mexico City Dev Fest 2010)

and voila, with OAuth, FlightTrackPro now has access to our trips.

Since FlightTrack Pro isn’t owned by TripIt, I never had to give my password to FlightTrack Pro.

Page 196: Google and the Social Web (Mexico City Dev Fest 2010)

http://oauth.net

you can learn more at oauth.net

Page 197: Google and the Social Web (Mexico City Dev Fest 2010)

ActivitiesActivityStreams

Page 198: Google and the Social Web (Mexico City Dev Fest 2010)

1999

RSS 0.9 was introduced in 1999 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.

Page 199: Google and the Social Web (Mexico City Dev Fest 2010)

so, you’d have someone like the NYTimes wanting to grow their online audience...

Page 200: Google and the Social Web (Mexico City Dev Fest 2010)

...and they’d use RSS to get their content into the Netscape portal.

Page 201: Google and the Social Web (Mexico City Dev Fest 2010)

Copyright 2000 ZWave, LLC

...and they’d use RSS to get their content into the Netscape portal.

Page 202: Google and the Social Web (Mexico City Dev Fest 2010)

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.

Page 203: Google and the Social Web (Mexico City Dev Fest 2010)

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)

Page 204: Google and the Social Web (Mexico City Dev Fest 2010)

2005

this in 2005, a group of people got together to create a “better specified” syndication format called Atom.

Page 205: Google and the Social Web (Mexico City Dev Fest 2010)

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.

Page 206: Google and the Social Web (Mexico City Dev Fest 2010)

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.

Page 207: Google and the Social Web (Mexico City Dev Fest 2010)

even still, this format was really still designed for the case of syndicating ARTICLES into PORTALS.

Page 208: Google and the Social Web (Mexico City Dev Fest 2010)

Copyright 2000 ZWave, LLC

even still, this format was really still designed for the case of syndicating ARTICLES into PORTALS.

Page 209: Google and the Social Web (Mexico City Dev Fest 2010)

2010

Page 210: Google and the Social Web (Mexico City Dev Fest 2010)

so, you take an article like this, turn it into RSS or ATOM...

Page 211: Google and the Social Web (Mexico City Dev Fest 2010)

so, you take an article like this, turn it into RSS or ATOM...

Page 212: Google and the Social Web (Mexico City Dev Fest 2010)

and the most interesting thing the browser can do for you is turn this rich and well designed page into something like this... [click]

Page 213: Google and the Social Web (Mexico City Dev Fest 2010)

and the most interesting thing the browser can do for you is turn this rich and well designed page into something like this... [click]

Page 214: Google and the Social Web (Mexico City Dev Fest 2010)

and now you know why the newsfeed looks like it does.

spot the similarity?

Page 215: Google and the Social Web (Mexico City Dev Fest 2010)

and now you know why the newsfeed looks like it does.

spot the similarity?

Page 216: Google and the Social Web (Mexico City Dev Fest 2010)

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

Page 217: Google and the Social Web (Mexico City Dev Fest 2010)

so no matter what, to sites like Friendfeed, Facebook, or Google Buzz, all these activities all look the same.

Page 218: Google and the Social Web (Mexico City Dev Fest 2010)

icons by Fast Icon

so how do you differentiate all these different feeds when you only have one basic format?

Page 219: Google and the Social Web (Mexico City Dev Fest 2010)
Page 220: Google and the Social Web (Mexico City Dev Fest 2010)

actor verb object target

the basic model of ActivityStreams follows the “actor verb object”, “target”archetype.

Page 221: Google and the Social Web (Mexico City Dev Fest 2010)

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>

well, let’s take your typical Atom feed...

Page 222: Google and the Social Web (Mexico City Dev Fest 2010)

Atom

title + link + summary + author + id + updated

remember that the foundation of Atom is title, link, summary, author, id, and the updated time.

Page 223: Google and the Social Web (Mexico City Dev Fest 2010)

Atom+ActivityStreams

title + link + summary + author + id + updated

+ verb + object-type + target

now add verb, object-type, and target

Page 224: Google and the Social Web (Mexico City Dev Fest 2010)

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>http://activitystrea.ms/schema/1.0/person</activity:object-type>

<name>...</name>

</author>

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

<activity:object>

<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>

<content type=”html”>

...

</content>

</activity:object>

</entry>

</feed>

here’s what Atom+ActivityStreams looks like. Similar,

Page 225: Google and the Social Web (Mexico City Dev Fest 2010)

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>http://activitystrea.ms/schema/1.0/person</activity:object-type>

<name>...</name>

</author>

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

<activity:object>

<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>

<content type=”html”>

...

</content>

</activity:object>

</entry>

</feed>

xmlns:activity="http://activitystrea.ms/spec/1.0/"

<activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

<activity:object>

<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>

</activity:object>

here are the new parts.

Page 226: Google and the Social Web (Mexico City Dev Fest 2010)

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>http://activitystrea.ms/schema/1.0/person</activity:object-type>

<name>...</name>

</author>

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

<activity:object>

<activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>

<content type=”html”>

...

</content>

</activity:object>

</entry>

</feed>

person

post

note

so, see what this adds for the aggregator?

as the most basic example, we’re essentially telling the aggregator that a person posted a note.

Page 227: Google and the Social Web (Mexico City Dev Fest 2010)

Verbs & Objects

and to begin with, we already support a dozen verbs and several well-known objects.

Page 228: Google and the Social Web (Mexico City Dev Fest 2010)

Verbs & Objects

• Add Friend• Check-in• Favorite• Follow• Like• Join• Play• Post• Save• Share• Tag• Update

• Article• Audio• Bookmark• Comment• File• Folder• Group• List• Note• Person• Photo• Photo Album• Place• Playlist• Product• Review• Service• Status

Video

and to begin with, we already support a dozen verbs and several well-known objects.

Page 229: Google and the Social Web (Mexico City Dev Fest 2010)

Verbs & Objects

• Add Friend• Check-in• Favorite• Follow• Like• Join• Play• Post• Save• Share• Tag• Update

• Article• Audio• Bookmark• Comment• File• Folder• Group• List• Note• Person• Photo• Photo Album• Place• Playlist• Product• Review• Service• Status

Video

v0.8

and to begin with, we already support a dozen verbs and several well-known objects.

Page 230: Google and the Social Web (Mexico City Dev Fest 2010)

Process

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

Page 231: Google and the Social Web (Mexico City Dev Fest 2010)

Process

1. Ask why.

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

Page 232: Google and the Social Web (Mexico City Dev Fest 2010)

Process

1. Ask why.2. Do your homework

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

Page 233: Google and the Social Web (Mexico City Dev Fest 2010)

Process

1. Ask why.2. Do your homework3. Propose

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

Page 234: Google and the Social Web (Mexico City Dev Fest 2010)

Process

1. Ask why.2. Do your homework3. Propose4. Iterate

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

Page 235: Google and the Social Web (Mexico City Dev Fest 2010)

Process

1. Ask why.2. Do your homework3. Propose4. Iterate5. Interoperate

and the process for extending the core schema? well’s it’s pretty simple... and based on the microformats process.

Page 236: Google and the Social Web (Mexico City Dev Fest 2010)

http://activitystrea.ms

to learn more, this is where it all happens.

so, what does and activitystream-formatted feed look like?

Page 237: Google and the Social Web (Mexico City Dev Fest 2010)

Connect

Page 238: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

Source O’Reilly Radar.

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 239: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)

Source O’Reilly Radar.

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 240: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)

Source O’Reilly Radar.

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 241: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)

Source O’Reilly Radar.

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 242: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)• Activity (poked, bought, shared, blogged)

Source O’Reilly Radar.

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 243: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)• Activity (poked, bought, shared, blogged)

Source O’Reilly Radar.

• Goal: Discovery of new people and content

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 244: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)• Activity (poked, bought, shared, blogged)

Source O’Reilly Radar.

Social Building Blocks

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 245: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)• Activity (poked, bought, shared, blogged)

Source O’Reilly Radar.

Social Building Blocks• Identity & Profile

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 246: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)• Activity (poked, bought, shared, blogged)

Source O’Reilly Radar.

Social Building Blocks• Identity & Profile• Friends & Contacts

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 247: Google and the Social Web (Mexico City Dev Fest 2010)

...according to David RecordonThe anatomy of connect

• Profile (identity, accounts, profiles)• Relationships (followers, friends, contacts)• Content (posts, photos, videos, links)• Activity (poked, bought, shared, blogged)

Source O’Reilly Radar.

Social Building Blocks• Identity & Profile• Friends & Contacts• Activities

Profile (identity, accounts, profiles)Relationships (followers, friends, contacts)Content (posts, photos, videos, links)Activity (poked, bought, shared, blogged)

Goal: Discovery of new people and content

you’ll notice that the social building blocks map perfectly to David’s definition of “connect”

Page 248: Google and the Social Web (Mexico City Dev Fest 2010)

ConnectConnect

and so I before I joined Google, I proposed a simple idea built upon all these open technologies called OpenID Connect that ties all these technologies that I’ve told you about together.

This concept is emerging and I think you’ll see some exciting moves in this area this year — so I want to leave you with that vision for the future.

Page 249: Google and the Social Web (Mexico City Dev Fest 2010)

Google Search I’m Feeling LuckyLucky

and when you think about Google and the social web, I think it’s important to really consider where we’re headed.

Page 250: Google and the Social Web (Mexico City Dev Fest 2010)

Google Search I’m Feeling LuckySocial

and when you think about Google and the social web, I think it’s important to really consider where we’re headed.

Page 251: Google and the Social Web (Mexico City Dev Fest 2010)

this is what we think of when we think of the social web, and the most exciting thing about it [CLICK]

is that there’s plenty of space for you to establish yourself and make a name for your app.

Page 252: Google and the Social Web (Mexico City Dev Fest 2010)

YOU

this is what we think of when we think of the social web, and the most exciting thing about it [CLICK]

is that there’s plenty of space for you to establish yourself and make a name for your app.

Page 253: Google and the Social Web (Mexico City Dev Fest 2010)

[email protected] • @chrismessina • factoryjoe.com

al final

Page 254: Google and the Social Web (Mexico City Dev Fest 2010)

Don’t forget! GTUG Meetup at 6pm