Weave your way through the net …

One of the greatest strengths of Firefox is the ability to extend its capabilities through the use of plugins. If you want more out of your web browser, then you can usually find a plugin that will add that functionality.

One feature I searched for when I first started using Firefox was the ability to backup my bookmarks, and eventually, synchronize them between machines. I didn’t want to send my bookmarks to a third party, though, so addons for sites like Delicious were of no interest to me.

For years, I used a plugin called Bookmark Sync, which eventually became Bookmark Sync and Sort. Unfortunately, Sync and Sort was never updated to work with Firefox 3, so I had to look elsewhere for a solution.

I stumbled across another plugin called Foxmarks, now known as Xmarks. Xmarks was designed to synchronize bookmarks with the Foxmarks site, a third party. Fortunately, they added third-party server support into the addon around the time I was looking for a new solution. So for the next year or two, I used Xmarks.

Earlier this year, when Foxmarks became Xmarks, they started adding additional features that I had no interest in. For instance, when using Google to search, Xmarks added additional content to the search results. I also had intermittent problems with my third-party settings being reset and some pretty serious speed issues when syncing. I tolerated it, because there was nothing better out there, but it still bothered me.

In December of 2007, Mozilla Labs introduced a new concept called Weave. At the time, I didn’t really understand the Weave concept. It sounded like something similar to Delicious and all of the other social bookmarking systems. I planned on keeping an eye on the project, though. Fast forward to earlier this year when 0.4 was released, and I looked a bit deeper into the project.

From what I’ve read, versions 0.1 and 0.2 supported syncing through the WebDAV protocol. 0.3 on supported a custom server, which was released by Mozilla. Additionally, Weave supported syncing more than just bookmarks, such as passwords, tabs, form input, and more. After reading about the custom server, I decided to take Weave for a spin.

The first step in trying out Weave was to set up the Weave server. This proved to be a bit more difficult than I initially thought. Mozilla provides the software via a Mercurial repository, so grabbing the software is as simple as heading to the repository and downloading the latest tarball. Unfortunately, there doesn’t seem to be any “official” release channel for new versions of the server software, so you need to manually look for software updates. That said, I’ve had no problems with the current software release.

Once you have the software, place it on your server in a location of your choosing. If you choose to place it within an existing domain, you may need to do some fancy aliases or URL rewriting to make it work. That bit of the install took me a while to get working.

The server software uses a MySQL database to store all of the synchronized data. This was one of the biggest reasons I decided to check out Weave. I deal with MySQL databases almost every day, so I’m quite comfortable with manipulating them. Additionally, this gives me the ability to write my own interface to deal with the MySQL data, if I choose to. It also means I can quickly and easily manipulate the data, should I choose to.

The rest of the server install consists of setting up the SQL database and tweaking some configuration variables. Once complete, you can point the Weave addon at your server and begin synchronizing data. Make sure you go into the preferences and identify what data you’d like to synchronize.

The Weave settings in Firefox are pretty straightforward and don’t need a lot of explanation. One trick you might keep in mind is for the first sync from a new machine. Unless you want the existing bookmarks to be merged with what’s on the server, you need to use the “Sync Now” option from within the preferences menu. This command acts differently when you use it within Preferences as opposed to clicking it on the Tools menu or from the icon at the bottom of the Firefox window. If you click on it via Preferences, you get a small options menu, shown below.

Using this menu, you can choose to replace all of the local data, all of the remote data, or merge the two. Very useful to prevent those default bookmarks from being merged back into your bookmarks again.

Weave, thus far, seems to be pretty secure. It uses an HTTPS connection to communicate with the Weave server. A username and password is required to log into the server, as is typical with most services. What seems to set Weave apart is the inclusion of an additional passphrase used to encrypt all of your data on the remote server. If you look at the data stored in MySQL, you’ll see that all of the data is encrypted prior to being added. Weave encrypts the data locally on your machine prior to sending it over the network to the Weave server. Just do yourself a favor and don’t forget your passphrase. The username and password are recoverable, especially if you run your own server, but the passphrase is not.

As of this writing, Weave is up to a 0.6pre1 release. Synchronization speed has increased considerably, and additional features are being added. The current roadmap shows a 0.6 release by August 26th, but it doesn’t go into much more detail about future releases. Regardless, Weave has proven to be extremely useful and I’m looking forward to see where development will lead. It’s definitely worth checking out.

 

A new hairpiece for Mozilla?

Back in October I wrote about a new technology from Mozilla Labs called Prism.  Since then, the team at Mozilla has been working on some newer technology.

First up is something called Personas.  Personas is a neat little extension that lets you modify the Firefox theme on the fly.  You are presented with a small menu, accessible via an icon on the status bar.  From the menu, you can choose from a number of different “themes” that will change the design of the default Firefox theme.

Overall, personas is just a neat little extension with no real purpose other than breaking up the monotony.  You can set it to randomly select a persona, which will cause the persona to change for each instance of the browser.  More options are definitely needed, such as a custom list of personas to choose from, but it’s a decent start.

More interesting, however, is the second technology I’d like to present.  Dubbed Weave, this technology is a bit more on-par with what I’ve been looking forward to for years.  Weave presents the user with a way to record their individual user settings, store them on a remote server, and sync them up with any other installation of Firefox.  In fact, Weave aims to allow the user to sync their preferences with other third-party applications, such as social networks and browsers.

To be honest, I have no real interest whatsoever in social networks.  I avoid MySpace like the plague, and I haven’t bothered to look into Facebook at all.  My on-line collaboration, thus far, has been mostly through traditional means, Instant Message, E-Mail, and the Web.  In fact, I’m not sure any of my online activities fall into the so-called “Social” category.  So, my interest here lies merely in the distribution of my personal metadata between applications that I access.  I would love to be able to “log in” to any computer and immediately download my browser settings, bookmarks, and maybe even my browsing history.  Having all of that information in one central location that can be accessed whenever I need it is a wonderful thought.

I currently use the Bookmark Sync and Sort extension which allows me to upload my bookmarks to my own personal server and synchronize them with other installations of Firefox.  Other such extensions exist to allow you to sync with Google, Foxmarks, and more, but I prefer to have complete control over my data, rather than placing it on a third-party server.

Weave promises to be an open framework for metadata handling, or services integration.  The offer the following view of the process (click for larger image) :

In essence, you access your metadata via a web browser, phone, or some other third-party application.  That application, being Weave-aware, allows you to view and manipulate your metadata.  You can choose to make some of your data available to outside users, such as friends and family, or even make it completely open to the world.  At the same time, any new metadata you create is automatically synchronized with the central servers, updating it instantly wherever you access it.

Weave looks to be a pretty exciting project, one I plan on keeping an eye on.