SlideShare une entreprise Scribd logo
1  sur  67
Télécharger pour lire hors ligne
BUILDING AND DECIPHERING
                          THE INTEROPERABLE WEB



Saturday, July 17, 2010
MICHAEL BLEIGH
                             @mbleigh
Saturday, July 17, 2010
Saturday, July 17, 2010
OMGWTF
                          BBQ
                          presented by




Saturday, July 17, 2010
YOU ARE HERE




        GET READY FOR NOSEBLEEDS
Saturday, July 17, 2010
WHAT IS THE
                     INTEROPERABLE WEB?

Saturday, July 17, 2010
Saturday, July 17, 2010
Saturday, July 17, 2010
Saturday, July 17, 2010
Saturday, July 17, 2010
Saturday, July 17, 2010
PUBSUBHUBBUB (PuSH)
Saturday, July 17, 2010
WEBHOOKS
                          with standards

Saturday, July 17, 2010
PUBLISHER

                                ATOM/RSS FEED



                          SUBSCRIBER
Saturday, July 17, 2010
<link rel=”hub” href=”...”/>


Saturday, July 17, 2010
PUBLISHER

                             HUB

                          SUBSCRIBER
Saturday, July 17, 2010
PUBLISHER

                             HUB
                                I’D LIKE TO SUBSCRIBE

                          SUBSCRIBER
Saturday, July 17, 2010
PUBLISHER
                                HERE’S A NEW POST

                             HUB

                          SUBSCRIBER
Saturday, July 17, 2010
PUBLISHER

                             HUB
                                HERE’S A NEW POST

                          SUBSCRIBER
Saturday, July 17, 2010
PUBLISHER

                             HUB

BSCRIBER SUBSCRIBER SUBSCRIBER
 Saturday, July 17, 2010
SIMPLE + POWERFUL

Saturday, July 17, 2010
IN RUBY,
                     github.com/igrigorik/PubSubHubbub


