Chapter 4. Riding Bigger Waves

Paddling Farther Out into the Big Blue

In this chapter, we’ll spend some time further familiarizing ourselves with the Google Wave Client, and we’ll discuss the use of more complex extensions. This will be the last chapter that deals directly with the Google Wave Client, because the next chapter moves on to a discussion about the Google Wave APIs.

Tip

As I mentioned in the previous chapter, you can view and participate in public waves quite easily by searching your inbox for with:public (you can also follow or unfollow these waves). If you’re looking to start a public wave or if you want to convert an existing wave into a public wave, you can do so by adding either public@a.gwave.com or easypublic@appspot.com to the wave. This will allow anyone to find and join your wave.

Throwing Some Media into the Mix

The ability to include various types of media in blips adds even greater value to our dialogue with other participants on a wave. I won’t get into clichés about pictures and numbers of words, but I am pretty sure you will agree that media, especially images and videos, can enhance the quality and context of a conversation in a wave.

There are various ways of adding media to a wave, and in Chapter 2 I briefly discussed how Google Wave supports media and attachments. The Google Wave Client makes it extremely easy to add media to a wave. And because media is displayed at the blip level, rather than at the general wave level, participants are able to more readily understand the context of the media as it relates to a particular part (or parts) of a conversation.

Let’s try some of the ways in which we can add media to a wave using the Google Wave Client. Create a new wave titled Media Integration Wave, and then start a reply to your initial blip.

Images

First, we’ll add an image using the integrated Google Search available in the rich-text toolbar. Click the G+ icon to bring up the Google Search gadget, and select the Images tab. Just for fun, type O’Reilly Python into the search box. You should see various book covers with a mouse displayed in the search results, and you can add any of these images to a blip simply by clicking it (see Figure 4-1).

Using the integrated Google Search gadget, we can add various types of searched content to a wave.

Figure 4-1. Using the integrated Google Search gadget, we can add various types of searched content to a wave.

Not bad. We’ve added an image from the Web without much fuss (see Figure 4-2). Notice that the image you added is automatically displayed as a thumbnail. Clicking the thumbnail will open a new Google image search page that references the image you added.

Using Google image search, we added a nice book cover image (for a nice programming language) to our wave.

Figure 4-2. Using Google image search, we added a nice book cover image (for a nice programming language) to our wave.

Tip

You can also “preview” an image added to a blip by clicking the plus icon that appears on the top right of the image thumbnail when you hover your mouse pointer over the image. Clicking the plus icon will enlarge the image to fit within the blip. A minus icon can be used to minimize the image back to its thumbnail.

Next, we’ll add some media to a blip via the attachment button in the rich-text editor toolbar. We’ll simply click the attachment icon (a paper clip) and then select a file on a local or network drive. Notice that adding media to a blip is just like adding an attachment to an email, except that once uploaded the image is immediately added to the wave and thus is accessible to all participants. In this instance, clicking the thumbnail will open the full-size image as an overlay on the Google Wave web page (see Figure 4-3).

Images added as attachments to a wave are opened as overlays directly on the web page, allowing for easy access to the image without leaving the Google Wave Client.

Figure 4-3. Images added as attachments to a wave are opened as overlays directly on the web page, allowing for easy access to the image without leaving the Google Wave Client.

If you have Gears installed, you can also simply drag and drop media files into a blip from your desktop or any accessible local drive. This is essentially the same as using the attachment button, although obviously it is a bit easier and more visually intuitive. Also note that you can drag and drop multiple images (and files) into a blip at once using this technique, rather than uploading them one at a time as attachments.

Tip

You can view all the uploaded images on a wave as a slide show by selecting “View as slide show” from the Images drop-down menu on the bottom right of the conversation pane. You can also use the same drop-down menu to download all of the images on a wave at once.[23]

Movies

You can add a movie to a blip either by using the Google Search gadget (in much the same way as adding an image) or by adding a URL to a blip that refers to a YouTube movie. The Google search results include video from a variety of sources, and when a selection is made from the search results, a hyperlink to the movie is added to the blip.

