SlideShare a Scribd company logo
1 of 55
Download to read offline
Google and the Social Web
Chris Schalk & Patrick Chanezon
June 29, 2009
“The web is better when
it's social.”
David Glazer, Google Engineering Director
Clock




3
Movies




4
Stocks




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




 7
Google Reader
Sharing is social




8
Google Groups, Google Talk, Gmail
Communication is social




9
YouTube
Updates are social




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




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




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




       More revenue                    More users


                     Increased usage




14
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




15
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…




17
OpenSocial


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




18
OpenSocial
Supporting products




19
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)




20
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




21
Back to OpenSocial…




22
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




23
iGoogle
OpenSocial

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




24
Gmail
OpenSocial


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




25
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




26
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




27
Container Cheat Sheet



         Leverage social graph


         Quick data entry


         Dashboard view


         Container-specific extensions




28
Quartermile: An Example Gadget




29
Quartermile: An Example Gadget
Quartermile
Gadget overview

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




31
Quartermile
 Architecture




                Signed request


                    JSON




32
Quartermile
Designing for iGoogle



            Leverage social graph


            Quick data entry


            Dashboard view


            Container-specific extensions




33
Quartermile
Joining a team

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




34
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);




 35
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);




 36
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);
}




 37
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




 38
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>');
  }
}




 39
Quartermile
Designing for Gmail



             Leverage social graph           ✓

             Quick data entry


             Dashboard view


             Container-specific extensions




40
Quartermile
Recording an exercise

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




41
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);
}




 42
Quartermile
Designing for Gmail part two



            Leverage social graph           ✓

            Quick data entry                ✓

            Dashboard view


            Container-specific extensions




43
Quartermile
Displaying a dashboard




44
Quartermile
Navigating to the canvas view (client)




gadgets.views.requestNavigateTo('canvas');




45
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'});




46
Quartermile
Designing for Calendar



            Leverage social graph           ✓

            Quick data entry                ✓

            Dashboard view                  ✓

            Container-specific extensions




47
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




48
Quartermile
Specifying a date callback (client)



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

    updateRange(startTime, endTime);
}

google.calendar.subscribeToDates(changeDateView);




 49
Quartermile
Finished gadget



            Leverage social graph           ✓

            Quick data entry                ✓

            Dashboard view                  ✓

            Container-specific extensions   ✓



50
Quarter Mile

Getting users

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




51
Out to the Social Web




52
Out to the Social Web




                        Signed request


                            JSON




53
Q&A
Google Developer Days Brazil 2009 -  Google Social Web

More Related Content

Viewers also liked

Ddb Digital Days: Open Source, Google Apis, OpenSocial
Ddb Digital Days: Open Source, Google Apis, OpenSocialDdb Digital Days: Open Source, Google Apis, OpenSocial
Ddb Digital Days: Open Source, Google Apis, OpenSocialPatrick Chanezon
 
GDD Brazil 2010 - The Open and Social Web
GDD Brazil 2010 - The Open and Social WebGDD Brazil 2010 - The Open and Social Web
GDD Brazil 2010 - The Open and Social WebPatrick Chanezon
 
GSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For BusinessGSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For BusinessPatrick Chanezon
 
Social Network Technologies and Usages
Social Network Technologies and UsagesSocial Network Technologies and Usages
Social Network Technologies and UsagesPatrick Chanezon
 
Social Networks and Social Capital
Social Networks and Social CapitalSocial Networks and Social Capital
Social Networks and Social CapitalGiorgos Cheliotis
 
Docker containerd Kubernetes sig node
Docker containerd Kubernetes sig nodeDocker containerd Kubernetes sig node
Docker containerd Kubernetes sig nodePatrick Chanezon
 

Viewers also liked (6)

Ddb Digital Days: Open Source, Google Apis, OpenSocial
Ddb Digital Days: Open Source, Google Apis, OpenSocialDdb Digital Days: Open Source, Google Apis, OpenSocial
Ddb Digital Days: Open Source, Google Apis, OpenSocial
 
GDD Brazil 2010 - The Open and Social Web
GDD Brazil 2010 - The Open and Social WebGDD Brazil 2010 - The Open and Social Web
GDD Brazil 2010 - The Open and Social Web
 
GSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For BusinessGSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For Business
 
