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

Post on 28-Jan-2015

108 views 0 download

Tags:

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 of Google and the Social Web (Mexico City Dev Fest 2010)

messina@google.com • @chrismessina • factoryjoe.com

@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

Google y la Web Social

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.

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.

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.

?

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.

Google Social Products

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

Google Social Products

Google Talk Google Reader

Google Docs

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

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.

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?

“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.”

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.

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.

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.

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.

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.

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

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

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

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

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

Announcing Buzz This Buttons

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

Google Buzz and the social web

“ 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.

“ 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.

“ 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.

“ 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.”

“ 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.

What is the social web?

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]

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]

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]

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]

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.

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.

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.

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.

What do I mean by social?

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

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

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

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

“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...

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

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.

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.

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.

• 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.

• 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.

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”.

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”.

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”.

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”.

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”.

Social Building Blocks

Here’s how.

Social Building Blocks

• Identity & Profile

Here’s how.

Social Building Blocks

• Identity & Profile• Friends & Contacts

Here’s how.

Social Building Blocks

• Identity & Profile• Friends & Contacts• Activities

Here’s how.

Social Building Blocks

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

Here’s how.

Social Building Blocks

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

The Glue

Here’s how.

Social Building Blocks

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

The Glue• Email-style Identifiers (WebFinger)

Here’s how.

Social Building Blocks

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

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

Here’s how.

Social Building Blocks

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

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

Here’s how.

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.

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.

Social Building Blocks

Identity & Profile OpenID

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.

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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

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.

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.

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

• What’s your address?

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

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

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

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

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

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

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

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

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

• 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)

• 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)

which brings us to WebFinger.

WebFinger

which brings us to WebFinger.

Discovery for the open webThe Hammer Stack

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

How WebFinger works

ConnectEmailEnter email:

How WebFinger works

Connectchris.messina@gmail.comEnter email:

How WebFinger works

Connectchris.messina@gmail.comEnter email:

Discovering a user’s WebFinger profileHow WebFinger works

chris.messina@gmail.com

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.

Discovering a user’s WebFinger profileHow WebFinger works

chris.messina@gmail.com{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.

Discovering a user’s WebFinger profileHow WebFinger works

chris.messina@gmail.com{

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.

Discovering a user’s WebFinger profileHow WebFinger works

chris.messina@gmail.com{

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.

Use host meta to retrieve an LRDD documentHow WebFinger works

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

Use host meta to retrieve an LRDD documentHow WebFinger works

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

Use host meta to retrieve an LRDD documentHow WebFinger works

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

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>

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.

Plugin acct: into URI TemplateHow WebFinger works

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

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.

Plugin acct: into URI TemplateHow WebFinger works

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.

Plugin acct: into URI TemplateHow WebFinger works

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.

Plugin acct: into URI TemplateHow WebFinger works

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.

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/?q=chris.messina@gmail.com

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/?q=chris.messina@gmail.com

Retrieve WebFinger documentHow WebFinger works

$curl http://www.google.com/s2/webfinger/?q=chris.messina@gmail.com

XRD ProfileHow WebFinger works

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

XRD ProfileHow WebFinger works

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

XRD ProfileHow WebFinger works

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

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

Putting it all together

ConnectEmailEnter email:

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

Putting it all together

Connectchris.messina@gmail.comEnter email:

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

Putting it all together

Connectchris.messina@gmail.comEnter email:

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

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.

Easier sign-in using emailPutting it all together

Signed in as: Chris Messina

Easier sign-in using emailPutting it all together

Signed in as: Chris Messina

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

to learn more, this is where it all happens.

Friends & ContactsPortable Contacts & OAuth

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

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.

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.

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

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

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

?

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

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

?

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

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.

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.

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

marshallkMarshall Kirkpatrick

and don’t betray your users.

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

Portable Contacts.

?

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

Portable Contacts.

Portable Contacts!

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

Portable Contacts.

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": "mhashimoto-04@plaxo.com",          "type": "work",          "primary": "true"        },        {          "value": "mhashimoto@plaxo.com",          "type": "home"        }      ],      "urls": [        {          "value": "http://www.seeyellow.com",          "type": "work"        },

...}

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

Typical ResponsePortable Contacts Primer

{{

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

with some handy filtering abilities.

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

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

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

and you’ll get this..

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": "joseph@plaxo.com", "type": "work", "primary": "true" },        { "value": "jsmarr@gmail.com", "type": "home" }      ],    }}

change it again, and you’ll get this.

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.

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.

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.

Following56

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

http://portablecontacts.net

you can learn more at portablecontacts.net.

Now, the secret behind this is called OAuth.

How many people are familiar with OAuth?

Now, the secret behind this is called OAuth.

How many people are familiar with OAuth?

Photo by Damian Morys

Think of OAuth like your valet key for the web.

On the desktop

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

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

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

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

4D56

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

return to the app and enter the code

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

On the web

Friendfeed

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

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.

On mobile

Start out with an iPhone app call FlightTrackPro.

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

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

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

chris@domain.com

••••••••

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

We see an access request... and scrolling down

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

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

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

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.

http://oauth.net

you can learn more at oauth.net

ActivitiesActivityStreams

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.

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

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

Copyright 2000 ZWave, LLC

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

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.

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)

2005

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

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.

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.

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

Copyright 2000 ZWave, LLC

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

2010

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

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

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

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

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

spot the similarity?

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

spot the similarity?

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

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

icons by Fast Icon

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

actor verb object target

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

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

Atom

title + link + summary + author + id + updated

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

Atom+ActivityStreams

title + link + summary + author + id + updated

+ verb + object-type + target

now add verb, object-type, and target

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,

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.

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.

Verbs & Objects

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

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.

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.

Process

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

Process

1. Ask why.

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

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.

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.

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.

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.

http://activitystrea.ms

to learn more, this is where it all happens.

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

Connect

...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”

...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”

...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”

...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”

...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”

...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”

...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”

...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”

...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”

...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”

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.

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.

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.

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.

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.

messina@google.com • @chrismessina • factoryjoe.com

al final

Don’t forget! GTUG Meetup at 6pm