Comment 4 for bug 911706

Revision history for this message
Matthew Paul Thomas (mpt) wrote :

"You know lots about computers ... can you fix our computer?" It was the sentence that many geeks dread. In this case, it was from neighbors of my parents, Christmas 2010. Their Internet hadn't worked for weeks, and they didn't know why.

They had called their ISP, and the ISP had gone through a list of troubleshooting steps with them, without success. The ISP had even gone to the expense of sending them a new router, and its lights all flashed like they were supposed to -- but still no Internet.

Internet Explorer was the only browser installed on the computer. I fired it up to see what would happen. "Internet Explorer cannot display the webpage. Most likely causes: You are not connected to the Internet. The website is encountering problems. There might be a typing error in the address." So, that wasn't useful.

But because I'm the sort of person who pays attention to tiny details, I happened to notice a tiny red X in the status bar at the bottom of the window. Yes, Internet Explorer was in offline mode. And it had been in offline mode for weeks. As soon as I turned offline mode off, the Internet worked again.

Now, maybe Internet Explorer shouldn't have made it so easy to go into offline mode by mistake. Or maybe it should have had a clearer explanation that it was in offline mode, and how to get out of it. But the most certain way for the neighbors to have avoided this problem would have been to use Chrome or Safari, because those browsers do not have manual offline modes at all.

For any setting that exists, some people will twiddle it by mistake. Others will twiddle it, see no obvious effect, and leave it twiddled. That risk is worth running for many settings -- but not for this one. It is unreasonable to expect humans to tell Ubuntu Software Center whether the computer is online, when that's something the computer can jolly well figure out for itself. (The logical conclusion would be that *every* program, that wishes to behave intelligently when offline, should have a UI control for the human to say "well, no, actually the computer is online". That would be hugely redundant and unlikely to be implemented -- as you can tell from how seldom developers make Ubuntu applications work through proxies.)

So if the code USC uses to tell whether the computer is online is unreliable, then make it reliable. For example, if the problem is that network-manager sometimes isn't installed, then make software-center depend on network-manager. After all, no-one reasonably expects applications on Windows or OS X to work with multiple swappable networking systems! Or even if you do think that's a reasonable expectation on Ubuntu, then check whether Network Manager is running at all before asking it whether the computer is online. If it isn't, then ping ubuntu.com or check connectivity some other way. Just don't bother the human with it, please. :-)