When you add a hyperlink to YouTube, the Google Wave Client automatically recognizes it as a movie, and a “tip” icon (a lightbulb) displays next to the hyperlink (Figure 4-4). Clicking the tip displays a drop-down menu that allows you to embed the movie (as a gadget).

Images added as attachments to a wave are opened as overlays directly on the web page, allowing for easy access to the image without leaving the Google Wave Client.

Figure 4-4. Images added as attachments to a wave are opened as overlays directly on the web page, allowing for easy access to the image without leaving the Google Wave Client.

Go ahead and try it yourself. Find a movie on YouTube you like, and copy/paste its URL to your blip (or you can use the Google Search gadget and find a movie from YouTube). In Figure 4-5, you can see that I added a movie of the spectacular Iguazu Falls on the Brazil-Argentina border.

A YouTube movie embedded inline in a blip on my test wave. Other participants have access to the movie directly in the conversation pane.

Figure 4-5. A YouTube movie embedded inline in a blip on my test wave. Other participants have access to the movie directly in the conversation pane.

The ability to quickly add movies like this and have them display inline in a wave is great, but unfortunately this feature is limited to movies available on YouTube (at least for now). However, as with the Google gadget search results, you can always add a hyperlink to a movie’s URL.

Tip

You can add movie files to a blip as an attachment, although it’s likely best to keep these attachments to short movies because of the large file sizes of longer movies.

Attachments

Working with attachments in the Google Wave Client is quite easy. Adding attachments to a blip can be accomplished in the same way as adding images. You can drag and drop files, or you can load files locally from your computer.

File attachments are displayed using a small file thumbnail (Figure 4-6). The Google Wave Client aptly titles the attachment with the original filename, but you can rename the attachment with a more user-friendly title by clicking the title text and entering your own title.

Attachments added to a wave appear at the blip level. Remember that as a dynamic document, waves serve as a centralized repository for information, including file attachments.

Figure 4-6. Attachments added to a wave appear at the blip level. Remember that as a dynamic document, waves serve as a centralized repository for information, including file attachments.

Tip

The Google Wave Client displays a thumbnail of the first page of Adobe PDF files. Thus, it is possible to give a PDF document a quick visual scan prior to electing to download it (Figure 4-7).

Check out the thumbnail of the PDF cover page in my blip.

Figure 4-7. Check out the thumbnail of the PDF cover page in my blip.

Downloading file attachments from a wave is as easy as clicking the file thumbnail in a blip. If the file type is natively supported in your browser (e.g., PDF files in most browsers), then the attachment is opened in a new browser page. Otherwise, you can download the file locally just as with other file downloads from the Web.

Warning

Unless you start a new wavelet via a private reply, any attachments you add to a general conversation in a wave will be available to all participants.

Table 4-1 provides an overview of how different media types are added to a wave.

Table 4-1. Media integration cheat sheet

TypeAdded byAdded as
ImagesGoogle search gadget; file attachment button; drag and drop from desktopGoogle image search results added as thumbnail and linked to image preview page; uploaded images displayed as thumbnail and displayed as image overlays (including slide show).
MoviesGoogle search gadget; pasting URL as textGoogle video search results and non-YouTube movies added as a hyperlink; YouTube movies can be added inline as a gadget or as a hyperlinked thumbnail (that links to the YouTube page for the movie).
File attachments, including ASCII and binary filesFile attachment button; drag and dropFile attachment; thumbnail of first page displayed for PDF files, other files are displayed with a generic file thumbnail.

Groups

Google Wave recently began to support groups, a special type of contact that makes waves accessible to members of those groups. The basis for these groups is Google Groups, an enhanced mailing list service that allows for various types of content and membership management. In essence Google has leveraged the membership and permission settings available in Google Groups to provide a relatively easy way to manage access and communication with waves among members of a group.

One of the nice things about this approach is that access to waves and the ability to add a group to a wave are based on the access settings of a particular Google group. Thus, if a Google group is set up to be viewable by anyone, then waves for that corresponding group will also be viewable by everyone. And if a Google Group is set up to allow posting of messages by members only, then only those members (participants) will be able to edit a group wave.

