SlideShare a Scribd company logo
1 of 58
Download to read offline
Powering the Social Web
Discovery & Developer Experience




                                   1
@adewale
buzz.google.com/adewale

     @ade_oshineye
twitter.com/ade_oshineye
The plug
Google’s mission


   To organize the world’s information and make
        it universally accessible and useful.




   Online content                     Offline content
 Billions of web pages                Billions of items
                                     becoming indexed

                                                          4
Outline




   1 The technologies behind the Buzz API
   2 Discovery
   3 Developer Experience
   4 The web is the platform
                                            5
Buzz & the open technologies behind it




                                         6
7
8
Screenshots from: http://www.go-buzz.com/
9
Passwords are bad for everyone
OAuth




          Your                             Service
        Application   Get unauthorized     Provider
                      request token




  1. Your application gets an unauthorized request token
     from the Service Provider’s authorization server.
OAuth




          Your                              Service
        Application                         Provider
                      Send user to SP
                      with token




  2. Your application sends the user to the Service
     Provider, which asks the user to grant your
     application access to the required data.
OAuth




          Your                             Service
        Application    Get authorized      Provider
                       request token




  3. Your application gets an authorized request token
     from the authorization server.
OAuth




          Your                            Service
        Application   Exchange request    Provider
                      for access token




  4. You exchange the authorized request token for an
     access token.
OAuth




          Your                            Service
        Application   Use access token    Provider
                      to get data




  5. You use the access token to request data from
     Service Provider’s service access servers.
Auth url: https://www.google.com/buzz/api/auth/OAuthAuthorizeToken
https://www.google.com/buzz/api/auth/OAuthAuthorizeToken
 scope: https://www.googleapis.com/auth/buzz
?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbuzz
 domain: www.example.org
&domain=www.example.org
 iconUrl: http://www.example.org/icon.png
&oauth_token=
Polling is bad for everyone
code.google.com/p/pubsubhubbub
PubSubHubbub




      Publisher   Hub   Subscriber
PubSubHubbub



                               Give me your
                             latest content for
                              feed X, please.


      Publisher                                   Subscriber




 1. Subscriber gets Publisher’s feed. The feed contains
    a link to the Hub.
PubSubHubbub



                         I've delegated
                  distribution of that content
                          to this Hub.


      Publisher                                  Subscriber




 1. Subscriber gets Publisher’s feed. The feed contains
    a link to the Hub.
PubSubHubbub

                                    I want to
                               subscribe to feed X.
                               Send updates to this
                                      URL




      Publisher          Hub                          Subscriber




 2. Subscriber POSTs subscription request to the Hub.
    The request contains the URL where the Hub should
    POST new updates to the Subscriber.
PubSubHubbub


                               Hey there! Did
                             you really send this
                                  request?




      Publisher            Hub                      Subscriber




 3. Hub hits the URL to verify the request was authentic;
    Subscriber responds with confirmation to the Hub.
PubSubHubbub


                                  Yup, that was
                              really me, not a DoS
                                     attacker.




      Publisher            Hub                       Subscriber




 3. Hub hits the URL to verify the request was authentic;
    Subscriber responds with confirmation to the Hub.
PubSubHubbub


                     I have new
                  content for feed X
                       for you!




      Publisher                        Hub   Subscriber




 4. a) Publisher notifies Hub about updates by POSTing
    feed URLs to the Hub; Hub pulls the feed again to
    find new entries.
PubSubHubbub


                    Give me your
                  latest content for
                   feed X, please.




      Publisher                        Hub   Subscriber




 4. a) Publisher notifies Hub about updates by POSTing
    feed URLs to the Hub; Hub pulls the feed again to
    find new entries.
PubSubHubbub



                  Here you go.




      Publisher                  Hub     Subscriber




 4. a) Publisher notifies Hub about updates by POSTing
    feed URLs to the Hub; Hub pulls the feed again to
    find new entries.
PubSubHubbub


                    Give me your
                  latest content for
                   feed X, please.




      Publisher                        Hub   Subscriber




 4. b) If the Publisher does not inform the Hub, the Hub
    will periodically poll the Publisher’s feed for new
    updates.
