You are previewing Google Wave: Up and Running.
O'Reilly logo
Google Wave: Up and Running

Book Description

Learn how to use and build extensions for Google Wave, the exciting new real-time communication and collaboration technology that unifies email, instant messaging (IM), wiki, and social networking functions in one integrated platform. With this book, you'll quickly learn about the Google Wave Client and how to use Google Wave's APIs to extend the platform and customize its functions and display.

Judging by the enthusiastic response this technology received since it was unveiled at the Google I/O web developer conference, Google Wave will gain millions of early adopters and organizations in a short time -- more than a million users have already requested access to the public preview. Google Wave: Up and Running will give you a good look at this platform, and show you how to build sophisticated extensions for it. Why wait? Get in on the first wave with this book.

  • Become thoroughly familiar with Google Wave, including its key concepts and terminology

  • Learn through use cases how Google Wave offers consumers a distinct advantage over current communication and collaboration technologies

  • Get a hands-on introduction to the APIs, protocols, and resources that will help you develop on this platform

  • Learn how to develop key extensions (robots and gadgets), and how to embed waves, using Google Wave's APIs

This book is still in progress, but you can get going on this technology through our Rough Cuts edition, which lets you read the manuscript as it's being written , either online or via PDF.

Table of Contents

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