Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
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
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
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