PubSubHubbub


                  Here you go.




      Publisher                  Hub       Subscriber




 4. b) If the Publisher does not inform the Hub, the Hub
    will periodically poll the Publisher’s feed for new
    updates.
PubSubHubbub


                                 New update to
                               feed X! Here you
                                      go.




      Publisher          Hub                      Subscriber




 5. When Hub receives new update to feed X, it POSTs
    the update to the Subscriber’s endpoint URL.
PubSubHubbub


                                   New update to
                                 feed X! Here you
                                        go.




      Publisher            Hub                      Subscriber
                                                     Subscriber
                                                      Subscriber
                                                       Subscriber
                                                        Subscriber
                                                         Subscriber




 6. If feed X has multiple subscribers, the Hub sends
    updates to all of them. This reduces load on the
    Publisher.
PubSubHubbub
Firehose
Photo credit: Nandhp, used under the Creative Commons Attribution-Share Alike 3.0 Unported license.




Gardenhose
Track
Discovery




            41
What is discovery?


                     42
Discovery document




          goo.gl/Yy7XD


                         43
Easier to code




                 44
Easier migration




    AuthSub to OAuth1
     OAuth1 to OAuth2

                        45
One management console




                         46
Discovery-based libraries

  code.google.com/p/google-api-php-client/
  code.google.com/p/google-api-python-client/
  code.google.com/p/google-api-java-client/
  code.google.com/p/google-api-ruby-client
          




                                                47
Missing languages?


                     48
Benefits




   1 Latest features are instantly available to every language
   2 More languages are supported by more APIs
   3 APIs console gives you centralised management
   4 Easier to use multiple APIs in the same project
                                                                 49
What is #devexp?
Green




                   50
#devexp




developerexperience.org


                     51
Developer Experience




   1 Apply UX techniques to developer-facing products
   2 Focus on the 15 minute OOB experience
   3 Use convention over configuration
   4 Design away common problems
                                                        52
The web is the platform




                          53
Our platform is open to
 extension, adaptation
and disruptive creativity

                        54
Discovery is the future


                      55
Alerts        Blogger       Blog Search       Book Search    Buzz        Calendar       Checkout      Code




                   Docs &                        Feedburner                  Froogle           Gmail   Google Labs
  Directory                       Earth                         Finance
                Spreadsheets




Google Reader     Groups          Images             Local       Maps     Maps for Mobile    Mobile       News




    Pack           Picasa         Scholar            Talk       Toolbar      Translate      SketchUp      SMS




 Specialized       Video       Web Accelerator    Web Search    YouTube
  Searches




                                                                                                              56
The web is the platform


                      57
Thank You!
Q&A




             58

More Related Content

Viewers also liked

Viewers also liked (6)

Danielson_Tracy resume 10-10-16
Danielson_Tracy resume 10-10-16Danielson_Tracy resume 10-10-16
Danielson_Tracy resume 10-10-16
 
110304 AdStandard 2011 Prezentacja
110304 AdStandard 2011 Prezentacja110304 AdStandard 2011 Prezentacja
110304 AdStandard 2011 Prezentacja
 
Test til wiki
Test til wikiTest til wiki
Test til wiki
 
Islam Salah
Islam SalahIslam Salah
Islam Salah
 
Private Banking
Private BankingPrivate Banking
Private Banking
 
PC MAGAZINE_150 Best apps_june 2016
PC MAGAZINE_150 Best apps_june 2016PC MAGAZINE_150 Best apps_june 2016
PC MAGAZINE_150 Best apps_june 2016
 

Similar to Powering the Social Web: Discovery & Developer Experience

Updated Pubsubhubbub Flow Presentation
Updated Pubsubhubbub Flow PresentationUpdated Pubsubhubbub Flow Presentation
Updated Pubsubhubbub Flow PresentationTony Deng
 
Feeding Drupal in Real-Time
Feeding Drupal in Real-TimeFeeding Drupal in Real-Time
Feeding Drupal in Real-TimeAtchai
 
Privacy Aware Semantic Dissemination
Privacy Aware Semantic DisseminationPrivacy Aware Semantic Dissemination
Privacy Aware Semantic DisseminationPavan Kapanipathi
 
