SlideShare a Scribd company logo
Google Wave for Developers:
 Making Robots

Chris Schalk @cschalk
Patrick Chanezon @chanezon

Con: Martin Sarsale



November 17, 2009
Why build on Google Wave?

•  Real-time == Real-awesome
   o  Self-explanatory

•  Workflow
    o  Focused on bridging communication and workflow.
•  Leverage
    o  New and exciting technology and foundation.
•  Opportunity!
    o  New business opportunities.
Extensions in Wave
    The most common ways to extend Wave are to use:


 •  Gadgets
    o  Embed them in a conversation
    o  Built with HTML+Javascript
    o  Interactive with the Wave and it’s participants
    o  Ex: maps, slideshows, search results

 •  Robots
    o  Are actual participants of a Wave which can ‘do things’
         Exactly the same as a Wave participant
    o  Ex: content update, integration with other systems
Wave Entities: Data Model
“Show me your flowchart and conceal your tables, and I shall continue to be mystified.
Show me your tables, and I won't usually need your flowchart; it'll be obvious.”
                                         Fred Brooks, The Mythical Man-Month



 •    Wave
 •    Wavelets
 •    Blips
 •    Documents
Robot Architecture Overview
Wave Robot Concepts

•  Wave Robots...

  o  Live in the cloud.
  o  Are external (robotic) participants.
  o  Have full access to wave.
  o  Respond to events on a wave.
  o  Are currently available for Java and   Python APIs on
    Google App Engine.
Wave Robots Essentials

•  APIs in Python and Java
•  Runs in Google App Engine
•  Events:
   o  "Robot added to Wave" - WAVELET_SELF_ADDED
   o  ”New blip" - BLIP_SUBMITTED
   o  "Blip edited" - BLIP_VERSION_CHANGED
   o  "New participant"
      - WAVELET_PARTICIPANTS_CHANGED
•  Responds to:
   o  Augmented or edited Wave content
   o  Invites from other participants
   o  Interaction with other systems outside of Wave
Robot Examples
Smiley
 """Smiley: Yet another smiley robot."""

 from waveapi import events
 from waveapi import robot

 def OnBlipSubmitted(properties, context):
   blip = context.GetBlipById(properties['blipId'])
   contents = blip.GetDocument().GetText()
   contents = contents.replace(':(', unichr(0x2639)) # happy
   contents = contents.replace(':)', unichr(0x263A)) # sad
   blip.GetDocument().SetText(contents)

 if __name__ == '__main__':
   smiley = robot.Robot('Smiley')
   smiley.RegisterHandler(
       events.BLIP_SUBMITTED, OnBlipSubmitted)
   smiley.Run()



 (A complete and useful robot in a single slide... with
 room to spare!)
Other Robot Examples

•    Swedish Chef
•    Monty + Syntaxy (a match made in robot heaven)
•    Wikify (wikifier@appspot.com)
•    CleanTXT (cleantxt@appspot.com)
•    Polly the Pollster (polly-wave@appspot.com)
•    Yelpful (yelpful@appspot.com)
•    TwitUsernames (twitusernames@appspot.com)
•    XMPP Lite (wave-xmpp@appspot.com)
•    Madoqua Wave Bot (blog-bot@appspot.com)
•    Emoticony (emoticonbot@appspot.com)
•    Inbeddable (inbeddable@appspot.com)
•    Easy Public (easypublic@appspot.com)
Robot Lists

•    http://wave-samples-gallery.appspot.com/
•    http://completewaveguide.com/guide/Wave_Bots
•    http://www.waverobots.com/
•    http://www.cloudave.com/link/the-top-11-google-wave-
     robots-for-the-enterprise
Wave videos in a theater near you

•  What is Google Wave
   email reinvented
   http://www.youtube.com/watch?v=rDu2A3WzQpo
•  Google Wave Pulp Fiction
   creative use of robots (strong language:-)
   http://www.youtube.com/watch?v=xcxF9oz9Cu0
•  Introducing SAP Gravity, a Business Process Modeling Tool
   for Google Wave
   Wave for business
   http://www.youtube.com/watch?v=FaNhXPSCQWo
Demo: Building Wave Robots
Robot Roadmap

•  New Robots wire protocol (v0.2)
    o  Publish for community feedback
    o  Implement Java and Python API parity
