Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Google Wave: Up and Running
SPECIAL OFFER: Upgrade this ebook with O’Reilly
Preface
About This Book
This Book’s Target Audience
A Few Words on the Look and Feel of Google Wave
This Book’s Scope
Prerequisites
Conventions Used in This Book
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
1. Introducing Google Wave
Introduction
The People Behind Google Wave
Initial Reactions to Google Wave
So, What Exactly Is Google Wave?
Waves, Wavelets, and Blips, Oh My!
Waves
Wavelets
Blips
Participants
Documents
Google Wave Incorporates Several Web Technologies
Email
IM
Wiki
Online documents
Gadgets
Communication and Collaboration Inside the Browser
Hanging 10 in your browser
What about riding the wave outside of your browser?
The Google Wave APIs
Extensions
Embedded waves
The Google Wave Federation Protocol
Why It’s Likely That People Will Use Google Wave
Ease of Use
Speed
Real-Time Gratification
Functionality
Extensibility
Integration with Third-Party Services and Platforms
Safety in Numbers
Reading the Tea Leaves: What’s Next for Google Wave
Will Email or IM Be Replaced?
Google Wave and Social Networks
Leveraging Other Google Applications and Platforms
Could Google Wave Be a Fad?
Sample Use Case: Using Google Wave for an International Sales Team
2. Fundamentals of Communication and Collaboration in Google Wave
Conversations Are Integral to Google Wave
Threaded Conversations
Beyond Typical Threaded Conversations
Hey! We’re Creating a Document
Public, Private, and Shared Conversations
Replaying Conversations
Enhanced Communication and Collaboration
Media
Attachments
Gadgets
Robots
Search
Sample Use Case: Using Google Wave to Plan a Wedding
3. Riding Waves
Let’s Get Ready to Surf
The Google Wave Client
A Few Words on the Occasional Wipeout
Working with the Google Wave Client
The Navigation Pane
Predefined folders (aka, standard folders)
Custom searches
Custom folders
The Contacts Pane
Your Inbox
The Conversation Pane
Interacting with Other Participants
There Is No “Reply All”
Keeping Things Private
Managing Your Inbox
Searches and Folders
Archiving
Following
What About Spam?
Riding Your First Wave
Let’s Get This Party Started
Wavelets and Blips
Adding Extensions to the Mix
Robots
Gadgets
Extension settings
Sample Use Case: A Virtual Conference in Google Wave
4. Riding Bigger Waves
Paddling Farther Out into the Big Blue
Throwing Some Media into the Mix
Images
Movies
Attachments
Groups
Keyboard Shortcuts
Inbox pane
Conversation pane
Editing and formatting blips
Searches
Keywords
Status
Participants
Groups
Dates
Folders
Attachments
Tags
Gadgets
Expressions
Sample searches
To Edit or Not to Edit?
Waves with Lots of Blips and Participants
Getting the Most Out of Extensions
Robots
Bloggy
Cody
Buddy as a Service
Gadgets
Checky the checklist gadget
Napkin gadget
Raffly gadget
Sample Use Case: Running a Soccer League in Google Wave
5. Developing with the Google Wave API
Key Concepts
Some Things You Should Know
Google Wave Extension Design Principles
Make it “Wave-y”
Make it easy to use
Make it easy to install
Make it look good
Make it useful—or fun!
A Few Words on Your Development Environment
Writing code
Working with images
Dueling banjos…er, I mean browsers
General Architecture
Robots API
Gadgets API
Wave Embed API
Extension Installers
The extension manifest
Hooks
Actions
Extension installers in action
The Google Wave Developer Sandbox
Quick! Let’s Code a Robot!
Set Up the App Engine Application
The Oracle Bot Code
Importing client libraries and a module
The main function
The event handler functions
A relevant avatar
Deploy the Robot to App Engine
The robot in action
Quick! Let’s Code a Gadget!
The Gadget File
The gadget preferences
The gadget HTML elements
The gadget JavaScript
Making the Gadget Accessible on the Web
The Gadget in Action
Quick! Let’s Create an Extension Installer!
The Extension Installer Manifest
The Extension Icon
The Extension Installer in Action
Quick! Let’s Embed a Wave!
Setting Up the Target Environment
A Dash of HTML and JavaScript
The web page
The Embedded Wave in Action
Sample Use Case: Running an IT Help Desk in Google Wave
6. Diving into Extensions: Robots API
Let’s Code a Few Robots
Geo Bot: A Geosemantic Analysis Robot
The Geo Bot code
Recipe Bot: A Recipe-Fetching Robot
The Recipe Bot code
General Structure of a Robot
Client Libraries
Python client library
Java client library
Capabilities
Giving Your Robot Some Personality
Events and Operations
An “Active” API
Registering a robot to use the active API
Events
Operations
Class wavelet
Class blip
Class BlipRefs
Class robot
Class element
Event Filtering
Making External Information Available Through Proxying-for
Context
Robot Types
Content Assist
Data Synchronization
Multiwave Applications
Conversational
The App Engine Tango
Locals Are Not Welcome (for Now): Testing in the Cloud
Logs and Debugging
Sample Use Case: Lesson Planning for Educators
7. Diving into Extensions: Gadgets API
Let’s Code a Few Gadgets
Election Gadget: Soliciting Group Participation
The Election Gadget code
Twitterini: A Twitter Utility Gadget
The Twitterini gadget
Getting the Gadgets into Extension Installers
Google Wave Gadgets API Fundamentals
Developing Wave-Aware Gadgets
Anatomy of a Google Wave Gadget
XML
HTML
JavaScript
Working with Gadget State
Methods
Static Methods
Classes
Participant
Constructor
Methods
State
Constructor
Methods
Callback
Constructor
Method
Constants
Roles: Making Gadgets Social
Gadget Design
Programming Logic
Do not attempt to access objects during initialization
Most of the logic should be inside of callbacks
Changes in user interface elements should trigger changes to state
Designing for the Google Wave Client
Anecdotal Use Case: Using Google Wave for a Live Design Document
8. Diving into Extensions: Wave Embed API
Let’s Embed a Few Waves
Enabling the Google Wave Toolbar in an Embedded Wave
Code for the Google Wave toolbar in an embedded wave
Switching Embedded Waves and Adding a Participant
Code for switching embedded waves and adding a participant
Embed Bot: Gadgetizing the Google Wave Embed API
Embed Bot: The robot code
Embed Bot: The gadget XML code
Embed Bot: The gadget JavaScript code
Embed Bot: The embedded wave page code
Wave Embed API Fundamentals
Embedding Waves
Customizing Embedded Waves
Participant Interaction
Classes
WavePanel
Constructor
Methods
UIConfig
Constructor
Methods
OpenSocialWave
Constructor
Methods
Anecdotal Use Case: Using Google Wave for Live Waving
9. Wave Federation and Additional Considerations
Google Wave Federation Protocol
In a Nutshell
Interoperability
The Game Changer: Operational Transformation
Setting Up Your Own Wave Server
Toward a Google Wave Ecosystem
Additional Resources
A. Sample Robots Code
Oracle Bot
Code
Geo Bot
Code
Recipe Bot
Code
B. Sample Gadgets Code
Wave Mood Gadget
Code
Election Gadget
Code
Twitterini Gadget
Code
C. Sample Wave Embed Code
Enabling the Google Wave Toolbar in an Embedded Wave
Code
Switching Embedded Waves and Adding a Participant
Code
Embed Bot: Gadgetizing the Google Wave Embed API
Code: app.yaml File
Code: embed-bot.py File
Code: embed-page.py File
Code: embed-template.html File
Code: embed-bot.js File
Code: gadget.xml File
Code: Extension Installer
Index
About the Author
Colophon
SPECIAL OFFER: Upgrade this ebook with O’Reilly
← Prev
Back
Next →
← Prev
Back
Next →