Getting Stuff In And Out Of Buzz (1)
Getting  Stuff In And Out Of  Buzz (1)Getting  Stuff In And Out Of  Buzz (1)
Getting Stuff In And Out Of Buzz (1)Paul Kinlan
 
Google Developer Day 2010 Japan: 新 SocialWeb: 全てはオープンスタンダードの元に (ティモシー ジョーダン)
Google Developer Day 2010 Japan: 新 SocialWeb: 全てはオープンスタンダードの元に (ティモシー ジョーダン)Google Developer Day 2010 Japan: 新 SocialWeb: 全てはオープンスタンダードの元に (ティモシー ジョーダン)
Google Developer Day 2010 Japan: 新 SocialWeb: 全てはオープンスタンダードの元に (ティモシー ジョーダン)Google Developer Relations Team
 
PodcastIndex: How to unleash your value thanks to the Podcast Namespace
PodcastIndex: How to unleash your value thanks to the Podcast NamespacePodcastIndex: How to unleash your value thanks to the Podcast Namespace
PodcastIndex: How to unleash your value thanks to the Podcast Namespace🎙 Benjamin Bellamy
 
Isa632 final-presentation
Isa632 final-presentationIsa632 final-presentation
Isa632 final-presentationLetianShi1
 
7 Habits of Highly Effective YouTubers: Actionable Tactics to Step up Your Yo...
7 Habits of Highly Effective YouTubers: Actionable Tactics to Step up Your Yo...7 Habits of Highly Effective YouTubers: Actionable Tactics to Step up Your Yo...
7 Habits of Highly Effective YouTubers: Actionable Tactics to Step up Your Yo...BLASTmedia
 
Google Home Voice Casting in ActionHow RakutenViki Integrates with Google Home
Google Home Voice Casting in ActionHow RakutenViki Integrates with Google HomeGoogle Home Voice Casting in ActionHow RakutenViki Integrates with Google Home
Google Home Voice Casting in ActionHow RakutenViki Integrates with Google HomeRakuten Group, Inc.
 
Tracking online conversations with Yahoo Pipes
Tracking online conversations with Yahoo PipesTracking online conversations with Yahoo Pipes
Tracking online conversations with Yahoo PipesCorinne Weisgerber
 
Tube Hero Reloaded review
Tube Hero Reloaded review Tube Hero Reloaded review
Tube Hero Reloaded review Sajim Dewan
 
Discovering Public APIs and Public API Network with Postman
Discovering Public APIs and Public API Network with PostmanDiscovering Public APIs and Public API Network with Postman
Discovering Public APIs and Public API Network with PostmanPostman
 
Twilio OpenVBX and the 3rd Open Source Business Model
Twilio OpenVBX and the 3rd Open Source Business ModelTwilio OpenVBX and the 3rd Open Source Business Model
Twilio OpenVBX and the 3rd Open Source Business ModelTwilio Inc
 
Using the GitHub App to Connect to Bitbucket
Using the GitHub App to Connect to BitbucketUsing the GitHub App to Connect to Bitbucket
Using the GitHub App to Connect to BitbucketLiam Dempsey
 
2022 APIsecure_Making webhook APIs secure for enterprise
2022 APIsecure_Making webhook APIs secure for enterprise2022 APIsecure_Making webhook APIs secure for enterprise
2022 APIsecure_Making webhook APIs secure for enterpriseAPIsecure_ Official
 
OAuth 2.0 Integration Patterns with XACML
OAuth 2.0 Integration Patterns with XACMLOAuth 2.0 Integration Patterns with XACML
OAuth 2.0 Integration Patterns with XACMLPrabath Siriwardena
 

Similar to Powering the Social Web: Discovery & Developer Experience (20)

Updated Pubsubhubbub Flow Presentation
Updated Pubsubhubbub Flow PresentationUpdated Pubsubhubbub Flow Presentation
Updated Pubsubhubbub Flow Presentation
 
Feeding Drupal in Real-Time
Feeding Drupal in Real-TimeFeeding Drupal in Real-Time
Feeding Drupal in Real-Time
 