Saturday, July 17, 2010
EventMachine.run {
                   pub = EventMachine::PubSubHubbub.new('http://
                 pubsubhubbub.appspot.com/publish').publish
                 "http://www.test.com/"

                   pub.callback { puts "Successfully notified
                 hub." }
                   pub.errback { puts "Uh oh, something broke:
                 #{pub.response}" }
                 }




Saturday, July 17, 2010
SUPERFEEDR = SUPER AWESOME


Saturday, July 17, 2010
AS USED BY...
             GOOGLE, WORDPRESS,
           FRIENDFEED, SUPERFEEDR,
                 STATUSNET
Saturday, July 17, 2010
WEBFINGER

Saturday, July 17, 2010
E-MAIL = IDENTITY

Saturday, July 17, 2010
OPENID URL            HCARD PROFILE

                          mbleigh@gmail.com
           AVATAR/PIC               SOCIAL LINKS
Saturday, July 17, 2010
GET /.well-known/host-meta

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




Saturday, July 17, 2010
GET google.com/s2/webfinger/?q=mbleigh@gmail.com

                 <?xml version='1.0'?>
                 <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
                   <Subject>acct:mbleigh@gmail.com</Subject>
                   <Alias>http://www.google.com/profiles/mbleigh</Alias>
                   <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/
                 profiles/mbleigh' type='text/html'/>
                   <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/
                 profiles/mbleigh' type='text/html'/>
                   <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/
                 mbleigh' type='text/html'/>
                   <Link rel='http://specs.openid.net/auth/2.0/provider' href='http://
                 www.google.com/profiles/mbleigh'/>
                   <Link rel='describedby' href='http://www.google.com/profiles/mbleigh'
                 type='text/html'/>
                   <Link rel='describedby' href='http://www.google.com/s2/webfinger/?q=mbleigh
                 %40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/>
                   <Link rel='http://schemas.google.com/g/2010#updates-from' href='https://
                 www.googleapis.com/buzz/v1/activities/100660544095714416357/@public'
                 type='application/atom+xml'/>
                 </XRD>




Saturday, July 17, 2010
IN RUBY, REDFINGER
                          github.com/intridea/redfinger


Saturday, July 17, 2010
require 'mofo'
                 require 'redfinger'

                 finger = Redfinger.finger('example@gmail.com')
                 hcard_uri = finger.hcard.first.to_s
                 hcard = hCard.find(hcard_uri)
                 hcard.fn
                   # => "Example Guy"
                 hcard.title
                   # => "Title of the guy"




Saturday, July 17, 2010
AS USED BY...
                          GOOGLE, STATUSNET
Saturday, July 17, 2010
SALMON
Saturday, July 17, 2010
UNIFYING THE
                          CONVERSATIONS
Saturday, July 17, 2010
PuSH BACKWARDS

Saturday, July 17, 2010
SALMON, GET IT?

Saturday, July 17, 2010
SOURCE

                             HUB
                                HERE’S A NEW POST

                          AGGREGATOR
Saturday, July 17, 2010
SOURCE



                          AGGREGATOR
Saturday, July 17, 2010
SOURCE
                                       HERE’S A COMMENT
                          SALMON       ON YOUR POST



                             AGGREGATOR
Saturday, July 17, 2010
SOURCE
                              HERE’S A NEW COMMENT

                           HUB

REGATOR AGGREGATOR AGGREGATOR
Saturday, July 17, 2010
“MAGIC SIGNATURES”
                 AND MORE COMPLEXITY

Saturday, July 17, 2010
IN RUBY...?

Saturday, July 17, 2010
AS USED BY...
                          CLIQSET, STATUSNET

Saturday, July 17, 2010
ACTIVITYSTREAMS
Saturday, July 17, 2010
ATOM FEEDS ARE BORING,
             THERE’S NO ACTION

Saturday, July 17, 2010
LET’S ADD SOME VERBS

Saturday, July 17, 2010
<entry>
                   <title>ciberch: thanks to /Jerry @robdolin , @daveman692, @chrismessina,
                 @apparentlymart and @jsmarr for a very produtive activitystrea.ms session</
                 title>
                   <content type="html">ciberch: thanks to /Jerry @robdolin , @daveman692,
                 @chrismessina, @apparentlymart and @jsmarr for a very produtive
                 activitystrea.ms session</content>
                   <id>tag:twitter.com,2007:http://twitter.com/ciberch/statuses/2396395271</
                 id>
                   <published>2009-06-30T00:59:54+00:00</published>
                   <updated>2009-06-30T00:59:54+00:00</updated>
                   <link type="text/html" rel="alternate" href="http://twitter.com/ciberch/
                 statuses/2396395271"/>
                   <link type="image/pjpeg" rel="image" href="http://s3.amazonaws.com/
                 twitter_production/profile_images/81481539/180653_normal.jpg"/>
                   <author>
                     <name>Monica Keller</name>
                     <uri>http://www.myspace.com/ciberch</uri>
                   </author>
                 </entry>




Saturday, July 17, 2010
<entry>
                   <! ... !>
                   <activity:verb>http://activitystrea.ms/schema/1.0/post</
                 activity:verb>
                   <activity:object>
                     <id>tag:twitter.com,2007:http://twitter.com/ciberch/statuses/
                 2396395271/object</id>
                     <title>thanks to /Jerry @robdolin , @daveman692, @chrismessina,
                 @apparentlymart and @jsmarr for a very produtive activitystrea.ms
                 session</title>
                     <link type="text/html" rel="alternate" href="http://twitter.com/
                 ciberch/statuses/2396395271"/>
                     <published>2009-06-30T00:59:54+00:00</published>
                     <updated>2009-06-30T00:59:54+00:00</updated>
                     <author>
                       <name>Monica Keller</name>
                       <uri>http://www.myspace.com/ciberch</uri>
                     </author>
                   </activity:object>
                 </entry>




Saturday, July 17, 2010
FOLLOWED, POSTED,
                          FAVORITED, CLOSED,
                           UPDATED, TAGGED
Saturday, July 17, 2010
IN RUBY, activity_streams
            github.com/webcracy/activity_streams


Saturday, July 17, 2010
require 'rubygems'
                 require 'activity_streams'
                 require 'open-uri'

                 twitter = 'http://api.cliqset.com/feed/?
                 svcuser=rubenfonseca&feedid=twitternotesposted'
                 feed = ActivityStreams::Feed.from_xml(open(twitter).read)
                 feed.entries.size #=> 20
                 feed.entries.first.id =
                 	 "http://twitter.com/rubenfonseca/statuses/10075665287"
                 feed.entries.first.verbs.size #=> 1
                 feed.entries.first.verbs.first #=> "http://
                 activitystrea.ms/schema/1.0/post"
                 ...




Saturday, July 17, 2010
AS USED BY...
             FACEBOOK, MYSPACE,
           GOOGLE, MICROSOFT, BBC,
               GOWALLA, OPERA
Saturday, July 17, 2010
OAUTH 2.0
Saturday, July 17, 2010
FLEXIBLE, MULTI-PROFILE
            TOKEN AUTHORIZATION

Saturday, July 17, 2010
WEB SERVER       User authenticates on host site.



                 USER AGENT    Like web server but no secret shared.



                  NATIVE APP    One-time username/password use.



             AUTONOMOUS               Userless authorization.

Saturday, July 17, 2010
bit.ly/oauth2-talk

Saturday, July 17, 2010
IN RUBY, OAUTH2 GEM
                     github.com/intridea/oauth2

Saturday, July 17, 2010
require   'rubygems'
                 require   'sinatra'
                 require   'oauth2'
                 require   'json'

                 def client
                   OAuth2::Client.new('app_id', 'app_secret', :site => 'https://
                 graph.facebook.com')
                 end

                 get '/auth/facebook' do
                   redirect client.web_server.authorize_url(
                     :redirect_uri => 'http://localhost:4567/auth/facebook/callback',
                     :scope => 'email,offline_access'
                   )
                 end

                 get '/auth/facebook/callback' do
                   access_token = client.web_server.get_access_token(
                     params[:code], :redirect_uri => redirect_uri)

                   user = JSON.parse(access_token.get('/me'))
                   user.inspect
                 end




Saturday, July 17, 2010
AS USED BY...
                          FACEBOOK, GITHUB,
                             37SIGNALS
Saturday, July 17, 2010
BRINGING IT TOGETHER

Saturday, July 17, 2010
WATCH OUT FOR
                          UNICORN POACHERS

Saturday, July 17, 2010
XML
Saturday, July 17, 2010
COMPLEXITY



Saturday, July 17, 2010
LOCK-IN MINDSET


Saturday, July 17, 2010
START THINKING IN
                             STANDARDS

Saturday, July 17, 2010
QUESTIONS?
                       @intridea            @mbleigh
                 bit.ly/interop-slides bit.ly/interop-rate

Saturday, July 17, 2010

Contenu connexe

Similaire à Deciphering the Interoperable Web

Document-Oriented Databases: Couchdb Primer
Document-Oriented Databases: Couchdb PrimerDocument-Oriented Databases: Couchdb Primer
Document-Oriented Databases: Couchdb Primerjsiarto
 
Dev festasia manila-social_pub
Dev festasia manila-social_pubDev festasia manila-social_pub
Dev festasia manila-social_pubtimothyjordan
 
Say no to var_dump
Say no to var_dumpSay no to var_dump
Say no to var_dumpbenwaine
 
Creative Commons: What Every Educator Needs to Know
Creative Commons: What Every Educator Needs to KnowCreative Commons: What Every Educator Needs to Know
Creative Commons: What Every Educator Needs to KnowRodd Lucier
 
Human APIs - expanding the mobile web or are robots coming to JavaScript?
Human APIs - expanding the mobile web or are robots coming to JavaScript? Human APIs - expanding the mobile web or are robots coming to JavaScript?
Human APIs - expanding the mobile web or are robots coming to JavaScript? Nikolai Onken
 
Practical Ruby Projects with MongoDB - Ruby Midwest
Practical Ruby Projects with MongoDB - Ruby MidwestPractical Ruby Projects with MongoDB - Ruby Midwest
Practical Ruby Projects with MongoDB - Ruby MidwestAlex Sharp
 
MongoDB on Rails (and Ruby)
MongoDB on Rails (and Ruby)MongoDB on Rails (and Ruby)
MongoDB on Rails (and Ruby)jan_mindmatters
 
Html5/CSS3 in shanghai 2010
Html5/CSS3 in shanghai 2010Html5/CSS3 in shanghai 2010
Html5/CSS3 in shanghai 2010Zi Bin Cheah
 
Caelum dicas web 2010
Caelum dicas web 2010Caelum dicas web 2010
Caelum dicas web 2010Fabio Akita
 
Ram social media seminar
Ram social media seminarRam social media seminar
Ram social media seminarJess Sloss
 
When is a Website Not Enough? Now.
When is a Website Not Enough? Now.When is a Website Not Enough? Now.
When is a Website Not Enough? Now.bethgsanders
 
InterACT2010: Alex Pinheiro - MiniCurso de Advergames
InterACT2010: Alex Pinheiro - MiniCurso de AdvergamesInterACT2010: Alex Pinheiro - MiniCurso de Advergames
InterACT2010: Alex Pinheiro - MiniCurso de AdvergamesiMasters
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands Bastian Hofmann
 
Edted 2010 Dicas de Web
Edted 2010 Dicas de WebEdted 2010 Dicas de Web
Edted 2010 Dicas de WebFabio Akita
 
2010 za con_haroon_meer
2010 za con_haroon_meer2010 za con_haroon_meer
2010 za con_haroon_meerJohan Klerk
 
The Mobile Web @ 2010 JSConf
The Mobile Web @ 2010 JSConfThe Mobile Web @ 2010 JSConf
The Mobile Web @ 2010 JSConfdion
 
CSS3大補貼 - COSCUP/GNOME.asia
CSS3大補貼 - COSCUP/GNOME.asiaCSS3大補貼 - COSCUP/GNOME.asia
CSS3大補貼 - COSCUP/GNOME.asiaZi Bin Cheah
 
QueryPath: It's like PHP jQuery in Drupal!
QueryPath: It's like PHP jQuery in Drupal!QueryPath: It's like PHP jQuery in Drupal!
QueryPath: It's like PHP jQuery in Drupal!Matt Butcher
 
"Designing School 2.0 - Inspired by Agile Learners" - Christian Long keynote ...
"Designing School 2.0 - Inspired by Agile Learners" - Christian Long keynote ..."Designing School 2.0 - Inspired by Agile Learners" - Christian Long keynote ...
"Designing School 2.0 - Inspired by Agile Learners" - Christian Long keynote ...Christian Long
 

Similaire à Deciphering the Interoperable Web (20)

Document-Oriented Databases: Couchdb Primer
Document-Oriented Databases: Couchdb PrimerDocument-Oriented Databases: Couchdb Primer
Document-Oriented Databases: Couchdb Primer
 
Dev festasia manila-social_pub
Dev festasia manila-social_pubDev festasia manila-social_pub
Dev festasia manila-social_pub
 
Say no to var_dump
Say no to var_dumpSay no to var_dump
Say no to var_dump
 
Creative Commons: What Every Educator Needs to Know
Creative Commons: What Every Educator Needs to KnowCreative Commons: What Every Educator Needs to Know
Creative Commons: What Every Educator Needs to Know
 
Human APIs - expanding the mobile web or are robots coming to JavaScript?
Human APIs - expanding the mobile web or are robots coming to JavaScript? Human APIs - expanding the mobile web or are robots coming to JavaScript?
Human APIs - expanding the mobile web or are robots coming to JavaScript?
 
Practical Ruby Projects with MongoDB - Ruby Midwest
Practical Ruby Projects with MongoDB - Ruby MidwestPractical Ruby Projects with MongoDB - Ruby Midwest
Practical Ruby Projects with MongoDB - Ruby Midwest
 
MongoDB on Rails (and Ruby)
MongoDB on Rails (and Ruby)MongoDB on Rails (and Ruby)
MongoDB on Rails (and Ruby)
 
Html5/CSS3 in shanghai 2010
Html5/CSS3 in shanghai 2010Html5/CSS3 in shanghai 2010
Html5/CSS3 in shanghai 2010
 
Caelum dicas web 2010
Caelum dicas web 2010Caelum dicas web 2010
Caelum dicas web 2010
 
Ram social media seminar
Ram social media seminarRam social media seminar
Ram social media seminar
 
When is a Website Not Enough? Now.
When is a Website Not Enough? Now.When is a Website Not Enough? Now.
When is a Website Not Enough? Now.
 
InterACT2010: Alex Pinheiro - MiniCurso de Advergames
InterACT2010: Alex Pinheiro - MiniCurso de AdvergamesInterACT2010: Alex Pinheiro - MiniCurso de Advergames
InterACT2010: Alex Pinheiro - MiniCurso de Advergames
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands
 
Edted 2010 Dicas de Web
Edted 2010 Dicas de WebEdted 2010 Dicas de Web
Edted 2010 Dicas de Web
 
2010 za con_haroon_meer
2010 za con_haroon_meer2010 za con_haroon_meer
2010 za con_haroon_meer
 
The Mobile Web @ 2010 JSConf
The Mobile Web @ 2010 JSConfThe Mobile Web @ 2010 JSConf
The Mobile Web @ 2010 JSConf
 
CSS3大補貼 - COSCUP/GNOME.asia
CSS3大補貼 - COSCUP/GNOME.asiaCSS3大補貼 - COSCUP/GNOME.asia
CSS3大補貼 - COSCUP/GNOME.asia
 
QueryPath: It's like PHP jQuery in Drupal!
QueryPath: It's like PHP jQuery in Drupal!QueryPath: It's like PHP jQuery in Drupal!
QueryPath: It's like PHP jQuery in Drupal!
 
"Designing School 2.0 - Inspired by Agile Learners" - Christian Long keynote ...
"Designing School 2.0 - Inspired by Agile Learners" - Christian Long keynote ..."Designing School 2.0 - Inspired by Agile Learners" - Christian Long keynote ...
"Designing School 2.0 - Inspired by Agile Learners" - Christian Long keynote ...
 
CSS Bloat!
CSS Bloat!CSS Bloat!
CSS Bloat!
 

Plus de Michael Bleigh

OmniAuth: From the Ground Up (RailsConf 2011)
OmniAuth: From the Ground Up (RailsConf 2011)OmniAuth: From the Ground Up (RailsConf 2011)
OmniAuth: From the Ground Up (RailsConf 2011)Michael Bleigh
 
The Grapes of Rapid (RubyConf 2010)
The Grapes of Rapid (RubyConf 2010)The Grapes of Rapid (RubyConf 2010)
The Grapes of Rapid (RubyConf 2010)Michael Bleigh
 
The Present Future of OAuth
The Present Future of OAuthThe Present Future of OAuth
The Present Future of OAuthMichael Bleigh
 
Persistence Smoothie: Blending SQL and NoSQL (RubyNation Edition)
Persistence  Smoothie: Blending SQL and NoSQL (RubyNation Edition)Persistence  Smoothie: Blending SQL and NoSQL (RubyNation Edition)
Persistence Smoothie: Blending SQL and NoSQL (RubyNation Edition)Michael Bleigh
 
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Michael Bleigh
 

Plus de Michael Bleigh (9)

OmniAuth: From the Ground Up (RailsConf 2011)
OmniAuth: From the Ground Up (RailsConf 2011)OmniAuth: From the Ground Up (RailsConf 2011)
OmniAuth: From the Ground Up (RailsConf 2011)
 
The Grapes of Rapid (RubyConf 2010)
The Grapes of Rapid (RubyConf 2010)The Grapes of Rapid (RubyConf 2010)
The Grapes of Rapid (RubyConf 2010)
 
Upgrading to Rails 3
Upgrading to Rails 3Upgrading to Rails 3
Upgrading to Rails 3
 
The Present Future of OAuth
The Present Future of OAuthThe Present Future of OAuth
The Present Future of OAuth
 
Node.js and Ruby
Node.js and RubyNode.js and Ruby
Node.js and Ruby
 
Persistence Smoothie: Blending SQL and NoSQL (RubyNation Edition)
Persistence  Smoothie: Blending SQL and NoSQL (RubyNation Edition)Persistence  Smoothie: Blending SQL and NoSQL (RubyNation Edition)
Persistence Smoothie: Blending SQL and NoSQL (RubyNation Edition)
 
Persistence Smoothie
Persistence SmoothiePersistence Smoothie
Persistence Smoothie
 
Twitter on Rails
Twitter on RailsTwitter on Rails
Twitter on Rails
 
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
 

Dernier

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Dernier (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Deciphering the Interoperable Web

  • 1. BUILDING AND DECIPHERING THE INTEROPERABLE WEB Saturday, July 17, 2010
  • 2. MICHAEL BLEIGH @mbleigh Saturday, July 17, 2010
  • 4. OMGWTF BBQ presented by Saturday, July 17, 2010
  • 5. YOU ARE HERE GET READY FOR NOSEBLEEDS Saturday, July 17, 2010
  • 6. WHAT IS THE INTEROPERABLE WEB? Saturday, July 17, 2010
  • 13. WEBHOOKS with standards Saturday, July 17, 2010
  • 14. PUBLISHER ATOM/RSS FEED SUBSCRIBER Saturday, July 17, 2010
  • 16. PUBLISHER HUB SUBSCRIBER Saturday, July 17, 2010
  • 17. PUBLISHER HUB I’D LIKE TO SUBSCRIBE SUBSCRIBER Saturday, July 17, 2010
  • 18. PUBLISHER HERE’S A NEW POST HUB SUBSCRIBER Saturday, July 17, 2010
  • 19. PUBLISHER HUB HERE’S A NEW POST SUBSCRIBER Saturday, July 17, 2010
  • 20. PUBLISHER HUB BSCRIBER SUBSCRIBER SUBSCRIBER Saturday, July 17, 2010
  • 22. IN RUBY, github.com/igrigorik/PubSubHubbub Saturday, July 17, 2010
  • 23. EventMachine.run { pub = EventMachine::PubSubHubbub.new('http:// pubsubhubbub.appspot.com/publish').publish "http://www.test.com/" pub.callback { puts "Successfully notified hub." } pub.errback { puts "Uh oh, something broke: #{pub.response}" } } Saturday, July 17, 2010
  • 24. SUPERFEEDR = SUPER AWESOME Saturday, July 17, 2010
  • 25. AS USED BY... GOOGLE, WORDPRESS, FRIENDFEED, SUPERFEEDR, STATUSNET Saturday, July 17, 2010
  • 28. OPENID URL HCARD PROFILE mbleigh@gmail.com AVATAR/PIC SOCIAL LINKS Saturday, July 17, 2010
  • 29. GET /.well-known/host-meta <?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> Saturday, July 17, 2010
  • 30. GET google.com/s2/webfinger/?q=mbleigh@gmail.com <?xml version='1.0'?> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <Subject>acct:mbleigh@gmail.com</Subject> <Alias>http://www.google.com/profiles/mbleigh</Alias> <Link rel='http://webfinger.net/rel/profile-page' href='http://www.google.com/ profiles/mbleigh' type='text/html'/> <Link rel='http://microformats.org/profile/hcard' href='http://www.google.com/ profiles/mbleigh' type='text/html'/> <Link rel='http://gmpg.org/xfn/11' href='http://www.google.com/profiles/ mbleigh' type='text/html'/> <Link rel='http://specs.openid.net/auth/2.0/provider' href='http:// www.google.com/profiles/mbleigh'/> <Link rel='describedby' href='http://www.google.com/profiles/mbleigh' type='text/html'/> <Link rel='describedby' href='http://www.google.com/s2/webfinger/?q=mbleigh %40gmail.com&amp;fmt=foaf' type='application/rdf+xml'/> <Link rel='http://schemas.google.com/g/2010#updates-from' href='https:// www.googleapis.com/buzz/v1/activities/100660544095714416357/@public' type='application/atom+xml'/> </XRD> Saturday, July 17, 2010
  • 31. IN RUBY, REDFINGER github.com/intridea/redfinger Saturday, July 17, 2010
  • 32. require 'mofo' require 'redfinger' finger = Redfinger.finger('example@gmail.com') hcard_uri = finger.hcard.first.to_s hcard = hCard.find(hcard_uri) hcard.fn # => "Example Guy" hcard.title # => "Title of the guy" Saturday, July 17, 2010
  • 33. AS USED BY... GOOGLE, STATUSNET Saturday, July 17, 2010
  • 35. UNIFYING THE CONVERSATIONS Saturday, July 17, 2010
  • 37. SALMON, GET IT? Saturday, July 17, 2010
  • 38. SOURCE HUB HERE’S A NEW POST AGGREGATOR Saturday, July 17, 2010
  • 39. SOURCE AGGREGATOR Saturday, July 17, 2010
  • 40. SOURCE HERE’S A COMMENT SALMON ON YOUR POST AGGREGATOR Saturday, July 17, 2010
  • 41. SOURCE HERE’S A NEW COMMENT HUB REGATOR AGGREGATOR AGGREGATOR Saturday, July 17, 2010
  • 42. “MAGIC SIGNATURES” AND MORE COMPLEXITY Saturday, July 17, 2010
  • 44. AS USED BY... CLIQSET, STATUSNET Saturday, July 17, 2010
  • 46. ATOM FEEDS ARE BORING, THERE’S NO ACTION Saturday, July 17, 2010
  • 47. LET’S ADD SOME VERBS Saturday, July 17, 2010
  • 48. <entry> <title>ciberch: thanks to /Jerry @robdolin , @daveman692, @chrismessina, @apparentlymart and @jsmarr for a very produtive activitystrea.ms session</ title> <content type="html">ciberch: thanks to /Jerry @robdolin , @daveman692, @chrismessina, @apparentlymart and @jsmarr for a very produtive activitystrea.ms session</content> <id>tag:twitter.com,2007:http://twitter.com/ciberch/statuses/2396395271</ id> <published>2009-06-30T00:59:54+00:00</published> <updated>2009-06-30T00:59:54+00:00</updated> <link type="text/html" rel="alternate" href="http://twitter.com/ciberch/ statuses/2396395271"/> <link type="image/pjpeg" rel="image" href="http://s3.amazonaws.com/ twitter_production/profile_images/81481539/180653_normal.jpg"/> <author> <name>Monica Keller</name> <uri>http://www.myspace.com/ciberch</uri> </author> </entry> Saturday, July 17, 2010
  • 49. <entry> <! ... !> <activity:verb>http://activitystrea.ms/schema/1.0/post</ activity:verb> <activity:object> <id>tag:twitter.com,2007:http://twitter.com/ciberch/statuses/ 2396395271/object</id> <title>thanks to /Jerry @robdolin , @daveman692, @chrismessina, @apparentlymart and @jsmarr for a very produtive activitystrea.ms session</title> <link type="text/html" rel="alternate" href="http://twitter.com/ ciberch/statuses/2396395271"/> <published>2009-06-30T00:59:54+00:00</published> <updated>2009-06-30T00:59:54+00:00</updated> <author> <name>Monica Keller</name> <uri>http://www.myspace.com/ciberch</uri> </author> </activity:object> </entry> Saturday, July 17, 2010
  • 50. FOLLOWED, POSTED, FAVORITED, CLOSED, UPDATED, TAGGED Saturday, July 17, 2010
  • 51. IN RUBY, activity_streams github.com/webcracy/activity_streams Saturday, July 17, 2010
  • 52. require 'rubygems' require 'activity_streams' require 'open-uri' twitter = 'http://api.cliqset.com/feed/? svcuser=rubenfonseca&feedid=twitternotesposted' feed = ActivityStreams::Feed.from_xml(open(twitter).read) feed.entries.size #=> 20 feed.entries.first.id = "http://twitter.com/rubenfonseca/statuses/10075665287" feed.entries.first.verbs.size #=> 1 feed.entries.first.verbs.first #=> "http:// activitystrea.ms/schema/1.0/post" ... Saturday, July 17, 2010
  • 53. AS USED BY... FACEBOOK, MYSPACE, GOOGLE, MICROSOFT, BBC, GOWALLA, OPERA Saturday, July 17, 2010
  • 55. FLEXIBLE, MULTI-PROFILE TOKEN AUTHORIZATION Saturday, July 17, 2010
  • 56. WEB SERVER User authenticates on host site. USER AGENT Like web server but no secret shared. NATIVE APP One-time username/password use. AUTONOMOUS Userless authorization. Saturday, July 17, 2010
  • 58. IN RUBY, OAUTH2 GEM github.com/intridea/oauth2 Saturday, July 17, 2010
  • 59. require 'rubygems' require 'sinatra' require 'oauth2' require 'json' def client OAuth2::Client.new('app_id', 'app_secret', :site => 'https:// graph.facebook.com') end get '/auth/facebook' do redirect client.web_server.authorize_url( :redirect_uri => 'http://localhost:4567/auth/facebook/callback', :scope => 'email,offline_access' ) end get '/auth/facebook/callback' do access_token = client.web_server.get_access_token( params[:code], :redirect_uri => redirect_uri) user = JSON.parse(access_token.get('/me')) user.inspect end Saturday, July 17, 2010
  • 60. AS USED BY... FACEBOOK, GITHUB, 37SIGNALS Saturday, July 17, 2010
  • 62. WATCH OUT FOR UNICORN POACHERS Saturday, July 17, 2010
  • 66. START THINKING IN STANDARDS Saturday, July 17, 2010
  • 67. QUESTIONS? @intridea @mbleigh bit.ly/interop-slides bit.ly/interop-rate Saturday, July 17, 2010