You can create a new group for Google Wave by creating a new Google group (you’ll need to give the group a name, add members based on their email addresses, and configure the access settings). Either way, whether you’re creating a new group or adding an existing group, you’ll use the group’s wave address to add the group as a contact. The group’s wave address is based on its name and the googlegroups.com domain so that, for example, the Google Maps API group would be added as google-maps-api@googlegroups.com (see Figure 4-8).

Adding a Google group as a new contact will allow me to access waves in which the group is a participant.

Figure 4-8. Adding a Google group as a new contact will allow me to access waves in which the group is a participant.

Note that once added, you’ll be able to start a new wave for the group (the same as with other contacts), and you’ll be able to use a “Group waves” button to view all waves with that group (see Figure 4-9). Remember that you’ll need to follow any of the waves you find in order for them to show up by default in your inbox. Alternatively, you can also search your inbox for group:<group name>@googlegroups.com to find waves for a particular group.

The group as a new contact can be added to a new wave, or I can use the “Group waves” button to browse all the waves for that particular group.

Figure 4-9. The group as a new contact can be added to a new wave, or I can use the “Group waves” button to browse all the waves for that particular group.

Keyboard Shortcuts

Fortunately the Google Wave Client isn’t limited to clicking and dragging with your mouse. Keyboard shortcuts provide a great way to become more efficient with navigation and participation, although it may take a little while for you to memorize the shortcuts.

The following are keyboard shortcuts supported as of the writing of this book.[25]

Inbox pane

These are the shortcuts you can use in the inbox pane:

Ctrl+click (Command+click on Mac)

Opens a wave as another instance in the conversation pane (i.e., the conversation pane can have more than one wave, although only one wave has the focus at a time).

Space bar

When you select a wave in your inbox, cycles through the blips added to the wave since you last viewed it. Note that blips are selected/highlighted in chronological order.

Shift+Space bar

Cycles through blips in reverse order (i.e., does the opposite of pressing the space bar by itself).

Shift+Enter

Creates a new reply to the last blip on the wave currently open in the conversation pane.

Conversation pane

These are the shortcuts you can use in the conversation pane:

Ctrl+R

Creates a reply to the currently selected blip. This is the same function as using the Enter key.

Ctrl+E

Edits the currently selected blip.

Ctrl+Enter

Creates an inline reply at the cursor location within the content of a blip.

Ctrl+Space

Marks all unread blips as read in the currently selected wave.

Enter

Creates a reply to the currently selected blip.

Home/End Keys

Selects the first/last blip in a wave.

Shift+Enter

Creates a new blip as a reply to the currently selected blip in a wave. If you are editing a blip, this shortcut will save your blip (the equivalent of clicking the Done button).

Space bar

Cycles through the blips added to the wave since you last viewed it. Note that blips are selected/highlighted in chronological order. This is the same function as hitting the space bar in the Navigation pane.

Up/Down arrow keys

Sequentially selects blips moving up or down the list of blips in a wave.

Editing and formatting blips

These are the shortcuts you can use for editing and formatting blips:

Ctrl+B

Makes selected text bold.

Ctrl+G

Toggles text color control.

Ctrl+I

Makes selected text italic.

Ctrl+1, 2, 3, or 4

Makes the current line a heading, with the heading size based on the input number.

Ctrl+5

Adds bullets to a blip.

Ctrl+6

Resets text formatting to normal, with the exception of bold and italic formatting.

Ctrl+7

Left-aligns text.

Ctrl+8

Right-aligns text.

Tip

Even if keyboard shortcuts aren’t your thing, I still encourage you to try them as a way to further familiarize yourself with the client and its features.

Searches

Remember the search bar at the top of the inbox pane? Well, in addition to doing global keyword searches on waves in your inbox, you can use certain operators as prefixes in the search bar to get more refined and precise search results. You may have already noticed this when using saved searches or custom folders. For example, you may have noticed that the search bar contains the text By:Me when you click the By Me folder in the Navigation pane.

You can search by keywords, the status of a wave (e.g., unread), participants, dates, and much more. The following are common search operators used in the inbox search box (keep in mind that you can combine multiple operators and/or expressions).[26]

Keywords

These are the search operators you can use to find waves with keywords:

about:[keyword]

