the diso project and the open web

154
The DiSo Project & The Open Web Chris Messina Do it with Drupal December 6, 2008 New Orleans

Upload: chris-messina

Post on 06-May-2015

8.423 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: The DiSo Project and the Open Web

The DiSo Project & The Open Web

Chris Messina Do it with Drupal

December 6, 2008New Orleans

Page 2: The DiSo Project and the Open Web

@factoryjoe

#diwd

Page 3: The DiSo Project and the Open Web
Page 4: The DiSo Project and the Open Web

“Low hills closed in on either side as the train eventually crawled on to high, tabletop grasslands creased with snow. Birds flew at window level. I could see lakes of an unreal cobalt blue to the north. The train pulled into a sprawling rail yard: the Kazakh side of the Kazakhstan-China border.

. . .

Page 5: The DiSo Project and the Open Web

“Workers unhitched the cars, lifted them, one by one, ten feet high with giant jacks, and replaced the wide-gauge Russian undercarriages with narrower ones for the Chinese tracks. Russian gauges, still in use throughout the former Soviet Union, are wider than the world standard. The idea was to the prevent invaders from entering Russia by train. The changeover took hours.”

— Robert D. Kaplan, The Ends of the Earth

Page 6: The DiSo Project and the Open Web

Page 7: The DiSo Project and the Open Web

“Data is the new Intel Inside.”

Photo credit: Adam Tinworth

Page 8: The DiSo Project and the Open Web

VS

Page 9: The DiSo Project and the Open Web

VS

VS

The Open Web

Page 10: The DiSo Project and the Open Web

the battle for the future of the social web has begun

Page 11: The DiSo Project and the Open Web
Page 12: The DiSo Project and the Open Web
Page 13: The DiSo Project and the Open Web
Page 14: The DiSo Project and the Open Web

it’s ultimately about freedom through ensuring your ability to choose

Page 15: The DiSo Project and the Open Web

Walled Gardens

Page 16: The DiSo Project and the Open Web

bands➽

college students➽

professionals➽

Page 17: The DiSo Project and the Open Web

everyone!➽

everyone!➽

everyone!*➽

Page 18: The DiSo Project and the Open Web
Page 19: The DiSo Project and the Open Web

Service-centric design

Page 20: The DiSo Project and the Open Web

Service-centric value

Page 21: The DiSo Project and the Open Web

Source: Le Monde

Page 22: The DiSo Project and the Open Web

Source: Mick Hagen (mickhagen.com)

Page 23: The DiSo Project and the Open Web

the “web citizen”

Page 24: The DiSo Project and the Open Web

the web citizen has identity

Page 25: The DiSo Project and the Open Web

the web citizen has provenance

Page 26: The DiSo Project and the Open Web

the web citizen has mobility

Page 27: The DiSo Project and the Open Web

the web citizen has friends

Page 28: The DiSo Project and the Open Web

the web citizen has enemies

Page 29: The DiSo Project and the Open Web

the web citizen has agency

Page 30: The DiSo Project and the Open Web

DiSo Concepts

Page 31: The DiSo Project and the Open Web

Identity

Page 32: The DiSo Project and the Open Web
Page 33: The DiSo Project and the Open Web

zachklein.com

Page 34: The DiSo Project and the Open Web
Page 35: The DiSo Project and the Open Web
Page 36: The DiSo Project and the Open Web

Access & Permissions

Page 37: The DiSo Project and the Open Web

Basecamp

Page 38: The DiSo Project and the Open Web

Plaxo Pulse (importing Flickr)

Page 39: The DiSo Project and the Open Web

Flickr & Yahoo! Mash

Page 41: The DiSo Project and the Open Web

Fire Eagle & Dopplr

Page 42: The DiSo Project and the Open Web
Page 43: The DiSo Project and the Open Web

Friends & Contacts

Page 44: The DiSo Project and the Open Web
Page 45: The DiSo Project and the Open Web
Page 46: The DiSo Project and the Open Web
Page 47: The DiSo Project and the Open Web

How much are your username and password worth?

Page 48: The DiSo Project and the Open Web

wayn.com

Page 49: The DiSo Project and the Open Web
Page 50: The DiSo Project and the Open Web

imeem.com

Page 51: The DiSo Project and the Open Web
Page 52: The DiSo Project and the Open Web
Page 53: The DiSo Project and the Open Web

PC Load Letter?! What the f...!

Page 54: The DiSo Project and the Open Web

