This document discusses building robots for Google Wave. It outlines how robots can extend Wave's functionality using gadgets and robots. Robots are participants that can respond to events, access the full wave, and integrate with other systems. Examples of robots are provided and the robot architecture is overviewed. Guidelines are given for getting started developing robots for Google Wave.
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)
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/
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/