Performs a global search on waves that have [keyword] occurring anywhere. This is the same as using [keyword].

title:[keyword]

Finds waves that have [keyword] in the title.

caption:[keyword]

Finds waves that have an attachment where [keyword] occurs in the caption.

Status

These are the search operators you can use to find waves based on their status:

is:read

Finds all read waves.

is:unread

Finds all unread waves.

is:mute

Finds all muted waves.

is:unmute

Finds all nonmuted waves.

is:active

Currently the same as is:unread.

is:note

Finds all waves that have you as the only participant and contributor (i.e., sole participant waves).

Participants

These are the search operators you can use to find waves with a particular participant or participants:

from:[address]

Finds waves from the participant identified by the [address].

from:me

Finds waves in which you have participated.

by:[address]

The same as from:[address].

to:[address]

Finds waves that encompass a conversation between you and the participant identified by the [address].

with:[address]

Finds waves that have the participant identified by the given [address] explicitly listed.

owner:[address]

Finds waves created by the participant identified by the given [address].

only:[address]

Finds waves to which only the participant specified by the given [address] contributed.

is:active

Currently the same as is:unread.

is:note

Finds all waves that have you as the only participant and contributor (i.e., sole participant waves).

Groups

This is the search operator you can use to find group waves:

group:[group name]@googlegroups.com

Finds all waves for a Google group. You must be a member of the particular Google group to see waves related to moderated or private groups.

Dates

These are the search operators you can use to find waves based on dates and date ranges:

past:[date term]

Finds all waves in the last period (see available date terms below) as [date term].

previous:[date term]

Finds all waves in the period before the last period as [date term].

before:[date term]

Finds all waves before a certain period as [date term].

after:[date term]

Finds all waves after a certain period as [date term].

Available date terms:

  • day

  • week

  • month

  • year

  • [n]days (e.g., 3days); can also be abbreviated as [n]d (e.g., 3d)

  • [n]weeks (e.g., 3weeks); can also be abbreviated as [n]w (e.g., 3w)

  • [n]months (e.g., 3months); can also be abbreviated as [n]m (e.g., 3m)

  • [n]years (e.g., 3years); can also be abbreviated as [n]y (e.g., 3y)

Folders

These are the search operators you can use to find waves in a specific folder:

in:[folder name]

Find waves in the folder with the given name (including custom folders).

in:[search name]

Find waves in the saved search with the given name.

is:unfiled

Find waves that have not been moved to a user folder.

is:filed

Find waves that have been moved to a folder.

Attachments

These are the search operators you can use to find waves that contain attachments:

has:attachment

Finds waves that have one or more attachments.

has:document

Finds waves with an attachment that is a document.

has:image

Finds waves with an attachments that is an image.

caption:[keyword]

Finds waves with an attachment that has a caption containing [keyword].

mimetype:[keyword]

Finds waves with an attachment that has a mimetype containing [keyword].

Tags

These are the search operators you can use to find waves based on a tag or tags:

tag:[tag name]

Finds waves with the tag [tag name].

Gadgets

These are the search operators you can use to find waves that contain gadgets:

has:gadget

Finds waves that contain one or more gadgets.

gadget:[keyword]

Finds waves that contain a gadget with the name that contains [keyword].

gadgeturl:[keyword]

Finds waves that contain a gadget with a URL that contains [keyword].

gadgettitle:[keyword]

Finds waves that contain a gadget with a title that contains [keyword].

Expressions

Expressions can also be used in combination with the search operators listed earlier. Here are some of the common expression searches that can be used:

term1 and term2 (or term1 & term2)

Finds waves with both terms, regardless of position. You can skip this operator altogether if you want, because it is set as the default type.

term1 | term2 | term3

Finds waves with at least one of the terms.

-term1

Finds waves that do not contain the term.

“term1...term2”

Finds waves that contain the exact phrase between quotes.

“[term1 term2]”

Finds waves that contain one or more terms in sequential order.

Sample searches

Here are a few sample searches to give you a better idea of how to use the operators and expressions listed earlier:

by:me has:image

Finds waves in which I have created blips and that contain at least one image.

“Google Wave: Up and Running”