SemPuSH: ISWC 2011 Poster
SemPuSH: ISWC 2011 PosterSemPuSH: ISWC 2011 Poster
SemPuSH: ISWC 2011 Poster
 
Privacy Aware Semantic Dissemination
Privacy Aware Semantic DisseminationPrivacy Aware Semantic Dissemination
Privacy Aware Semantic Dissemination
 
Getting Stuff In And Out Of Buzz (1)
Getting  Stuff In And Out Of  Buzz (1)Getting  Stuff In And Out Of  Buzz (1)
Getting Stuff In And Out Of Buzz (1)
 
Google Developer Day 2010 Japan: 新 SocialWeb: 全てはオープンスタンダードの元に (ティモシー ジョーダン)
Google Developer Day 2010 Japan: 新 SocialWeb: 全てはオープンスタンダードの元に (ティモシー ジョーダン)Google Developer Day 2010 Japan: 新 SocialWeb: 全てはオープンスタンダードの元に (ティモシー ジョーダン)
Google Developer Day 2010 Japan: 新 SocialWeb: 全てはオープンスタンダードの元に (ティモシー ジョーダン)
 
Chapter4b McHaney
Chapter4b McHaneyChapter4b McHaney
Chapter4b McHaney
 
PodcastIndex: How to unleash your value thanks to the Podcast Namespace
PodcastIndex: How to unleash your value thanks to the Podcast NamespacePodcastIndex: How to unleash your value thanks to the Podcast Namespace
PodcastIndex: How to unleash your value thanks to the Podcast Namespace
 
Isa632 final-presentation
Isa632 final-presentationIsa632 final-presentation
Isa632 final-presentation
 
7 Habits of Highly Effective YouTubers: Actionable Tactics to Step up Your Yo...
7 Habits of Highly Effective YouTubers: Actionable Tactics to Step up Your Yo...7 Habits of Highly Effective YouTubers: Actionable Tactics to Step up Your Yo...
7 Habits of Highly Effective YouTubers: Actionable Tactics to Step up Your Yo...
 
WordPress REST API
WordPress REST APIWordPress REST API
WordPress REST API
 
Google Home Voice Casting in ActionHow RakutenViki Integrates with Google Home
Google Home Voice Casting in ActionHow RakutenViki Integrates with Google HomeGoogle Home Voice Casting in ActionHow RakutenViki Integrates with Google Home
Google Home Voice Casting in ActionHow RakutenViki Integrates with Google Home
 
Tracking online conversations with Yahoo Pipes
Tracking online conversations with Yahoo PipesTracking online conversations with Yahoo Pipes
Tracking online conversations with Yahoo Pipes
 
Tube Hero Reloaded review
Tube Hero Reloaded review Tube Hero Reloaded review
Tube Hero Reloaded review
 
Discovering Public APIs and Public API Network with Postman
Discovering Public APIs and Public API Network with PostmanDiscovering Public APIs and Public API Network with Postman
Discovering Public APIs and Public API Network with Postman
 
Twilio OpenVBX and the 3rd Open Source Business Model
Twilio OpenVBX and the 3rd Open Source Business ModelTwilio OpenVBX and the 3rd Open Source Business Model
Twilio OpenVBX and the 3rd Open Source Business Model
 
Using the GitHub App to Connect to Bitbucket
Using the GitHub App to Connect to BitbucketUsing the GitHub App to Connect to Bitbucket
Using the GitHub App to Connect to Bitbucket
 
2022 APIsecure_Making webhook APIs secure for enterprise
2022 APIsecure_Making webhook APIs secure for enterprise2022 APIsecure_Making webhook APIs secure for enterprise
2022 APIsecure_Making webhook APIs secure for enterprise
 
OAuth 2.0 Integration Patterns with XACML
OAuth 2.0 Integration Patterns with XACMLOAuth 2.0 Integration Patterns with XACML
OAuth 2.0 Integration Patterns with XACML
 
Fall2010 producer summit_openpbs_final
Fall2010 producer summit_openpbs_finalFall2010 producer summit_openpbs_final
Fall2010 producer summit_openpbs_final
 

More from Ade Oshineye