Social Network Technologies and Usages
Social Network Technologies and UsagesSocial Network Technologies and Usages
Social Network Technologies and Usages
 
Social Networks and Social Capital
Social Networks and Social CapitalSocial Networks and Social Capital
Social Networks and Social Capital
 
Docker containerd Kubernetes sig node
Docker containerd Kubernetes sig nodeDocker containerd Kubernetes sig node
Docker containerd Kubernetes sig node
 

Similar to Google Developer Days Brazil 2009 - Google Social Web

GraphQL Advanced
GraphQL AdvancedGraphQL Advanced
GraphQL AdvancedLeanIX GmbH
 
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 needsMicrosoft Tech Community
 
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 needsMicrosoft Tech Community
 
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)bigdata trunk
 
Enabling Secure Data Discoverability (SC21 Tutorial)
Enabling Secure Data Discoverability (SC21 Tutorial)Enabling Secure Data Discoverability (SC21 Tutorial)
Enabling Secure Data Discoverability (SC21 Tutorial)Globus
 
Google Cloud lightning talk @MHacks
Google Cloud lightning talk @MHacksGoogle Cloud lightning talk @MHacks
Google Cloud lightning talk @MHackswesley chun
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQueryMárton Kodok
 
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 Cloudwesley chun
 
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!Craig Schumann
 
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-graphiteJeff Barrows
 
Key projects Data Science and Engineering
Key projects Data Science and EngineeringKey projects Data Science and Engineering
Key projects Data Science and EngineeringVijayananda Mohire
 
Key projects Data Science and Engineering
Key projects Data Science and EngineeringKey projects Data Science and Engineering
Key projects Data Science and EngineeringVijayananda Mohire
 
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...Sébastien Levert
 
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 PortalsGlobus
 
Architecting for change: LinkedIn's new data ecosystem
Architecting for change: LinkedIn's new data ecosystemArchitecting for change: LinkedIn's new data ecosystem
Architecting for change: LinkedIn's new data ecosystemYael Garten
 
Strata 2016 - Architecting for Change: LinkedIn's new data ecosystem
Strata 2016 - Architecting for Change: LinkedIn's new data ecosystemStrata 2016 - Architecting for Change: LinkedIn's new data ecosystem
Strata 2016 - Architecting for Change: LinkedIn's new data ecosystemShirshanka Das
 
Cross-Tier Application and Data Partitioning of Web Applications for Hybrid C...
Cross-Tier Application and Data Partitioning of Web Applications for Hybrid C...Cross-Tier Application and Data Partitioning of Web Applications for Hybrid C...
Cross-Tier Application and Data Partitioning of Web Applications for Hybrid C...nimak
 

Similar to Google Developer Days Brazil 2009 - Google Social Web (20)

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)
 
Enabling Secure Data Discoverability (SC21 Tutorial)
Enabling Secure Data Discoverability (SC21 Tutorial)Enabling Secure Data Discoverability (SC21 Tutorial)
Enabling Secure Data Discoverability (SC21 Tutorial)
 
Building a Better BaaS
Building a Better BaaSBuilding a Better BaaS
Building a Better BaaS
 
Google Cloud lightning talk @MHacks
Google Cloud lightning talk @MHacksGoogle Cloud lightning talk @MHacks
Google Cloud lightning talk @MHacks
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuery
 
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
 
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!
 
JAM23-24_ppt.pptx
JAM23-24_ppt.pptxJAM23-24_ppt.pptx
JAM23-24_ppt.pptx
 
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
 
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...
 
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
 
AngularJS in large applications - AE NV
AngularJS in large applications - AE NVAngularJS in large applications - AE NV
AngularJS in large applications - AE NV
 
Architecting for change: LinkedIn's new data ecosystem
Architecting for change: LinkedIn's new data ecosystemArchitecting for change: LinkedIn's new data ecosystem
Architecting for change: LinkedIn's new data ecosystem
 
Strata 2016 - Architecting for Change: LinkedIn's new data ecosystem
Strata 2016 - Architecting for Change: LinkedIn's new data ecosystemStrata 2016 - Architecting for Change: LinkedIn's new data ecosystem
Strata 2016 - Architecting for Change: LinkedIn's new data ecosystem
 