Finds waves that contain the title of this book.

“Andres Ferrate” previous:month

Finds waves from the previous month that contain my name.

in:APIS is:unmuted past:10d

Finds unmuted waves in my APIs folder from the past 10 days.

Oregon & (California | -Washington)

Finds waves that contain Oregon and that either contain California or do not contain Washington.

Tip

As with keyboard shortcuts, even if you prefer to use point-and-click functionality in the Google Wave Client, I strongly suggest you become more familiar with the search box and the use of operators and expressions. It may take a little bit of time for you to memorize some of the operators and expressions, but they can save you time when you are navigating around an inbox and folders filled with a multitude of waves.

To Edit or Not to Edit?

Although the wiki-like editing capabilities of Google Wave represent a valuable feature, there is some debate about whether participants should edit other participants’ blips or their own blips. The underlying issue is whether editing a participant’s blip after the fact is an effective way of contributing to a conversation. Because Google Wave is so new, an accepted protocol or approach to dealing with this issue has not emerged per se.

Currently, it seems that a balance can be struck with regard to establishing a protocol for editing blips. It seems that the best use of the editing feature in the Google Wave Client is for correcting small errors in text, deleting outdated information, and/or adding updated information. However, there is also the question of whether edits or deletions of a blip likely are best left to the original author, with the rationale that participants can reply to the blip in question and ask the author to take action.

There is also a subtle nuance for authors of a blip when it comes to making edits to their own blips. In the same light as making edits to others’ blips, it seems that the editing capabilities are most applicable to small edits, whereas larger edits may best be handled by an author replying to their own blip. The reasoning for this is that a reply to a blip is more explicit and thus more easily discernible.

As your use of Google Wave increases, you will be able to determine your preferred approach for edits, including your comfort level with regard to having others edit your blips or other participants’ blips. Subsequently, this may also depend on whether a wave is being used more as an ephemeral running conversation rather than as a reference document.

Tip

Keep in mind that we’re talking about a new model for communication and collaboration on the Web, so approaches and community-based consensus for editing blips may change as “waviquette” evolves through additional use and participation by a broader set of users.

Waves with Lots of Blips and Participants

In the course of using Google Wave to communicate and collaborate with others, you likely will find yourself in conversations that include dozens, perhaps even hundreds, of participants. Keeping track of all the action in several threads, including who wrote what and what they wrote, can become an overwhelming experience.

Typically large waves have more than a single thread, and as participants add blips, more and more threads emerge. This is a great facet of Google Wave, but it can also limit the effectiveness of a conversation if these numerous threads grow to encompass too broad a conversation.

Warning

The dynamic and open nature of waves is great, but it can easily lead to waves that grow to be unmanageable, especially if numerous unrelated or disjointed threads emerge within the general theme or topic of a wave.

One way that you can manage these types of waves is to create a new wave to continue a conversation from an unrelated or irrelevant thread. Once you start a new wave and add other participants as needed, you can add a link to the new wave on the original wave, and vice versa. This is a good way to keep the valuable information that emerged during the conversation of the parent wave, while at the same time isolating and reducing the amount of unrelated information in a wave.

Tip

You can add a link to another wave by dragging and dropping a wave from the inbox to an editable blip in the conversation pane.

If you are interacting in a wave as more of an observer than an active participant, you can use the playback feature in the conversation pane to get an idea of the latest activity. Rather than using the space bar to cycle through blips, you can play back an entire wave, or you can skip ahead to view some of the recently added (or edited) blips.



[23] As of the writing of this book, Gears is supported by the following browsers: Firefox 1.5+ (Windows XP/Vista and Linux), Safari 3.1.1+ (Mac OS X Tiger/Leopard), and Internet Explorer 6.0+.

[24] Based on “How Do Google Groups Access Settings Interact with Waves?” (http://www.google.com/support/wave/bin/answer.py?answer=168248).

[25] This list of shortcuts may be subject to revision and expansion as the Google Wave team incorporates additional features to the Google Wave Client.

[26] Based on the Search Cheat Sheet wave created by Google Wave Team member Gregory Dalesandre during the developer preview release of Google Wave.

Get Google Wave: Up and Running now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.