Google+ Hangouts at Digital Shoreditch
Google+ Hangouts at Digital ShoreditchGoogle+ Hangouts at Digital Shoreditch
Google+ Hangouts at Digital ShoreditchAde Oshineye
 
Google+: an introduction
Google+: an introductionGoogle+: an introduction
Google+: an introductionAde Oshineye
 
The freedom to be you
The freedom to be youThe freedom to be you
The freedom to be youAde Oshineye
 
Google, Developer Experience and Discovery
Google, Developer Experience and DiscoveryGoogle, Developer Experience and Discovery
Google, Developer Experience and DiscoveryAde Oshineye
 
Guardian devexp and_discovery
Guardian devexp and_discoveryGuardian devexp and_discovery
Guardian devexp and_discoveryAde Oshineye
 
Distributed Backups for friends and communities
Distributed Backups for friends and communitiesDistributed Backups for friends and communities
Distributed Backups for friends and communitiesAde Oshineye
 
What comes after social networking?
What comes after social networking?What comes after social networking?
What comes after social networking?Ade Oshineye
 
Test Driven Development on Google App Engine
Test Driven Development on Google App EngineTest Driven Development on Google App Engine
Test Driven Development on Google App EngineAde Oshineye
 

More from Ade Oshineye (9)

Google+ Hangouts at Digital Shoreditch
Google+ Hangouts at Digital ShoreditchGoogle+ Hangouts at Digital Shoreditch
Google+ Hangouts at Digital Shoreditch
 
Google+: an introduction
Google+: an introductionGoogle+: an introduction
Google+: an introduction
 
The freedom to be you
The freedom to be youThe freedom to be you
The freedom to be you
 
Google, Developer Experience and Discovery
Google, Developer Experience and DiscoveryGoogle, Developer Experience and Discovery
Google, Developer Experience and Discovery
 
Guardian devexp and_discovery
Guardian devexp and_discoveryGuardian devexp and_discovery
Guardian devexp and_discovery
 
Distributed Backups for friends and communities
Distributed Backups for friends and communitiesDistributed Backups for friends and communities
Distributed Backups for friends and communities
 
What comes after social networking?
What comes after social networking?What comes after social networking?
What comes after social networking?
 
Google masterplan
Google masterplanGoogle masterplan
Google masterplan
 
Test Driven Development on Google App Engine
Test Driven Development on Google App EngineTest Driven Development on Google App Engine
Test Driven Development on Google App Engine
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

