Monday, January 24, 2011

Instant File Find: Acceptable, While We Await a Windows 7 Version of AvaFind

I had installed Windows 7.  I was now seeing that AvaFind was not compatible with it.  It was crashing frequently.  It was time to find a replacement.  This post describes my efforts in that regard.

AvaFind was a fast file finder.  It searched only file names.  To search file contents, I used Copernic.  Ava Find had been remarkably stable.  I would call it up by a Shift-Esc hotkey combination, type in the name of a file (with wildcards, if I wished), and see the results.  Very fast.  If I wanted to delete, move, or otherwise work with those files, no problem:  in the paid version, it could do that.  It would give me an option to open up the Windows Explorer right-click context menu, and anything that I could do in Explorer, I could do with these files that I had just found.  So this was essentially what I wanted to replace.

I spent some time looking over alternatives.  There were not many that seemed to provide these features.  After a number of searches, I came up with a few contenders.  One was Everything, which sounded like a fast file finder, but did not seem to have Explorer file handling features.  Another was Locate32, which sounded about the same.  I put in a request for AvaFind-like features there.  The third contender, and the one I decided to try, was Instant File Find (IFF).  Like AvaFind, it offered free and paid versions; and like AvaFind, its paid version included Windows Explorer actions.  It looked like it actually might be better than AvaFind, insofar as it offered an Advanced Search option.  (Honorable mention to Find and Run Robot (FARR), whose purpose was largely to find and run programs very quickly, without having to mouse around in the Start Menu.)  IFF would cost $29.95 (normally $39.95 - Buy Now!) if I decided to get the paid version.

IFF did its file searching fast enough.  I noticed some features right away.  I liked its less cluttered interface.  I had never known what the AvaFind Scout Bot was.  A useful feature:  IFF had a drop-down box where I could quickly recall and re-run previous searches.  It also would apparently let me save searches, but only in the paid version.  Advanced Search was another paid feature, and so was Search Network Drive and those Windows Explorer features.  The Help File said there was a free 21-day trial period where I could use most features, but apparently that was no longer the case.  I sent them an email (no forum on their website) to ask about that, and also to find out whether there was a hotkey, like AvaFind's Shift-Esc, that I could use to start the program.  It turned out that Shift-Esc was the hotkey, but if AvaFind was loaded first, it would commandeer that hotkey.  In other words, that problem disappeared when I disabled AvaFind.

After a week of using IFF, I felt that I would still have preferred to have a version of AvaFind that would work on Win7.  A minor problem, and possibly not the fault of the programmer, was that I could not persuade the AvaFind window to take any shape other than the original, which was too tight to see long pathnames.  Another drawback, not quite as minor, was that, at least sometimes, it would not search while it was refreshing its index.  Yes, I wanted accurate search results, but sometimes I just wanted to know if a file by a certain name existed somewhere on my drive.  I was more bothered by not being able to set how frequently the program would refresh its index.  Sometimes I would be moving some files around, and I would know I had recently seen one that I was now looking for.  AvaFind would have found it, with its index refreshing every hour, but sometimes IFF did not.  (I could manually refresh the cache, but during that process IFF would not find anythin gat all.)  IFF, unlike AvaFind, did not see my network drives.  One feature that I really missed was AvaFind's ability to rename files that I had found.

I had always been amazed that AvaFind had not taken over the world.  It was a great utility, for those who were running pre-Win7 operating systems.  It was too bad that its developer vanished.  I hoped he was OK, wherever he was.  In the meantime, my tentative decision was to buy IFF.  It was a good product, just not as good as AvaFind.  But perhaps its developer would make it as good as AvaFind, or even better.

Saturday, January 22, 2011

Windows 7: RAID or Mirror Across Computers?

Where to put the data ... hmm.  I had a home network with two computers running Windows 7.  If the data I needed to work with was on one computer and it went down or had one of those frequent Microsoft maintenance or service interruption needs, I couldn't get to it from the other computer.  But if I put the data on a server, then (a) I had to buy and maintain the server, cables, routers, etc., (b) I had slower access times, (c) the data would then be unavailable to *both* machines (unless I wanted to swap out one or more hard drives) if the server went down, and (d) I had found that, if I accidentally corrupted or deleted the wrong file, a server might not be willing to undelete it.  Not a big deal, assuming you had good backup, but there were painful exceptions.

So it occurred to me:  can you put the data on one computer, so that it can function as a standalone, and also put the data on the other computer, so that it is a standalone too, but then have a constant RAID or mirror arrangement between the computers, so that whatever you do with the data on one computer is immediately duplicated on the other computer?  That way, you've got local speed, no server, and redundancy during downtime on either machine.  Basically, two-way mirroring:  when a file is modified, it checks the other computer, and the two of them figure out which version is newer, and it overwrites the older version on the other machine as well.  All you need is a router, if that.

I figured possibly everybody else already knew the answer to this.  But since I didn't, I started with a search.  Only six hits.  It looked like the concept of "RAID between computers" was a nonstarter.  Alright, a different search.  Wow, "mirror between computers" produced 13 hits.  But, OK, not to complain, it seemed most of those hits were for TreeNetCopy.  Take it out of the equation, and the search produced only five hits.  So TreeNetCopy seemed to provide the path forward.  But it didn't look like CNET, PCMag, or other big-name sites had reviewed it.  I went to the product's home website and found out why:  it was for systems using Windows NT or Windows 2000.

Apparently mirror and RAID were not the concepts I wanted.  How about incremental backup?  You couldn't have it running constantly; it would have to finish one scan of the system's files before it could start on the next one.  So maybe you'd set it to run every 15 or 30 minutes, or however a scan would take to finish, across the network connection.  This wouldn't be nearly as good as software that would detect and propagate changes as soon as they were made, but I wasn't seeing how to find anything like that.  With a 15- or 30-minute delay, you couldn't have someone being able to open the file on computer B as soon as someone else updated it on computer A, unless possibly if you had a script that would somehow be able to run the incremental backup manually for a given folder by just maybe choosing a right-click context menu option.

Alright, a different approach.  I had been using Beyond Compare, a file comparison tool.  It still looked like one of the more capable file comparison tools, so how about using it?  As I was thinking about that possibility, I realized that I didn't like the idea of having to do a right-click or other manual update.  The computer could crash before I got around to that, and then I wouldn't have the current data in the parallel folder on the other computer, and therefore really couldn't just keep right on working where I left off.  I had only used Beyond Compare as a manual comparison tool, where I would start it up and it would run for a while and compare directories and then show me what needed to be mirrored to my backup drive, and then I would click the buttons necessary to do that.  I knew it was possible to write scripts to automate some of this, but it seemed unlikely that scripts would help Beyond Compare remain up-to-the-minute on all of the file changes made on the system.  Most likely, I could set up scripts to run in some frequently used folders, and maybe even to automate the mirroring of those folders, but other folders would be left out in the cold.  Possibly I could have multiple scripts doing comparisons of more- and less-frequently used folders on different schedules, so as to increase the likelihood that most folders would be mirrored relatively often.  But with enough scripts running simultaneous file comparisons, I'd start to take a performance hit.

