For best results, read from bottom to top, since newer posts build on former posts appearing below.

Sunday, May 21, 2006

Making your trusted system portable

For those who opt for a paper-based system, portability is readily achieved. It's fairly easy to bring your notebook with you wherever you go. For those of us who prefer an electronic system, effectiveness is limited by where we can access the information stored within our trusted system. It may be easy to tote your laptop around, but if you have more than one computer, you'll soon pine for the same information available at any keyboard. There are four approaches to solving the problem in the electronic universe:

1. Store everything on a USB stick
I started here. The benefits are that the USB stick is quite easy to move around, but then again, it's also quite easy to lose. Even if I didn't lose it, I was uncomfortable about forgetting it. And, frankly, I found it tedious to have to unplug it and plug it in again as I moved about.

2. Do everything "out there" on the web
There is growing popularity, particularly in the reinvigoration of web-based services, many free, for storing your information out on the web. What's great about this is that you can access your information from any computer, there's little potential for losing the data (unless the company goes out of business), and there's nothing for you to carry around. Sites like Backpack are particularly popular. What I found unattractive about this approach is that it does not permit a seamless integration between those corporate services I use (like email) and my own system. Wanting everything in one place (single source of truth being a key tenent of a trusted system), it appears that until I can put everying "out there", I'm relegated to having everything "right here" on my computers.

3. Store everything in a common location
This is a slight variation on the strategy mentioned above, but focuses on files stored at some location that can be accessed from anywhere. A shared folder, made available to all your computers is the most obvious implementation. What's difficult though, is sharing a drive that can be accessed from outside firewalls. I can share a drive at home, but wouldn't be able to access it from a machine at work, and I'd be similarly restricted in trying to access a folder shared from my work machine while at home. Plus, there's the "airplane problem": if the machine I take on remote trips is not the master machine, then I'll have either no way to get to the real files, or I'd need to copy them to my machine, and be careful about manually synchronizing them. This solution has many problems, and is only marginally better than storing things on the web. I can use the files in conjunction with my local systems, but I'd still need a persistent connection to get at the files.

4. Store everything in a local folder that automatically gets copied to all my machines.
This will permit me to edit files on any computer, even if disconnected, so I wouldn't need access to a network in order to work. Storing files in a folder on my hard drive is pretty natural - all programs I use can save to the hard disk. The trick, then, is to ensure that if I make a change to a local file on one machine it gets copied to all other machines. To effect this, I'll need a program that can reconcile differences in folders, updating copies on other computers as I change a version on any other, deleting other replicated copies if I delete one on a single computer, and of course copying new files around. And, it must be agnostic of firewalls. There are several programs, including GoodSync mentioned below, that can operate behind a firewall where all computers are directly accessible, but as I mentioned before, my work machine and home machine are seldom directly visible to each other. What I need, then, is a service that is visible to all my computers simultaneously, outside all the firewalls, and able to "reflect" changes between machines.

The Solution: FolderShare

FolderShare is the only service I've found that completely satisfies the requirements for total reconciliation of files and folders that are not directly connected. The company that produces it was purchased by Microsoft, and the service is being integrated into Windows Live. (As I write this, FolderShare is still completely free.) FolderShare works by installing a small service on each machine that has content you wish to synchronize. It monitors the folders you specify on each machine, and when a change is noticed on one machine, the service on that one machine alerts the FolderShare server at Microsoft, which then alerts your other machines to make the corresponding change. A nice benefit of the solution is that it encrypts data travelling between machines, adding security when not all machines are protected in the same network. FolderShare is very clever about propagating changes - not all machines need to be powered at the same time for the files to be kept up to date. Suppose, for instance, you have three machines, A, B, and C. Suppose you make a change on A; the changes are immediately propagated to B and C. But what if "C" is off? When it powers on and the service automatically begins as part of startup, it will contact FolderShare and receive the change. But even more interesting is "chained" propagation. Again, suppose I make a change to A, but C is off. The change will be propagated to B. If I turn A off and turn C on, then C will get the update from B! This is precisely the scenario I have in my environment. I use a laptop at work and a different one at home, both of which I turn on and off all the time. I have also a desktop machine at home that I keep on all the time. In my environment, the desktop acts as machine B in my example - I can turn my laptops on and off and they'll automatically synchronize with my desktop if they cannot see each other directly.

