Devfest 09 Building Wave Robots

18

description

This is a presentation on building Google Wave Robots at Devfest 2009 in Buenos Aires Argentina on Nov 17, 2009 by Google Developer Advocates, Chris Schalk & Patrick Chanezon

Transcript of Devfest 09 Building Wave Robots

Page 1: Devfest 09 Building Wave Robots
Page 2: Devfest 09 Building Wave Robots

Google Wave for Developers: Making Robots

Chris Schalk @cschalk Patrick Chanezon @chanezon

Con: Martin Sarsale

November 17, 2009

Page 3: Devfest 09 Building Wave Robots

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.

Page 4: Devfest 09 Building Wave Robots

Extensions in Wave

•  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

The most common ways to extend Wave are to use:

Page 5: Devfest 09 Building Wave Robots

Wave Entities: Data Model

•  Wave •  Wavelets •  Blips •  Documents

“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

Page 6: Devfest 09 Building Wave Robots

Robot Architecture Overview

Page 7: Devfest 09 Building Wave Robots

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.

Page 8: Devfest 09 Building Wave Robots

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

Page 9: Devfest 09 Building Wave Robots

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!)

Page 10: Devfest 09 Building Wave Robots

Other Robot Examples

•  Swedish Chef •  Monty + Syntaxy (a match made in robot heaven) •  Wikify ([email protected]) •  CleanTXT ([email protected]) •  Polly the Pollster ([email protected]) •  Yelpful ([email protected]) •  TwitUsernames ([email protected]) •  XMPP Lite ([email protected]) •  Madoqua Wave Bot ([email protected]) •  Emoticony ([email protected]) •  Inbeddable ([email protected]) •  Easy Public ([email protected])

Page 11: Devfest 09 Building Wave Robots

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

Page 12: Devfest 09 Building Wave Robots

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

Page 13: Devfest 09 Building Wave Robots

Demo: Building Wave Robots

Page 14: Devfest 09 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 [email protected]

Page 15: Devfest 09 Building Wave Robots

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/

Page 16: Devfest 09 Building Wave Robots

Beyond Robots: Wave federation

Page 17: Devfest 09 Building Wave Robots

Wave Robot Development Experience in Argentina

Local Expert building Wave Robots!

Martin Sarsale

Page 18: Devfest 09 Building Wave Robots

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/