SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Google and the social Web
Patrick Chanezon @chanezon Google
Mauro Gonzalez @gmaurol Globant
11/16/09

Post your questions for this talk on Twitter #devfest09
#opensocial
“The web is better when
it's social.”
David Glazer, Google Engineering Director
Clock




4
Movies




5
Stocks




6
Google is Better When it’s Social
Google Docs
Collaboration is social




 8
Google Reader
Sharing is social




9
Google Groups, Google Talk, Gmail
Communication is social




10
YouTube
Updates are social




11
Implicit Social Graphs
Google Contacts
     –  Contacts lets users manage relationships




13
Profiles
     –  Let users create a persona
     –  Public image on the web
     –  Available in search




14
What's Google Getting with Social?
•  Richer web apps




       More revenue                    More users


                     Increased usage




15
Recommendations for the Social Web
 Use the same approach



     –  Interact with your friends where you are and where they are
     –  Don't lock users into a single site
     –  Take advantage of implicit social graphs




       The result is more powerful, more useful applications




16
How Developers Benefit
How Developers Benefit


     –  Use Google's social graph
        •  In your own apps
        •  To integrate with our apps
        •  To add features to our apps
     –  Several technologies to accomplish these goals…




18
OpenSocial


     –  Common APIs for accessing social data
         •  People
         •  Activities
         •  App Data
     –  JavaScript, REST, and RPC implementations
     –  Newest version, 0.9, just released




19
OpenSocial
Supporting products




20
Portable Contacts
     –  The coolest technology without a logo
     –  Fully compatible with opensocial.Person API
     –  Pulls the user's social graph into a 3rd party site (with the user's
       permission)




21
Google Friend Connect
     –  Uses OpenSocial (gadgets, REST/RPC)
     –  Allows site owners to mix in social data to existing sites
     –  Cut and paste or
     –  Deep integrations




22
Back to OpenSocial…




23
What They Have in Common


     –  Millions of users with a shared focus and demands
     –  Common social graph and social data
        •  Uses the 'Friends' group in Contacts
        •  App data is shared between app instances
        •  The same endpoint is used for the REST/RPC protocols




24
iGoogle
OpenSocial

     –  Provides 'home' and 'canvas' views
     –  requestShareApp and Updates for organic growth




25
Gmail
OpenSocial


     –  Provides 'nav' and 'canvas' views
     –  Enabled as a Gmail Labs feature




26
Google Calendar
     OpenSocial
      –  Early preview
      –  Provides 'nav' and 'canvas' views
      –  Includes google.calendar API extensions, eg:
          •  google.calendar.showEvent
          •  google.calendar.subscribeToDates
          •  google.calendar.getUserEvents




27
Google Calendar
OpenSocial

     –  Gadgets are all about making Calendar extensible
     –  Bringing apps into Calendar
     –  Private whitelist for now, open to developers in the near future
     –  Check out the Developer Sandbox at I/O for a closer look at
       more details




28
Container Cheat Sheet



         Leverage social graph


         Quick data entry


         Dashboard view


         Container-specific extensions




29
Quartermile: An Example Gadget




30
Quartermile: An Example Gadget
Quartermile
Gadget overview

     –  Track exercise with others
     –  View stats
     –  Quick, "smart" data entry box
     –  Google App Engine backend




32
Quartermile
 Architecture




                Signed request


                    JSON




33
Quartermile
Designing for iGoogle



            Leverage social graph


            Quick data entry


            Dashboard view


            Container-specific extensions




34
Quartermile
Joining a team

     –  Load VIEWER_FRIENDS
     –  Send result to backend
     –  Return set of "interesting" teams




35
Quartermile
Retrieving friends (client)


var batch = osapi.newBatch().
 add('viewer', osapi.people.getViewer()).
 add('friends', osapi.people.get({
  userId: '@viewer',
  groupId: '@friends' }));

batch.execute(callback);




 36
Quartermile
Retrieving friends (compared with 0.8)

var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest('VIEWER'),
 'viewer');

var friends = opensocial.newIdSpec({
 'userId':'VIEWER', 'groupId':'FRIENDS' });
req.add(req.newFetchPeopleRequest(friends),
 'friends');

req.send(callback);




 37
Quartermile
 Getting a team list (client)


// ['2001', '2003', '3000']

