180 likes | 225 Views
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 Self-explanatory Workflow Focused on bridging communication and workflow. Leverage
E N D
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 • Self-explanatory • Workflow • Focused on bridging communication and workflow. • Leverage • New and exciting technology and foundation. • Opportunity! • New business opportunities.
Extensions in Wave The most common ways to extend Wave are to use: • Gadgets • Embed them in a conversation • Built with HTML+Javascript • Interactive with the Wave and it’s participants • Ex: maps, slideshows, search results • Robots • Are actual participants of a Wave which can ‘do things’ • Exactly the same as a Wave participant • 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
Wave Robot Concepts • Wave Robots... • Live in the cloud. • Are external (robotic) participants. • Have full access to wave. • Respond to events on a wave. • 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: • "Robot added to Wave" - WAVELET_SELF_ADDED • ”New blip" - BLIP_SUBMITTED • "Blip edited" - BLIP_VERSION_CHANGED • "New participant" - WAVELET_PARTICIPANTS_CHANGED • Responds to: • Augmented or edited Wave content • Invites from other participants • Interaction with other systems outside of Wave
Robot Examples """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() Smiley (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 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
Robot Roadmap • New Robots wire protocol (v0.2) • Publish for community feedback • 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 Serverhttp://code.google.com/p/wave-protocol/
Wave Robot Development Experience in ArgentinaLocal 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/