This article was published by ComputorEdge, issue #2819, , as the cover article, in both their PDF edition (on pages 9-13) and their website.
With the ongoing proliferation of laptops, palmtops, personal digital assistants (PDAs), smartphones, and USB storage devices in our personal lives as well as in the business world, it is clear that people are moving a huge amount of information from one location to another, and for some data, always keeping it on hand. This trend is being magnified by a number of factors: We are seeing a continual blurring of personal and business lives, as employees are pressured into bringing work home, which in turn encourages people — some of whom resent the incursion into their personal lives — to respond by trying to accomplish even more personal work in the office. Another factor is the rise of freelancers and contractors, as well as telecommuters. Lastly, countless people are taking on additional jobs, and oftentimes need to bring professional information to their side jobs, in addition to the usual personal data that is part of managing a busy family.
As an unintended consequence of this increased movement of data, there are more situations in which any particular computer file can be present in multiple locations. In turn, this leads to an increase in the odds that these data files will get out of sync, and recent changes to those files could be lost when one version of a file is overwritten by another. As an example, let's say that you connect your PDA to your laptop (which you are going to leave at home for the day) and copy your to-do list from the laptop to the PDA. As a result, there now exists two copies of that one file. More than likely, as you go about your business during the day, you will be accessing and updating information on your PDA, and so now the two copies of your to-do list are out of sync. When you return home, it is far too easy to become distracted by all of your domestic duties and forget to copy the most up-to-date version of your to-do list from the PDA onto the laptop. Later, if you start working on your laptop and make changes to that list, each version has unique data not contained in the other. If you repeat this process the next morning, you will lose all of the previous day's changes that you had made to the PDA version.
The scenario described above is an example of "two-way synchronization", in which either version of the file might be modified at any time, and thus there's a need to synchronize the changes between the two versions, so that none are lost. As one might expect, there is also the idea of "one-way synchronization", in which a file is invariably copied from a source location to a target location, and never in the other direction. Perhaps the most common form of one-way synchronization, at least in the realm of personal computing, is the backing up of files. Let's say that you perform a nightly backup of all your changed files on a primary hard drive, over to a backup drive (a process that is highly recommended). The files on your primary drive constitute the source, because that is where you make all of your modifications. The files on your backup drive are the target, and you would never knowingly start making changes to those files, because those changes would be lost the next time you performed a full backup.
Clearly, two-way synchronization is more complicated than its one-way counterpart, because there is no way to know that one set of files is always the most up-to-date. Using our terminology from above, the two different locations could alternate roles as the source and the target. If both sets are modified independently, then in a sense both are now sources. The sooner that you synchronize them, the better, because otherwise the two versions start diverging, and it only gets worse with time.
You can perform such synchronization by hand, but that process is typically quite time consuming and risky. It is too easy to fail to realize that you had made changes to one or more files somewhere. Even worse, there is the possibility that one of the more up-to-date files has become damaged — perhaps you inadvertently deleted a significant part of its contents, or the file got corrupted because it was on a hard drive partition going bad. In these cases, copying these files over the other versions can result in loss of data, which you might not spot until much later, when it is too late to repair the damage.
This sort of tedious and detailed work is best relegated to a computer. More specifically, if you are trying to do file synchronization manually, then you definitely should switch to using a quality synchronization application. In this article, I will discuss a number of highly-regarded candidates, all of which you can utilize free of charge.
I begin with some programs that are characterized as "open source", which roughly means that they are not only free to use, but you can download and peruse their source code — or hire someone else to do it for you, if you are not a programmer or not familiar with the language used to create the program. But what are the advantages of a program being open source? Firstly, the risk that the program is doing something dastardly (e.g., spyware) is greatly reduced. Secondly, if you would like to change the way that the program works or its appearance, you can do so on your own, rather than having to pay the original developers to make the requested changes for you. Thirdly, if you are interested in learning the programming language in question, or at least polishing your skills, or seeing the way that veteran programmers develop software, examining their code is an excellent way to do so.
A subset of the open-source synchronization programs only support Windows as the operating system, while others will run on multiple OSes. Let's examine software from both categories, beginning with the former. DirSync Pro (Directory Synchronize Pro) is capable of synchronizing files on laptops, desktops, flash drives, and PDAs. It supports the creation of incremental backups, i.e., only the changes are saved to disk, so unchanged data in a file is not duplicated each time a synchronization takes place. It can run on Windows, Linux, and Mac OS X systems, because it was developed using Java, a popular multi-platform software language. Also authored in Java, KDiff3 makes it possible to show, merge, and print differences among multiple versions of the same file, with changed lines identified. JFileSync, as implied by the name, is also written in Java, and is capable of reporting conflicts among files, which are changes found in one and not in the other. It has a native file server, and as a consequence can perform synchronization through firewalls.
FullSync can backup or synchronize files in local directories and FTP servers, and it lets you designate what files to include or exclude, depending on rules that you can define, singly or per directory. WinSCP (Windows Secure CoPy) is capable of synchronizing files between local and remote servers, utilizing FTP (either regular or secure connections). WebSynchronizer supports automatic and manual synchronization of files to FTP servers and network drives, and also supports Russian as well as English.
While a growing number of software projects are being released as open source, there is a sizable segment of the programming world that is bucking the trend, and still keeping their source code under wraps. Yet this does not mean that they are charging exorbitant fees to use their products. On the contrary, they make their programs available free of charge.
As may be expected, many of the file-synchronization programs for Windows, are distributed by its parent company, Microsoft. It acquired some of its better products by acquiring the software vendors that created them. An example of this is Windows Live Sync, which was originally developed by ByteTaxi (and marketed under the name FolderShare). Unlike the majority of Microsoft programs, Live Sync appears to support all operating systems, because it is Web-based. Unfortunately, it requires a Windows Live ID.
There are two separate but related Microsoft programs, more geared to the desktop: Windows Mobile Device Center and ActiveSync were intended for users who want to synchronize files, calendar entries, contact lists, and email messages, between their home PCs and any sort of mobile devices that supports these two protocols.
SyncToy is a Windows PowerToy, which means that it is free to download and use. SyncToy can be used to automate the synchronization of many files and folders; it can merge the contents of different versions of a file; and it can rename and remove files in a folder as already done in its pair folder. It supports a variety of devices, because the files and folders can be located on local hard disks, flash drives, network shares, and digital cameras. SyncToy's graphical user interface (GUI) is straightforward, and it makes it possible to exclude files and folders based upon their names and file types.
In terms of free alternatives to Microsoft offerings, consider BestSync 2010, which boasts a large number of capabilities. It can perform two-way synchronization of files on local disks, network drives, removable media, FTP servers (even supporting multiple time zones), and Microsoft Outlook (for those folks still using the biggest security hole in Windows). BestSync supports all modern versions of Windows, and its GUI can be used in at least half a dozen languages, including English. Synchronized files can be encrypted or compressed, which is particularly critical for sensitive information that you write to any removable media, such as a USB thumb drive. It can perform file synchronization automatically, because the application detects changes in the various versions of each file. It can also be scheduled to run at certain times (as a Windows service).
Another non-Redmond product, SyncBack, is available in three different versions. The free version handles one-way and two-way synchronization, on local disks, network drives, flash drives, optical media, Zip archive files, and FTP servers. SyncBack can be downloaded and used without any sort of registration. Like all the best freeware programs, it is not infected with any spyware, nag screens, or advertising.
Note that the risk of losing your latest modifications to any files increases dramatically if for some reason the system times for the source and target locations are not identical, or they are close enough to be effectively equal. The reason for this is that all file synchronization software (even that between one's ears!) will only work properly if the last-modified date and time stamps of the files under comparison are "on the same clock". If the system time for the different devices are not in agreement, then the comparisons of the modification times will be erroneous. For example, let's say that your laptop and PDA show the identical date and time. If you copy a file from the laptop to the PDA, then both copies of the file will show identical modification timestamps. But take the case that your laptop detects that Daylight Saving Time has ended, and it sets its system clock back one hour, but your PDA does not do the same. If you modify the file on your laptop within the next hour, then even though it is the most up-to-date version, it will have a timestamp older than the file on your PDA, and will be overwritten the next time you do synchronization.
Despite the additional complexity of having multiple copies of the same files on different platforms, the programs detailed above make it possible for you to easily keep your personal and business files synchronized, without having to spend any money on software license fees.