The Password Anti-pattern!

Page 55: The DiSo Project and the Open Web

Passwords are not confetti.

Page 56: The DiSo Project and the Open Web

And yet people throw them around as though they were.

Page 57: The DiSo Project and the Open Web

Fortunately there’s a solution.

Page 58: The DiSo Project and the Open Web

Dopplr

Page 59: The DiSo Project and the Open Web

Messaging & Notifications

Page 60: The DiSo Project and the Open Web
Page 63: The DiSo Project and the Open Web

linkedin.com/mom to myspace.com/son

&facebook.com/daughter

???

Page 64: The DiSo Project and the Open Web

factoryjoe.com to 504.581.1000?

etc

Page 65: The DiSo Project and the Open Web

barackobama.com

Page 67: The DiSo Project and the Open Web

Twitter

Page 68: The DiSo Project and the Open Web
Page 69: The DiSo Project and the Open Web

Group(ing)s & Affiliations

Page 70: The DiSo Project and the Open Web
Page 71: The DiSo Project and the Open Web

barackobama.com

Page 72: The DiSo Project and the Open Web
Page 73: The DiSo Project and the Open Web
Page 74: The DiSo Project and the Open Web
Page 75: The DiSo Project and the Open Web
Page 76: The DiSo Project and the Open Web

epeus.blogspot.com

Page 77: The DiSo Project and the Open Web

techcrunch.com

Page 78: The DiSo Project and the Open Web

techcrunch.com

Page 79: The DiSo Project and the Open Web

facebook.com

Page 80: The DiSo Project and the Open Web

imagine drupal.org enabling people to “join” projects but

maintain their profiles elsewhere.

Page 81: The DiSo Project and the Open Web

imagine these people listing the projects they’ve joined on their profiles.

Page 82: The DiSo Project and the Open Web

imagine “joining” a project just by linking to it.

Page 83: The DiSo Project and the Open Web

Activities & Activity Streams

Page 84: The DiSo Project and the Open Web

actor verb object [context]

Page 85: The DiSo Project and the Open Web

Chris tweeted Niches bitches! from SMS

Page 86: The DiSo Project and the Open Web

Chris bought The Matrix from Amazon.com

Page 87: The DiSo Project and the Open Web
Page 88: The DiSo Project and the Open Web
Page 89: The DiSo Project and the Open Web
Page 90: The DiSo Project and the Open Web
Page 91: The DiSo Project and the Open Web

Open Stack

Page 92: The DiSo Project and the Open Web

the open stack is a series of building blocksfor enabling cross-site social networking

using non-proprietary formats and protocols

Page 93: The DiSo Project and the Open Web
Page 94: The DiSo Project and the Open Web
Page 95: The DiSo Project and the Open Web

usability is issue #1

Page 96: The DiSo Project and the Open Web

how does it work?

Page 97: The DiSo Project and the Open Web

uservoice.com

Page 98: The DiSo Project and the Open Web

conveniencefewer passwords

increasing industry support

Page 99: The DiSo Project and the Open Web

MySpace, Google, Yahoo, AOL, Flickr, etc...

Page 100: The DiSo Project and the Open Web

SREG

Page 101: The DiSo Project and the Open Web

Attribute Exchange

Page 102: The DiSo Project and the Open Web
Page 103: The DiSo Project and the Open Web

Origin

Page 104: The DiSo Project and the Open Web
Page 105: The DiSo Project and the Open Web
Page 106: The DiSo Project and the Open Web
Page 107: The DiSo Project and the Open Web
Page 108: The DiSo Project and the Open Web

London, England

Page 109: The DiSo Project and the Open Web

consider using OAuth to enable third-party access to user data without requiring passwords

Page 110: The DiSo Project and the Open Web

OAuth can also be used for user verification — similar to OpenID but without a claimed ID — you end up

with a token for the user

Page 111: The DiSo Project and the Open Web
Page 112: The DiSo Project and the Open Web
Page 113: The DiSo Project and the Open Web

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en-US"> <head profile="http://gmpg.org/xfn/11"> <title> willnorris.com | managing identity </title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="description" content="I’ve moved things around a bit… my blog is now located at /blog and my combined activity stream is now located here on the front page. On December 11, 2008 willnorris tweeted," by="accidental&quot;" i="" meant="" that="" it="" a="" concious="" decision="" to="" add="" openid.="" intensedebate="" just="" happened="" to="" have="" it="" />