Here are instructions for setting up FolderShare:
  1. Begin by creating an account on the central FolderShare site to manage the connections between identical folders on your machines (think of the FolderShare site as a hub and your machines as spokes).
  2. Next, download and install the client software on every machine you wish to keep synchronized.
  3. When you install, you'll be asked to connect to the FolderShare service using the credentials you selected.
  4. You'll also be asked to name your machine, for identification during management activities you'll perform at the FolderShare site.
  5. When the service is running, a FolderShare icon that looks like an "F" will be placed in your system tray.
  6. Before you go further, you'll want to plan what you want to keep synchronized between machines. After some experimentation with different strategies, I chose to create a folder called "Common" in the "My Documents" folder on all my computers. (It's a good idea to create this folder in the right location on all your machines before you proceed. You don't have to, but the directions I give below presume you have.) Since "My Documents" is presented in most File/Save and File/Open dialogs, as well as being readily accessible from the Windows Start menu, this seemed like a very convenient location. It's easy for me to separate those files I want to share across all machines, which I put into "Common", leaving those I'd rather have exist only on one machine in "My Documents" proper. Don't get over-ambitious about what you store in "Common"; you should not store company private information there if it's not allowed off premises; similarly, you should be wary about storing seriously personal information unless you trust all machines to be secure. I'd also recommend against trying to store your Outlook mailbox there, as tempting as it might be to have that available on all machines.
  7. Once you've installed FolderShare's client software everywhere, it's time to tell the central service what to synchronize. All such tasks are done at the FolderShare website from your account. Login to the FolderShare site using your selected credentials. You'll see your own "My FolderShare" page. Press the "Synch My Folders" button.
  8. Although FolderShare suggests several folders that you might wish to synchronize, I prefer to specify just my one special "Common" folder. So, hit "Specify Folders to Sync".
  9. In order to find the folder, FolderShare needs you to select a device where it can be found. I'll start with my machine named "shuttle".
  10. Again, FolderShare presents some default folder choices, but I'll prefer to "Specify a Folder" instead.
  11. By clicking the appropriate links on the page, browse to your "My Documents" folder and enable the radio button that corresponds to your "Common" folder. When you do so, the "Next" button will appear. Click it.
  12. The "Common" folder will now be added, and you'll be asked to associated this file with another device. In my case, I chose to next associate this with my laptop named "wafer".
  13. If you want the folder to appear in the same location on the second machine, you can choose the "My Documents\Common" that FolderShare suggests.
  14. Repeat this step for any remaining machines. In my case, I have only one machine left called "work". If you don't want this folder copied to all machines, you can click "Finish" when you're done.
  15. Finally, you must provide a name for this set of associations between folders and machines. I chose "Common" to match the name of the folders. Click "Complete Setup and Start Synching" when you're all through.
FolderShare has two other interesting features that I'll mention without elaboration:
  1. Your libraries are private by default, but you can make them public, meaning anyone can sync to them. If you enable this option, but restrict the synchronization to only "publish" your changes to other clients without receiving theirs, then you can update your friends' computers with your files without manually copying them or sending those files via email. I use this to "send" pictures to my parents, for example. My parents subscribe to a folder I've made available to them, but I don't allow them to make changes to my copy. When I add pictures of my son to the folder, they automatically get copied to his grandparents' machine.
  2. From the FolderShare site, you can browse for files anywhere on any of the machines where you have the client running, regardless of whether the file was shared or part of a library. This is particularly useful for when you need to access a file that is not in your "Common" synchronized directory - like a file at work that you might have forgotten to bring home.

In particular reference to some of the earlier entries in this blog, I should mention that I share my RoboForm logins and my EverNote files using FolderShare. This way, logins I create on one machine are available on any other, and, with EverNote being synchronized, I have my notes available wherever I have access to any of my machines. Keeping RoboForm in sync requires that you move your "My RoboForm Files" folder from "My Documents" where it is stored by default into "My Documents\Common". You'll also need to use RoboForm's Options dialog to tell RoboForm where to find the new location.Synchronizing EverNote files is slightly more involved. You'll want to move only your Database files into the Common location, leaving the XML backups where they are. Move the entire Databases folder to Common, ensuring it contains four EverNote files with the extensions ".enb", ".eni", ".enl" and ".enr". As a further restriction, since EverNote keeps the database files open as long as it is running, you must be certain to run EverNote on only one machine at a time. If you do not, FolderShare will not know which copy of the EverNote files is the real one, and will likely copy the wrong one, leading to lost work. Religiously following the rule of one EverNote instance on one machine at a time will steer you clear of disappointment (although there are always backups, in My Documents\My Evernote Files\Backups by default, in case you really blow it).


Post a Comment

Links to this post:

Create a Link

<< Home