Weave v0.2 and tab synchronization

July 02, 2008

A couple of weeks ago I published a piece regarding the death of Google Browser Sync, and its heir presumptive, Weave, which at the time, did not yet support the feature I care most about, namely session restoration across multiple machines. Not long after pushing that piece into the ether, a few people emailed me to let me know that a tab-syncing version of Weave would be released on June 20th; though the release date slipped a bit, v0.2 was made available a few days ago, tab synchronization intact. Well, kind of.

Since the release, I've been testing the tab-syncing functionality, and unfortunately, I have to say it hasn't worked too well. There have been times when it has presented to me tabs from machine one that weren't currently open on machine two, but this behavior — the intended behavior — is sporadic at best.

The following is my attempt to sum up what I've experienced over the last couple of days (please forgive me the bullets), after which I'll describe what I think is wrong with the implementation (even assuming it worked perfectly).

  • When I quit Firefox, the browser window(s) falls away and a small "Syncing with Weave…" window appears. This never finishes; in fact, I'm not sure it transfers anything to, or receives anything from the server. I inevitably have to kill the Firefox process.
  • It seems that every other time I'm made to kill the Firefox process, Weave, upon a relaunch of the browser, has forgotten who the hell I am and I'm required to run through the entire "initial synchronization" process again.
  • After the first click, clicking on the indicator that tells me there are "unsynced" tabs generally shows me nothing but a completely blank window.
  • Of all the tabs I've had open, Weave seems to get confused by Gmail and Google Reader; it never thinks they're synced up, and consequently never stops presenting them to me as "new" (on both machines). I'm assuming this has something to do with their shifting titles/URIs.
  • Syncing sometimes takes forever and frequently stalls. Perhaps this can be attributed to the WebDAV server that we are all currently required to use (eventually, we'll be able to sync to a WebDAV server of our choice).
  • There seems to be some delay between when a new tab is opened and when it is actually synced. For example, if I open a new tab on machine one, manually sync machine one, and then manually sync machine two, machine two will not immediately show me the new tab. It may see it eventually, but it is by no means instantaneous.

I haven't yet had occasion to pore over Weave's activity log (I will this weekend), but I suspect it might shed some light on at least some of the issues I've encountered.

Implementation (and how it should be changed)

It's called tab synchronization, which, in my mind, means it should be as automated as possible. As it stands, users have to consciously look for, of all things, a yellow triangle with an exclamation point in the middle. Yeah, a hazard symbol. Huh?

Assuming you notice this little "warning" in your status bar, you then have to click on it, which will [hopefully] present to you the tabs on your other machine(s) which aren't currently open on the machine from which you're clicking. Finally, you have to read through a list of page titles and check a box next to those pages you want to open. What is worse, there is no way to select all of them at once, and presumably that's exactly what you want to do (I mean, you're syncing, right?).

In my opinion, tab synchronization should work like so:

  1. Use the browser on machine one.
  2. Use the browser on machine two.

That's it. I should never have to think about synchronization. When I open/close a tab on machine one, machine two should open/close that tab in the next sync cycle. I don't need to interact with those processes other than to set them in motion by using the browser.

To the Weave team

Thank you. Please don't confuse my comments with inappreciation or some sense of entitlement. Quite the opposite — I know how hard this stuff is, and recognize the nascency of the project. At the end of the day, I just want to see this thing reach its potential, which, I realize, goes far, far beyond tab synchronization.

You should follow me on Twitter here