<link rel="stylesheet" type="text/css" href="http://willnorris.com/wordpress-content/themes/willnorris/style.css" />

<meta http-equiv="X-XRDS-Location" content="http://willnorris.com/?xrds" /> <meta http-equiv="X-Yadis-Location" content="http://willnorris.com/?xrds" />

<link rel="alternate" type="application/rss+xml" href="http://willnorris.com/feed" title="willnorris.com Posts RSS feed" /> <link rel="alternate" type="application/rss+xml" href="http://willnorris.com/comments/feed" title="willnorris.com Comments RSS feed" /> <link rel="pingback" href="http://willnorris.com/wordpress/xmlrpc.php" />

Page 114: The DiSo Project and the Open Web

<?xml version="1.0" encoding="UTF-8" ?><xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)" xmlns:simple="http://xrds-simple.net/core/1.0" xmlns:openid="http://openid.net/xmlns/1.0"> <XRD xml:id="main" version="2.0"> <Type>xri://$xrds*simple</Type>

<!-- OpenID Consumer Service --> <Service priority="10"> <Type>http://specs.openid.net/auth/2.0/return_to</Type> <URI>http://willnorris.com/wordpress/wp-admin/users.php</URI> <URI>http://willnorris.com/wordpress/wp-admin/profile.php</URI> <URI>http://willnorris.com</URI> <URI>https://willnorris.com/wordpress/wp-login.php</URI> </Service>

<!-- Identity in the Browser Login Service --> <Service priority="10"> <Type>http://specs.openid.net/idib/1.0/login</Type> <URI simple:httpMethod="POST">https://willnorris.com/wordpress/wp-login.php</URI> </Service>

<!-- Identity in the Browser Indicator Service --> <Service priority="10"> <Type>http://specs.openid.net/idib/1.0/indicator</Type> <URI>http://willnorris.com/wordpress/?openid_check_login</URI> </Service>

<!-- Email Address to URL Transformation Mapper --> <Service priority="10"> <Type>http://specs.eaut.org/1.0/mapping</Type> <URI>http://willnorris.com/wordpress/?eaut_mapper=1</URI> </Service>

<!-- OpenID Provider Service (0) --> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/signon</Type> <Type>http://openid.net/extensions/sreg/1.1</Type> <Type>http://openid.net/sreg/1.0</Type> <URI>http://willnorris.com/wordpress/?openid_server=1</URI> <LocalID>http://willnorris.com/author/will/</LocalID> </Service>

<!-- OpenID Provider Service (1) --> <Service priority="1"> <Type>http://openid.net/signon/1.1</Type> <Type>http://openid.net/extensions/sreg/1.1</Type> <Type>http://openid.net/sreg/1.0</Type> <URI>http://willnorris.com/wordpress/?openid_server=1</URI> <openid:Delegate>http://willnorris.com/author/will/</openid:Delegate> </Service>

<!-- AtomPub Service --> <Service priority="10"> <Type>http://www.w3.org/2007/app</Type> <MediaType>application/atomsvc+xml</MediaType> <URI>http://willnorris.com/wordpress/wp-app.php/service</URI> </Service> </XRD></xrds:XRDS>

Page 115: The DiSo Project and the Open Web

Drupal should advertise all of its available services and their respective endpoints

using XRDS-Simple

Page 116: The DiSo Project and the Open Web

Drupal should also advertise all of a user’s specific services

using XRDS-Simple

Page 117: The DiSo Project and the Open Web

Portable Contacts

Page 118: The DiSo Project and the Open Web

bring your friends with you and take them with you

when you leave

Page 119: The DiSo Project and the Open Web

vcard + OpenSocial schema

Page 120: The DiSo Project and the Open Web

Baked into OpenSocial v0.8

Page 121: The DiSo Project and the Open Web

This is 50% of the solution to the password anti-pattern.

The other 50% is OAuth.

Fortunately, PoCo requires OAuth.

Page 122: The DiSo Project and the Open Web

For Drupal sites that want to enable people to invite

their friends in a safe way, PoCo is the solution

Page 123: The DiSo Project and the Open Web

For user profile schema, Drupal should use the PoCo schema to

achieve wide compatibility

Page 124: The DiSo Project and the Open Web

test harnesshcard to vcard to PoCo

Plaxo is an early PoCo provider

Page 125: The DiSo Project and the Open Web

