Wednesday, August 29, 2007

Doing a Mass Search in Google

I was looking for a surgeon who would specialize in fixing collarbones. The lists of doctors were giving me orthopedists, but were not this specific. So I decided to try Google searches for each doctor's name provided by my insurance company's list of doctors. There were a lot of names on the list. I wanted a way to automate the search. Here is the approach I used. First, I narrowed the long list of orthopedists to those who were within a small geographic radius (so as to minimize the hassle, for the person who would drive me home from the hospital after surgery) and who had an affiliation with a highly recommended local hospital. I copied the contents of that list into Notepad, to remove its HTML content, and then from Notepad into Excel, so as to sort out only those lines that contained doctors' names. I then eliminated those who did not have an Aexcel designation, as indicated by the health insurance company's list. I figured out the Google search format that I wanted for these names. Here is an example: orthopedi*+OR+orthopaedi*+indianapolis+clavicle+ marcus+welby+&btnG=Search
That all came from a single line in the address box in my Google search results page. The variable, for each doctor, was the first and last name ("marcus" and "welby," in this example). So in Excel, I used the & symbol to combine these two fixed portions of the search: orthopedi*+OR+orthopaedi*+indianapolis+clavicle+
with this variable portion in the middle, as shown above:
which would vary, of course, with each doctor. The point is, I was searching for webpages that would contain references to "clavicle" and to that particular doctor. As I say, I pasted together the three parts of each search line in Excel, using the & operator. That is, with the list of doctors' names and the knowledge of what a search for each of them should contain, I came up with a list of searches, like this: orthopedi*+OR+orthopaedi*+indianapolis+clavicle +Fish+Mark D.+&btnG=Search orthopedi*+OR+orthopaedi*+indianapolis+clavicle +Fisher+David+&btnG=Search orthopedi*+OR+orthopaedi*+indianapolis+clavicle +Fisher+David+&btnG=Search
where, again, each of those sets (shown here in three lines, to keep Blogger from truncating them) comprised a single output line in Excel. I needed just one more thing, namely, to tell the computer to open each of those lines as separate Google search tabs in Firefox. To do that, I had to prepend the appropriate command, which was simply "start firefox.exe." So, using the first example of the three just shown, I wound up with this line:
start firefox.exe &hl=en&q=orthopedi*+OR+orthopaedi*+indianapolis +clavicle+Fish+Mark D.+&btnG=Search
I pasted the results into Notepad and saved it as DocSearch.bat. The "bat" extension told the computer to run this like a program. Then, realizing that opening a hundred Firefox tabs might cause the system to crash, I pared it down by dividing the file in half and running about 50 searches at a time, calling the batch files DocSearch1.bat and DocSearch2.bat. This failed because I had forgotten to put quotation marks around the search. Once I corrected it, like this:
start firefox.exe " &hl=en&q=orthopedi*+OR+orthopaedi*+indianapolis +clavicle+Fish+Mark D.+&btnG=Search"
everything else was fine. (Note: Word's smart quotes may not work for this purpose.) Then it was just a matter of viewing the search pages and deleting the ones that found no link between the named doctor and the clavicle. For some reason, my insurer's list repeated the same doctors' names multiple times, so I wound up with some duplicate searches. But when the dust settled, I also wound up with a small number of specialists who looked like they might be on target for what I needed.

Monday, August 27, 2007

Internet Telephony with Skype, VoSKY IPW, and a Cordless Phone

I was moving to a new place. I wanted to see if I could use Voice over Internet Protocol (VoIP) as my only phone, instead of paying to install and run a land line or buying mobile phone service. I didn't use the phone that much these days -- I was supposedly busy studying in grad school -- so all I needed was basic functionality. The place I was moving to, like the place I was moving from, had broadband Internet access, so it seemed like the basic potential was there. A month or so before the move, I began to take steps to put a VoIP setup in place. I cannot document all of those steps because some predate this writing. I will try, however, to describe the ones I remember. After doing that, we will be caught up, and I will continue describing the VoIP transition process in more detail. My first steps involved hardware. My first installation would be on my laptop, which was ready and waiting for software and hardware installation. I would also install software and hardware later on the desktop machine, and that would ultimately be the machine through which I would do most of my phone calling. I had headphones with a microphone, though at the beginning they were in storage and I would not be using them until later. I also had a cordless phone, which was the device I wanted to use for most of my phone calling. That way, I could roam around the apartment and do other things while continuing in the occasional long phone conversation. It was apparently possible to connect your traditional phone, cordless or otherwise, to the computer, so as to use VoIP. All you needed was a VoIP phone adapter device. After shopping around, I decided to get the Actiontec VoSKY Internet Phone Wizard. This device was affordable and had relatively good reviews. It arrived, and I installed it on my laptop as instructed. Unfortunately -- and this is the point at which we are up-to-date in this account, so I can begin blow-by-blow descriptions of my efforts -- it was not an easy matter to get it up and running on the laptop. But before describing what was happening at that point, I will mention that the VoSKY is designed specifically for use with Skype, a popular provider of VoIP services. VoIP itself is free, and there are a number of freeware programs that you can use to get you going. I chose Skype because it offered the things I needed in my particular situation. Getting those things was a bit confusing, though. As it turned out, I needed to spend almost $100 per year for my "free" Internet telephony. That's because I had to buy SkypeIn, so that I would have a telephone number that people could call, and SkypeOut, so that I could make unlimited and otherwise free phone calls anywhere in the U.S. and Canada (with low rates for calls to the rest of the world), and Skype Pro, which basically reduced the cost of SkypeIn and gave me voice mail and some other features. It took a fair amount of time to figure this all out and make it happen. Skype did not provide a single webpage that explained all of its services, and did not allow me to buy all of my needed services at once. Instead, in what felt like a confusing, nickel-and-diming approach, I had to purchase each service separately, going through the credit card process three times. It was a little irritating. With that in place, though, and with the VoSKY installed, I was ready to begin VoIP. Problem: I got an error message that said, "VoSKY Internet Phone Wizard application was unable to communicate with the VoSKY Internet Phone Wizard device." They told me to reboot and try again, which I did. Then, after some additional screwing around, I came across a VoSKY forum FAQ posting that said, "Can I unplug and replug Internet Phone Wizard into different USB ports on my computer? No. You must replug Internet Phone Wizard into the same USB port you used during installation. Or, you can reinstall Internet Phone Wizard on the new port." I couldn't remember which of the laptop's three USB ports I had used for the initial installation, and of course I wanted the option of using any of them, so I tried reinstalling. But when I inserted and ran the installation CD setup for that purpose, I got, "Are you sure you want to uninstall VoSKY Internet Phone Wizard?" So apparently what they meant was that I could use the VoSKY on any USB port, but only one -- and if I wanted to change the port, I had to uninstall and reinstall. Instead of doing that, I unplugged the VoSKY's USB cable from the first laptop port and tried it in the second one. Once again, I tried "Launch VoSKY Internet Phone Wizard" from the Start > Programs menu. Again, the "unable to communicate" message. I tried again on the third and last USB port. This time, the computer popped up a "Found New Hardware" notice. I didn't know if this meant that I had had the VoSKY plugged into both the first and second USB ports previously, or if the system was just now waking up to the existence of the VoSKY, or what. But after the laptop did its little USB-recognition process, it asked me if I wanted to reboot so that the thing would work. So I did. On reboot, the Start menu icon couldn't find VoSKYApp.exe. I searched and found it in, of all places, a TMP folder. Of course, TMP folders are the first to be cleaned out by various kinds of Windows system cleaning programs. It spooked me, so I quit and thought about it. I realized, who knows, maybe this was part of a larger plan. But when I tried again, Windows offered to delete the shortcut, and I thought that was probably the wiser approach, so I said yes. So now I had to uninstall and reinstall VoSKY again. This time, I could tell the installation was different. It seemed like I went all the way to the end of the process. (Still no VoSKY icon in the system tray, though.) The program offered to check for updates, and it downloaded one. It was prepared to download another, an update for "VoSKY IPW," but it said I had to uninstall the previous one. So I went ahead with the download, then the uninstallation of the old, then the installation of the new. Unfortunately, it still didn't work. At this point, some time passed. I had to deal with some other, more pressing problems with my system. I switched from the laptop, where I was not getting VoSKY to work, and tried installing it on the desktop instead. There, I thought I had installed the latest version of the VoSKY IPW software, but during installation I got a message indicating that there was a more recent version, and that I would have to uninstall the old before installing the new. So, OK, I downloaded the new. But when I tried to uninstall the old (using either Add or Remover Programs or the supplied uninstall link), I got an error message as follows:

VoSKY Internet Phone Wizard >SetupDLL\SetupDLL.cpp (462) PAPP:VoSKY Internet Phone Wizard PVENDOR:Actiontec ( PGUID:57FEC470-439D-48F8-A024-0B4DF3D8B545 $ @Windows XP Service Pack 2 (2600) BT_OTHER 0.64
When I clicked OK on that, I got another message:
InstallShield Wizard Setup has experienced an error. Please do the following: - Close any running programs - Empty your temporary folder - Check your Internet connection (Internet-based Setups) Then try to run the Setup again. Error code: -5001
I got the same error message even if I tried to install in Safe Mode, so I didn't think active programs were interfering with installation. I was installing from a downloaded file, not through an Internet connection, so that didn't appear to be the problem either. And I had emptied my TEMP files. So I took a look at the VoSKY IPW forum. Already, frankly, I was sorry I had bought the product, and sorry, too, that by now 30 days had passed, so I could no longer return it to Newegg for a refund. I wanted this product to help me become more efficient, not to spend valuable hours on what might be a futile effort to make it work. I was willing to settle for the older version that I had already installed on the desktop computer, but I was not sure if that was an option. Each time I tried to start it, I got a message indicating that a newer version was available, along with a message as follows:
VoSKY Internet Phone Wizard VoSKY Internet Phone Wizard application was unable to communicate with the VoSKY Internet Phone Wizard device.
Then I remembered that I had unplugged the USB cord when trying to uninstall. So I plugged that back in and tried again. And, well, oops, but that took care of the error message. I still got the invitation to download the latest version, but I ignored that. We were talking, after all, about the difference between versions (installed) and (available). Uninstallation and reinstallation seemed unnecessary. So now I had a dialog whose tabs were About (telling me the version) and Option (offering "Smart" dialing). I clicked OK in the About tab. Nothing happened. Did this mean I was connected? I picked up my cordless phone. A dial tone! Also, the "Internet Call" light (and not the "Regular Call" light on front of the IPW was lit. Using the phone, I dialed the number for the landline in the place where I was living, starting with the area code, but the landline didn't ring. (I had another phone connected to the land line, but not the cordless phone from which I was trying to make this call.) I tried again, starting with 1 before the area code (because the SkypeIn phone number I had selected was in another area code), but that gave me a busy signal too. Same thing when I tried dialing 800-555-1212 or 1-800-555-1212. What seemed to be the main Skype program window had opened up. I clicked Help > Getting Started. This gave me a Getting Started wizard, or whatever you would call it. I started through its steps. It told me to go to Contacts > Skype Test Call. But I didn't have a Skype Test Call contact in my Contacts tab. I tried dialing 800-555-1212 in the provided space in the "Call Phones" tab. That gave me an error message, "Skype Cannot Hear You Talking." I tried searching for "Test Call" in the SkypeFind tab. That gave me an error message, "The service you are requesting is temporarily unavailable. Please try again in a few moments." In the Skype program window, I clicked on Help > Contact Customer Support. This gave me a Contact Customer Support webpage. There, I went to the Knowledgebase and searched for "Test Call." This gave me 40 or 50 items, but none appeared to be specifically on the topic of test calls. Apparently the Knowledgebase was pulling up all items containing either of those two words. So I searched for just Test. No luck there, either. I went to the Troubleshooter webpage. This started with four options, none of which applied to me. Going to the next item on the list of help options, there on the Getting Help webpage, I came to the User Guides. I chose the Make a Skype Call guide. It seemed to indicate that anyone I wanted to call had to appear on the Contacts tab in the Skype program window. I didn't have any Contacts at present. So I tried to add my landline. This opened the Add a Contact dialog, where I was invited to add people who use Skype. My landline did not use Skype. So evidently I still had the wrong concept. But then I noticed this window had the option to "Add an ordinary phone numbers as a SkypeOut contact." I tried that. Now I had my land line as a Contact. I clicked on the green button to dial it. It said it was Connecting. It rang. But I didn't hear anything in the cordless phone. We were getting closer, though. I could feel it. I went back to the Troubleshooter and chose the third of its four options, "My mic is not working, no one can hear me." The Troubleshooter pointed me, first, toward the Sound Setup Guide. Using that, I clicked to call the Testing Robot, identified as echo123 (though I wasn't sure what that meant). When I did that, I got a dialog box reading as follows:
External Protocol Request An external application must be launched to handle callto: links. Requested link: callto://echo123 Application: Skype. Take a deep breath If you were not expecting this request it may be an attempt to exploit a weakness in that other program. Cancel this request unless you are sure it is not malicious.
I was sure I was not malicious, so I said "Launch application." It seemed to dial. I noticed that, when it started to dial, it would give a short ring on the cordless phone, prompting me to pick it up and prepare to speak. This seemed like a nice feature. But I didn't get any further than that. The calling window said, "Skype cannot hear you talking. Click here to select correct Microphone and speaker." This made me realize that it was looking for a microphone plugged directly into the computer, which I did not have. So now the question was, how do I make it work with a cordless phone? This seemed to be the purpose of the VoSKY, which was doing its job insofar as there was obviously some kind of working link between the cordless phone and the computer; but something was still lacking. It seemed that I needed info from VoSKY, not from Skype. I started back at VoSKY's FAQs page. One FAQ that caught my eye was the one about how I had to plug the IPW into the same USB port each time. On the desktop machine, I had plugged it into a hub, not directly into the computer. I wondered how this rule would work on a hub. So I unplugged it from one port (which I would not have used, if I had remembered this rule, because this was the most conveniently accessible port and was therefore the one I kept open for flash drives) and plugged into another port on the hub. This, it seemed, might not work: the system immediately started going through its "Found New Hardware" routine, and concluded by informing me that my new hardware might not work until I rebooted. But then it did seem that I had achieved the same level of dysfunctionality as before, despite the new port: the cordless phone did ring when the call to the Test Robot started, and the call ended on the screen when I hung up the cordless phone. So it did seem that I might have latitude to unplug and replug in different ports on the hub, at least. So the Ready light on the IPW was lit. According to the FAQs, this meant I had a successful connection. I went on down through the FAQs until I came to this one:
When I make a phone call I cannot hear the other party. Make sure the Internet Phone Wizard's sound card is set to an appropriate volume level. Go to Start -> Settings (2k or XP Classic Mode) -> Control Panel -> Sounds and Multimedia (2k) or Sounds and Audio Devices (XP) -> Audio -> Sound Playback* ->Volume. *When adjusting the volume, make sure the Preferred Device in the Sound Playback tab is either USB Audio Device or Actiontec Internet Phone Wizard. When you have finished adjusting the volume for this device, change your Preferred Device back to the default Windows sound device.
That asterisk looked like it might be the issue. My default sound device was Realtek HD Audio output. I didn't have USB Audio Device as an option, so I switched to VoSKY IPW and clicked Apply. It still wasn't working, so I turned up the volume control all the way and tried again. This time, I made a connection with the Test Robot. I realized that I might have done so before, but I was listening in the wrong place. Instead of hearing her on the cordless phone, the sound really came blasting out of my headphones, which were connected to the computer. So the VoSKY wasn't directing the audio through the cordless phone instead of the headphones and nonexistent computer microphone. I saw that there were some complaints on the VoSKY forums -- which I thought was pretty cool. It seemed to me that a company that was open and honest about criticism must be trying to make things better. I was also impressed by some of the postings from Charles, who appeared to be an Actiontec VoSKY programmer who was trying hard to update drivers and so forth. Now the trick was just for me to figure out whether Charles or someone had already solved my problem, or how I should proceed. Well, if all else fails, RTFM. It seemed I had exhausted the available online sources and would therefore have to resort to paper, or what would have been paper if the manual didn't exist in PDF format. To call a regular telephone using SkypeOut, the manual said that you could call a domestic SkypeOut number by dialing 0 + Area Code + number. I hadn't tried that. But this didn't explain why I had succeeded by dialing 1 + Area Code + number -- had succeeded, that is, to the point of making the landline ring when I dialed it. Anyway, when I tried editing the SkypeOut Contact for my landline, by right-clicking on it, so that it began with a zero rather than a one, the "OK" button went grey and did not become functional again until I replaced the zero with a one. It also remained functional when I removed both the zero and the one and just used the area code plus number. But when I saved it that way, the program told me that my landline was now in Japan. So I changed it back to 1 + Area Code + number. That was all TFM had to say on the subject. So, there was no joy in paper. I saw that the Skype Getting Started wizard was still up, so I went a bit further in it. It didn't offer any troubleshooting suggestions, so after advancing another step or two in it, I went back to the VoSKY tech support pages for more ideas. I was going to post a question in the forum, but it told me my account was inactive and that I had to talk to the administrator. So I included that new issue with my main question about making the thing work, in an e-mail to, as indicated on their contacts page. I tried to call them, but they were requesting that I enter a code, and I had no idea what that was about. So that was a third question to include in my e-mail. I wasn't actually sure whether to send it to the address just shown or, instead, via their Technical Support Request Form, but I decided to err on the formal side and used the latter. Here's what I wrote:
I have three problems: 1. When I tried to call you at the phone number indicated on your webpage, I received a recording instructing me to enter a code. Please tell me what code I should enter. 2. When I tried to post my question in your forum, I got a message indicating that my account was inactive and that I should contact the administrator. It is a brand-new account. Kindly tell me how to rectify that problem. 3. The substantive issue: Setup: I have a regular phone connected only to the IPW (i.e., not to a landline). The computer has headphones but no speakers or microphone. The Ready light is on, on the IPW. I dial a Contact in the Skype window. The Contact that I am dialing is a separate phone, connected to the landline in my apartment. The IPW-connected phone rings, indicating (I think) that a call has commenced. The landline rings. I pick up the landline phone. I have audio working only from the receiving phone (i.e., the landline) to the computer headphones (that is, not to the actual IPW phone). In other words, if I speak into the landline phone, I can hear my voice on the computer headphones, but not on the IPW phone. I am basically getting Skype service, but nothing from the IPW. Thanks for your help.
The VoSKY people got right back to me. They weren't going to waste words. They got right to the point:
The IPW allows you to use an analog phone opposed to the computer speakers and microphone. It will not support both at the same time.
This called for a response:
This is my second attempt to obtain answers to the following questions. You did reply once, but your reply did not answer any of these three questions: [Three questions, and VoSKY's reply, repeated from above.] I appreciate that reply, but I do not know how to make the phone work instead of the computer speakers or headphones. And I would still appreciate an answer to the two other questions.
* * * * * Some weeks passed after that posting. Unfortunately, I did not keep notes during that time, and therefore cannot explain exactly how I managed to get the VoSKY working. But I did. I was now on to a new problem. I found that Skype's quality was pretty poor. I could not conduct a single conversation without dropped connections and breakups in phone conversations. The system also seemed to display too much sensitivity to noise on my end. If I made even a small noise, the system would assume I was talking, and would mute anything that the other person might have been saying. Skype was not entirely useless. I could carry on some conversations with it. I also thought I might learn some new tricks, if I had time to research it more carefully, and might thus overcome these problems. I also thought it might make sense to acquire a TracPhone or some other pay-as-you-go cellphone, to use in emergencies and so forth, while continuing to rely on Skype to the extent possible. This plan threatened to increase the overall cost of the Skype solution. My investment thus far included about $100 for Skype (including a SkypeIn phone number) and $45 for the VoSKY, and I did not yet have reliable, acceptable telephone service. A regular land line or cell phone would have cost me at least $35-50 per month. So we weren't at that stage yet. But we were getting closer, pricewise, and of course a land line would have offered the advantages of call quality and emergency dialup Internet access, and a cell phone would be mobile. So I was becoming less happy with the Skype option. Then Skype stopped working. It wasn't my phone. I had two separate phones on the line from the VoSKY, and whereas both of them had been working two days earlier, now neither of them was. The VoSKY was still showing one green light, "Ready," but its "Regular Call" and "Internet Call" lights remained dark. After about two days of being without phone service, I discovered that the problem was that my telephone cord was not staying firmly plugged into the VoSKY. Feeling a little foolish, I plugged it in, and now it worked. But it did not work better than before. There were still too many blackout periods, lasting from roughly two seconds to five or more, as well as outright lost connections. For example, I got disconnected four times while attempting to make a simple call to set up a doctor's appointment. It was not a useful option for me. I probably would have given up immediately -- would, indeed, never have fooled with Skype in the first place -- if the alternatives had been more appealing. But in addition to the cost factor just mentioned, there was also a quality issue. With cell phones in particular, I was reading that about half of all cell phone users were dissatisfied with their cell phones and/or their cellular service. Even though it seemed like everyone had a cell phone except me, I was not excited about bringing yet another source of hassle and frustration into my life. An acquaintance suggested trying Gizmo. The problem, there, was that I had invested in the VoSKY, which was designed to work specifically with Skype. I had done that because I wanted to be able to wander around the apartment and do mindless tasks while talking on the phone. The VoSKY theoretically made this possible with my old cordless phone. Without the VoSKY, I was tied to the computer. I did notice that Skype functioned better after hours. I noticed this, however, in connection with calls from a friend who also had MSN Messenger. Since MSN was free and offered good quality (and, to my knowledge, didn't work with the VoSKY), there seemed to be no reason to continue with my Skype setup. As I thought about this, however, I realized that both Skype and MSN were cutting out at times. I wondered whether the blame might be, not with Skype or the VoSKY, but rather with the wireless connection that my roommate had set up, or with the cable TV connection that linked us to the Internet. I wondered, that is, whether I would get better results, with Skype and the same hardware, if I were connecting through some other network. There was also the possibility that the problem was with my computer. My new system used an Intel Core 2 Duo E4300 processor. It was faster than the Pentium 4 I had been using previously. I also noticed, however, that sometimes it would hesitate when I was multitasking. Unlike the Pentium, it did not have hyperthreading. As described above, the laptop had not worked happily with the VoSKY; but I thought that perhaps I could test Skype using the headphones connected directly to the computer, as I had just been using them with MSN on the desktop machine. Alternately, I had recently decided to invest in a KVM switch and a backup computer. [add link] The parts for that machine would be arriving any day now. Even if I couldn't make it work with the laptop, which was very slow, I might have some luck with the secondary desktop machine. It was about midnight at this point, so I felt confident that I could call the local post office on a test call from the laptop, using the headphones (as distinct from the cordless phone and the VoSKY). I just wondered whether that call would drop out or act up in any particular way. But their number was evidently connected to a fax line. I called the 800 number for the Post Office, and there seemed to be no dropping out as I led the automated voice lady through a labyrinth of nonsensical answers to her perfectly reasonable questions. I did the same thing with Julie, the automated agent at the Amtrak 800 number. Their voices were compressed, and since I knew Julie's voice I could tell that the treble had been trimmed out, making it flatter; but there was definitely a solid connection. In subsequent weeks, using the VoSKY with the laptop, I experienced no problems of the kind that I had experienced with the desktop. Calls were of decent quality. They were not as good as with a land line, but the functionality of the cordless phone was otherwise about the same as it had been with a land line. This is not to say that I enjoyed all the benefits of a land line. First, I was not sufficiently confident of the technology to justify installing outlets around the house, and anyway I wasn't supposed to do that in the place I was renting. So I did not have the option of having phones anywhere other than the computer room. Even if I had installed the outlets, I would still have needed to go back to the computer room to dial (though not to pick up incoming calls, which I think would have rang on all phones). Dependence on the computer also meant there was no phone service when the computer was not up and running. Skype warns users not to rely upon their service for emergency calls. That made sense to me, both because of the dependence upon a running computer (would you want to boot it up during a fire in the middle of the night?) and because the computer could be in only one place (what if you were cornered somewhere else in your home?). So ultimately I went to Wal-Mart and bought

Long-Term File Backup and Integrity

At some point, I began saving a lot of data on my computer. These data included copies of letters, photographs, and all sorts of other things. Over time, I transferred these data from one hard drive to another, or from hard drive to CD/DVD or vice versa. On rare occasions, I would find that a file that I thought I had saved properly had somehow become corrupt. I also wondered whether I would even notice if some old files somehow disappeared from my system. These thoughts prompted me to think about adopting or developing a reliable way of making sure that my files remained in good condition over time. The Contours of the Problem It seemed to me that there were two basic concerns. One had to do with having a reliable backup system. Somehow, my files needed to move from my immediate workspace (where I had written a letter, scanned a document, imported a photograph, etc.) to longer-term storage, and I needed some reliable way of making sure that they survived each of those transitions. The other basic concern was that, in that process, the computer file that purported to be my saved document or photograph was, in fact, readable or otherwise usable. This second concern called for a way to verify the integrity of each of the saved files. (There is also an authenticity concern, not examined here, that raises the question of whether third parties have interfered with file contents in ways that a verification check might not reveal.) The backup component, in turn, seemed to have two subparts. First, I needed to have devices capable of capturing and preserving my files. Second, I needed a logging system of some sort, so that I could be confident that all of the files that had been on the original device were now present on the receiving device. Of course, a hard drive could capture my data, but would not necessarily preserve it. Hard disks were known to crash, to get stolen, and to suffer data loss when the computer system would shut down abruptly because of failure in some other component. I had long been in the habit of making backups. For some years, I had used tape for backups. More recently, I had switched to a combination of DVDs and offline hard drives. But it seemed that it could be complicated to know when a file or directory from an offline disk should be reintroduced -- to know, that is, that some file or directory on the computer had ceased to be useful and should be replaced by its backup. To avoid the need to undertake constant revalidations of large numbers of files, it made sense to work toward keeping as much data as possible offline, so that it would be unlikely to be affected by day-to-day issues in the functioning of the computer. For the files that did remain on the system, it seemed that there were two basic approaches, which one could characterize as "trust" or "verify." In the trust approach, a person would use backup software that would indicate that it had made a full, incremental, or other kind of backup; and collectively, those various backups would be assumed to provide an up-to-date counterpart of the data maintained on the system. In the verify approach, one would actually compare (by manual and/or automated means) the dates, sizes, names, and perhaps other details of the original files and the backups; and through this verification process, one could directly certify that the backup contained exactly one copy, and an accurate copy at that, of the online file. A simple example of the verify approach would be to note that, when copying one hard drive to another, there were exactly 2,324 files on both drives at the end of the copying process. Either approach would ideally produce a log of some sort, so that a person could reliably track down where the backup copy of a particular file was located. While either approach could fail, it seemed that the trust approach would be more vulnerable to, say, the unpleasant discovery that the backup did not contain what one assumed it contained. Verification of the quality of the copied files was more than a matter of noting that a certain file had been copied, or even that the copy bore the same name, date, time, and size. In some instances, Windows XP had been known to indicate that it had copied a file, but because the copying process was interrupted before completion, the copy did not actually contain the file's full data. At the start of this present inquiry, I had the general impression that there existed programs that would be capable of verifying that the copy was indeed a true and accurate one, but I had had very little actual exposure to the workings of any such programs. As a practical matter, the verification component of this inquiry also invoked the question of whether a file's format continued to be readable by currently available software and, if not, how one could become aware of that and respond to it on a timely basis. Working toward Solutions: Backup While corporate users might have more time and money for sophisticated approaches, my own needs and experiences suggested that I divide my data storage needs into three categories: online, offline, and offsite. Offsite was easiest to describe: it was, ideally, a copy of everything that I kept onsite, preserved solely for purposes of emergency backup. Of course, unless I planned to make trips to the offsite location every hour, there would be some slippage between the two. I could remedy that, in part, by using quasi-offsite storage. For example, if I kept my offsite storage at my office, I could put my latest offsite backups into my car and could them drop them at the office the next time I went there. That way, if my house burned down, my car would contain a fairly recent backup of my onsite data -- subject, of course, to the risk that the car might get too hot, too cold, or too humid, or that some thief or passenger would accidentally or intentionally damage or remove it. So offsite storage seemed derivative. It depended on what I was doing onsite. The onsite options, as I say, seemed to be divided between those things that I wanted or needed to keep online, i.e., immediately available on the computer, and those that I could keep offline, i.e., on a hard drive or DVD that I would connect to the computer as needed. For purposes of minimizing the backup and verification chore, the idea of keeping as much data as possible offline had been greatly advanced by the development of large-capacity hard drives and the proliferation of connection technologies. I could now get a large-capacity hard drive at a relatively low cost; could keep it on a shelf; and could connect it to my computer, within a minute or less, using USB, Firewire, or SATA cables. The concept, then, was that I could have my active-duty data on the computer, and my relatively inactive data on an offline (on-the-shelf) drive or DVD, and I could back them both up to another hard drive, normally kept offsite, every now and then -- weekly, or biweekly, or perhaps monthly. It could have made sense, in this scenario, to preserve historical backups in case the absence or corruption of a file was not immediately noticed (or to protect against vulnerability at those times when the offsite drive came back onsite to be updated). Protection against these risks would likely call for having more than one offsite drive. Aside from offsite backups, there would presumably also be onsite backups, made more frequently. Ideally, as I had experienced when I had used a tape drive, the backup software would kick in at scheduled times and would do its work in the background; and when it was full or finished, a reminder would pop up and I would replace the full tape with a new, empty one. It was now possible to do something similar with current backup software, using either online or mostly offline hard drives. (Quick searches at Newegg and Pricegrabber indicated that, at this writing, tape drives having 100GB or more of compressed capacity cost $400 or more, not counting media. Much smaller tape drives were available, but were still not competitive with hard drives or, increasingly, with flash drives.) Thus, a person would seemingly have three distinct sets of data at home. First, there would be online data, primarily stored in hard drives on the computer. Second, there would be offline data, stored in disks on the shelf. Third, there would be backups of the first two categories, made more frequently than was the case with the weekly, biweekly, or monthly offsite backups. And as a possible fourth category, there could be stacks of DVDs or other media containing archival copies of old backups, in case one wanted to refer back to, say, the status of a certain file as of January 1 of the previous year. Working toward Solutions: Verification For purposes of maximum protection against data loss, if it were feasible, a person would ideally undertake some kind of verification effort in each of the backup processes described above, and would also do some verification when files were being copied from one drive to another. Indeed, verification would ideally occur whenever files were duplicated, deleted, transferred, or otherwise altered, as compared to where they had been when someone last checked up on them. At the other extreme, a verification effort might catch most failures even if it was postponed until the last possible date. The last possible date would presumably be the date on which the backup source was no longer available or reliable. Thus, for example, if a person had a stack of CDs that contained a backup of his/her computer as of January 1, 1997, it might still be possible to verify the current data on one's computer against those old CDs, and that possibility might continue to exist for as long as the CDs did not get thrown out or become too old. The old CDs would not provide any insights regarding files that had been modified or created after January 1, 1997; but at least it could indicate whether the files that had remained unchanged since then were still in good condition. Since those old CDs could fade when nobody was looking, a more reasonable intermediate approach might be to go through the closet for old backups; do the comparison of then vs. now; restore old originals to replace corrupted current copies on the computer as appropriate; and then burn a new current backup of the system, to replace the old set in the closet. Before burning that new set, one would probably want to compare as many original sources as possible. That is, since the January 1, 1997 CDs would not contain more recent files, one might want to check the computer's current data, not only against that old set, but also against more recent sets. Current Technologies The foregoing discussion has already provided a partial answer to the question of what technologies, specifically, should one use for purposes of backup and verification of stored data. At present, for many, it may be fastest, most affordable, and most convenient to make backups on hard drives, supplemented for some purposes by DVDs or other increasingly affordable media (e.g., flash drives, dual-layer DVDs, DVD/RWs). Verification, for these purposes, commonly consists of a trust approach based upon the presumed functioning of the file copying setup (as when one transfers files from one computer to another using Windows Explorer) or of the backup software (which may offer the valid or invalid claim that it verifies the files it copies in terms that match the user's expectations). The foregoing discussion also leaves some things unanswered, however. On the backup side, how would one notice if some files accidentally vanished? As long as the data being backed up have not been used since the last backup, the number of files should be the same. Unfortunately, active-duty files do change in number. For instance, a document may divided into several subparts, or subparts may be combined into one file. It may not be feasible to examine files individually to insure that such changes are always authorized. Long-term archival backups on DVDs may be, ultimately, the only insurance against that sort of thing. It may be somewhat more possible, however, to proceed on a directory-by-directory basis, in an effort to provide a list of folders whose contents have changed since the previous backup. That sort of listing, with some filtering (e.g., to focus on user data files, as distinct from program files whose variations are beyond the average user's scrutiny), could provide at least an occasional heads-up as to what is changing in one's file collection. There were several different file verification technologies, at this writing, including Simple File Verification (SFV), Message-Digest algorithm 5 (md5), Secure Hash Algorithm 1 (sha1), and Checksum. A number of computer programs incorporated these technologies, in various ways. The common goal, in general terms, was to use the data within a file to calculate a number. A very simple example, simpler than the one at the foregoing Wikipedia link for Checksum, would arise where one combined the numerical value of letters together. In the string "adb," for instance, the letter "a" would have a value of 1, because it comes first in the alphabet; "d" would have a value of 4; and "b" would have a value of two. If the algorithm in question called for adding the first two letters and subtracting the third, the result would be 1 + 4 - 2 = 3. If one of the letters got changed, the result would not be 3 anymore. A person could store the value of 3, with that "adb" string, and could re-run the calculation at any time to make sure the string's contents had not changed. More complex algorithms, based upon large quantities of data within a file, significantly reduced the possibility that part of a file could change without also changing the resulting value. So, for these technologies, the basic idea was that one would calculate the sum when the file was created; would keep that sum with the file; and would refer back to it whenever one wanted to verify that the file had not changed. From the several technologies just mentioned, a number of Windows-compatible computer programs had been generated. These included FastSum (free command-line version; $14.95 graphical user interface (GUI) version); md5sum (free); sha1sum (free); FSUM (free); MD5Summer (postcardware); Advanced CheckSum Verifier ($14.95); eXpress CheckSum Verifier (free); HyberHasher ($10.00); EF CheckSum Manager (free); AccuHash ($19.95); MD5 CheckSum Verifier ($14.95); MD5 Checker (free); FileCheckMD5 (free); HashCalc (free); Turbo WinMD5 (free); File Ace ($29.95); Chaos MD5 (free); AccuHash ($19.95); GizmoHasher (free). Among those labeled as freeware, the programs bearing a rating of four or five stars from (which did not specify the number of votes in any case) included EF CheckSum Manager (four stars), MD5 Checker (five stars), and HashCalc (five stars). The only one bearing a rating of at least four stars from was FSUM (four votes). The only one rating above four stars from CNET's was GizmoHasher (4.5 stars from six voters; 1,172 downloads); next closest was MD5 Checker (3.5 stars from five voters, 16,539 downloads). Note: these several ratings sites did not necessarily carry all of these programs. Finally, free programs rated Excellent at included Windows Md5 Checksum (4.7, seven votes, 9,093 downloads), MD5 Calculator (5.0, six votes, 4,713 downloads), hkSFV (4.7, 17 votes, 10,283 downloads), and FileAlyzer (4.7, four votes, 2,283 downloads). [These last two paragraphs posted on Wikipedia.] Based upon this review, it appeared that the best free verification programs for Windows might include MD5 Checker, GizmoHasher, and the four from Softpedia. More detailed review of those programs' writeups suggested that GizmoHasher, Windows Md5 Checksum, and hkSFV would be especially useful for dealing with directories and with large numbers of files (as distinct from checking one file at a time). I wasn't able to find an English-language homepage for Windows Md5 Checksum, so as to learn more about its capabilities with multiple files and folders. The creator of GizmoHasher no longer appeared to be offering it, so there was no information there either. I also could not find a homepage for hkSFV. Lacking other clear guiding criteria, I started with hkSFV, the most popular by the measures cited in the previous paragraph. I ran hkSFV on a sample folder. It created a little SFV or MD5 file -- your choice -- in that same folder. My understanding was that I could then check that folder, a month or a year later, and the program would hopefully report if any file had gone bad. To test this, I changed one of the files. I inserted a plain text file in place of an Excel spreadsheet, and gave it the same name as the Excel spreadsheet. I also deleted several files. Then I ran hkSFV again, with cached mode off. Sure enough, it reported the deleted files as being not found. Oddly, unless I had made a mistake, it appeared to recognize that the text file with an .xls extension was actually a text file; I think it renamed it as filename.txt. But when I changed it back to .xls and tried again, the hkSFV program crashed, which was not entirely encouraging. I ran the same procedure again, once again opening my little MD5 file there in that folder, and yes, it definitely did rename the so-called .xls file to be, as it actually was, a .txt file; and it reported that that file was there OK. So while I was not too encouraged by the crash, I thought maybe I had caused it by fiddling with the folder while the program was open. I definitely did like its ability to supply correct file extensions. These steps were only the start of my process. Before I was going to be prepared to generate MD5 checksum for each data folder, I wanted to make sure that the folders contained actual working files, not just duds, and that they were in the proper archival format; and also that I had eliminated duplicates and had otherwise generally prepared the folder not to be changed very often. That would be a project for the future.

Sunday, August 26, 2007

No Video in MPEGs

I was using Premiere Elements 3.0 on Windows XP. Working on a short piece of video, I chose File > Export > Movie. The resulting file, Test.avi, played video and audio in Windows Media Player (WMP). Next, I chose File > Export > MPEG > NTSC DVD. The resulting file, Test.mpg, played neither audio nor video in WMP. But WMP did appear to believe that something was playing, because (a) it said, "Codec acquired," (b) it provided its colorful visualization, and (c) the progress slider moved across the screen until completion. I tried playing Test.mpg using IrfanView, which normally would play MPGs. IrfanView, too, could play neither audio nor video. Unlike WMP, IrfanView's slider did not move; it appeared to consider the file empty. Windows Explorer reported that the file size was 115MB. In a previous test, WMP and IrfanView did play the audio portion of the X.MPG output file, but no video; but now there was also no audio. Using WMP and IrfanView, I played another MPG that was known to work previously. I got the same results. This suggested that the problem was not with Premiere, but was rather with something else on this computer. This was the first time I had tried to create video on this newly built computer. I suspected there might be an incomplete installation of hardware or software at issue. In a forum, t bone suggested downloading and installing Codecs6030_allin1.exe (Codec Pack All-In-1 I did that, and it solved the problem with both WMP and IrfanView. If that hadn't worked, I would have continued with my Google search and would also have checked these particular solutions for ATI hardware or if my AVIs had not played. Also, newkenbo reported this solution: "I opened the CCC [ATI Catalyst Control Center, and] went to Video - Video Basics. Video Presets was set to Custom. I just changed it to Home and everything works again. Didn't have to reinstall or anything." Finally, one person got a solution by downloading and using the VLC Media Player, which (unlike WMP) was available for use on Linux and other platforms.

Saturday, August 25, 2007

A Quick and Easy Desktop Computer

In a separate post, I have described my decision process that lay behind my purchase and setup of a second computer. This post describes that actual process of purchase and setup. As the other post explains, I felt that this second computer would serve several purposes. An important one was to be a backstop in case the primary desktop computer failed or otherwise needed time-consuming downtime. That is, I wanted this second computer to be capable of doing most of my basic day-to-day tasks. I wanted it to do them comfortably, which meant being more powerful and easier to work at, for extended periods, than my laptop would be. At the same time, I didn't want this second computer to be as expensive or powerful, and certainly not as time-consuming to set up, as the primary computer had been. So the first step I took, in the direction of assembling an easier and more lightweight computer, was to go to Newegg and search for a highly recommended barebones system, which meant a case, power supply, and motherboard. The one I selected was the MSI MBOX K9N6SGM-V, which had pretty good reviews from a respectable number of users. This would be my first foray into using an AMD (as distinct from Intel) processor since sometime in the 1990s, when I had been plagued by incompatibilities that ultimately traced back to the AMD processor I was then using. I had been hearing good things about AMD for some time, and I decided it would be OK to take a chance with them again on this backup computer. The CPU socket was the AMD Socket AM2, which gave me a choice of AMD Athlon 64 X2, Athlon 64 FX, or Athlon 64 processors. I chose the AMD Athlon 64 X2 4000+, which in the peculiar ways of the CPU world was openly "code-named" the Brisbane. User reviews of this chip were quite enthusiastic. The motherboard came with an onboard video connection for one monitor. If I wanted a second monitor, I would have to purchase a dual-head video card. Since I had decided (as described in the other post cited at the outset, above) to do KVM switching of only one monitor -- that is, to share only one monitor between this and the primary desktop computer -- I did not expect to need a different video card. As described in that other post, the decision to share both monitors would entail a relatively expensive and potentially much more complex and frustrating process of trying to buying and trying to achieve results with a dual-monitor KVM switch. The motherboard also came with onboard audio and Ethernet connections. Also, as just mentioned, I was planning to share a monitor I already had. I already had a hard drive that I planned to use in the system. The only other thing I needed was a DVD burner, which I got for about $40 including shipping. So my actual outlay was only about $300. That was for the second system, including the stuff needed for sharing a monitor between the primary and secondary desktop computers, and also for sharing a printer and external hard drive among three computers (including my laptop). The next thing to do, after placing my order, was to wait for the parts to arrive. They did. I liked what I saw. But it didn't work. I called MSI tech support. They figured the problem was either the motherboard or power supply, but we couldn't tell which. I got into an online chat with Victoria at Newegg. She said she was sorry, but there was no way they could just swap out the power supply or motherboard. I would have to pay for shipping both ways -- to send back the defective MBOX and to order a new one. I spoke with her supervisor, Isabel (do you suppose these were their real names?), who said the same thing. I sent an e-mail to her supervisor, Mike. Mike reversed them. I guess he saw that I had been ordering a lot of computer hardware recently. Basically, I got a good Antec power supply to replace the Soly Tech one that came with the MBOX. We didn't know if that would solve the problem, but Mike wanted to start with the power supply, and that was fine with me, though it did mean another week's delay while I waited for the power supply to arrive. The power supply did solve the problem, and I praised Newegg to the skies. I reassembled the computer, and this time it ran. I felt that I could have had a power supply problem with any system, though it would be less likely if I had been buying top-notch components (at a much higher price) on my own. On balance, I felt the barebones system approach worked adequately for purposes of assembling a functional second computer.

One Keyboard, Two Computers

This past summer, I experienced an extended time period when I was struggling to make my desktop computer work properly. Some of that time went to hobbying, where I was experimenting with different possibilities; but I don't think I would have done that hobbying if I had been at liberty to proceed with my primary tasks. It think it was more a matter of making the best of a bad situation. The experience certainly enforced a sense of dependence upon the desktop computer. While I was not entirely happy with that, at this point it was a matter of facing up to that reality. At some later time, I felt, it might be possible to be more laptop-oriented, or to use computers in libraries or otherwise to be less dependent upon the home desktop computer; but that was not the current reality. The question, therefore, was how to make the best of the home computer dependence -- how, in particular, to be as efficient as possible at it. Of course, the more efficient I became at the home computer, the less likely I would be to find that I could achieve comparable efficiency elsewhere. That, too, needed to be a question for another day. I felt that such a day would come -- that my own needs would change over time, and that technologies would continue to develop. In a few years, I hoped, I would be able to do much of what I needed to do at any number of locations. I found two aspects of the home setup to be particularly useful. One was the scanner; the other was the dual monitor setup. There was no question but that having two monitors made me far more efficient. For example, I could read a PDF document on one screen and write about it on the other. The scanner was not as constantly useful, but I had developed a system in which most paper materials quickly got scanned into PDF format, which facilitated very fast document retrieval. The scanner was thus something that I needed badly, but not at every moment. After the summer experience, I decided that, for the time being, I could no longer pretend that my laptop could serve as a second computer at times when the desktop computer was tied up or malfunctioning. Those times, I began to realize, were more frequent than I had recognized. I think I had gotten used to sitting through various delays, and was no longer naturally inclined to be impatient. So if Windows XP froze up, or began functioning slowly, I would wait for it, or would go tinker with something, and basically just wait for it to come around. Sometimes, of course, my strategy for dealing with a slowdown or an apparent system malfunction would be to reboot, to use System Restore, to run some drive or system diagnostics, to restore a previous drive image, or otherwise to remove the system from active service for a period of minutes or, occasionally, for hours. My summer's experience involved extensive exposure to those periods of system maintenance or malfunction. I found that the laptop was not a sufficient stand-in, at those times, for several reasons. It did not have multiple monitor support. It was slow. It did not have the contents of my desktop computer's hard drives. Its keyboard was not as good, and if I used it extensively, my hands would get sore. And so forth. I recognized these various facts because the summer experience had been very frustrating, but also because a new alternative began to present itself. Some years earlier, it had been common for me to have two computers. If I had had two computers during this past summer, I could have saved a great deal of time by swapping parts between the two for testing purposes. If the part worked in one computer but not in the other, I could have some suspicion that this particular part was not the reason for a system malfunction. The summer experience taught me to take my desktop computer setup more seriously, as I say, and in particular it told me that I should have had a second computer available for diagnostic and hobbying purposes. I did not plan to undertake much hobbying once the primary computer was together. But now I realized that I should nonetheless have a secondary desktop computer on hand because, too often, these times of malfunction arrive when it is least convenient. Doing so seemed particularly wise if, as I was beginning to recognize, there might actually be a considerable amount of lost time, each week, as I sat waiting for the computer. So I began to choose components for a second computer. It quickly became apparent that having a second computer would only partly address the dual monitor issue. I could manually unplug both monitors from the primary desktop computer, and plug them into the secondary desktop computer; but I would probably do that only for longer periods of primary computer downtime. This meant that, if I was going to rely upon manual means of switching over to the secondary computer, I would probably use that computer only a few times a week. And that, in turn, meant that it would not be useful for the large majority of my tasks. My research revealed that there is a device called a KVM switch (short for keyboard-video-mouse), and that some of these KVM switches also included ports for speakers as well as USB ports. That is, you could connect a number of devices -- including your printer, scanner, keyboard, monitors, and speakers -- to the KVM switch, and you could use that switch to change instantly from one computer to the other. So as soon as the primary computer began to slow down, or when it would need a reboot or maintenance, I could set it on that path, and could then turn my attention to the secondary computer. This way, the secondary computer would be generally available for a variety of projects. The possibilities expanded even more when I realized that I could also connect an external USB drive to this device, and could then access that drive from either computer. In that scenario, there might be some projects that would reside exclusively on the primary machine, and other projects that might reside exclusively on the second machine, but there could also be projects that were equally available to both. Of course, I wished I had thought of this possibility earlier, during the summer, when I was buying and configuring my primary desktop computer. My reason for upgrading to that computer was that there were times when my existing computer was not able to walk and chew gum at the same time. A plan of dividing the workload between two computers might have enabled me to keep that computer and merely add a second one to my collection, without disrupting my workflow as I made the transition from one to the other. It also occurred to me that having a shared drive could make it far easier to transfer large files and folders back and forth between the two computers -- and possibly also with the laptop, if it should develop that I could temporarily plug it into the KVM switch in place of the primary or secondary computer. A shared drive might also be useful if it proved possible to use the secondary desktop computer as a test bed for an Ubuntu installation. (I had taken some steps toward Ubuntu previously, and was now waiting for the next version of Ubuntu to arrive before proceeding further.) I wasn't sure whether the KVM switch would work if one computer was running WinXP while the other was running Linux, though it seemed to me that the two computers should not be seeing each other through this switch, and therefore that it shouldn't matter what operating systems they were running. That, anyway, was something I could learn about as I went along; it was not crucial at this point. It seemed I could afford to spend some money on the KVM switch, in the sense that it would spare me from having to buy one or two more monitors for the secondary desktop computer. Of course, I did not want the clutter of additional monitors anyway. My workspace also did not have a space for a second keyboard; I would have had to use one at tabletop height, rather than at the lower keyboard tray height that had proved to be kinder to my hands and wrists over the years. I had also found that my workspace tended to be organized around the primary keyboard, and that I naturally gravitated back to it. That is, if I wanted to be switching immediately to the secondary computer as soon as the primary one ceased to be available, it seemed I was best advised to make that secondary computer readily available within my normal seating arrangement. My research included the Wikipedia page for KVM. That page informed me that I wanted an electronic rather than manual switch, for switching between computers, because the electronic kind was able to persuade the computer that the monitor, keyboard, and mouse were still connected. So if the system rebooted as part of a maintenance procedure, for example, it would keep right on booting; it would not freeze at the part of the bootup procedure that checks for a working keyboard. Wikipedia also told me that there were software alternatives that would allow two computers to be connected to the same devices, but these did not sound appealing because (a) I did not want software dependency, (b) I wanted operating system independence (see remarks about Ubuntu, above), and (c) these, too, could be useless in reboot and other maintenance situations. As I reviewed other webpages, some interesting points came to light. One was that some KVM switch manufacturers apparently devised their cables to be multipurpose. Instead of having double sets of each keyboard, mouse, and video cable, it looked like their cables combined all functions into one. That way, you would have only a couple of cables leading from the device (which might be sitting on your desk), and the separate cords (for video etc.) would diverged only near the other end of the cable, so that you could plug the various devices into the video, audio, and keyboard jacks on the back of your PC. Another way to minimize the worry about cables was to buy a KVM switch that would allow hotkey switching from your keyboard. If you didn't need to push an actual physical button on the device in order to change from one computer to the other, then you could put the KVM and its cables on the floor somewhere. Another interesting realization was that, in some KVM switches, your USB devices would follow the monitor. So if you switched your view from computer 1 to computer 2, your printer and other devices would now be at the command of computer 2 as well. Obviously, this could quickly make a hash of your files on an external USB drive, and your print or scanning jobs underway on computer 1 would come to a sudden halt as well. There would also be some delay as the second computer re-recognized the USB devices that the first one had just been using. Fortunately, this drawback did not exist in other KVM switch models, including the IOGear MiniView. In that particular device, there were two separate tracks: your keyboard, mouse, and monitor(s) could be attending to one computer, while your USB devices were responding to the other. As I thought further about that, I realized that I might not want all of my USB devices to go the same place. Just because I was scanning something with a USB scanner did not mean that I wanted that same computer to dominate access to my shared USB drive as well. So I decided to take a brief look at other USB switches. There were actually two reasons for this. Besides wanting to be able to control the USB drive separately from the scanner or other USB devices, I would also want USB 2.0 rather than USB 1.1 speed for the external drive, whereas it was beginning to look like some of these KVM switches supported only USB 1.1. A quick search on found an IOGear device (and I was sure Belkin and others would have them as well) that would provide USB 2.0 keyboard-controlled sharing of a USB device among several computers for $30 with shipping. So this option appeared available and affordable. One distinction that I encountered was between two-port and four-port KVM switches. I was not sure what ports they were referring to. In my way of thinking, there were many ports at issue here: USB ports, keyboard and mouse ports, and monitor ports. As I continued reading, it appeared that they meant "computer" when they said "port." Basically, if you were using two computers, you would have two mouse ports, or two monitor or keyboard ports, so you could call it a two-port switch. Although KVM stood for keyboard, video, and mouse, I realized I would probably want audio switching too. I was not prepared to predict that I would be doing audio-based work (e.g., listening to dictation, viewing video) on only one computer or the other. This realization eliminated some KVM switches that seemed able to do a good job at a cheap price, but were built for use in a server room rather than at the desktop. I wasn't sure how concerned to be about USB switching, but I didn't see any units that lacked that option. On the other extreme, as someone pointed out, if the supplied USB ports on the KVM were not enough for all of the devices that I wanted to switch, I could just add a USB hub and connect a boatload of them. The other concerns that emerged, as I reviewed various users' comments, were: (1) some had problems with nVidia-based motherboards, which is what I expected to have on both the primary and the newly forming secondary computer; (2) some noticed video quality or mouse performance degradation; (3) some found their systems less responsive (though apparently not so with USB as distinct from the alternative (serial?) form of connection); (4) other random quirks (e.g., one Belkin unit would treat Ctrl-C Ctrl-V as a hotkey command to switch computers, rather than as a copy-and-paste sequence). Since it appeared that a majority of users were pleased with the hardware, and since I thought it could provide significant benefits for me, I was leaning toward going ahead with a purchase. At this point, within the world of KVMs (after reading users' experiences with the Belkin units), it seemed I had just one or two choices. I had noticed that the IOGear device mentioned above, the GCS1742 (said to be Linux-compatible), was at the top of the list in Newegg's list, in terms of customer reviews: it had received an average rating of four eggs (out of five) from a total of ten reviewers. These weren't great numbers, but they seemed to be the best game in town; hardly any device listed at or Pricegrabber had garnered more than one or two reviews. The only reasonable alternative to the GCS1742 was its sibling, the seemingly well-received four-port GCS1744. It had gotten about the same rating from eight Newegg reviewers; it cost $50 more at the cheapest merchant on Pricegrabber. I was not entirely thrilled at the prospect of more hassles due to my MSI or nVidia-based hardware, however, nor to discovering quirks, quality degradation, slowdowns, etc. Before taking the plunge with IOGear, I considered the possibility of using basic hardware switching after all. That is, I wondered if I shouldn't just buy a bunch of switches and use them to switch each device separately. For $69,, for instance, would sell me a switch that would connect two computers to one monitor. It would take two of those to control both monitors -- unless, of course, I decided that I needed only one monitor for the secondary computer. Then I would need a simple little FujiPlus USB switch for $17 (which, I noticed, had become the alternative for one reviewer after his/her KVM failed!) for the mouse and keyboard. Maybe I could just use a Radio Shack splitter cord to plug the audio into both computers at the same time. I would have to do would be to throw three or four switches every time I wanted to switch computers; but how often did I actually plan to do that? And the hardware approach seemed much more reliable, and easier to troubleshoot: if the USB switch failed, I would just try another one, without simultaneously losing my monitor solution. Having read about numerous KVM hassles (and having seen that no KVM managed to get five stars or five eggs), I thought I could take my chances and buy one and see how it worked. But I hated to spend extra time if it was not necessary. So first, I thought I probably should price out this hardware option and see how it looked in detail. The devices I needed or wanted to switch were, again, the monitor(s), keyboard, mouse, headphones (and possibly speakers), multifunction printer/scanner, and possibly others. Most of these were USB devices already. My keyboard was PS/2, but I could get a satisfactory Logitech 967740-0403 for $15 including shipping. I had not previously realized that you could get USB headphones -- I hadn't had any need for them, and I still had a couple pairs of the regular kind lying around -- but now I saw that I could get a reasonably well-regarded CyberAcoustics AC851B USB headset (with microphone) for $25 including shipping. I felt that I would generally want the audio to go where the keyboard, mouse, and monitors went. (If I wanted the other computer to be playing background music, I could just plug in some speakers.) So I would need a USB switch with at least three ports for keyboard, mouse, and headphones (unless I wanted to buy a hub for this purpose). Of course, if I was going the USB route, it seemed that I could reconsider some KVMs that I had rejected earlier on grounds that they did not have audio switching. But I postponed that review for the time being. Looking strictly at USB 2.0 device switching, the well-regarded IOGear GUB401 ($40 including shipping) would give access to a single USB device for up to four computers (two, if I went for the $30 GUB201). I would have to try it with my USB hub if I wanted my mouse, keyboard, and headphones to share it, assuming they would all work with a hub. Or, for a less expensive solution that had even better ratings, there was the four-port AMC PW-141A for $17 including shipping -- and here, too, I saw people who were using it as a partial KVM solution. It seemed that, if I was going the mechanical route, I would need two or three of those devices: one for keyboard, mouse, and audio; one for the printer/scanner; and probably one for the external USB drive. Of course, I would need those two extra switches even with the KVM option because, as noted earlier, I would not want to make the hard drive and the printer follow the keyboard, mouse, and monitor. So this wasn't really an additional cost of the non-KVM route. Cables and adapters were a bit of a wild card; for instance, they were included with the IOGear KVMs, but not with the Belkins. I had some USB cables but would probably need more. I would have to decide whether to heed the users who contended that more expensive cables were worth their price for video quality. I decided to pass on the cable issue for the moment. In this little investigation, I had forgotten about the part of needing at least a keyboard to be plugged in, if I hoped to have a computer doing reboot-style maintenance in the background. But if I was going to be buying a new USB keyboard, it seemed that I could adopt the hopelessly kludgy solution of leaving the old PS/2 keyboard plugged in at all times, lying on the floor near my computer (in a box, to prevent accidental keypresses by real mice). I wasn't sure if a system would accept a PS/2 and USB keyboard being connected simultaneously, though, so I had to put that speculative solution on hold for the moment. On the USB side, then, I was looking at the cost of a hub (which I already had), plus $17 for the AMC PW-141A, plus $40 for the USB keyboard and headphones. So for a net outlay of $57, I would have the same USB switching functionality as in a KVM, with the various caveats noted above. My net cost for everything on the USB side, with two extra switches for sharing the printer and the external USB drive separately, would be about $90. And this would all be USB 2.0, unlike the IOGear GCS1742, which was still only USB 1.1 capable and, at its best, would cost $183 (though I didn't expect the USB 1.1 part to matter, for purposes of keeping up with low data items like a mouse or keyboard). That still left the question of sharing the monitors. The secondary desktop computer I was pricing did have dual monitor support. That support would not be essential for my purposes, though. In which case, as noted above, I could go with the $69 switch mentioned above, or something like it. For $35, ElectronicsUSA had a video switch that used S-Video, but a quick search turned up no obvious way of converting that to the DVI or 15-pin connectors commonly used or computer video. More promisingly, the Aten VS291 2-port video switch was $57 with shipping from Newegg. Its four-port sibling, the VS491, was $76 at Newegg. (It was only now that I noticed that the switch being sold by KVMS was actually an Aten switch, albeit apparently an older model.) So now the non-KVM option would cost me $114 (i.e., $57 net for the USB solution, and another $57 for the video switch). Of course, as I now realized, if I was going to worry about switching only one monitor, then I could also consider single-monitor KVMs, rather than being limited to the dual-monitor KVMs considered above. A return to Newegg for some comparison shopping along those lines quickly revealed that we were now in another world. By the arbitrary criteria of needing at least 15 reviewers and having a five-egg rating, there were at least a half-dozen contenders, some at very low prices. The extremely simple IOGear MiniView Micro PS/2 KVM Switch (GCS62) blew away the field with 205 reviews (the next closest one had 56) and a lowest price of $20 including shipping and cables. The mouse and keyboard connections were PS/2, however, meaning that I would have to acquire a PS2 mouse or a USB-to-PS2 adapter, and the audio would have to be strictly a separate matter, with its own switch or something. But users' comments revealed that a USB-to-PS2 adapter would not work. So I would have to spend maybe $10-20 for a mouse. Also, I saw no indication that it was hot plugable -- that is, that I could unplug one computer or device and substitute another, without first having to reboot. I wasn't sure how much of a concern that might be for me. The LinksKey LKV-S02SK was another cheap ($30 including shipping), well-regarded (56 reviews, five eggs) PS/2 option, but this one did advertise itself as being hot plugable. Its users had lots of complaints about short cables, and it seemed to me that there were more complaints about ghosting and otherwise inferior video performance. The other primary contenders, in stock, in my search at Newegg, were all from IOGear. Two were in the neighborhood of $130 with shipping, and did not seem to offer much more, for my purposes, than the one that was on sale for $75 including shipping. That one was the USB-oriented IOGear GCS634U, which would accommodate up to four computers and provided audio swapping. The manufacturer's webpage spoke of video signal enhancement, which I thought would probably mean better video than you would get from the cheaper, cables-only models described in the two preceding paragraphs. Users' reviews for this item expressed relatively mild dissatisfaction, as compared to the more passionate tone of some users for e.g., the GCS62, above, where one person said that it got into a mode of rapidly switching between monitors, damaging his monitor. There were no such disasters here; there were just a number of complaints that the key sequence required to switch computers (which I think was also the sequence used for the GCS62) was annoying. My price comparison, then, was between $35 (for unit plus PS2 mouse) plus an audio solution, for the GCS62, versus $75 plus USB keyboard for the GCS634U. I decided my audio solution, for the time being, would be simply to run extension cables from both computers, and to unplug and replug the headphones as needed. I knew that was a kludge, but I really wasn't planning to run many audio applications, so I felt it was sufficient for now. An alternative was to leave a set of speakers hooked up to the secondary computer. In terms of quality, I thought there was probably a reason for the higher price of the GCS634U. I noticed, for example, that one user, commenting on the GCS62, said that it was not suitable for graphics-intensive work as with Photoshop. There were some other graphics-oriented complaints as well. But there were so many positive remarks, and the price difference was so stark, that it seemed silly to start with the more expensive item. So I ordered the GCS62. Before the second computer was ready to go, I used the GCS62 KVM switch for a while just on the primary computer. It worked fine. I noticed no video degradation, no mouse malfunction, no keyboard problems. There was really just nothing wrong with it. The only thing that resembled a glitch was that, if a computer was rebooting, it would sometimes take four taps on the Scroll Lock button, rather than just two, to switch over to the other machine. When I got the second computer up and running, I used the IOGear GCS62 to connect the monitor, mouse, and keyboard to both computers. The connection worked fine. I was able to use the primary computer even while the hard drive on the second one was being booted or repartitioned, or while I was setting up the BIOS or restoring a drive image from the CD to the hard drive, and also while I was booting from the floppy or the CD. All the while, I was able to keep on working away on the primary machine. Thus, I had a situation in which I was using one keyboard, one mouse, and one monitor, with all three of those devices shared between two desktop computers. (I was not able to try it with the laptop, without purchasing a USB-to-PS/2 adapter, because the laptop had no PS/2 ports.) The second monitor remained permanently on, tuned in to the primary computer. Sometimes, while working on the secondary computer, I would try to mouse over into the second monitor, out of habit. The mouse would just stop at the edge of the first monitor, of course; the second computer did not know that the second monitor existed. The keyboard, and the new PS/2 mouse I had purchased for the occasion, seemed to work just fine, as did the monitor. To share other devices, as described above, I had purchased two of the AMC PW-1411A switches. I connected one to the Canon multifunction printer/scanner and the other to an external drive. Those switches, themselves, functioned just fine for both purposes. The printer simply does not work with a computer until I punch a button on the switch to enable that computer to use the printer (or its built-in scanner), and then the computer has full access, with no problems, just as if there were no switch at all. For the external drive, I had previously used a Metal Gear Box (MGB) (by Galaxy, I think), but it would not function reliably with my new computers, both of which were from MSI. So I bought an Apricorn enclosure and used that. The concept, with either the MGB or the Apricorn, was that I could put any IDE drive into the enclosure and then connect it with any computer with a USB cable. I had to be sure to use the Safely Remove Hardware icon in the system tray; but as long as I did that, I could switch back and forth, using the external drive with either computer. I decided, in practice, that I actually preferred having just one monitor available to the second computer. This meant that my right-hand (secondary) monitor was permanently dedicated to my primary computer. So I could switch to the secondary computer and work in that, while the right-hand monitor continued to show what was going on in the primary computer. So when the main computer was done with whatever it was doing (e.g., rebooting), I could switch right back to it and resume my main task. The primary drawback of this two-computer arrangement, which I liked very much, was that it required me to set up and maintain two computers. Running virus scans, downloading updates, doing backups, and other such tasks involved some unwanted hassle. For the backups, at least, I was pleased to be able to use Second Copy 2000, a very useful program that made automatic periodic backups of my drives to the external drive housed in the Apricorn enclosure. (Second Copy 2000 came on the Apricorn CD.) On balance, as of this writing, the arrangement had already made it possible for me to keep steadily at work while the main computer was down for an extended period, while I was upgrading the motherboard (including an RMA for a defective mobo). So this arrangement looked like it would work out pretty well for me.

Error 1324: Path Contains an Invalid Character

I was trying to uninstall the hp LaserJet 1010 Series, and was also trying to uninstall Dragon Naturally Speaking. Both were cluttering my very slow Inspiron 2200 laptop (much slower in Windows XP than in Ubuntu, that is). In both cases, I got a message like this: "Error 1324. The path Inspiron Backup contains an invalid character." The uninstallation did not appear to finish; that is, the items in question remained listed in Add or Remove Programs (found in WinXP's Control Panel). I searched for "Inspiron Backup" (with and without a space in the middle) using Regedit (which you can run by using Start > Run). It did not find anything. I also searched using Lavasoft Reghance, which had strangely vanished without a trace from the Lavasoft website but appeared to be available as shareware from MajorGeeks. (There were alternative possible tools at SnapFiles and at Softpedia.) Reghance didn't find that string either. Another user had found the answer to his/her problem in the registry at this location: MyComputer\HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserShellFolders In that person's situation the problem had been with a reference to a folder called D:\My Pictures, and the solution was simply to delete the key containing that reference. In my case, what I saw in that location in the registry was a key named Personal and a reference to H:\Inspiron Backup\Inspiron Drive E\Current. I had no such drive or folder. I was surprised that my registry cleaning software had not detected and offered to fix this problem. I was not sure whether to delete or fix this reference. I *could* fix it; I did recognize the reference to a folder called "Current," which was now located on another drive. I decided fixing would be the more conservative alternative. So I right-clicked to modify that key, changed the reference, and used Regedit's File > Export option to save a REG file. I edited that REG file using Notepad, so that its contents pertained only to what I had changed. In doing so, I noticed that the New folder under this registry key also contained other references to H:\Inspiron Backup, as well as a mistaken location for the Temporary Internet Files cache. Thus, my revised REG file looked like this: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Explorer\User Shell Folders] "Personal"="E:\\Current" [HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Explorer\User Shell Folders\New] "My Video"="E:\\Current" "Cache"="F:\Miscellany\Temporary Internet Files" "My Pictures"="E:\\Current" "My Music"="E:\\Current" After running that REG file, I rebooted and tried again on the uninstallation. This time, when trying to uninstall Dragon NaturallySpeaking, I got "Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run." Then, as before, "Fatal error during installation." I tried with the hp LaserJet 1010 Series. That one ran to completion, and the hp LaserJet 1010 Series item vanished from Add or Remove Programs. So I suspected I could probably finish the job by reinstalling Dragon NaturallySpeaking and then re-uninstalling. I ran a repair installation from the program CD and also reinstalled the Dragon NaturallySpeaking 8.0 Service Pack 1E that I had apparently downloaded and installed previously. After rebooting, I uninstalled it without further difficulty. It occurred to me that another way of finding references to the Inspiron Backup folder -- the one cited in Error 1324, above -- would be to export the whole registry, rename it from being a REG file to being a TXT file, and search it in Notepad. I did that and found at least a half-dozen other references. It wasn't necessary to go back into the registry to change them all, one by one. Instead, for each of these other references, I kept the header (i.e., the line, shown above, that refers to some HKEY_CURRENT_USER or similar location); I corrected the registry key so that, as in the above example, it pointed to the correct folder (making sure that all folder names in the registry key references (unlike the HKEY line) were preceded with double (not single) slashes, and making new folders in appropriate locations in some instances); I added these additional portions to the REG file shown above; and I ran the REG file -- which, of course, I kept, in case I ever had to do this again following e.g., a System Restore.