My Dad has been having some trouble with his Windows PC…apparently some programs “disappeared” from his desktop under mysterious circumstances. He requested Remote Assistance, the Microsoft Windows XP feature that allows you to control a computer over the Internet. However, first we had to get Remote Assistance working. Compounding the problem: Dad lives 13 time zones away, and communication over the telephone is impossible because of his hearing disability.
I thought this would be a good opportunity to give Fog Creek Software’s CoPilot a try. Like Remote Assistance, CoPilot makes it possible to control a computer over the Internet, except it uses a regular web browser to kick off the entire process and (this is important) works through firewalls automatically. Remote Assistance possibly needed some configuration on Dad’s router, but since he hadn’t set it up himself I was anticipating some issues.
I’d heard about CoPilot on Joel on Software; it’s a product put together by the best interns Joel could find. Helping Dad with his computer was a great excuse to try out the latest from Fog Creek Software.
The CoPilot Experience
Setting up from the browser was very easy. The logistics of communicating what to do, however, still proved difficult.
- Synchronizing: Some concepts, like using signals to coordinate and acknowledge action, are actually pretty geeky. Just coordinating a time when both of us would be sitting in front of the computer was surprisingly difficult, mostly because I was confused about what time it actually was in Taiwan. So I’d send Dad an email saying, “around this time let’s try it, so send me an email when you’re ready so I can start the connection” and then we’d miss each other. I ended up being off by an hour, or Dad would be waiting at the computer and not send me the email, or he’d send the email and I’d miss it in the flurry of other emails I get. We finally got it down after a couple of days. This could have been fixed with a quick phone call, and in retrospect we should have used that to signal. However, it’s expensive to call, and it never occurs to me anymore because we can’t communicate effectively via telephone in the first place. Used just as a signalling device, though, it would have saved some time :-)
Explaining: The CoPilot sign-up process requires that the person requesting assistance to enter a special code, then download a small program. This program is keyed with the special code, and allows only the helper with the same code to connect. There were two problems. The first one was just a matter of Dad knowing that he had to download a program and then run it. Not as simple as it sounds. First of all, where does the downloaded program go? I told him it was on the Desktop, which is….what? And of course downloading a program off the Internet triggers all kinds of warnings with the anti-virus software, which doesn’t make it seem like anything GOOD is happening. Eventually any sane person just loses patience and clicks OK to everything…it’s no wonder that this is such a problem. Sheesh. Making matters worse was that long label of the file itself…it’s
FogCreekCoPilot.Exeor something like that, and it ends up being shown as
FogCree...on his desktop. First we were at CoPilot.com, but now he can’t find a file named CoPilot. Gah. The second problem was that the downloaded CoPilot program does not identify which code it is using when you run it. The first code we used was for the two-minute trial, to ensure that CoPilot actually would work. It did, so I bought a 24 hoursday pass and sent Dad the new code link via email. Dad ended up using the wrong one the second time we did a connection, because he didn’t know he had to use a new download. His desktop became quite cluttered with old versions of the program. We eventually get this sorted out, and he runs the right one (
After we got the program up and running, everything was OK. CoPilot is based on VNC (the source code is available, as it’s open source). I could see JPEG artifacting as screen chunks were transferred over the net, but it worked. We encountered a few problems:
- If both Dad and I tried to use the mouse / keyboard at the same time, we would disconnect. At least, that’s what seemed to trigger the disconnect.
If I moved too many things on the screen, or caused too massive a screen update, we would get disconnected.
CoPilot is designed to automatically reconnect when the connection drops. In practice this didn’t work for us. My side of the connection would display the “reconnecting” prompt, and nothing would happen except for the program entering a “not responding” state. If I force-quit the program and restarted, it would usually reconnect, and I would see a dialog box on my Dad’s computer saying “The Fog Creek Copilot service can not connect because another user with your invitation code is already connected from a different computer. If you are sure that no one selse is connected, please wait a few minutes and try again.” Some kind of race condition exacerbated by the long distance connection across half the world? Dad’s laptop was purchased here in the US, and still has the US Version of Windows XP on it, so I’m stumped. The Testimonials page lists someone in India who had no problems, so there must be something fishy going on in Taichung…
Overall it was a usable experience, brought to the edge of frustration by the three problems I list above. Screen updates were pretty slow; Dad is on a high speed DSL line in Taiwan, I’m on Cable. His uplink speed is probably around 128-300kbps (12-30K/sec), which is going to be slow when screen-sized JPEG-encoded bitmaps are being sent back . The interactive performance between Dad’s computer in Taiwan and mine here in the US averaged about 0.5 frame per second, with screen refreshes taking 10-20 seconds when a lot happened. This may not be typical for US-based broadband, but I didn’t have an opportunity to try it out.
The Remote Assistance ExperienceAfter using CoPilot to fix the immediate problems with Dad’s computer, the next thing I did was install MSN Messenger, which I thought was one of the requirements of Remote Assistance. I set it up so would only see my MSN screenname, with his profile invisible. We then worked out how to connect via the Remote Assistant Wizard built-into XP. This was fairly straightforward, with some gotchyas:
- I’m using Trillian 3.1 for my MSN connection instead of the real MSN Messenger client. Trillian does not accept Remote Connection requests. Therefore, Dad had to use the “send email” function instead. This sends an attachment with a Remote Assistance “shortcut”, which I can double-click to launch. Next time I’m on his computer, I’m going to nuke MSN off the machine and install Trillian instead.
When creating an “invitation” for Remote Assistance, the requester has the option of entering a password. The idea of the double password fields (“enter your password”, “confirm your password”) was confusing to Dad, and he entered only one password before clicking “confirm”. The wizard complained, and did NOTHING to highlight the missing field. Crappy QA. The dialog could have been better design…small text just looks like background texture to Dad, and he’s not in the habit of reading every bit of text on the screen. Who wants to? There’s so much of it and it does a terrible job of explaining what to do. Instead it just describes what to do, which isn’t the same thing. Useless!
Different generations assume different default capitalization rules for passwords. He automatically capitalized the words, because to him that seems more natural. I automatically typed mine in all lower case.
We kept CoPilot running at the same time so I could watch him. That was cool! It allowed me to watch Dad establish the remote connection from scratch. When he needed help, I’d send him an instant message through MSN.
On a side note, Remote Assistance is considerably faster than CoPilot in interactive performance. CoPilot was painfully slow at times; the update rate was on the order of half a frame per second at best. Remote Assistance could manage maybe 2 frames a second. A lot of it depends on how much screen is being redrawn, because all those bits need to be shipped back to the assisting computer; with CoPilot, a full screen refresh would take up to a minute if we didn’t lose the connection. Remote Assistance seems to be a little smarter about refreshes (it’s based on the mature Windows Terminal Services technology), which is where it picks up the speed advantage.
I was surprised that the Remote Assistance setup didn’t have problems traversing our firewalls. While reading about firewall support for RA, I found out what the the UPnP router setting helps with automatic forwarding of ports injust this situation. I had never turned it on before. The receiving computer (the person being helped) needs port 3389 forwarded. That’s a pickle! There should be a version of RA that’s called Demand Help, which puts the onus on the EXPERT to handle the port forwarding :-) My Dad’s router must have this UPnP feature enabled.
Is There Money in This?
p>Despite the issues we had with CoPilot, I like what it’s capable of doing. They have flexible subscription models that allow a person to help any number of people. It’s similar to a cell phone plan: buy the number of minutes you need at a certain level, then pay a per-minute rate if you use more than that. There’s also pay-as-you-go, and you can choose to bill the person receiving help using either PayPal or a credit card. There’s also the 24-hour day pass, which allows you unlimited use for a 24 hour period starting from time of first successful connection.
While I would hesitate to ask a novice computer user to pay a bill over the Internet, I could see using CoPilot to do virtual computer consulting and one-on-one training. You can see almost everything that the other person is doing; combined with telephone support, you could really do an effective training session without having to leave the house. Even the slow update rate is an advantage, as experts tend to type and move the mouse too fast for novices users to follow.
Unfortunately there’s no Macintosh version of CoPilot; Timbuktu is probably the next most usable solution, though the version I last used had overly-complicated setup and firewall issues to work around. VNC is free, but do you really want to put Grandma through the setup process? We love Grandma! I like the idea of CoPilot’s web-based setup far better: it’s a clean and simple solution, once you handle the inherent lameness in downloading and running programs. For now, I’ll stick with Remote Assistance for Dad because its quicker and more stable for my application, but it wouldn’t have even been possible without CoPilot. That was totally worth the 10 bucks…beats the price of an international plane ticket handily!