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

Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 

Recently uploaded (20)

Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 

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