Powering the Social Web: Discovery & Developer Experience

  • 1. Powering the Social Web Discovery & Developer Experience 1
  • 2. @adewale buzz.google.com/adewale @ade_oshineye twitter.com/ade_oshineye
  • 4. Google’s mission To organize the world’s information and make it universally accessible and useful. Online content Offline content Billions of web pages Billions of items becoming indexed 4
  • 5. Outline 1 The technologies behind the Buzz API 2 Discovery 3 Developer Experience 4 The web is the platform 5
  • 6. Buzz & the open technologies behind it 6
  • 7. 7
  • 8. 8
  • 10.
  • 11.
  • 12. Passwords are bad for everyone
  • 13.
  • 14. OAuth Your Service Application Get unauthorized Provider request token 1. Your application gets an unauthorized request token from the Service Provider’s authorization server.
  • 15. OAuth Your Service Application Provider Send user to SP with token 2. Your application sends the user to the Service Provider, which asks the user to grant your application access to the required data.
  • 16. OAuth Your Service Application Get authorized Provider request token 3. Your application gets an authorized request token from the authorization server.
  • 17. OAuth Your Service Application Exchange request Provider for access token 4. You exchange the authorized request token for an access token.
  • 18. OAuth Your Service Application Use access token Provider to get data 5. You use the access token to request data from Service Provider’s service access servers.
  • 19. Auth url: https://www.google.com/buzz/api/auth/OAuthAuthorizeToken https://www.google.com/buzz/api/auth/OAuthAuthorizeToken scope: https://www.googleapis.com/auth/buzz ?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbuzz domain: www.example.org &domain=www.example.org iconUrl: http://www.example.org/icon.png &oauth_token=
  • 20.
  • 21.
  • 22. Polling is bad for everyone
  • 24. PubSubHubbub Publisher Hub Subscriber
  • 25. PubSubHubbub Give me your latest content for feed X, please. Publisher Subscriber 1. Subscriber gets Publisher’s feed. The feed contains a link to the Hub.
  • 26. PubSubHubbub I've delegated distribution of that content to this Hub. Publisher Subscriber 1. Subscriber gets Publisher’s feed. The feed contains a link to the Hub.
  • 27. PubSubHubbub I want to subscribe to feed X. Send updates to this URL Publisher Hub Subscriber 2. Subscriber POSTs subscription request to the Hub. The request contains the URL where the Hub should POST new updates to the Subscriber.
  • 28. PubSubHubbub Hey there! Did you really send this request? Publisher Hub Subscriber 3. Hub hits the URL to verify the request was authentic; Subscriber responds with confirmation to the Hub.
  • 29. PubSubHubbub Yup, that was really me, not a DoS attacker. Publisher Hub Subscriber 3. Hub hits the URL to verify the request was authentic; Subscriber responds with confirmation to the Hub.
  • 30. PubSubHubbub I have new content for feed X for you! Publisher Hub Subscriber 4. a) Publisher notifies Hub about updates by POSTing feed URLs to the Hub; Hub pulls the feed again to find new entries.
  • 31. PubSubHubbub Give me your latest content for feed X, please. Publisher Hub Subscriber 4. a) Publisher notifies Hub about updates by POSTing feed URLs to the Hub; Hub pulls the feed again to find new entries.
  • 32. PubSubHubbub Here you go. Publisher Hub Subscriber 4. a) Publisher notifies Hub about updates by POSTing feed URLs to the Hub; Hub pulls the feed again to find new entries.
  • 33. PubSubHubbub Give me your latest content for feed X, please. Publisher Hub Subscriber 4. b) If the Publisher does not inform the Hub, the Hub will periodically poll the Publisher’s feed for new updates.
  • 34. PubSubHubbub Here you go. Publisher Hub Subscriber 4. b) If the Publisher does not inform the Hub, the Hub will periodically poll the Publisher’s feed for new updates.
  • 35. PubSubHubbub New update to feed X! Here you go. Publisher Hub Subscriber 5. When Hub receives new update to feed X, it POSTs the update to the Subscriber’s endpoint URL.
  • 36. PubSubHubbub New update to feed X! Here you go. Publisher Hub Subscriber Subscriber Subscriber Subscriber Subscriber Subscriber 6. If feed X has multiple subscribers, the Hub sends updates to all of them. This reduces load on the Publisher.
  • 39. Photo credit: Nandhp, used under the Creative Commons Attribution-Share Alike 3.0 Unported license. Gardenhose
  • 40. Track
  • 41. Discovery 41
  • 43. Discovery document goo.gl/Yy7XD 43
  • 45. Easier migration AuthSub to OAuth1 OAuth1 to OAuth2 45
  • 47. Discovery-based libraries code.google.com/p/google-api-php-client/ code.google.com/p/google-api-python-client/ code.google.com/p/google-api-java-client/ code.google.com/p/google-api-ruby-client  47
  • 49. Benefits 1 Latest features are instantly available to every language 2 More languages are supported by more APIs 3 APIs console gives you centralised management 4 Easier to use multiple APIs in the same project 49
  • 52. Developer Experience 1 Apply UX techniques to developer-facing products 2 Focus on the 15 minute OOB experience 3 Use convention over configuration 4 Design away common problems 52
  • 53. The web is the platform 53
  • 54. Our platform is open to extension, adaptation and disruptive creativity 54
  • 55. Discovery is the future 55
  • 56. Alerts Blogger Blog Search Book Search Buzz Calendar Checkout Code Docs & Feedburner Froogle Gmail Google Labs Directory Earth Finance Spreadsheets Google Reader Groups Images Local Maps Maps for Mobile Mobile News Pack Picasa Scholar Talk Toolbar Translate SketchUp SMS Specialized Video Web Accelerator Web Search YouTube Searches 56
  • 57. The web is the platform 57