Cross-Tier Application and Data Partitioning of Web Applications for Hybrid C...
Cross-Tier Application and Data Partitioning of Web Applications for Hybrid C...Cross-Tier Application and Data Partitioning of Web Applications for Hybrid C...
Cross-Tier Application and Data Partitioning of Web Applications for Hybrid C...
 

More from Patrick Chanezon

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)Patrick Chanezon
 
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...Patrick Chanezon
 
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 ServicesPatrick Chanezon
 
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 ServicesPatrick Chanezon
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroPatrick Chanezon
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick Chanezon
 
The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018Patrick Chanezon
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftPatrick Chanezon
 
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 2018Patrick Chanezon
 
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 DockerPatrick Chanezon
 
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 2017Patrick Chanezon
 
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 ...Patrick Chanezon
 
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 2017Patrick Chanezon
 
Moby Introduction - June 2017
Moby Introduction - June 2017Moby Introduction - June 2017
Moby Introduction - June 2017Patrick Chanezon
 
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 logicielsPatrick Chanezon
 
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 RecapPatrick Chanezon
 
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 projectPatrick Chanezon
 

More from 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
 

Recently uploaded

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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 WorkerThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Google Developer Days Brazil 2009 - Google Social Web

  • 1. Google and the Social Web Chris Schalk & Patrick Chanezon June 29, 2009
  • 2. “The web is better when it's social.” David Glazer, Google Engineering Director
  • 6. Google is Better When it’s Social
  • 9. Google Groups, Google Talk, Gmail Communication is social 9
  • 12. Google Contacts –  Contacts lets users manage relationships 12
  • 13. Profiles –  Let users create a persona –  Public image on the web –  Available in search 13
  • 14. What's Google Getting with Social? •  Richer web apps More revenue More users Increased usage 14
  • 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 15
  • 17. 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… 17
  • 18. OpenSocial –  Common APIs for accessing social data •  People •  Activities •  App Data –  JavaScript, REST, and RPC implementations –  Newest version, 0.9, just released 18
  • 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) 20
  • 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 21
  • 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 23
  • 24. iGoogle OpenSocial –  Provides 'home' and 'canvas' views –  requestShareApp and Updates for organic growth 24
  • 25. Gmail OpenSocial –  Provides 'nav' and 'canvas' views –  Enabled as a Gmail Labs feature 25
  • 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 26
  • 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 27
  • 28. Container Cheat Sheet Leverage social graph Quick data entry Dashboard view Container-specific extensions 28
  • 31. Quartermile Gadget overview –  Track exercise with others –  View stats –  Quick, "smart" data entry box –  Google App Engine backend 31
  • 32. Quartermile Architecture Signed request JSON 32
  • 33. Quartermile Designing for iGoogle Leverage social graph Quick data entry Dashboard view Container-specific extensions 33
  • 34. Quartermile Joining a team –  Load VIEWER_FRIENDS –  Send result to backend –  Return set of "interesting" teams 34
  • 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); 35
  • 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); 36
  • 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); } 37
  • 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 38
  • 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>'); } } 39
  • 40. Quartermile Designing for Gmail Leverage social graph ✓ Quick data entry Dashboard view Container-specific extensions 40
  • 41. Quartermile Recording an exercise –  User enters an activity –  Gadget sends request to server –  Response is rendered in the activity list 41
  • 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); } 42
  • 43. Quartermile Designing for Gmail part two Leverage social graph ✓ Quick data entry ✓ Dashboard view Container-specific extensions 43
  • 45. Quartermile Navigating to the canvas view (client) gadgets.views.requestNavigateTo('canvas'); 45
  • 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'}); 46
  • 47. Quartermile Designing for Calendar Leverage social graph ✓ Quick data entry ✓ Dashboard view ✓ Container-specific extensions 47
  • 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 48
  • 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); 49
  • 50. Quartermile Finished gadget Leverage social graph ✓ Quick data entry ✓ Dashboard view ✓ Container-specific extensions ✓ 50
  • 51. Quarter Mile Getting users –  Submit to container directory –  Use available API calls for organic growth •  requestShareApp, Updates –  Cross promote –  Advertise 51
  • 52. Out to the Social Web 52
  • 53. Out to the Social Web Signed request JSON 53
  • 54. Q&A