What I reckon
• Wave is truly interesting
• Extending Wave will lead to interesting stuff
• I’m not sure it needs it yet (will be most
useful for niche applications for the
What you can make
• Robots (cloud), Gadgets (client), Embedded
• In Python, Java, Ruby...
• A hangman game?
Making a robot
• Set up the libraries, App Engine, & Eclipse
• Target some Wave capabilities
• Add the robot to every public Wave
especially ones where people complain
about annoying robots
Setup: details 1/2
• Get the client library: the main API - Blips,
EventMessages, Text Views...
• Set up your App Engine app: this will
determine the participant in the Wave
• Set up the Google plugin for eclipse
Setup details 2/2
• Create your Web App Project (which
creates the structure)
• Copy in the client API (and a couple of
• Create the capabilities ﬁle
• Extend AbstractRobotServlet
• Override processEvents
• Which gets a RobotMessageBundle
To write stuff
• Get the Wavelet: bundle.getWavelet()
• Handle event: bundle.getEvents()
• Make a blip: wavelet.appendBlip();
• Write to the TextView:
getDocument().append( “lol! I’m on
a wave” );
• Really got me. Don’t use static variables!
• Set data into the current Wavelet
"currentGuess", hangman.getCurrentGuess() );
• Get data from the current Wavelet
• What information can you access?
• You don’t get all info on every call - just a
• You can cache, but things might change.
Add the robot
• Deploy to App Engine
• Add as a contact
• Add to a Wave