SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
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 the 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/

Más contenido relacionado

Similar a Devfest 09 Building Wave Robots

Leweb09 Building Wave Robots
Leweb09 Building Wave RobotsLeweb09 Building Wave Robots
Leweb09 Building Wave Robots
Patrick Chanezon
 
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
 
What Is Google Wave
What Is Google WaveWhat Is Google Wave
What Is Google Wave
rkeith
 

Similar a Devfest 09 Building Wave Robots (20)

Leweb09 Building Wave Robots
Leweb09 Building Wave RobotsLeweb09 Building Wave Robots
Leweb09 Building Wave Robots
 
Google Wave
Google WaveGoogle Wave
Google Wave
 
Google Wave Extensions
Google Wave ExtensionsGoogle Wave Extensions
Google Wave Extensions
 
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
 
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-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
 
Google Wave ppt
Google Wave pptGoogle Wave ppt
Google Wave ppt
 
Programming For Google Wave
Programming For Google WaveProgramming For Google Wave
Programming For Google Wave
 
Collaborative Mapping with Google Wave
Collaborative Mapping with Google WaveCollaborative Mapping with Google Wave
Collaborative Mapping with Google Wave
 
Google Wave
Google WaveGoogle Wave
Google Wave
 
Developing a Google Wave Extension
Developing a Google Wave ExtensionDeveloping a Google Wave Extension
Developing a Google Wave Extension
 
Wave Hackathon Intro
Wave Hackathon IntroWave Hackathon Intro
Wave Hackathon Intro
 
Android
AndroidAndroid
Android
 
What Is Google Wave
What Is Google WaveWhat Is Google Wave
What Is Google Wave
 
What Is Google Wave?
What Is Google Wave?What Is Google Wave?
What Is Google Wave?
 
Google Wave API: Now and Beyond
Google Wave API: Now and BeyondGoogle Wave API: Now and Beyond
Google Wave API: Now and Beyond
 
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 Basics
Google Wave BasicsGoogle Wave Basics
Google Wave Basics
 
CoffeeScript: The Good Parts
CoffeeScript: The Good PartsCoffeeScript: The Good Parts
CoffeeScript: The Good Parts
 
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
 

Más de Chris Schalk

Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalk
Chris Schalk
 

Más de Chris Schalk (20)

Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and Update
 
Building Integrated Applications on Google's Cloud Technologies
Building Integrated Applications on Google's Cloud TechnologiesBuilding Integrated Applications on Google's Cloud Technologies
Building Integrated Applications on Google's Cloud Technologies
 
How to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the CloudHow to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the Cloud
 
GDD 2011 - How to build kick ass video games for the cloud
GDD 2011 - How to build kick ass video games for the cloudGDD 2011 - How to build kick ass video games for the cloud
GDD 2011 - How to build kick ass video games for the cloud
 
Quick Intro to Google Cloud Technologies
Quick Intro to Google Cloud TechnologiesQuick Intro to Google Cloud Technologies
Quick Intro to Google Cloud Technologies
 
Intro to Google's Cloud Technologies
Intro to Google's Cloud TechnologiesIntro to Google's Cloud Technologies
Intro to Google's Cloud Technologies
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
 
Google App Engine's Latest Features
Google App Engine's Latest FeaturesGoogle App Engine's Latest Features
Google App Engine's Latest Features
 
Building Apps on Google Cloud Technologies
Building Apps on Google Cloud TechnologiesBuilding Apps on Google Cloud Technologies
Building Apps on Google Cloud Technologies
 
Google App Engine's Latest Features
Google App Engine's Latest FeaturesGoogle App Engine's Latest Features
Google App Engine's Latest Features
 
Building Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the CloudBuilding Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the Cloud
 
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalk
 
Introduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform TechnologiesIntroduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform Technologies
 
Google Cloud Technologies Overview
Google Cloud Technologies OverviewGoogle Cloud Technologies Overview
Google Cloud Technologies Overview
 
Introducing App Engine for Business
Introducing App Engine for BusinessIntroducing App Engine for Business
Introducing App Engine for Business
 
Introduction to Google Cloud platform technologies
Introduction to Google Cloud platform technologiesIntroduction to Google Cloud platform technologies
Introduction to Google Cloud platform technologies
 
Google App Engine for Business 101
Google App Engine for Business 101Google App Engine for Business 101
Google App Engine for Business 101
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 

Devfest 09 Building 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 the 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/