•  Internal speed improvements for AppEngine robots.
•  Robot Gateway / OpenSocial REST Access
•  Robot access to OAuth controlled resources
•  Better multiple wave access
•  Sunset robot cron in favor of direct access to Wave
   servers.
•  Gateway support: Improve the current tweety type of
   access to support outside addresses of the form address
   +robot@appspot.com
Beyond Robots: Wave federation
 •  Open Source protocol http://www.waveprotocol.org
 •  Open Source Google Wave Federation Prototype Server
    http://code.google.com/p/wave-protocol/
Beyond Robots: Wave federation
Wave Robot Development
 Experience in Argentina




   Local Expert building Wave Robots!


            Martin Sarsale
Summary – How to get started

•  Familiarize yourself with the developer sandbox.
   http://wave.google.com/a/wavesandbox.com/

•  Explore the docs.
   http://code.google.com/apis/wave

•  Stay up-to-date on our blog updates.
   http://googlewavedev.blogspot.com/

More Related Content

Similar to Google Devfest 2009 Argentina - Building Google Wave Robots

Google Wave Extensions
Google Wave ExtensionsGoogle Wave Extensions
Google Wave Extensions
sekartut
 
Google wave-oiss-long-032910-final b
Google wave-oiss-long-032910-final bGoogle wave-oiss-long-032910-final b
Google wave-oiss-long-032910-final b
Laddie Odom
 

Similar to Google Devfest 2009 Argentina - Building Google Wave Robots (20)

Google Wave
Google WaveGoogle Wave
Google Wave
 
Google Wave Extensions
Google Wave ExtensionsGoogle Wave Extensions
Google Wave Extensions
 
You Either Surf Or You Fight
You Either Surf Or You FightYou Either Surf Or You Fight
You Either Surf Or You Fight
 
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, PlatformGoogle Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, Platform
 
Collaborative Mapping with Google Wave
Collaborative Mapping with Google WaveCollaborative Mapping with Google Wave
Collaborative Mapping with Google Wave
 
Google Wave ppt
Google Wave pptGoogle Wave ppt
Google Wave ppt
 
Google wave-oiss-long-032910-final b
Google wave-oiss-long-032910-final bGoogle wave-oiss-long-032910-final b
Google wave-oiss-long-032910-final b
 
Programming For Google Wave
Programming For Google WaveProgramming For Google Wave
Programming For Google Wave
 
Developing a Google Wave Extension
Developing a Google Wave ExtensionDeveloping a Google Wave Extension
Developing a Google Wave Extension
 
Google Wave
Google WaveGoogle Wave
Google Wave
 
Android
AndroidAndroid
Android
 
Wave Hackathon Intro
Wave Hackathon IntroWave Hackathon Intro
Wave Hackathon Intro
 
Programming the Real World: Javascript for Makers
Programming the Real World: Javascript for MakersProgramming the Real World: Javascript for Makers
Programming the Real World: Javascript for Makers
 
What Is Google Wave?
What Is Google Wave?What Is Google Wave?
What Is Google Wave?
 
CoffeeScript: The Good Parts
CoffeeScript: The Good PartsCoffeeScript: The Good Parts
CoffeeScript: The Good Parts
 
Getting Social with OpenSocial
Getting Social with OpenSocialGetting Social with OpenSocial
Getting Social with OpenSocial
 
Social Media Marketing Open Social App Standards
Social Media Marketing Open Social App StandardsSocial Media Marketing Open Social App Standards
Social Media Marketing Open Social App Standards
 
WikiLoop: Big tech's Open Knowledge contributions
WikiLoop: Big tech's Open Knowledge contributionsWikiLoop: Big tech's Open Knowledge contributions
WikiLoop: Big tech's Open Knowledge contributions
 
Google Wave API: Now and Beyond
Google Wave API: Now and BeyondGoogle Wave API: Now and Beyond
Google Wave API: Now and Beyond
 
RobotStudiopp.ppt
RobotStudiopp.pptRobotStudiopp.ppt
RobotStudiopp.ppt
 

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

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 