function getInterestingTeams(ids) {
  var request = {
   'method':'get_interesting_teams',
   'data':ids };
  osapi.http.post(SERVER, { body:
   gadgets.json.stringify(request) }).
  execute(displayTeams);
}




 38
Quartermile
Getting a team list (server)


// team_ids = [2001, 2003, 3000]

teams = model_get_by_id(models.Team, team_ids)

gql = models.Team.gql("ORDER BY count DESC")
interesting_teams =
 gql.fetch(Settings.MAX_INTERESTING_TEAMS)

return teams + interesting_teams




 39
Quarter Mile
Displaying the list of teams (client)


//[{'team_id':2001, 'team_name':'Fitness Nuts'},
// {'team_id':2003, 'team_name':'Code Runners'}]

function displayTeams(data) {
  var teams = data.teams;
  for (i in teams) {
    $('#interesting').append(jQuery('<li>' +
     teams[i].team_name + '</li>');
  }
}




 40
Quartermile
Designing for Gmail



             Leverage social graph           ✓

             Quick data entry


             Dashboard view


             Container-specific extensions




41
Quartermile
Recording an exercise

     –  User enters an activity
     –  Gadget sends request to server
     –  Response is rendered in the activity list




42
Quartermile
Recording an exercise (client)


// 'walked 1 mile'

function saveExercise(text) {
  var request = {
   'method':'create_activity',
   'data':text };
  osapi.http.post(SERVER, { body:
   gadgets.json.stringify(request) }).
  execute(updateExercises);
}




 43
Quartermile
Designing for Gmail part two



            Leverage social graph           ✓

            Quick data entry                ✓

            Dashboard view


            Container-specific extensions




44
Quartermile
Displaying a dashboard




45
Quartermile
Navigating to the canvas view (client)




gadgets.views.requestNavigateTo('canvas');




46
Quartermile
Rendering charts (client)



var table = new google.visualization.DataTable();
table.addColumn('string', 'Timestamp');
for (i in data.accounts) {
  ...
}
var chart = new google.visualization.ColumnChart(
  document.getElementById('dash_chart'));
chart.draw(table, {isStacked:true, width:600,
  height:400, legend:'bottom'});




47
Quartermile
Designing for Calendar



            Leverage social graph           ✓

            Quick data entry                ✓

            Dashboard view                  ✓

            Container-specific extensions




48
Quartermile
Viewing a slice of data

     –  User loads Calendar
     –  User switches between dates or daily, weekly, or monthly view
     –  List of activities updates based on the current view range




49
Quartermile
Specifying a date callback (client)



function changeDateView(dateRange) {
 var startTime = dateRange.startTime;
 var endTime = dateRange.endTime;

    updateRange(startTime, endTime);
}

google.calendar.subscribeToDates(changeDateView);




 50
Quartermile
Finished gadget



            Leverage social graph           ✓

            Quick data entry                ✓

            Dashboard view                  ✓

            Container-specific extensions   ✓



51
Quarter Mile

Getting users

     –  Submit to container directory
     –  Use available API calls for organic growth
         •  requestShareApp, Updates
     –  Cross promote
     –  Advertise




52
Out to the Social Web




53
Out to the Social Web




                        Signed request


                            JSON




54
Google Friend Connect Integrations
•  Wordpress
•  Drupal




55
Q&A

Mais conteúdo relacionado

Mais procurados

Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around KafkaKafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Guido Schmutz
 
Building hybrid cloud with cloudify (public)
Building hybrid cloud with cloudify (public)Building hybrid cloud with cloudify (public)
Building hybrid cloud with cloudify (public)
Nati Shalom
 

Mais procurados (20)

Google Cloud Platform
Google Cloud PlatformGoogle Cloud Platform
Google Cloud Platform
 
Ingesting streaming data into Graph Database
Ingesting streaming data into Graph DatabaseIngesting streaming data into Graph Database
Ingesting streaming data into Graph Database
 
The Cloud Revolution - Philippines Cloud Summit
The Cloud Revolution - Philippines Cloud SummitThe Cloud Revolution - Philippines Cloud Summit
The Cloud Revolution - Philippines Cloud Summit
 
The Cloud Native Stack
The Cloud Native StackThe Cloud Native Stack
The Cloud Native Stack
 
Resilient microservices with Kubernetes - Mete Atamel
Resilient microservices with Kubernetes - Mete AtamelResilient microservices with Kubernetes - Mete Atamel
Resilient microservices with Kubernetes - Mete Atamel
 
30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
 
Paul Angus: CloudStack new UI (Primate)
Paul Angus: CloudStack new UI (Primate)Paul Angus: CloudStack new UI (Primate)
Paul Angus: CloudStack new UI (Primate)
 
Building event-driven (Micro)Services with Apache Kafka Ecosystem
Building event-driven (Micro)Services with Apache Kafka EcosystemBuilding event-driven (Micro)Services with Apache Kafka Ecosystem
Building event-driven (Micro)Services with Apache Kafka Ecosystem
 
Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?
 
Microservices Journey Summer 2017
Microservices Journey Summer 2017Microservices Journey Summer 2017
Microservices Journey Summer 2017
 
How to migrate workloads to the google cloud platform
How to migrate workloads to the google cloud platformHow to migrate workloads to the google cloud platform
How to migrate workloads to the google cloud platform
 
Next Generation Cloud Computing With Google - RightScale Compute 2013
Next Generation Cloud Computing With Google - RightScale Compute 2013Next Generation Cloud Computing With Google - RightScale Compute 2013
Next Generation Cloud Computing With Google - RightScale Compute 2013
 
MongoDB World 2016: NOW TV and Linear Streaming: Scaling MongoDB for High Loa...
MongoDB World 2016: NOW TV and Linear Streaming: Scaling MongoDB for High Loa...MongoDB World 2016: NOW TV and Linear Streaming: Scaling MongoDB for High Loa...
MongoDB World 2016: NOW TV and Linear Streaming: Scaling MongoDB for High Loa...
 
One cluster to serve them all
One cluster to serve them allOne cluster to serve them all
One cluster to serve them all
 
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around KafkaKafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
 
Building hybrid cloud with cloudify (public)
Building hybrid cloud with cloudify (public)Building hybrid cloud with cloudify (public)
Building hybrid cloud with cloudify (public)
 
Kafka Summit 2019 Microservice Orchestration
Kafka Summit 2019 Microservice OrchestrationKafka Summit 2019 Microservice Orchestration
Kafka Summit 2019 Microservice Orchestration
 
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices
 
A guide through the Azure Messaging services - Update Conference
A guide through the Azure Messaging services - Update ConferenceA guide through the Azure Messaging services - Update Conference
A guide through the Azure Messaging services - Update Conference
 

Semelhante a Google Devfest 2009 Argentina - Google and the Social Web

Semelhante a Google Devfest 2009 Argentina - Google and the Social Web (20)

Google Developer Days Brazil 2009 - Google Social Web
Google Developer Days Brazil 2009 -  Google Social WebGoogle Developer Days Brazil 2009 -  Google Social Web
Google Developer Days Brazil 2009 - Google Social Web
 
GraphQL Advanced
GraphQL AdvancedGraphQL Advanced
GraphQL Advanced
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
Getting started with GCP ( Google Cloud Platform)
Getting started with GCP ( Google  Cloud Platform)Getting started with GCP ( Google  Cloud Platform)
Getting started with GCP ( Google Cloud Platform)
 
Google Cloud lightning talk @MHacks
Google Cloud lightning talk @MHacksGoogle Cloud lightning talk @MHacks
Google Cloud lightning talk @MHacks
 
Image archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google CloudImage archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google Cloud
 
Google Dremel. Concept and Implementations.
Google Dremel. Concept and Implementations.Google Dremel. Concept and Implementations.
Google Dremel. Concept and Implementations.
 
Building a Better BaaS
Building a Better BaaSBuilding a Better BaaS
Building a Better BaaS
 
JAM23-24_ppt.pptx
JAM23-24_ppt.pptxJAM23-24_ppt.pptx
JAM23-24_ppt.pptx
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuery
 
Enabling Secure Data Discoverability (SC21 Tutorial)
Enabling Secure Data Discoverability (SC21 Tutorial)Enabling Secure Data Discoverability (SC21 Tutorial)
Enabling Secure Data Discoverability (SC21 Tutorial)
 
Working with Globus Platform Services and Portals
Working with Globus Platform Services and PortalsWorking with Globus Platform Services and Portals
Working with Globus Platform Services and Portals
 
BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!
 
Cf summit-2016-monitoring-cf-sensu-graphite
Cf summit-2016-monitoring-cf-sensu-graphiteCf summit-2016-monitoring-cf-sensu-graphite
Cf summit-2016-monitoring-cf-sensu-graphite
 
Key projects Data Science and Engineering
Key projects Data Science and EngineeringKey projects Data Science and Engineering
Key projects Data Science and Engineering
 
Key projects Data Science and Engineering
Key projects Data Science and EngineeringKey projects Data Science and Engineering
Key projects Data Science and Engineering
 
Getting Started with DrupalGap
Getting Started with DrupalGapGetting Started with DrupalGap
Getting Started with DrupalGap
 
The Future of Sharding
The Future of ShardingThe Future of Sharding
The Future of Sharding
 
SharePoint Saturday Chicago - Everything your need to know about the Microsof...
SharePoint Saturday Chicago - Everything your need to know about the Microsof...SharePoint Saturday Chicago - Everything your need to know about the Microsof...
SharePoint Saturday Chicago - Everything your need to know about the Microsof...
 

Mais de Patrick Chanezon

Mais de Patrick Chanezon (20)

KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)KubeCon 2019 - Scaling your cluster (both ways)
KubeCon 2019 - Scaling your cluster (both ways)
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
 
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesDockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - Intro
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and Microsoft
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerDocker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
 
