Monday, November 23, 2009

Google Wave - Keyboard Shortcuts


This post isn't going to be any kind of an exhaustive list.  Others have done that.  A friend and I recently tried to figure out how to do basic chatting without using the mouse.  Here you go:

To open an in-line reply to where you currently are in a blip (either to the selected text, or the cursor position):
  • Ctrl+Enter
To finish editing a blip (equivalent to clicking "Done"):
  • Shift+Enter
To edit the current blip:
  • Ctrl+E
Everyone should know these next two, but I'll put them here anyway.

To jump between blips that have been edited that you haven't "seen" yet/since:
  • Space bar
To move up or down one blip:
  • Up/Down arrow
There you have it.  Wave on, mouse-haters!

Saturday, November 21, 2009

Google Wave and Privacy

To Do List

My list of things to do. Entries will be deleted once they are complete. 

Write a blog post about security/privacy on Google Wave.

Mention both current implementation, Google's plans, and how this all works with federation.

Go over things I've used it for, including this to-do list and passing links from work to home.

The important thing to consider when you're thinking about privacy on Google Wave is that it's not fundamentally any different from e-mail, Facebook, or a wiki.  When you send someone an e-mail, they can choose to forward it along to whomever they want.  When you post on Facebook, your friends can see it and comment (or pass it along, if they copy and paste it).  When you post on a wiki, someone can come along and change it.  Wave doesn't change any of that, it just automates the process of sharing and changing and brings it all together.

Google isn't developing Wave as an internal proprietary system that they maintain control over (like Facebook).  They're making it like e-mail, which means that anyone can set up a Wave server, and it should work the same, and inter-operate seamlessly with Google, and everyone else out there with a server and a peering relationship.  This in itself dictates that users will have limited control over who sees what information, and how they can control it.

In a closed system, it can be possible to un-send a message, or to prevent someone from easily passing along what you send to them (at least, in the same form).  Wave is not a closed system.  Once your information hits a foreign server, you can have no control over it, and so in order to create a consistent system, once your information is sent to any other user, you can't take it back.

What kinds of controls are possible?

If you have any kind of information, you can send it to certain people, and not to others.  You cannot prevent them from sharing that information, but you can refuse to accept their changes to the canonical version of the information (at least, canonical according to you).  So it is theoretically possible to divide people into three categories with respect to information:
  1. Those with no access.  These people don't know about the information at all.
  2. Those with limited access, who can read, but not change the canonical information.
  3. Those with full access, who can both read and write changes back to the canonical information.
With wave, at least as the Google Wave preview is currently set up, there are only two categories: 1 and 3.  If you add someone to a wave, they can change it, and they can add more people (and robots) who can read and write back to the wave.

So using Wave means that you must trust those who you share with, not because Wave makes it possible for information to be passed along to more and more people (or to everyone), but because it makes doing so very easy.

One thing that is not currently in the preview, but will be in the final product (nay, protocol) is federation.  Federation basically means that Wave will eventually be like e-mail, because Google will agree to exchange Wave information with Yahoo, and Microsoft, and Apple, and even Bob's computer in his parents' basement.  Everyone except, hopefully, spammers, but I'm sure they'll find some way in.  Joe@googlewave.com will be able to add suzie@acme.com and frank@microsoft.com to the same wave, and it will not be any different from adding bob@bobsparentsbasement.com.

I'm not certain what Google's plans are for the 2nd category.  Personally, I would find it quite useful to allow only certain people to edit, but a larger set of people to view (and possibly comment on), but not edit a blip.  This would be perfectly doable in terms of federation, except that a foreign server can perform any action that its users have a right to do, so granting write access to suzie@acemwave.com might give craig@acmewave.com write access too, depending on how the acmewave.com server is coded.

Actually, I've been thinking a lot about writing a robot that would allow me to expose the content of a wave to the public through a website (e.g., a blog), and allowing the users of that website (optionally including anonymous users) to interact with the wave using the website and the robot as their proxy.

Basically, it would be a lot like Bloggy, but without needing to make the wave public, and with finer-grained control over user actions. The first step would be to make a robot that simply reads the wave contents, and posts them on the web, updating the website whenever the wave is updated.

Friday, November 13, 2009

Google Wave (Preview)

I just got in on the Google Wave preview.

I immediately had 8 invites, of which I have used 4, so far.  The first one went to my wife, of course.

I like it.  I think it has awesome potential.

It's a "preview" (a.k.a. "beta"--or, since we're talking Google's definition of "beta", it's an "alpha"), so there are lots of rough edges.

Right off the bat, here's what bugs me.  Hopefully the bugs will get fixed.

First of all, here's Google Wave:


So here's the first thing I don't like.  Say I want to narrow down my contacts, to find the one I'm looking for.  I go to the Contacts widget, and type some text:
Okay, so now I want to see the rest of my contacts, in the default view.  What do I press?  There's no little [X] button.  I have to select the text in the box and hit Delete or Backspace.  That is just bad UI design.  There needs to be an [X] right next to the magnifying glass that clears the field.  Google, please fix that.  (Yes, I've already submitted feedback about this.)

This next one is probably just something I'll have to get used to.  When you go to create a new wave, or add someone to the wave, be careful when you click!  Creating a wave or adding someone to it is irrevocable, and the UI doesn't ask you for confirmation, it just shows up in their inbox, and there's nothing you can do about it.

I accidentally added my friend Victor to my first wave, because I clicked his name:

I was expecting there to be a confirmation dialogue, in stead, he was added.  I hope he enjoys my work.

Applications are not easy to find.  There's a link to an Extensions Gallery wave in the introductory "Welcome to Google \/\/ave" wave that starts in your inbox, but all it has is Sodoku and half a dozen other apps.  I'm not knocking the apps.  They're good, but there are a whole bunch more out there that were shown off in the video.

After some poking around, I found this list (and this list) of Bots, Apps and Gadgets.  The one I was most interested in, Bloggy, doesn't seem like it's working.  I added it to a wave, but it didn't do anything.  It's supposed to make the wave public and post it to your blog so that everyone (even those not logged in to Wave) can see it, and interact with it if you allow public editing.  Hopefully they brought it offline so that they could fix it, and that it will be fixed soon. 

One last thing, and then I need to go to bed.  There's an "Options..." menu item that doesn't do anything for me.  I've only tried it in Firefox (and I'm using 3.6b2), but clicking on it doesn't do anything at all.


Just so no one thinks I'm being negative, let me state this plainly:   I'm VERY excited about Google Wave.  I know it's a pre-released product, and I don't expect perfection by any means.  I'm documenting these things here because I want to share my experience, and I would like to see the shortcomings addressed so that the final product will be awesome.

Yay for Google Wave!