Google Devfest 2009 Argentina - Building Google Wave Robots

  • 1.
  • 2. Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009
  • 3. Why build on Google Wave? •  Real-time == Real-awesome o  Self-explanatory •  Workflow o  Focused on bridging communication and workflow. •  Leverage o  New and exciting technology and foundation. •  Opportunity! o  New business opportunities.
  • 4. Extensions in Wave The most common ways to extend Wave are to use: •  Gadgets o  Embed them in a conversation o  Built with HTML+Javascript o  Interactive with the Wave and it’s participants o  Ex: maps, slideshows, search results •  Robots o  Are actual participants of a Wave which can ‘do things’  Exactly the same as a Wave participant o  Ex: content update, integration with other systems
  • 5. Wave Entities: Data Model “Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious.” Fred Brooks, The Mythical Man-Month •  Wave •  Wavelets •  Blips •  Documents
  • 7. Wave Robot Concepts •  Wave Robots... o  Live in the cloud. o  Are external (robotic) participants. o  Have full access to wave. o  Respond to events on a wave. o  Are currently available for Java and Python APIs on Google App Engine.
  • 8. Wave Robots Essentials •  APIs in Python and Java •  Runs in Google App Engine •  Events: o  "Robot added to Wave" - WAVELET_SELF_ADDED o  ”New blip" - BLIP_SUBMITTED o  "Blip edited" - BLIP_VERSION_CHANGED o  "New participant" - WAVELET_PARTICIPANTS_CHANGED •  Responds to: o  Augmented or edited Wave content o  Invites from other participants o  Interaction with other systems outside of Wave
  • 9. Robot Examples Smiley """Smiley: Yet another smiley robot.""" from waveapi import events from waveapi import robot def OnBlipSubmitted(properties, context): blip = context.GetBlipById(properties['blipId']) contents = blip.GetDocument().GetText() contents = contents.replace(':(', unichr(0x2639)) # happy contents = contents.replace(':)', unichr(0x263A)) # sad blip.GetDocument().SetText(contents) if __name__ == '__main__': smiley = robot.Robot('Smiley') smiley.RegisterHandler( events.BLIP_SUBMITTED, OnBlipSubmitted) smiley.Run() (A complete and useful robot in a single slide... with room to spare!)
  • 10. Other Robot Examples •  Swedish Chef •  Monty + Syntaxy (a match made in robot heaven) •  Wikify (wikifier@appspot.com) •  CleanTXT (cleantxt@appspot.com) •  Polly the Pollster (polly-wave@appspot.com) •  Yelpful (yelpful@appspot.com) •  TwitUsernames (twitusernames@appspot.com) •  XMPP Lite (wave-xmpp@appspot.com) •  Madoqua Wave Bot (blog-bot@appspot.com) •  Emoticony (emoticonbot@appspot.com) •  Inbeddable (inbeddable@appspot.com) •  Easy Public (easypublic@appspot.com)
  • 11. Robot Lists •  http://wave-samples-gallery.appspot.com/ •  http://completewaveguide.com/guide/Wave_Bots •  http://www.waverobots.com/ •  http://www.cloudave.com/link/the-top-11-google-wave- robots-for-the-enterprise
  • 12. Wave videos in a theater near you •  What is Google Wave email reinvented http://www.youtube.com/watch?v=rDu2A3WzQpo •  Google Wave Pulp Fiction creative use of robots (strong language:-) http://www.youtube.com/watch?v=xcxF9oz9Cu0 •  Introducing SAP Gravity, a Business Process Modeling Tool for Google Wave Wave for business http://www.youtube.com/watch?v=FaNhXPSCQWo
  • 14. Robot Roadmap •  New Robots wire protocol (v0.2) o  Publish for community feedback o  Implement Java and Python API parity •  Internal speed improvements for AppEngine robots. •  Robot Gateway / OpenSocial REST Access •  Robot access to OAuth controlled resources •  Better multiple wave access •  Sunset robot cron in favor of direct access to Wave servers. •  Gateway support: Improve the current tweety type of access to support outside addresses of the form address +robot@appspot.com
  • 15. Beyond Robots: Wave federation •  Open Source protocol http://www.waveprotocol.org •  Open Source Google Wave Federation Prototype Server http://code.google.com/p/wave-protocol/
  • 16. Beyond Robots: Wave federation
  • 17. Wave Robot Development Experience in Argentina Local Expert building Wave Robots! Martin Sarsale
  • 18. Summary – How to get started •  Familiarize yourself with the developer sandbox. http://wave.google.com/a/wavesandbox.com/ •  Explore the docs. http://code.google.com/apis/wave •  Stay up-to-date on our blog updates. http://googlewavedev.blogspot.com/