January 10, 2002
By Karen Kenworthy
IN THIS ISSUE
Happy New Year! I hope you had a great holiday season, and filled your pockets with wonderful memories over the last month.
I sure did. One of my favorites memories is of my niece, baby Anna. Amid the hubbub at Grandmothers house, she carefully pealed the wrapping paper from one of her Christmas gifts. Too young to read the writing on her package, little Anna softly pleaded to no one in particular, "Please tell me what it is!"
Her big brother Daniel, home from college, heard her little voice and came to the rescue. He gently explained the box she'd just unwrapped contained a felt bunny rabbit hand-puppet.
A moment later, Anna was hugging her little gift, sweetly saying, "It's just what I wanted!"
It's probably too much to ask. But I hope you'll say the same thing when you unwrap your copy of my newest Power Tool. :)
Called Karen's Replicator, the program's name was inspired by the great old television series "Star Trek." I'm sure all of you remember Star Trek. Quite futuristic back in the 1960's, now much of its technology has become commonplace. Starships, matter/antimatter reactors, phasers, and transporters have all joined the ranks of flying cars, two-way wrist televisions, and other technical marvels we take for granted today.
But one of Star Trek's innovations has yet to find its way into our daily lives. Of course, I'm talking about the replicator. On command, this nifty device could make a copy of anything, from a cup of hot Earl Grey tea, to a Klingon spinal column.
Now, my Replicator isn't quite so versatile. In fact, my program can duplicate only one thing: disk files. But it does that job very well ...
In the best Star Trek tradition, each copy the Replicator's creates is an exact duplicate of the original. Not only do they contain the same data, they also have the same file attributes (read-only, hidden, system, etc). The clones even have the same dates (last-modification, creation and last- access) as the original.
Best of all, the Replicator can copy files when we aren't around. It allows us to create a schedule, specifying when and where certain files should be copied. Then it let's us go about our exciting lives, while the Replicator takes over the boring job of disk file dubbing.
Suppose, for example, you've just finished creating several reports. Normally, you'd carefully copy each new report to a backup disk. But today, things are really crazy. You just don't have time. Not to worry. The Replicator can stay after work and backup your new files for you.
Or what if you operated a web site? And what if some hacker invades your site, and destroys your hard work, altering or deleting all the web site's files? Sure, you have a complete and recent backup. But it might be hours before you realize the vandalism has occurred.
The Replicator can scan your web site every few minutes, automatically replacing any altered files. The master copies of the web site's files can be stored on a machine not connected to the Internet, or even on a CD-ROM, safely protected from hackers' prying fingers.
Or perhaps you maintain some files that are used throughout your company. Each week you must copy the most recent version to one or more central servers. Now you can train the Replicator to copy those files for you, right on schedule, while you take the afternoon off.
What's A Job?
I'll bet in your life you perform many jobs. Perhaps you cook your family's meals. Or mow the lawn. Maybe you write your company's payroll checks, or make sure there's plenty of donuts and hot coffee in the break room.
While different in many ways, all your jobs have some things in common. For example, each job has a description, a list of things that must be done. And most jobs have a schedule, a time or times when the job must be performed.
Like you, the new Replicator can perform many jobs. To give it a new assignment, start by clicking the Settings button on the program's main window. When the Settings window appears, click its New Job button. Finally, provide the following information:
No surprise here -- this is just a brief description of the Replicator job you're defining. It might be something like "Copy accounting files to backup disk". Or "Restore web server's files from master".
This is the location of the files that will be copied. It can be any folder on a local hard drive or CD. Or, if your computer is connected to a network, it can be any folder on any drive on the network.
As you've guessed, this is the place the file copies will be stored. Again, it can be any folder on any local, or network, drive. If the destination folder does not exist, the Replicator will create it the first time the job is performed.
Place a checkmark in this checkbox, and the Replicator will copy every file in the Source folder, plus every file in every subfolder the Source folder contains. For example, if your Source folder is C:\MyStuff, enabling this option will cause the Replicator to copy all files found in C:\MyStuff\CoolStuff, and C:\MyStuff\OldStuff too.
Copy file only if changed
This option can save a lot of time. When selected, the Replicator only copies files that have changed since that last time a job was run. If the latest version of a file already resides in the Destination folder, it's not copied again.
Clear this checkmark, and the Replicator copies every file from the source folder to the destination, whether the file has changed or not.
Yep, this is the same feature we added to the Directory Printer last month. It allows you to specify one or more wildcards, such as *.xls. If you use this feature, the Replicator only copies files in the Source folder that match one of the wildcards you specify. By default, the Replicator copies every file it finds in the Source folder
Replicate file Deletions?
This option is disabled by default. But if enabled, files deleted from the Source folder are automatically deleted from the Destination folder too. This can keep the Destination folder from growing out of control. But be careful -- it can also remove your "backup" copy of a file if it's accidentally removed from the Source folder.
This is the best part of a job. Here's where you tell the Replicator when to do its job, and how often it should repeat it. For example, you can order the Replicator to copy your daily work files to a backup server each night at 1 a.m. Or you can ask the program to restore damaged web server files every 5 minutes.
You can pick any date and time for a job to start. And any interval, from minutes, to hours, days, weeks or even months, when a job should be repeated.
I learned a few things while writing the new Replicator. For example, I discovered that the file functions built into Visual Basic (the programming language used to write my programs) often fail when reading or writing files containing more than 2 GB (2,147,483,648 bytes).
Now, 2 GB is a lot of data. But it's not nearly as much data as it once was. With disk drives growing larger and larger, people are more and more willing to store enormous files. And files containing music and video can be enormous.
Fortunately, Windows provides functions that other programs can use, which can handle large disk files. And the Replicator uses these functions when copying files. I've tested Windows' functions, copying files as large as 4.6 GB, and they worked perfectly. They're even supposed to work fine with files larger than one TB (1,024 GB, or 1,099,511,627,776 bytes), but I'll leave that time-consuming testing to others. :)
I encountered another limitation when I designed the Replicator's Setting's window. I wanted to the program to allow source and destination folders to reside on any network drive, not just local drives. But the current version of Visual Basic doesn't provide a way to browse through folders found on remote computers.
Fortunately, Windows itself once again provided a solution. After a little work, an often overlooked Windows function known as SHBrowseForFolder did the trick. Now the folders you select for the Replicator can reside anywhere on your network, even if those folders aren't mapped to a local drive letter.
There's more I'd like to tell you about the new Replicator, but time is running short. So we'll have to postpone the rest of our conversation until our next get-together.
But in the meantime, if you'd like to try the new Replicator v1.0, visit its home page at:
As always, the program is free. And for the programmer types among us, the Replicator's Visual Basic source code, is free too.
Of course, if you prefer the convenience of a CD, or want to support Karen's Power Tools, you can visit my CD home page at:
There you can order your own copy of Karen's Power Tools CD, complete with the new Replicator. Your CD will also contain the latest version of all my Power Tools, including three bonus Power Tools not available anywhere else. The CD even has back issues of all my newsletters, and a special license that lets you use all the Power Tools at work!
Whatever you do, please be safe. There will always be only one of you. If you see little Anna, be sure to ask her about her new puppet friend. And if you see me, on the 'net or anywhere else, be sure to wave and say Hi!