Google Wave: Up and Running

Book description

Catch Google Wave, the revolutionary Internet protocol and web service that lets you communicate and collaborate in realtime. With this book, you'll understand how Google Wave integrates email, instant messaging (IM), wiki, and social networking functionality into a powerful and extensible platform. You'll also learn how to use its features, customize its functions, and build sophisticated extensions with Google Wave's open APIs and network protocol.

Written for everyone -- from non-techies to ninja coders -- Google Wave: Up and Running provides a complete tour of this complex platform. You'll quickly work with the Google Wave Client, the app that lets users participate and collaborate on waves, and learn how to augment waves with gadgets and robots. In the process, you'll appreciate why Google Wave offers a great new model for online communication and collaboration.

  • Become thoroughly familiar with Google Wave, including its structure, key concepts, and terminology
  • Get a hands-on introduction to the APIs and resources that will help you develop on this platform
  • Learn how to use Google Wave's APIs to develop your own gadgets and robots, and to embed waves on web pages
  • Discover through use cases how Google Wave offers consumers a distinct advantage over current communication and collaboration technologies

Publisher resources

View/Submit Errata

Table of contents

  1. Google Wave: Up and Running
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    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: embed-bot.py File
        3. Code: embed-page.py 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. SPECIAL OFFER: Upgrade this ebook with O’Reilly

Product information

  • Title: Google Wave: Up and Running
  • Author(s): Andres Ferrate
  • Release date: March 2010
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781449390808