Lacking a better option, I did a search to learn more about Beyond Compare scripts.  The search came up with a number of interesting concepts, right there among the top ten hits.  One was the concept of automated synchronization.  Duh!  Of course.  Synchronization was the Windows term for what I wanted.  So I did a search for that, dropping Beyond Compare for the moment.  But the only thing that came of it was the discovery of Super Flexible File Synchronizer, which cost $60 for a two-year license (unless, for some bizarre reason, I would think that I could do without the pro version's ability to copy ZIP files!).  It did look like it might have some advantages over Beyond Compare, such as the ability to detect that I had moved a folder, so that it could just repeat the move rather than delete the folder from one location and create it in another (which might involve a lot of copying, if it was a large folder).  It had very good ratings on CNET.  I could download and try it out free for 30 days.  But it was ultimately still a backup program, running on a schedule, not a mirroring program, so I was still basically working with the same scenario:  design a set of backup scripts, profiles, or whatever, and set them to run at different frequencies, backing up what I would consider the most heavily used folders most frequently.

TopTenReviews ranked Super Flexible File Synchronizer eighth in its list of sync programs.  Their comparison page had a number of relevant criteria, including the ability to do bidirectional sync, to mirror files, and to operate across a network.  It actually looked like their number two program, GoodSync ($19.95), had better features for my purposes than their number one choice, Syncables 360 ($39.95).  Their review of GoodSync made it sound good indeed.  They said it couldn't sync or merge Microsoft Outlook files, which was OK because I was using Thunderbird.  (Later, I encountered a review by a user who said s/he was using it for this purpose, so I assumed they had updated the program.)  They said that working over networks could be complicated.  I wasn't sure if they meant that as a generic remark that would be relevant to all kinds of work over networks.  They seemed to rank it number two rather than one because it "lacks some of the advanced features professional users expect."  CNET's review likewise ranked it number two, but in the category of "file management."  I wasn't sure what they considered the number one program; their webpage didn't indicate which criterion they used for that ranking.  But GoodSync was the most frequently downloaded program during the prior week.  GoodSync's awards webpage mostly listed awards and positive reviews that were at least a couple of years old.  So apparently it had been created and was now coasting.  I did a search among its many reviews on CNET, looking for more info about using it on a network.  Unfortunately, CNET's links to specific reviews weren't working for me at that point, so I wasn't able to get details, but what I was able to read from the summary results was positive with the exception of one person for whom GoodSync did not work well.

There were hardware options.  SyncSharp offered a device that would synchronize via USB.  It sounded similar to The Tornado and to the Windows 7 Easy Transfer option.  I didn't want an additional device, and since ethernet was faster and was already in place, I didn't want to use USB.  For purposes of speed and also capacity, not to mention reducing dependency on external data sources, I was obviously not going to be interested in a cloud (i.e., web-based) solution, even if I had found one that offered constant, continuous, real-time synchronization.

It turned out that CNET had another category, for "data transfer & sync software."  As with some other CNET searches, I looked at the top 30 both in terms of downloads last week and user ratings.  Setting aside those that were for special purposes (e.g., Blackberry, Outlook), and focusing on those that were for Windows 7, I found that only two were free:  CopyTo Synchronizer, which had only two votes and which I therefore deemed insufficiently tested, and Microsoft Live Mesh, which had only one vote but which I was willing to assume was better developed.  The nonfree alternatives that came up in this search included BeyondSync, ViceVersa Pro, Easy Computer Sync, and Syncables 360 Premium.  I reduced this set to Live Mesh, Beyond Sync, and ViceVersa.  A search for further information on Live Mesh suggested it was web-based, more like DropBox, leaving me to focus on the other two.  A search led back to a TopTenReviews comparison -- it may have been the same one as before, but a couple of weeks had passed by thie time -- naming GoodSync (above) as No. 2, ViceVersa as No. 5, and BeyondSync as No. 10.  Of the ten, the ones offering bidirectional sync, network synchronizing, and Windows 7 support were these three plus Syncables 360, SugarSync, Laplink, and Super Flexible.  Most of the same names also appeared in a CEOWorld review.  I eliminated SugarSync as another cloud solution.  The TopTen review for Beyond Sync made it sound unappealing.  A dotTech review echoed that. 

I ran a search looking for comparisons of Syncables against the others that also sounded good for bidirectional synchronization.  A couple of reviews alerted me to the feature, evidently present in GoodSync but not all others, of being able to see which changes would overwrite.  I began to get a sense that Syncables was more of a glossy product, designed for people who wanted simple and trouble-free synchronization without necessarily having an option to scrutinize every step of what was happening.  Having been burned by the occasional backup program that would not save (and would also not tell me that it was not saving) files of a certain kind, or nested too deep, or had an umlauted character in their filenames, or were otherwise secretly exempt from what I thought was happening, I had become more inclined to use transparent software.  At least until I gained a lot of trust and experience with a program, I wanted to see what it was doing.  So this feature of GoodSync appealed to me.  I noticed, also, that a review described Liuxz Sync as being "of most use to users that need to carryout real time synchronizations over a network or between hard drives."  As I continued to look at other opinions, ViceVersa still sounded relatively good too.

On this basis, I decided to start with GoodSync, as described in a separate post.  After some days of using it, and comparing its results against an external backup drive via manual comparisons using Beyond Compare (as described in more detail in that other post), I concluded that GoodSync was a good product for this purpose.  I set its sync rules so as to check most frequently those partitions in which I was most likely to make changes.  For practical purposes, I could change files on one computer and I would see those changes on the other computer when I went looking for them.

In short, I wound up using GoodSync to synchronize files on two computers on a home network.  The files were generally available on the other computer within minutes.  I did this without using a server.  That is, the files were available locally on each computer, so that I could keep right on working if the other one went down.  I arranged backup via external drive, and I occasionally checked that external drive against the internal drive manually using Beyond Compare.  I had better performance than on a network, and was not very vulnerable to network problems; presumably I could have set up the same arrangement via crossover cable, without even having a router.  This really felt like a solution that I had been seeking for years.

Windows 7: Choosing a Multiple Desktop Program

One advantage of using two computers was that I could get stuck at a certain point, for whatever reason due to the computer's imperfections or my own, and just switch right over to the other machine for a while.  I suspected that this advantage could be multiplied by effective use of multiple desktop software.  This post describes my early Windows 7 efforts along those lines.

I had used multiple desktops in Ubuntu, where that feature was part of the standard package.  I had previously looked into multiple desktop software for Windows as well, particularly VirtuaWin, as a portable solution.  (Portables, at their best, could be incorporated into my network-shared, customized Start Menu, all of which could be copied onto a USB drive.)  My question, at this point, was whether Windows 7 supported good software, preferably but not necessarily free, that would give me multiple desktops.

In Ubuntu-land, I had used virtual machines (VMs) to encapsulate a whole workspace.  In one VM, I might have several different kinds of documents and utilities open, all pertaining to the project underway there.  Projects could take a long time, and could entail many interruptions.  Being able to zip all of that up into one pod was helpful for keeping multiple projects organized and ready to resume.  This, especially, was what I would ideally get from Win7 workspaces, though admittedly this went beyond what I had experienced in the desktops of Ubuntu itself (as distinct from VMware, running on Ubuntu).

(By the way, if you're reading these posts, please feel free to add a note now and then.  A bit of encouragement, commentary, or even constructive criticism enhances the sense that some find this effort helpful.)

After some searching around, it seemed that the multiple desktop solutions I was hearing most about were Dexpot, VirtuaWin, and Microsoft's Sysinternals Desktops, probably in that orderA search led to a site agreeing with Dexpot as No. 1, but suggesting that maybe Virtual Dimension belonged in the top three or four.  Another site nominated Micro Desk as one of the best.  CNET did not concur, however.  I liked that Dexpot would allow me to create up to 20 desktops.  I had previous positive experience with other Sysinternals software.  I found a decent video of Dexpot.  It seemed to show largely superficial features, but it did look good.

I went to Dexpot's webpage.  I saw that, in their support area, they did have a forum and an FAQs page.  On their download page, I noticed that they did have a portable version.  I downloaded the installable version and began to play with it, as described in a separate post.

Synchronizing Two Computers: Detailed Review of GoodSync

As described in another post (posted about the same time as this one), I decided to try GoodSync to keep two desktop computers running Windows 7 in constant synchronization.  This post describes how that worked out.  As with my other posts, this post presents the actual process, in all its chaotic glory.  This seems to be a good way of conveying what it was actually like to install and use the program.

I started by going to GoodSync's homepage to see if their description made the program sound like what I needed.  On their Features page I noticed, among other things, that "Analysis and Synchronization can be started when any file in sync folders changes."  I saw that GoodSync also came in an Enterprise version with appropriate features (e.g., command line) for $10 more.  The download page (for the Pro version) offered versions 8.5, 9 beta, Mac, and portable.  I would have gone with the portable version, if I had had a more consistently good experience with other portable software -- after all, why not avoid having to reinstall a program on each machine?  It was a little confusing -- they seemed to offer a separate trial version -- but on the assumption that I would just have to enter a license key within 30 days, I downloaded Pro version 8.5.  (I later found an indication that the portable version would not start automatically with Windows and could not be scheduled via Windows Scheduler.  There was no user forum on the GoodSync site.)

I had set up a home network, so I knew my computers were seeing each other.  I had also done full backups on both computers to an external drive that was now disconnected, so I was confident that even the worst screwup could not completely trash anything irreplaceable.  In fact, I went ahead, using Beyond Compare, to synchronize those backups with each other.  So both computers, at this point, had identical data. So I could change just one thing and see what happened.  (My impression of Beyond Compare was that it could have done much of the same thing as GoodSync, but would have required me to write scripts to do it.  If I was going to write scripts, I would just use the Windows equivalents of rsync and cron.)

With that in place, I installed GoodSync on one computer and ran it.  It opened a dialog inviting me to set up my first job.  I had a choice of synchronizing or backup.  The interface was like other file comparison software, with two panels side-by-side representing the two computers being synchronized.  I needed to indicate what I wanted to synchronize.  Unfortunately, it wouldn't let me designate all of computer A.  As I confirmed at their FAQs page, the best I could do was to set up separate jobs for each individual folder off the root drive!  So if I created a new root folder (say, D:\Newfolder) and forgot to set up a new GoodSync job for it, it would not be synchronized; likewise if I changed a root folder's name.  Apparently files stored in the root folder could not be synchronized in any case, unless perhaps one went to the trouble of mapping that drive and attempting a sync on the map.  I nearly dropped the program at this point.  I did try synchronizing drive D, but the OK button was grayed out when I selected that.  (Later -- after I had set up and configured individual jobs for each of a dozen different folders -- I went back and tried drive D again, and this time it worked.  I wasn't sure what happened there, but I spent the better part of an hour unnecessarily pursuing that.  When I looked at the FAQs page again at that point, I realized they were talking specifically about drive C.  Apparently they meant that other drives were fair game.)

Anyway, I went ahead with the experiment, creating a job for just one folder.  I called it D-Miscellany, since it would be synchronizing D:\Miscellany.  It was easy enough to indicate that folder on computer A, where I was working:  the list of drives on computer A came up by default.  But how to designate D:\Miscellany, the matching folder, on computer B?  When I clicked the Browse button for the right-hand pane, it showed me just that same list of drives on computer A.  The answer was that I had to look in the left side of the "Right Folder" dialog that came up when I clicked on Browse.  I had to tell the program to look, not on Local, but on LocalNet SMB.  It was greyed out at first, but I guess after computer A detected computer B, the LocalNet SMB option became available.  But when I went there and tried to select computer B, I got an error:  "Access is denied. (error 5)."  So, referring back to the struggles near the end of my post on networking, I applied to computer B the same steps I had applied to computer A, so as to make its drives available to GoodSync.  The starting point here was to right-click on drive D, using Windows Explorer on computer B, and go into Properties and tinker with the Sharing and Security tabs.  In the Sharing tab, it was Advanced Sharing > Permissions > Full Control for Everyone.  In the Security tab, I had to click Edit > Add > type "Everyone" > OK > Full Control (with Everyone selected) > Apply > wait > OK.  That enabled me to put computer B's Miscellany folder in the right-hand pane of GoodSync.  Next, I clicked GoodSync's Analyze button.  It reported that the two were "In Sync."  Good.  Sync!

OK, so would GoodSync automatically detect a new file in D:\Miscellany on computer B, or would I have to click the Analyze button manually?  Perusing the menu options, I saw that perhaps I could just click Job > Synchronize All without having to go through a separate Analyze step, but I wasn't sure about that.  I went into Job > Options.  Lots of things I could adjust if I wanted.  This looked good.  There was an option to do an Analyze or Sync (or both) every ___ hours and ___ minutes (fill in the box).  So conceivably I could set the sucker to run every minute.  I tried that.  Clicking the Sync option there automatically turned on the Analyze option as well, so apparently Analyze was the necessary first step.  Logical.  I set it for zero hours and 1 minute.  But then I deselected that and checked the "On File Change" box instead.  Did this mean it would sync a file as soon as it was changed, on either computer?  Time to try it out.  I selected On File Change, clicked Apply, and then created a little text file on computer B in D:\Miscellany.  I called it Test.txt.  GoodSync on computer A said, "Analyze is blocked by Options or Browse dialog.  Oops, OK, I clicked OK to close that dialog.  The error message didn't go away.  I had to close it manually.  Ten minutes later, it still hadn't done anything.  So I clicked on the Auto button on GoodSync's lower panel.  That just brought up the Options dialog again.  Alright, well, skip that.  I unchecked the Sync and Analyze options for "On File Change" and went back to the option of synchronizing every 1 minute.  That did something!  Almost immediately, I got an indication that it had detected that something had happened with Test.txt on computer A.  I went into computer A's D:\Miscellany folder and, sure enough, there it was.  I changed its contents and closed it.  Within about 20 seconds, Good Sync did something.  I checked on computer B.  Yes, its copy of Test.txt now had the change.  Very good.  I renamed the file on computer B, watched GoodSync react, and checked D:\Miscellany again on computer A.  This was working.  Note that the time on my computers did not precisely agree.  Apparently GoodSync had made a note of that, and was adjusting its calculations accordingly.

As I browsed GoodSync's FAQs, I saw that they also did not automatically allow system and hidden files to be copied.  I got the feeling that I had really better just double-check whatever GoodSync was doing with Beyond Compare, for a while, to make sure it was doing what I thought it was going to be doing.  I didn't know what other exceptions there might be, and that's the point:  I didn't know.  I couldn't be sure.  Even after reading the FAQs, as experience with other backup programs had taught me, there might be something else that the programmers decided not to include.

A couple of reactions, at this point, about the interface. One was that I wished that GoodSync were capable of more compressed viewing. There was a lot of white space among lines, such that relatively few files being compared were visible onscreen at any one time. Also, I wanted the Log Window to be more user-friendly. I think, instead of using up that valuable real estate with tiny print stretching across the full width at the bottom of the screen, showing only the last few lines, it would have been better to provide a more readable version behind a button, and to organize relevant options (e.g., show all errors) around that pop-up.  Eventually, I also found myself wishing that, when I excluded a folder from consideration, it would automatically roll up into one line (i.e., no longer display all its subfolders and files) and change color or otherwise be marked as visibly excluded, so that it was not distracting me and taking up screen real estate.  Also, it was odd not to have a save option of some sort on the Job menu.  It seemed like some items from the Tools menu belonged on the Job menu, and vice versa.  On the Tools list as it was, I assumed at first that "Export Job List" meant that it would save, to a designated file, the whole setup -- all of the jobs and settings that I had opened, exactly as the whole screen was now set up -- but later it occurred to me that maybe this meant, literally, only the list, such that I also had to do a separate save operation for the individual jobs.  This was not something I wanted to get wrong, but it was also not something I wanted to spend more time researching.  I guessed this was like Beyond Compare's idea of saving individual sessions within a workspace, and being able to save and load workspaces, but here it wasn't as clear.

For the time being, I closed the GoodSync window.  It retired to the system tray.  I could right-click its icon down there to reopen it.  I did that.  I adjusted its Tools > Program Options.  There were pop-up help dialogs for the various settings, and these were generally pretty good.  They needed to be gone over by an English major, though, with some attention to clarity of references.  For instance, one said, "If checked then GoodSync will create left/right sync folders if they are not present."  I had no idea what a left/right sync folder was, and there was no link there.  I didn't want to lose my place, as I was going down through that help dialog, so I ran a Google search to get an explanation.  The only search result with any information was for the GoodSync Manual, but it just repeated what was in that help dialog (or maybe it was the other way around).  There was no explanation anywhere, as far as I could tell, of what a sync folder was.  I gathered, from several oblique references, that GoodSync would optionally create a sync folder in each folder that it was synchronizing.  To test this, I turned on the option to create sync folders, added a new file to D:\Miscellany, and sat back to watch.  Sure enough, both computers now had a system folder called D:\Miscellany\_gsdata_.  Needless to say, I didn't want that clutter.  I turned off the option and made a change to my test text file.  GoodSync mirrored it without complaint.  This did not mesh with the manual's indication that there would be an error message if the sync folder was not found.  Oh, but now I saw that was probably because unchecking the option did not remove the sync folder. OK, well, then, with the option off, I deleted _gsdata_ from computer A's D:\Miscellany folder and then changed Test.txt again.  Whoa.  _gsdata_ was back.  Alright, what if I deleted it on both machines?

This called for a pause to reflect.  Each synchronized folder would have a _gsdata_ folder.  It would not be hidden from me, since I normally displayed hidden folders.  But its presence would be a relatively minor irritant.  After all, I had overlooked the intrusions of desktop.ini and Thumbs.db for years.  I was not sure why GoodSync could not store all of that synchronization data in a cache, in a location of my choosing, as other programs (e.g., Copernic Desktop Search) would do.  But if I had a good synchronization solution here otherwise, I would much rather have these headaches than deal with a program that did not do its job as well.  Another concern was that I wasn't entirely confident that GoodSync was going to do the job right.  I was not sensing a commitment to give me a transparent, thorough synchronization that I could trust without having to check up on.  Still, it wasn't a backup program per se, so possibly this would work out OK.  I would probably just have to use it for a while, to see how things turned out in practice.  (If I do not comment on this program in future posts, it is likely that I stopped using it.)  (This concern about the _gsdata_ folder was reduced, later, when I was able to synchronize whole drives rather than individual folders.  At that point, the only _gsdata_ folders were in the drive root, i.e., at D:\ and E:\.)

I decided to continue.  There wasn't much else to comment on in Tools > Program Options at this point, except to say that they did have a global Filters section there, so they surely could have allowed for folder filtering.  Over in Job > Options, I noticed that they had an option to save one or more versions of deleted files for as long as the user might wish, or until disk space was gone.  There was another, job-specific Filters option here.  I didn't want exceptions popping up in my Beyond Compare double-check, so I didn't set filters; Beyond Compare would notify me about everything.  (Somewhere along the way, I noticed that the contents of the help or explanation window at the bottom of these options dialogs would change as I moused over individual settings.  This was very practical and helpful.)

Moving on, I was now back at the Job > Options > Auto section.  The option of running a synchronization every ___ minutes seemed sufficient, so I didn't go with any of the other scheduling options.  This D:\Miscellany folder rarely changed.  I could probably set it to sync every couple of weeks, and just use GoodSync's manual Sync button if I happened to think of it after I did make a change in that folder.  There was an option not to do a sync if more than a specified percentage of files changed.  This, they felt, could be a sign that something was wrong and that manual intervention was appropriate.  I decided to leave that at their default 10% setting, to see if that worked for me.  Finally, there was an option to "Auto Clear the tree after Sync or Analyze with no changes."  I had no idea what this was about, probably because I didn't know what tree they were referring to, and the help file did not provide an explanation.  (I have pointed GoodSync to this post.  Hopefully they will read it and address some of these concerns.  If so, perhaps they will even post a comment to say so.)

Job > Options also offered Scripts and Advanced sections.  In the Advanced section, I checked some things they had not checked, for added file integrity.  In a case of "ask and it shall be given," I saw that they did have a job-specific "No _gsdata_ folder" option.  The context-specific help note was too big for the little window at the bottom of the dialog, but I found it repeated in the manual.  It said this:

No _gsdata_ folder (un-checked by default)

If checked then do not create _GSDATA_ folder in the Right (remote) sync folder of the job, instead create _GSDATA_ folder in the GoodSync profile folder on this computer.
If not checked then create _GSDATA_ folder in both sync folders of this job.
Still use _gsdata_ folder on the left side of the job.
Use this option only for folders that are not sync centers (all jobs only read from this folder or only write to this folder).
If _gsdata_ folder is disabled then these options are disabled too: Save Previous/Past Version.
This was not entirely clear.  It seemed to be saying, for one thing, that if I did opt to save deleted copies of a file, those copies would be saved in _gsdata_.  Possibly this was the reason for putting the _gsdata_ folders within the individual folders rather than in a separate cache folder:  copying or moving them from their folder of origin to a cache folder could take a lot of time, in the case of many or large files.  It still seemed like something that users should be able to choose, though.  This message also seemed to say that, if I did opt out of _gsdata_ folders, my drive C would swell as I larded it down with data files from synchronized folders on other drives.  Even after opting out, the program would apparently create a _gsdata_ folder in computer A nonetheless.  I didn't know what a sync center was, it wasn't explained in the manual, and the parenthetical explanation here wasn't clear.  I decided not to opt out of _gsdata_.  Finally, I changed their folder and file links options to "as is."

Whew.  OK.  I had set the options for the D-Miscellany job.  Now I had about ten more to folder jobs to set up.  That was going to be a pain, and the odds that I would get all the settings right without overlooking anything were just about nil.  I would have to adjust timing for different folders, but otherwise most of their settings, it seemed, should be the same.  I wished GoodSync had an option, like Beyond Compare, to set default settings for all jobs, so that I wouldn't have to do the same things for each job individually.  Then I noticed an option to create a job template.  Just what the doctor ordered.  I wanted to save D-Miscellany as a template, where all I would have to do would be to change the folders being synchronized.  To do this, I went to Job > Save as template.  The location was C:\Users\Administrator\AppData\Roaming\GoodSync\Templates.  I assumed I would have to make a manual copy of the resulting Default Template.gst file to my D:\Installation\Saved Settings folder if I wanted it to survive a Windows reinstallation.  To use the template, I went to Job > New > From template.  I soon found I could just click the yellow plus symbol at the left end of the tab bar to invoke this dialog.  I was able to drag tabs into a preferred order, which was a nice touch.  Specifying the folders to be synchronized took time:  the computer apparently had to re-connect with the network each time I clicked on a Browse button.  Each recognition step, two per job, took about 10 seconds on the left side and about 20-30 seconds on the right.  Not much in the grand scheme of life, but a drag when you're creating a dozen or more jobs.  This made me wish I had been able to just right-click on a static (refreshable) list of folders to create a job.  Then I went back into each job and changed how frequently it would do its auto-sync.  I decided to try again with the auto sync "on file change," reasoning that surely that part of the program must be functional, if not instantaneous.  What I found was that it would check for file changes frequently -- every minute, from the looks of it -- so this was not the way to minimize system resource usage.  So I changed them all back to a specified number of minutes after all.  When I was done with this, I went to Tools > Export Job List and saved the .tix file to D, again to survive a Win7 reinstallation.

While I was doing all that, of course, those newly created jobs, modeled on D-Miscellany, were all springing into action to synchronize computer A with computer B.  I had done a few file moves on computer A since using Beyond Compare to synchronize computer A with an external drive.  So in a few moments I would go into Beyond Compare and compare computer A against that external drive again.

But first, something weird was happening.  I had finished setting up the folder comparisons on the folders in drive D, but had neglected a couple of folders I had on drive E.  When I began to set those up, I discovered that GoodSync would, in fact, allow me to do a comparison of the entire drive, rather than having to designate individual folders.  This was what I wanted, but it was what they had said they couldn't do and what I had not actually been able to do on drive D.  I went back and reviewed the FAQ page statement cited above.  Well, it said that I could not back up all of drive C.  It didn't say anything about drives D, E, ... So had I made a lot of extra work for myself -- was there actually a way of doing all of drive D at once, some way that I had just overlooked?

At this point, I discovered that GoodSync did have a right-click option to exclude the Recycle Bin and other items.  Unfortunately, when I used that option, it ignored me.  There continued to be a yellow exclamation mark on the tab for that drive, and I continued to get error messages indicating that access to the recycle bin was denied.  A yellow banner said, "Sync has finished with Errors or Unresolved Conflicts," and the log said, "Click Errors button to see sync errors."  But there was no Errors button.  I stopped GoodSync during a sync, so as to hunt for the log, but that made the program crash.  It sent off a crash report to the GoodSync people.

Alright, then, this was a good time to do that comparison with Beyond Compare.  I was not pleased with the results.  Changes that I had made on computer A, after synchronizing via external drive with computer B, had been undone.  That is, computer A had been restored to the earlier condition represented by computer B.  The specific problem seemed to be that files I had deleted on computer A had been restored to computer A from computer B, instead of being deleted from computer B.  Those may have been the only sync problems.  I restarted GoodSync and checked the file deletion settings.  In Job > Options > General, I had already checked "Propagate Deletions," which should have taken care of it.  In Job > Options > Auto, in response to "Automatically resolve conflicts," I had designated "Do Not Copy" instead of "Left to Right," "Right to Left," or "Newer File Wins."  I changed this to "Newer File Wins," which was my preference, now that I thought of it, but this did not seem to explain the problem.  I had not checked "Auto Clear the tree after Sync," and was irritated that the list of changes would disappear from the screen before I had a chance to look at them (if, that is, it ran another sync before I looked at the program again).  Oddly, it seemed that computer B, where I was *not* running GoodSync, wound up with the correct files.

In short, my impression at that point was that there were some bugs in the program.  At this point, I was wishing that Beyond Compare offered a sync program.  But after that first scare, GoodSync seemed to behave more as I had expected.  Hopefully this did not mean that it finally won and was able to delete the file versions that it did not like, that I happened to prefer. 

I was not sure exactly what happened in that first encounter.  It may somehow have been my fault.  During the next 48 hours, GoodSync won my confidence.  And then I used it to compare an existing partition with a new one, where I had added just a few programs on the new one via USB jump drive, and a similar thing happened again:  the Analyze screen indicated that it was prepared to wipe out the existing partition and replace it with the new one.  Then I realized that, of course, it should:  the new partition had been changed more recently.  It didn't go through with it, though, because it detected that more than 10% of the partition was going to change.  So this was more like a warning to me, to not treat GoodSync as a magic wand that would automatically make everything right.

After several days of usage, with careful comparisons of all changes against an external backup using Beyond Compare, GoodSync seemed to be a solid, reliable way to keep two computers synchronized.

Friday, January 21, 2011

Windows 7: The INSTALL Partition

For a long time, probably since the 1980s, I had kept my Windows installation on drive C and my data on drive D.  (Drives, or partitions of drives, can be readily created within Windows 7 and also by partition manager programs.  GParted, included in the downloadable Ubuntu CD, has been the most reliable partitioning programs for my purposes in recent years.)

Having the data on drive D had several advantages.  One was that I could back up drives C and D on different schedules.  Once I got a good Windows installation set up on drive C, I didn't need to back it up very often.  I'd just make a drive image (using Acronis True Image in the past few years), and I'd make an updated image backup just when I had done some significant new program installation or adjustment.  By contrast, I would want to back up my data on drive D on at least a daily basis.  Of course, when I made the image of drive C, I would need someplace to put it other than drive C.  An external drive was a possibility, assuming the bootable CD would recognize it, but it would tend to be slower, and this would be complete downtime, when it would not be possible to do other work.  It worked the other way, too:  having the data on a separate partition meant that I could completely reinstall Windows without affecting or even worrying about my data.

There were exceptions to that last statement.  Some program configurations were so detailed, time-consuming, and/or oft-changing as to constitute a sort of data.  Not the kind of data I was supposed to be working on, but data nonetheless.  An example:  Firefox add-ons.  It could take a half-hour or more to find, install, and configure my Firefox add-ons after doing a new Windows installation.  Some add-ons allowed me to export my saved settings, but obviously I would not want to store those on drive C; they'd be wiped out if I reinstalled Windows sometime down the line.

I also found it was handy to keep a local copy of the programs that I would install in Windows, after installing the Windows operating system itself.  I did not want to have to re-download all those programs and re-invent all of the things I had previously figured out about installing them.  So instead I had folders containing the programs to install, with installation notes in accompanying text files, and I named the folders in such a way as to guide me in the installation sequence that worked best (e.g., "01 Motherboard Drivers").  There were also quite a few program installers that I tried and uninstalled, or hadn't gotten around to installing.  Also, some ISOs -- ready-to-burn CD images that I had downloaded but hadn't burned to CD, or wanted to keep because it was a hassle to re-download a 700MB image.  I had collected these sorts of things, not only for Windows, but also for Ubuntu.

I accumulated about 75GB of this stuff.  Keeping it all on drive D meant that my daily data backups were swelling up with all this material that didn't need to be backed up every day.  So at some point I moved a bunch of it over to its own partition, with occasional backups.  What I kept on drive D was mostly stuff that I was actually using in my current installation.  One example:  those Firefox settings files.

Sometime in the late 1990s, I discovered that I could move my Start Menu to drive D.  This would have the advantages mentioned above, including especially the fact that my custom-arranged Start Menu (top-level folders:  Productivity, Online, Multimedia, Tools, Startup, Miscellany) would not have to be rearranged each time I installed Windows.  As long as I installed everything in its default installation location, the shortcuts in the Start Menu would come back to life as soon as I reinstalled the target program where the shortcut expected to find it.

A few months before writing this post, I came to realize that, of course, I could also install my portable applications in the Start Menu.  This would be ungainly in the sense that a bottom-level folder in the Start Menu might contain a slew of program files instead of a nice, orderly collection of shortcuts.  But it was handy for keeping everything that ran in one place, where I could copy it to a jump drive and use considerable parts of it on any other Windows machine.  The Start Menu, wherever located, could also be accessed and synchronized on a network, so that I only needed to configure the Start Menu once and would then have it available for any computer I would attach to my home network.  (Making it available did require a registry tweak.)

Putting the portable applications in the Start Menu had an unwanted side effect.  Many portable apps (especially those coordinated by used many of the same program files.  That was a problem because I liked to use DoubleKiller to delete duplicate files on drive D.  I couldn't do that anymore, at this point, because it would detect tons of duplicative portable program files that were supposed to be there.  I looked for a different duplicate remover, one that would allow me to exclude folders like the Start Menu folder, but ultimately decided to stay with DoubleKiller for now.  The reason was that I did not want to risk that, one fine day, I would forget to exclude the Start Menu from a DoubleKiller sweep, and (although this was unlikely) would punch the wrong button and delete that Start Menu from my hard drive.

What I decided to do, instead, was to move the Start Menu so that it would join those other program files -- programs to be installed, etc. -- in their own partition.  I called it INSTALL and gave it a letter of W, so that its location would not be affected by the connecting and disconnecting of various USB drives and whatnot.  So then hopefully the shortcuts in it would stay in place, and would require no further adjustment forever and ever.

Right now, unfortunately, they did require adjustment.  I modified the registry tweak to point toward drive W:\Start Menu rather than D:\Installation\Start Menu.  This caused almost no problems.  The main issue was just that a bunch of shortcuts were now dysfunctional, in that they pointed at executable files on D that were now on W.  I ran Glary Registry Repair 3.3.  It identified 165 new registry errors.  As I scrolled down the list, I noticed that a huge number of the problems identified by Glary were links to IrfanView on D.  I considered doing a global registry search and replace for the IrfanView location -- or, indeed, for all references, changing them from D to W, perhaps with the aid of a global registry search-and-replace tool like Registry Toolkit ($25) or Registry Replacer ($15) or Replace Registry Values (free).  But then I decided it might be safer to let Glary fix those dud links and then do a search in a registry editor for any remaining references to D:\Installation|Start Menu.  I used O&O RegEditor to do that search.  I was now down to a total of just 29 registry references to D:\Installation\Start Menu.  I was going to edit them in O&O, but then decided not to.  As long as they weren't hurting me, I was better off just leaving them alone.  One ill-advised registry edit could cost me an hour or more for recover or restoration.

So this was pretty much the end of the project, aside from some continuing cleanup, correction of shortcuts, etc.  I now had an INSTALL partition, labeled as drive W, containing my customized, shared Start Menu and installers for various programs.  I could now run DoubleKiller on drive D without worrying that it might knock out program files, and without having to do manual exclusions to focus it on the data duplicates that I was seeking.

Thursday, January 20, 2011

Windows 7: Choosing a Duplicate File Finder

I had long used DoubleKiller to find and delete duplicate files.  The switch to Windows 7 made this seem like a good time to review the market and see if there were better alternatives.

This question acquired urgency because I came across a need to reconcile two hard drives, and discovered that I could not.  The reason was that my customized Start Menu -- containing not only links to programs but also the entire program folders for my portable apps -- was rife with duplicate files.  These were not like duplicates among my data files.  There, I would generally want to delete duplicates.  Here, deleting duplicates would mean that programs would not run.

DoubleKiller permitted me to compare entire drives and to mark tons of duplicates for deletion, all in one move.  That sort of thing could obviously be misused.  But I had gotten reasonably good at focusing it so as to delete only what I wanted to delete.  What I wanted now -- what DoubleKiller did not offer -- was a way to exclude some subfolders within those drives and top-level folders.

This was a delicate matter.  After all, in some operations (e.g., reconciling two hard drives), I would be trusting this program to accurately identify and delete thousands of duplicate files with one click.  Judging from the number of freeware duplicate detection utilities, many of which drew approval from multiple reviewers, this was a kind of task that could be done well by a good programmer.  I just didn't want any unexpected surprises.  Fortunately, at this point I was using Beyond Compare to check my drives against backups for changes on a file-by-file basis, and I had also begun using GoodSync to analyze differences between two computers (more specifically, to stop before proceeding if more than 10% of the files differed), so I had some protections.  Nonetheless, I wanted a reliable program.

So I went looking for a replacement for DoubleKiller -- something that would render it duplicative, if you will.  Ranked by frequency of download, SnapFiles said the top five general-purpose (i.e., not image-specific) duplicate detectors were (Auslogics) Duplicate File Finder, Fast Duplicate File Finder, AllDup, Duplicate Cleaner, and LookDisk.  (DoubleKiller was sixth.)  eHow gave instructions for using Duplicate Cleaner, Auslogics Duplicate File Finder, and AntiTwin.  CNET was a muddled source for this purpose, offering general-purpose utilities (e.g., Glary) with some duplicate detection capabilities; I decided to stick with a utility dedicated to this specific task.  In two different searches of CNET, Duplicate Cleaner and Auslogics Duplicate File Finder seemed to be leaders.  A review at Gizmo named Duplicate Cleaner, Auslogics, Anti-Twin, and Fast Duplicate File Finder as the top four.  SnapFiles had not said how many downloads they had; I decided their selection was iffy.

I went to the homepages for Duplicate Cleaner, Auslogics, AntiTwin, and Fast Duplicate File Finder, looking particularly for flexibility in excluding the files within a subfolder from deletion.  From the webpage for Duplicate Cleaner, it sounded like they had this capabilty; from those for Auslogics and Fast Duplicate File Finder, I could not tell.  Anti-Twin sounded rather bare-bones -- saying, for instance, that "the software ignores file names."  For some projects, I wanted the option of comparing file names, to identify nominal duplicates that I would then manually choose among.

Conveniently, then, Duplicate Cleaner seemed to be not only the leading program named by several of the sources cited above, but also the only one among these contenders that said, right on the wrapper, that it had what I wanted.  I liked that they had a manual on their website, and that they also had the beginnings of a support forum.  I downloaded and installed it.  Its interface was more user-friendly, which meant that I immediately disliked it.  Seriously, I was turned off by the options to compare for "Same Artist," "Same Album," etc.  But I figured I would learn to ignore that sort of thing.  Its user friendliness did make it much easier to select drives or folders for comparison; and when I selected a drive and then tried to select one of that drive's folders, the program asked if I was naming the folder for exclusion.  Exactly what I wanted.  In the "More Options" area, the default comparison was MD5, but it had an option for byte-to-byte and two SHA formats.

I ran a check for duplicates, using both Duplicate Cleaner (version 2.0) and also DoubleKiller (version 1.6) on the same drives.  I had Duplicate Cleaner set to search for Same Content, any date, no file filters.  I wasn't sure how to set the file size criterion so I set it to Any Size.  It gave an option of setting a minimum file size of 1KB, but I didn't want it to skip files that were, say, 500 bytes; I had written many short text files, containing a note on this or that, that would be that size or smaller.  I went with the default MD5 content comparison type.  In DoubleKiller, I searched for files with identical sizes and CRC32 checksums, and I told it to ignore system files (because I didn't want a hundred copies of Thumbs.db or desktop.ini) as well as files whose size was equal to 0 KB.  I also told DoubleKiller to exclude .dll, .sys, vxd, and .inf files, as well as those of zero bytes and system files.  In this area, I felt that DoubleKiller's options were better, though not ideal.

I started both searches on the same machine at the same time.  During the searches, DoubleKiller remained visible, and slowly started adding visible duplicates to its list.  In a previous search, Duplicate Cleaner had seemed to stall.  Its title bar said "Not responding" and it got that sort of half-screwed-up look that graphics would get sometimes, when the computer was running out of memory or about to crash.  This time around, that didn't happen; still, it was hard to rouse it from the taskbar.  Duplicate Cleaner did not show any interesting specifics about duplicates while it was running.  Both used a screwy way of calculating the percentage of completion:  wait forever for the job to get to 1% completed, then soon it's at 5% and by the time it gets to 40% it's moving right along.  Perhaps because CRC32 checksums were easier to calculate, DoubleKiller was done first, scanning 198,645 files in 46 minutes.  Duplicate Cleaner carried on for a total of 57 minutes.  Both programs surely would have done the job much faster if they had not been competing against each other for the same computer resources.  Duplicate Cleaner found "56 Groups of duplicates" involving a total of 160 files.  DoubleKiller did not present a number, but by my count, it found 111 duplicative files.

I found the screen font displaying outputs to be much more readable in Duplicate Cleaner.  Duplicate Cleaner also allowed me to change the background colors behind alternating duplicate pairs, so as to make it easier to figure out where the alleged duplication was appearing.  Unfortunately, Duplicate Cleaner had many columns of information, but right-clicking on the column row did nothing.  In other words, it did not appear possible to suppress those columns so as to focus on the ones that mattered (e.g., MD5 hash) without scrolling right and left for every duplicative pair.

I was not satisfied with Duplicate Cleaner, and I was out of time to compare the others.  I decided, for now, to continue with DoubleKiller, and to review one of the others sometime in the future.

Wednesday, January 19, 2011

Windows 7: Multiple Desktops: A Look at Dexpot and Sysinternals

As noted previously, I wanted to try using multiple or virtual desktops in Windows 7, so as to have different workspaces for different projects.  For this purpose, I decided to try Dexpot.  This post describes my first experiences with that program.

Setup and Orientation

When I ran Dexpot, it started minimized.  That is, there was an icon on the taskbar, at the bottom of the screen, but nothing appearing onscreen.  Mousing over the icon showed entries for four desktops.  Right-clicking on the icon gave me a number of configuration options.  First was "Window catalogue."  This displayed large thumbnails (apparently defaulting to a maximum of nine per screen), one for each program I had running on Desktop 1.  Clicking on a directional arrow at the top of the screen would take me to the next or previous desktop.  Clicking on any program icon, within any desktop, would take me to that program within that desktop.  In short, Windows Catalogue was a quick way to navigate to any program that was then running.  There were no tooltips, so I had to click on the red button at the top right corner of the screen to learn that this just took me back to the desktop.

Right-clicking on the taskbar icon again, the second option was "Full-screen preview."  This was a different way of representing what was going on, on my computer.  It divided the screen into quadrants.  Top left was for Desktop 1.  There, it showed a 1/4-size depiction of the actual look of desktop 1 at that point.  Desktops 2, 3, and 4 were blank.  Presumably the screen would have been divided into sixths if I'd set up six desktops.  This would be the more useful tool if I wanted to find a certain desktop and would know it by sight, and didn't necessarily need to go directly to a single window within that desktop.

Back on the taskbar, the third right-click option was for Settings.  In its General section, I saw that I could create up to 20 desktops, designate which one would open first, etc.  There were some options related to profiles.  If the machine had other users and didn't require them to sign in under their own accounts, that would presumably be where the person would go to choose his/her own set of desktops.  Also, I guessed that a one-user system might use this feature if, say, the person had different sets of desktops that s/he used in professional and personal roles.  If this was correct, there was not actually a limit of 20 desktops; there was no limit, since each of an indefinitely large number of profiles could have 20 desktops.

The primary sources of guidance on such matters seemed to be Dexpot's Quick Start Guide, FAQs page, and support forums.  The Quick Start Guide provided a big-picture orientation to Dexpot, starting as a tutorial for beginners in virtual desktops and then proceeding to customization.  The FAQs page featured maybe two dozen specific questions and answers.  The forums of interest (aside from the FAQs) were Support, Feature Requests, Plugins, and General Discussion.  The Quick Start Guide told me that Alt-2 would take me directly to desktop 2.  One of the FAQs discussed the Settings dialog that I was now viewing, but did not confirm or deny my speculation about the possibility of having many users, each with its own 20 desktops.

Continuing in the Settings dialog, I went to the Appearance section.  Here, I could customize a few items.  A bit of confusion or overlap here:  I would have expected to configure wallpaper and other layout items here, but instead, to do that, I had to go back to the taskbar, right-click, and choose the fourth item, "Configure Desktops."  That opened a different dialog, with global options applicable to all desktops and also with individual desktop overrides for name, resolution, password, and all kinds of other settings.  It seemed to me that Dexpot should combine these two main right-click menu options.  So, to complete the thought regarding that Configure Desktops menu pick, I went to the All Desktops option and browsed.  There really was not too much I wanted to change right now.  Later, I would go to the Background tab for each desktop and give it a unique look, so that it would be easy to tell at a glance which one I wanted.  One interesting feature here:  I could specify commands that I wanted each desktop to run upon starting.  So if I opened a certain desktop each Saturday, for purposes related to one specific folder on my computer, perhaps I could specify a Windows Explorer command that would open Explorer to that folder when I started this desktop (and likewise for opening a specific document in Word, etc.).

So, OK.  This -- the Appearance tab, plus the Configure Desktops menu pick, seemed to take care of the basic look of the thing.  Back in the Settings dialog, I went to the third tab:  Components.  There were four tabs.  The first component they were going to let me configure was the Desktop Manager; the other three tabs were for Desktop Preview, DexTab, and Windows Catalogue (above).  Here, again, I browsed through the options.  I didn't yet have any particular reason to change their default settings, so I just moved on.

The fourth section in the Settings dialog was for Controls.  This seemed to be the ultimate tweaker section.  There were tabs for Hotkeys, Mouse Switch, and Title Bars.  "Controls" apparently meant "how to handle user input related to Dexpot."  So if I wanted to create a hotkey to move a window to desktop 3, this was where I would do that.  On the second tab, it looked like I could configure various mouse actions.  For instance, if I moved the mouse to the left edge of the screen and held it there, possibly that would be interpreted as an indication that I wanted to go to the previous desktop.  There seemed to be a number of configurable possibilities like that here.  That was interesting, but I didn't set it up yet.

Next, the Switching Desktops section.  Again, some confusion:  they had appearance-related items here too, such as screen resolution and screensaver customization.

Finally, the Plugins and Extras section.  They listed five plugins:  Dexcube, SevenDex, Slideshow, Taskbar Pager, and Wallpaper Clock.  SevenDex was already installed with my version of Dexpot.  It seemed that SevenDex, for Windows 7, was responsible for what this post has been describing as items listed on a right-click menu from the taskbar icon.  Finally, there was an option, here in the Plugins and Extras section, that I didn't entirely understand.  It had to do with "Behaviour of windows on other desktops."  One possibility, "When activating a window on another desktop," was, "Copy window to current desktop."  I wasn't sure how this activation concept worked; it seemed I would probably have to see it in action to grasp it fully.

Those were the Settings and Configure Desktops items that jumped out at me, on my first pass.  Continuing down the menu that popped up when I right-clicked on the Dexpot (actually, SevenDex) taskbar button, I saw four more items:  Desktop Manager, Desktop Preview, Desktop Windows, and Desktop Rules.  Choosing Desktop Manager would give me a little always-on-top toolbar that I could use to switch among desktops.  I didn't want that onscreen, so I didn't use it.  Why should I?  Just left-clicking on the taskbar button would give me the same thing.  But possibly some of the right-click options available from that little toolbar (e.g., "Move other windows to this Desktop") would be useful.  Desktop Preview opened another little always-on-top toolbar, this one showing inaccurate thumbnails representing the four desktops.  Desktop Windows gave me a dialog (not always-on-top) that would list the windows I had open in any selected desktop, with right-click options to move, copy, close, create rules, etc.  I did not yet have much concept of the purpose that rules would serve in Dexpot.  I figured the purpose would seem more obvious once I had a bit of experience with the program.

Using Dexpot

With that brief tour of settings, I decided to start using Dexpot.  I went to the taskbar icon and chose desktop 1.  That was my preexisting desktop, running Windows Explorer, Adobe Acrobat, Firefox, and a couple of other programs.  Nothing new there.  Now desktop 2.  No programs running there.  Same Start Menu and everything else; it was just a new workspace.

So, alright, there in desktop 2, I started another session of Acrobat.  It allowed me to do this.  The one in desktop 1 was still running.  So that was different from having just one desktop.  With just one desktop, I could run only one session of Acrobat at a time.  I went into desktop 1 and opened a file called D:\Current\x.pdf in Acrobat.  I went into desktop 2.  Here, x.pdf was already opened.  So I wasn't actually running different sessions of Acrobat.  I was running one session, but I could see it on different desktops.  I tested this by closing x.pdf and opening some other PDF file in desktop 2.  Now that was the one displayed on desktop 1 as well.  Closing Acrobat in desktop 2 closed it in desktop 1 also.

So, OK, this was definitely not the same as using a virtual machine, where each desktop would function as its own little world, oblivious to whatever might be happening anywhere else.  Programs like Acrobat, that would run only one session at a time, would be like the hedgehog that knows one great thing.  But how about programs that would allow me to run multiple sessions at once?  In desktop 1, I navigated in Windows Explorer to D:\Miscellany.  This did not affect Windows Explorer in desktop 2.  There, it was still looking at D:\Current.  So for purposes of Windows Explorer, the two desktops were more or less like separate virtual machines.  I tried the same thing in Word.  I opened y.doc in desktop 1.  That did not open it in desktop 2.  I opened the same file, y.doc, in desktop 2.  I made a change to it.  This change was also visible in desktop 1.  So Word was functioning like Acrobat in that sense.  If I opened a file in Word in one desktop, the changes would be immediately visible if I opened that file in Word in other desktops.  I closed y.doc in desktop 2.  Here, again, that closed y.doc in desktop 1 as well.

This seemed to explain why the screenshots that I had been seeing, showing various multiple desktop programs, were often empty except for the customized desktops themselves.  As long as I had different programs running in the different desktops (e.g., two different PDF readers or editors), there would be no problem.  Basically, the desktops were a way to reduce clutter.  Programs would appear only in the desktops where they were being used.  I was pretty much used to having them all visible on the taskbar, though.  It didn't seem helpful to go hunting through other desktops to find them.  It probably would have been different if I had a large number of different programs running at once.

No doubt there were other uses.  One example was if the user needed to use different screen resolutions for different programs or projects.  With the use of hotkeys, I figured I could also use one desktop to retain a full-screen view of a video, for instance, or other layout customizations, while having a more traditional layout in another.  If I wasn't using the same video player, I could even have multiple videos running or paused in different desktops.  Maybe I could also use portable programs (copied to, and running from, distinct folders if necessary) to run multiple instances of the same program.  There were portable versions for programs that would do much of what I needed to do (e.g., OpenOffice instead of Microsoft Office).  So there were possibilities.  The overall purpose was evidently to manage appearances, not programs.  As long as Dexpot wasn't interfering with anything else, it seemed like something worth keeping around.

Virtual Desktops in Another Multiple Desktop Program:  Sysinternals

Dexpot seemd to be a multiple desktop administrator.  It did not actually give me distinct virtual desktops, each of which could have its own session of Word or Acrobat running in ways that were completely unrelated to what might be happening in other virtual desktops.  I wondered if other multiple desktop programs functioned the same way.  Wikipedia said that the XWindow system used in Linux did allow the same program to be doing different things on different desktops.  It also said, however, that on Windows systems, program conflicts were common in multiple desktop setups.  This seemed unavoidable.  If Acrobat was not built, at this point, to accommodate multiple sessions, and if Windows at this point was not designed to facilitate virtual desktopping, then it seemed that a search for complete workspace independence would require a virtual machine, not just a virtual desktop.

I recalled the impression, from a CNET review, that Sysinternals Desktops might provide more independence.  I killed Dexpot and then downloaded and installed Sysinternals.  They weren't kidding when they said it was lightweight:  it was a 60KB portable.  Options were almost nonexistent.  Within a minute after installing it, I had figured out that Alt-2 would take me to desktop 2.  And that was about it.  I opened a Word document in desktop 1, and another Word document in desktop 2.  The two did not seem to know that the other existed.  This was good.  Excel likewise was able to handle two distinct spreadsheets in two virtual desktops.  I tried to do the same with Acrobat, but that didn't work.  I had to kill Acrobat in desktop 1 before it would run in desktopt 2.  Apparently Acrobat was not going to be compatible with virtual desktops, no matter how independent; it would take a virtual machine to run multiple sessions of that.  But I could imagine using other PDF programs -- again, perhaps as mutiply copied portables -- to handle most Acrobat functions in those other desktops.

In Sysinternals, desktop 2 did not have all of the icons in the system tray that I had running on desktop 1, and it did not have my customized Start Menu.  Back in desktop 1, some of the system tray icons seemed not to be functioning properly.  For instance, Windows-C was no longer opening Copernic Desktop Search.  I decided to uninstall Dexpot, run Glary's registry checker on reboot, and try again.  Sysinternals was running, as I had set it to do on bootup, and Windows-C was bringing up Copernic.  I hit Alt-2 and went into desktop 2.  Here, Windows-C did not work to bring up Copernic.  I went back to desktop 1.  There, Windows-C still worked to bring up Copernic.  So, preliminarily, either Dexpot itself or some conflict between Dexpot and Sysinternals had affected the tray icons.  Back in desktop 2, Control Panel showed that Copernic was installed.  But when I went to Start and typed Copernic, it wouldn't run that way either.  So if I wanted to search for files using Copernic, apparently I would have to go to desktop 1.  The tray icon was also missing, in desktop 2, for Instant File Find (IFF); accordingly, Shift-Esc failed to bring up IFF.  Back in desktop 1, IFF was now also failing to come up from the tray icon.  It did come up from the Start Menu, but had some kind of apparently fixable problem with its index.  The general idea seemed to be that, in Sysinternals desktop 2, I could only run a program from the tray (using its hotkey) if the program's icon appeared in the tray; otherwise, I would have to start it from the Start Menu, or perhaps from a toolbar or as pinned to the taskbar.


Virtual desktop software seemed much lighter and faster than virtual machine software.  Some virtual desktop programs (e.g., Sysinternals) were able to provide desktops that were largely independent from one another.  Where a program (e.g., Acrobat) was uncooperative (i.e., where it insisted on being run in just one desktop), it could conceivably be supplemented by some more cooperative freeware alternative and/or by use of multiple distinct portable versions of the folder containing its program files.  The best of the available multiple desktop managers (e.g., Dexpot) seemed to provide interesting, configurable interfaces.  Sources and my own brief experience raised the prospect of program conflicts.  There did not appear to be a capability to save images of virtual desktops, as one would save virtual machines, so as to preserve everything in the desired or previous layout.  For that last reason especially, while I did decide to install Dexpot and use it on an introductory basis, I also felt that my next serious effort in this area would be to consider a return to virtual machines, although this time in Windows rather than Ubuntu.

Windows Tweaks: One Screenshot Per Second & A Volume-Muting Hotkey

The Mute Hotkey

To set up a hotkey that would quickly mute or unmute the computer sound, I followed advice to download NirCmd.  I unzipped it to an out-of-the way folder. I right-clicked on nircmd.exe and created a shortcut called Toggle Mute.  I right-clicked it > Properties.  On the extreme right end of the Target line, after the closing quotation mark, I left a space and then typed "mutesysvolume 2" (without quotation marks).  Then I clicked on the Shortcut Key space and hit Ctrl-0 (that is, the zero on the numeric keypad), which happened to be two apparently unused, relatively adjacent keys (therefore easy to find and do with one hand).  I clicked on Change Icon and put this in the box:  "%SystemRoot%\System32\SndVol.exe" -- and then clicked OK (not Browse).  I just left the shortcut there in the NirCmd folder, since all I needed from it was the keyboard shortcut.

Lots and Lots of Screenshots

Inspired by that experiment with NirCmd, I created a batch file to give me an alternative to video screen capture software.  As long as audio wasn't required, I figured that a series of screenshots would give me better resolution and a smaller cumulative file size than a video would do.  That would suffice for a slideshow.  If I wanted to make a video of it, I could just stretch out the screenshots for as long as I needed to talk about them and draw arrows and such on them.  The batch file was as follows:

:: Shotshooter.bat

:: No guarantees. May screw up your system. Proceed at your own risk.

:: Captures a series of screenshots.
:: See for info on NirCmd.exe.

:: Takes 3600 screenshots, one per second (1000 milliseconds) = one hour.
:: To kill the program sooner, use Task Manager (Ctrl-Alt-Del) > Processses > nircmd.exe > End Process

:: Screenshots are named by date and time.:: IrfanView provides a fast way to play back results.

md \Screenshots
cd "D:\Installation\Start Menu\Programs\Tools\DOS and Batch Files\Multifunction\NirCmd"

nircmd.exe loop 3600 1000 savescreenshot D:\Screenshots\scr~$currdate.yyyy-MM-dd$-~$currtime.HH_mm_ss$.png

Tuesday, January 18, 2011

Windows 7: Easy Transfer & the Upgrade from Windows XP

I had a big Windows XP Professional SP3 installation that had become dysfunctional to the point of crashing daily.  It was time for an upgrade.  In doing the upgrade, I hoped to preserve my settings from that installation, so as to reduce the amount of time I would have to spend installing and adjusting programs in Windows 7.  There seemed to be two ways to achieve that.  This post starts with one, and then transitions to the other.

When the Win7 CD booted, it gave me the option to "Install now."  Before doing that, I clicked on "What to know before installing Windows."  It told me that I might have the option of doing an upgrade installation that would keep my existing files, settings, and programs.  With previous versions of Windows, users were strongly encouraged to do a "clean install" rather than an "in-place install" to avoid creating new problems.  People seemed to be recommending that same approach for Win7 as well.  I figured that I would try the upgrade nonetheless, if only to see how it worked.  Microsoft estimated that, depending on how many application programs and how much data was involved, an installation of Windows 7 could take anywhere between 30 minutes and 20 hours.

When I clicked "Install now" and then Upgrade, it told me to remove the installation disc, restart so that Windows XP would start normally, and then reinsert the installation disc and restart again.  Apparently it had added some kind of data collection file to the hard drive, and now it needed to see what I had installed.  I booted into XP and then rebooted, but forgot to reinsert the disc after shutting down XP, so I had to do this again.  The first time around, I noticed that the taskbar had changed from my preferred classic format to the default XP format.  The second time, it wasn't like that -- it just showed my usual classic desktop -- and when the double-rebooting process was done and I was back to a boot from the installation disc, it wasn't going any further:  it just cycled me back to a reboot in WinXP.  I didn't know if I had and lost an upgrade option there.  Other sources didn't think so:  the general story seemed to be that this upgrade path was only available to Vista users, and maybe that was why I was just looping.

Failing that, I looked into the Easy Transfer option.  After booting into XP again, I loaded the Win7 installation DVD, copied its \support\migwiz folder to my hard drive, renamed it "Windows 7 Migration Wizard," and ran migwiz.exe inside that folder as a standalone, without the DVD.  This gave me the tool for future purposes, without having to hunt for the DVD, and it also ran a bit faster than when I had started to run it from the DVD drive.  MigWiz gave me the option of using an Easy Transfer cable, a network, or an external drive to transfer items to the new computer (which, in this case, would be the same computer, after installing Win7).  I wondered whether everything would fit onto a 4GB USB drive, so I tried that option.  It took five or ten minutes to calculate what it would be including in the transfer, and then produced an estimate of more than 100GB.  So apparently it was including my data in the transfer.  I clicked on its Customize option, and it rolled out a half-dozen items.  Almost all of that huge bulk was in its "Other Items" section.  I clicked Advanced and de-selected all that extra data.  Now it was down to a 3GB transfer.  It wanted to save that stuff on a USB or other external drive, but I wondered why I couldn't just save it to a different internal drive, somewhere other than drive C.  So I tried that.  Transfer of data from the Administrator account proceeded slowly.  The wizard estimated that the transfer would take about 17 hours.  I decided to take a nap.  But before I could get around to that, the transfer was done.  Time flies.  The wizard told me to open the .mig transfer file after finishing my Windows upgrade.

With that done, I rebooted the Windows 7 DVD and, this time, chose the Custom rather than the Upgrade installation option.  (Win7 had given me a different screen when installing on a machine where it did not detect a previous Windows installation on the hard drive.)  I designated the same location as my existing WinXP installation.  The installer told me that my previous files would be moved to a folder called Windows.old.  It also said that Windows might create additional partitions for system files.  Ultimately, I did not use this installation.  Instead, I developed the Win7 installation on a different computer, as described in a separate post.

A couple of weeks passed, as I dealt with other things, including the installation and reinstallation of Win7 as described in that other post.  I had decided I should go ahead with the basic installation of programs, though not with their configuration, since surely the 3GB .mig file did not contain all of my programs and settings.  Possibly I was wrong about that.  We would soon see.

At this point, I was looking at two files or folders.  One was the Windows Easy Transfer.mig file, which hopefully contained all of the stuff I would be restoring to my new Win7 installation.  The other was the Windows 7 Migration Wizard (above), now contained in its own folder.  How to proceed next?

I tried double-clicking on the Windows Easy Transfer.mig file.  That seemed to be the answer.  It opened up a dialog that offered to transfer two types of items.  One, "Administrator," was 85MB.  The other, "Shared Items," was 2.8GB.  I started with Administrator.  I clicked its Customize button.  It was going to give me Desktop, Favorites, Quick Launch, Program Settings, and Other Items.  I clicked its Advanced option.  Sad to say, at this point I didn't want what I saw there.  It seemed to have stuff related only to Microsoft programs, which I had reinstalled without much difficulty.  I was using Office 2003, which still had the Save My Settings Wizard, so it had been pretty easy to restore the settings for those programs.  But how about all the other bazillion utilities and assorted programs I used?  That's where the serious time investment would be.  From what I saw here, that stuff wasn't included in the Administrator option.  So, OK, I went to the other one, Shared Items > Customize > Advanced.  This seemed to contain the same items as the Administrator option.  Apparently the Admin option contained some information, but this Shared Items part contained the bulk of the program data.  But whatever.  I didn't need it.  End of story!