google wave for developers: making robots chris schalk @cschalk patrick chanezon @chanezon con:...

18

Upload: aldous-logan

Post on 28-Dec-2015

220 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009
Page 2: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Google Wave for Developers:Making Robots

Chris Schalk @cschalkPatrick Chanezon @chanezon

Con: Martin Sarsale

November 17, 2009

Page 3: 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-awesomeo Self-explanatory

• Workflowo Focused on bridging communication and workflow.

• Leverageo New and exciting technology and foundation.

• Opportunity!o New business opportunities.

Page 4: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Extensions in Wave

• Gadgetso Embed them in a conversationo Built with HTML+Javascripto Interactive with the Wave and it’s participantso Ex: maps, slideshows, search results

• Robotso Are actual participants of a Wave which can ‘do things’

Exactly the same as a Wave participanto Ex: content update, integration with other systems

The most common ways to extend Wave are to use:

Page 5: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

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: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Robot Architecture Overview

Page 7: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 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.

 

Page 8: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Wave Robots Essentials

• APIs in Python and Java• Runs in Google App Engine• Events:

o "Robot added to Wave"  - WAVELET_SELF_ADDEDo ”New blip"  - BLIP_SUBMITTEDo "Blip edited"  - BLIP_VERSION_CHANGEDo "New participant" 

- WAVELET_PARTICIPANTS_CHANGED• Responds to:

o Augmented or edited Wave contento Invites from other participantso Interaction with other systems outside of Wave

Page 9: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Robot Examples

Smiley

"""Smiley: Yet another smiley robot.""" from waveapi import eventsfrom 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: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

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: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 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

Page 12: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Wave videos in a theater near you

• What is Google Waveemail reinvented http://www.youtube.com/watch?v=rDu2A3WzQpo

• Google Wave Pulp Fictioncreative use of robots (strong language:-)http://www.youtube.com/watch?v=xcxF9oz9Cu0

• Introducing SAP Gravity, a Business Process Modeling Tool for Google WaveWave for businesshttp://www.youtube.com/watch?v=FaNhXPSCQWo

Page 13: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Demo: Building Wave Robots

Page 14: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Robot Roadmap

• New Robots wire protocol (v0.2)o Publish for community feedbacko 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: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 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/

Page 16: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Beyond Robots: Wave federation

Page 17: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 2009

Wave Robot Development Experience in Argentina

Local Expert building Wave Robots!

Martin Sarsale

Page 18: Google Wave for Developers: Making Robots Chris Schalk @cschalk Patrick Chanezon @chanezon Con: Martin Sarsale November 17, 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/