DockerCon EU 2017 Recap
DockerCon EU 2017 RecapDockerCon EU 2017 Recap
DockerCon EU 2017 Recap
 
Docker Innovation Culture
Docker Innovation CultureDocker Innovation Culture
Docker Innovation Culture
 
The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Moby Introduction - June 2017
Moby Introduction - June 2017Moby Introduction - June 2017
Moby Introduction - June 2017
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Google Devfest 2009 Argentina - Google and the Social Web

  • 1.
  • 2. Google and the social Web Patrick Chanezon @chanezon Google Mauro Gonzalez @gmaurol Globant 11/16/09 Post your questions for this talk on Twitter #devfest09 #opensocial
  • 3. “The web is better when it's social.” David Glazer, Google Engineering Director
  • 7. Google is Better When it’s Social
  • 10. Google Groups, Google Talk, Gmail Communication is social 10
  • 13. Google Contacts –  Contacts lets users manage relationships 13
  • 14. Profiles –  Let users create a persona –  Public image on the web –  Available in search 14
  • 15. What's Google Getting with Social? •  Richer web apps More revenue More users Increased usage 15
  • 16. Recommendations for the Social Web Use the same approach –  Interact with your friends where you are and where they are –  Don't lock users into a single site –  Take advantage of implicit social graphs The result is more powerful, more useful applications 16
  • 18. How Developers Benefit –  Use Google's social graph •  In your own apps •  To integrate with our apps •  To add features to our apps –  Several technologies to accomplish these goals… 18
  • 19. OpenSocial –  Common APIs for accessing social data •  People •  Activities •  App Data –  JavaScript, REST, and RPC implementations –  Newest version, 0.9, just released 19
  • 21. Portable Contacts –  The coolest technology without a logo –  Fully compatible with opensocial.Person API –  Pulls the user's social graph into a 3rd party site (with the user's permission) 21
  • 22. Google Friend Connect –  Uses OpenSocial (gadgets, REST/RPC) –  Allows site owners to mix in social data to existing sites –  Cut and paste or –  Deep integrations 22
  • 24. What They Have in Common –  Millions of users with a shared focus and demands –  Common social graph and social data •  Uses the 'Friends' group in Contacts •  App data is shared between app instances •  The same endpoint is used for the REST/RPC protocols 24
  • 25. iGoogle OpenSocial –  Provides 'home' and 'canvas' views –  requestShareApp and Updates for organic growth 25
  • 26. Gmail OpenSocial –  Provides 'nav' and 'canvas' views –  Enabled as a Gmail Labs feature 26
  • 27. Google Calendar OpenSocial –  Early preview –  Provides 'nav' and 'canvas' views –  Includes google.calendar API extensions, eg: •  google.calendar.showEvent •  google.calendar.subscribeToDates •  google.calendar.getUserEvents 27
  • 28. Google Calendar OpenSocial –  Gadgets are all about making Calendar extensible –  Bringing apps into Calendar –  Private whitelist for now, open to developers in the near future –  Check out the Developer Sandbox at I/O for a closer look at more details 28
  • 29. Container Cheat Sheet Leverage social graph Quick data entry Dashboard view Container-specific extensions 29
  • 32. Quartermile Gadget overview –  Track exercise with others –  View stats –  Quick, "smart" data entry box –  Google App Engine backend 32
  • 33. Quartermile Architecture Signed request JSON 33
  • 34. Quartermile Designing for iGoogle Leverage social graph Quick data entry Dashboard view Container-specific extensions 34
  • 35. Quartermile Joining a team –  Load VIEWER_FRIENDS –  Send result to backend –  Return set of "interesting" teams 35
  • 36. Quartermile Retrieving friends (client) var batch = osapi.newBatch(). add('viewer', osapi.people.getViewer()). add('friends', osapi.people.get({ userId: '@viewer', groupId: '@friends' })); batch.execute(callback); 36
  • 37. Quartermile Retrieving friends (compared with 0.8) var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest('VIEWER'), 'viewer'); var friends = opensocial.newIdSpec({ 'userId':'VIEWER', 'groupId':'FRIENDS' }); req.add(req.newFetchPeopleRequest(friends), 'friends'); req.send(callback); 37
  • 38. Quartermile Getting a team list (client) // ['2001', '2003', '3000'] function getInterestingTeams(ids) { var request = { 'method':'get_interesting_teams', 'data':ids }; osapi.http.post(SERVER, { body: gadgets.json.stringify(request) }). execute(displayTeams); } 38
  • 39. Quartermile Getting a team list (server) // team_ids = [2001, 2003, 3000] teams = model_get_by_id(models.Team, team_ids) gql = models.Team.gql("ORDER BY count DESC") interesting_teams = gql.fetch(Settings.MAX_INTERESTING_TEAMS) return teams + interesting_teams 39
  • 40. Quarter Mile Displaying the list of teams (client) //[{'team_id':2001, 'team_name':'Fitness Nuts'}, // {'team_id':2003, 'team_name':'Code Runners'}] function displayTeams(data) { var teams = data.teams; for (i in teams) { $('#interesting').append(jQuery('<li>' + teams[i].team_name + '</li>'); } } 40
  • 41. Quartermile Designing for Gmail Leverage social graph ✓ Quick data entry Dashboard view Container-specific extensions 41
  • 42. Quartermile Recording an exercise –  User enters an activity –  Gadget sends request to server –  Response is rendered in the activity list 42
  • 43. Quartermile Recording an exercise (client) // 'walked 1 mile' function saveExercise(text) { var request = { 'method':'create_activity', 'data':text }; osapi.http.post(SERVER, { body: gadgets.json.stringify(request) }). execute(updateExercises); } 43
  • 44. Quartermile Designing for Gmail part two Leverage social graph ✓ Quick data entry ✓ Dashboard view Container-specific extensions 44
  • 46. Quartermile Navigating to the canvas view (client) gadgets.views.requestNavigateTo('canvas'); 46
  • 47. Quartermile Rendering charts (client) var table = new google.visualization.DataTable(); table.addColumn('string', 'Timestamp'); for (i in data.accounts) { ... } var chart = new google.visualization.ColumnChart( document.getElementById('dash_chart')); chart.draw(table, {isStacked:true, width:600, height:400, legend:'bottom'}); 47
  • 48. Quartermile Designing for Calendar Leverage social graph ✓ Quick data entry ✓ Dashboard view ✓ Container-specific extensions 48
  • 49. Quartermile Viewing a slice of data –  User loads Calendar –  User switches between dates or daily, weekly, or monthly view –  List of activities updates based on the current view range 49
  • 50. Quartermile Specifying a date callback (client) function changeDateView(dateRange) { var startTime = dateRange.startTime; var endTime = dateRange.endTime; updateRange(startTime, endTime); } google.calendar.subscribeToDates(changeDateView); 50
  • 51. Quartermile Finished gadget Leverage social graph ✓ Quick data entry ✓ Dashboard view ✓ Container-specific extensions ✓ 51
  • 52. Quarter Mile Getting users –  Submit to container directory –  Use available API calls for organic growth •  requestShareApp, Updates –  Cross promote –  Advertise 52
  • 53. Out to the Social Web 53
  • 54. Out to the Social Web Signed request JSON 54
  • 55. Google Friend Connect Integrations •  Wordpress •  Drupal 55
  • 56. Q&A