SlideShare a Scribd company logo
1 of 16
Download to read offline
Google Wave for Developers:
         Making Robots

        Patrick Chanezon, Google @chanezon

        Salvador Diaz, SFEIR, @salvadordiaz




      December 9, 2009

Wednesday, December 9, 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.




Wednesday, December 9, 2009
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




Wednesday, December 9, 2009
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




Wednesday, December 9, 2009
Robot Architecture Overview




Wednesday, December 9, 2009
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.




Wednesday, December 9, 2009
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




Wednesday, December 9, 2009
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!)

Wednesday, December 9, 2009
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)



Wednesday, December 9, 2009
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




Wednesday, December 9, 2009
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




Wednesday, December 9, 2009
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



Wednesday, December 9, 2009
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/




Wednesday, December 9, 2009
Beyond Robots: Wave federation




Wednesday, December 9, 2009
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/




Wednesday, December 9, 2009
Demo: Vacation Workflow Wave Extension




Wednesday, December 9, 2009

More Related Content

Similar to Leweb09 Building Wave Robots

Google Devfest 2009 Argentina - Building Google Wave Robots
Google Devfest 2009 Argentina - Building Google Wave RobotsGoogle Devfest 2009 Argentina - Building Google Wave Robots
Google Devfest 2009 Argentina - Building Google Wave RobotsPatrick Chanezon
 
Devfest 09 Building Wave Robots
Devfest 09 Building Wave RobotsDevfest 09 Building Wave Robots
Devfest 09 Building Wave RobotsChris Schalk
 
Introduction to Machine Learning with H2O - Jo-Fai (Joe) Chow, H2O
Introduction to Machine Learning with H2O - Jo-Fai (Joe) Chow, H2OIntroduction to Machine Learning with H2O - Jo-Fai (Joe) Chow, H2O
Introduction to Machine Learning with H2O - Jo-Fai (Joe) Chow, H2OData Science Milan
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalAdyax
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGuillaume Laforge
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignMichael Noll
 
Google Developer DAy 2010 Japan: HTML5 についての最新情報 (マイク スミス)
Google Developer DAy 2010 Japan: HTML5 についての最新情報 (マイク スミス)Google Developer DAy 2010 Japan: HTML5 についての最新情報 (マイク スミス)
Google Developer DAy 2010 Japan: HTML5 についての最新情報 (マイク スミス)Google Developer Relations Team
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Jody Garnett
 
Lessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projectsLessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projectsZeh Fernando
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1benDesigning
 
Google Wave Extensions
Google Wave ExtensionsGoogle Wave Extensions
Google Wave Extensionssekartut
 
Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open lea...
Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open lea...Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open lea...
Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open lea...Jazkarta, Inc.
 
Gnome, linux mobile stacks, and you
Gnome, linux mobile stacks, and youGnome, linux mobile stacks, and you
Gnome, linux mobile stacks, and youAndrew Savory
 
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...Codemotion
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Ionic 4 + capacitor + angular 7
Ionic 4 +  capacitor + angular 7 Ionic 4 +  capacitor + angular 7
Ionic 4 + capacitor + angular 7 Marino Di Clemente
 
Michael(tm) Smith WND09 Presentation
Michael(tm) Smith WND09 PresentationMichael(tm) Smith WND09 Presentation
Michael(tm) Smith WND09 PresentationMichael(tm) Smith
 

Similar to Leweb09 Building Wave Robots (20)

Google Devfest 2009 Argentina - Building Google Wave Robots
Google Devfest 2009 Argentina - Building Google Wave RobotsGoogle Devfest 2009 Argentina - Building Google Wave Robots
Google Devfest 2009 Argentina - Building Google Wave Robots
 
Devfest 09 Building Wave Robots
Devfest 09 Building Wave RobotsDevfest 09 Building Wave Robots
Devfest 09 Building Wave Robots
 
Google Wave
Google WaveGoogle Wave
Google Wave
 
Introduction to Machine Learning with H2O - Jo-Fai (Joe) Chow, H2O
Introduction to Machine Learning with H2O - Jo-Fai (Joe) Chow, H2OIntroduction to Machine Learning with H2O - Jo-Fai (Joe) Chow, H2O
Introduction to Machine Learning with H2O - Jo-Fai (Joe) Chow, H2O
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile Drupal
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - Verisign
 
Google Developer DAy 2010 Japan: HTML5 についての最新情報 (マイク スミス)
Google Developer DAy 2010 Japan: HTML5 についての最新情報 (マイク スミス)Google Developer DAy 2010 Japan: HTML5 についての最新情報 (マイク スミス)
Google Developer DAy 2010 Japan: HTML5 についての最新情報 (マイク スミス)
 
Squeak
SqueakSqueak
Squeak
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
 
Lessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projectsLessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projects
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
Google Wave Extensions
Google Wave ExtensionsGoogle Wave Extensions
Google Wave Extensions
 
iSoligorsk #3 2013
iSoligorsk #3 2013iSoligorsk #3 2013
iSoligorsk #3 2013
 
Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open lea...
Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open lea...Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open lea...
Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open lea...
 
Gnome, linux mobile stacks, and you
Gnome, linux mobile stacks, and youGnome, linux mobile stacks, and you
Gnome, linux mobile stacks, and you
 
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Ionic 4 + capacitor + angular 7
Ionic 4 +  capacitor + angular 7 Ionic 4 +  capacitor + angular 7
Ionic 4 + capacitor + angular 7
 
Michael(tm) Smith WND09 Presentation
Michael(tm) Smith WND09 PresentationMichael(tm) Smith WND09 Presentation
Michael(tm) Smith WND09 Presentation
 

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

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Leweb09 Building Wave Robots

  • 1. Google Wave for Developers: Making Robots Patrick Chanezon, Google @chanezon Salvador Diaz, SFEIR, @salvadordiaz December 9, 2009 Wednesday, December 9, 2009
  • 2. 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. Wednesday, December 9, 2009
  • 3. 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 Wednesday, December 9, 2009
  • 4. 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 Wednesday, December 9, 2009
  • 6. 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. Wednesday, December 9, 2009
  • 7. 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 Wednesday, December 9, 2009
  • 8. 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!) Wednesday, December 9, 2009
  • 9. 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) Wednesday, December 9, 2009
  • 10. 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 Wednesday, December 9, 2009
  • 11. 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 Wednesday, December 9, 2009
  • 12. 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 Wednesday, December 9, 2009
  • 13. 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/ Wednesday, December 9, 2009
  • 14. Beyond Robots: Wave federation Wednesday, December 9, 2009
  • 15. 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/ Wednesday, December 9, 2009
  • 16. Demo: Vacation Workflow Wave Extension Wednesday, December 9, 2009