<?xml version="1.0" encoding="UTF-8"?><xrds:XRDS xmlns:xrds="xri://$xrds" xmlns:openid="http://openid.net/xmlns/1.0" xmlns="xri://$xrd*($v*2.0)"> <XRD version="2.0"> <Type>xri://$xrds*simple</Type> <Service> <Type>http://portablecontacts.net/spec/1.0</Type> <URI>http://pulse.plaxo.com/pulse/pdata/contacts</URI> </Service> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/signon</Type> <Type>http://openid.net/sreg/1.0</Type> <Type>http://openid.net/extensions/sreg/1.1</Type> <Type>http://schemas.openid.net/pape/policies/2007/06/phishing-resistant</Type> <Type>http://openid.net/srv/ax/1.0</Type> <URI>http://www.myopenid.com/server</URI> <LocalID>http://brian.myopenid.com/</LocalID> </Service> </XRD></xrds:XRDS>

Page 126: The DiSo Project and the Open Web

ATOM

Page 127: The DiSo Project and the Open Web

of course we need feeds.

Page 128: The DiSo Project and the Open Web

ATOM pubsub

Page 129: The DiSo Project and the Open Web

some challenge with XML-RPC and OAuth

Page 130: The DiSo Project and the Open Web

Consider wider support for publishing to Drupal with ATOM

Page 131: The DiSo Project and the Open Web
Page 132: The DiSo Project and the Open Web

but webpages can be feeds too!

And as we saw with the jQuery talk, you can do powerful stuff with just HTML and javascript!

Page 133: The DiSo Project and the Open Web

hCard for peoplehCalendar for events

XFN for identity & social graphshAudio for music

...etc...

Page 134: The DiSo Project and the Open Web

<a href=“http://factoryjoe.com” >My site</a><a href=“http://brynnevans.com” >Brynn</a>

Page 135: The DiSo Project and the Open Web

<a href=“http://factoryjoe.com” rel=“me”>My site</a><a href=“http://brynnevans.com” rel=“friend met sweetheart”>Brynn</a>

Page 136: The DiSo Project and the Open Web

paved cowpaths of microformats

Source: Paul Downey. Shared under Creative Commons.

Page 137: The DiSo Project and the Open Web
Page 138: The DiSo Project and the Open Web
Page 139: The DiSo Project and the Open Web
Page 140: The DiSo Project and the Open Web

it’s good for search enginesand it’s good for designers

why not for Drupal?

Page 141: The DiSo Project and the Open Web

Start with syndicating structured data in ATOM

using microformats

Page 142: The DiSo Project and the Open Web

Microformats complement other semantic efforts within Drupal.

Start with POSH.

Page 143: The DiSo Project and the Open Web

activitystrea.ms

Page 144: The DiSo Project and the Open Web
Page 145: The DiSo Project and the Open Web

<entry> <id>tag:photopanic.example.com,2008:activity01</id> <title>Geraldine posted a Photo on PhotoPanic</title> <published>2008-11-02T15:29:00Z</published> <link rel="alternate" type="text/html" href="/geraldine/activities/1" /> <activity:verb> http://activitystrea.ms/schema/1.0/post </activity:verb> <activity:object> <id>tag:photopanic.example.com,2008:photo01</id> <title>My Cat</title> <published>2008-11-02T15:29:00Z</published> <link rel="alternate" type="text/html" href="/geraldine/photos/1" /> <activity:object-type> tag:atomactivity.example.com,2008:photo </activity:object-type> <source> <title>Geraldine's Photos</title> <link rel="self" type="application/atom+xml" href="/geraldine/photofeed.xml" /> <link rel="alternate" type="text/html" href="/geraldine/" /> </source> </activity:object> <content type="html"> &lt;p&gt;Geraldine posted a Photo on PhotoPanic&lt;/p&gt; &lt;img src="/geraldine/photo1.jpg"&gt; </content></entry>

Page 146: The DiSo Project and the Open Web

machine tags?

Page 147: The DiSo Project and the Open Web

filtering, coalescing, search, automation

Page 148: The DiSo Project and the Open Web

Drupal & DiSo

Page 149: The DiSo Project and the Open Web

oauthopenid

services

Page 150: The DiSo Project and the Open Web

openidoauthpoco

discovery

Page 151: The DiSo Project and the Open Web

groupspubsub

legal frameworkUX design

Page 152: The DiSo Project and the Open Web

need help on oauthxrds-simple

permissions framework

Page 153: The DiSo Project and the Open Web

Parting Thought

Page 154: The DiSo Project and the Open Web

fin.

me -› factoryjoe.com