Today I got a call from my Mom about all these popups that are getting in the way of her being able to read email. Half an hour later, looks like the machine's got a virus. We're running McAffee now.
It's not like we're not careful. I set her up with a firewall router, keep her (relatively) up to date with Windows security patches, have her well indoctrinated in using Firefox instead of IE, never running programs sent through email, etc.
I think I know where we slipped up. There was a website that wouldn't work properly under Firefox that she'd been using to help track some of her medical data, so I ran IE for just that site to retrieve her data so she could change to different software. My guess is that this one instance of running IE led to the infection; the timing was too coincidental...
Anyway, that doesn't matter; what I care about is that the machine got infected in the first place. It's stupid. I told her that I think we should convert her to Linux so we can put an end to these popups and virii once and for all. She sounded a bit uncertain about this; I think Linux sounds too hard core and scary.
I know it'll work fine, because we've converted a number of the office staff folks at work. The people have reported that it wasn't so bad, and while of course there are little incompatibilities and troubles, overall they seem to be able to get their work done, interoperate with people effectively, and so forth. Fortunately, we've got a really good desktop support guy who individually teaches each of them how to use it and walks them through everything they need to know.
My mom's at least as good with computers as any of them, and I'm sure she'd have no trouble. She pretty much just uses Firefox, Word, Excel, and a computer card game. All stuff that Linux can do just fine. It'll take a bit of social engineering to convince her to try it, but I think it'll work.
However, this has got me thinking even more ambitiously... What would it take to make Linux not just "okay" but the best possible operating system for someone even less technically able than my Mom and co-workers? What would it take to create a "Granny Linux"?
Here's my ideas...
First, the interface should be extremely stripped down. Granny Linux users are the polar opposite of the traditional Linux user - choice is bad. They probably only use about 4-6 applications, so there should be no other options beyond those, plus a button to turn off the computer, and a magnifying glass button. Firefox, one or two apps from Open Office, and a couple games. That's it.
If Granny needs another program, she calls her grandson and asks. He decides what to put on, and runs something remotely that installs and/or activates it.
I would also lay out the screen differently. Gone would be the panel and all its nifty gadgets. Instead there are big buttons in the corners to launch her applications. Corners are the easiest spots to hit, and with Granny's eyesight and arthritis, she needs all the help she can get.
Error messages on Granny Linux work differently than on a typical computer. They "know" that Granny isn't going to understand the technical jargon, so it doesn't bother to frighten her with it. Instead it gives her a friendly message that says that there is a problem, and gives her three choices. First, to ignore it. Second, to see more details about it. And third (and most importantly), to send the error to John (her son).
In fact, the cool technology in Granny Linux is all behind the scenes stuff. It leverages Linux's remote administration capabilities and then some. There are actually two classes of admin. The first is what we'd think of as first tier tech support. This is handled by Granny's son. He's essentially a power user, and knows all the applications Granny uses backwards and forwards. He knows how to troubleshoot a lot of the common errors. If she gets an email with an attachment, he can check to make sure it's ok. He's also patient about explaining again how to use the printer, turn off caps-lock, etc. If Granny needs a new piece of software, he can activate it for her and walk her through a canned tutorial over the phone to show her how to use it.
For more advanced things, like applying security patches, troubleshooting bugs, and so forth, they go to David, Granny's grandson. He knows Linux real well and is a pro at the commandline. He's comfortable sshing into her computer, reviewing logs, emerging/apt-getting software, and so forth. John notifies him when Granny needs help beyond the normal, thus escalating the problem to him.
It's this notion of a remote helper that I think would be the distinguishing feature of Granny Linux. It leverages Linux's ability to do remote administration and really puts a strong level of reliance on this remote admin, and strives to make *his* life easier.
For John (the first level tech support), he should have a web or gui control panel app that he can pull up to interact with her machine. This has buttons to activate or hide various software or capabilities on Granny's computer, change her themes, install fonts, review the error messages she's run across, browse logs, etc. etc. He can flag things for grandson David to look at, can upload new photos of the family's children to display on Granny's screensaver or desktop background, and see when Granny last logged in.
For David (the second level tech support), he has some options about how he interacts with Granny's system. First, he can ssh directly into the system and run all the usual unix commands through the console. Second, he can use the first level tech support app. Third, he can run a program that does aggregate administration.
This administrative aggregator is there to allow David to administrate several machines at the same time. In addition to his grandmother, he also has Granny linux on his children's computers, his wife's home machine, and 8 systems at his brother Earl's auto repair shop (Earl pays $50/month for the service, and considers it a bargain). Having to individually administrate all those systems would be a pain in the ass, but the aggregator allows him to ensure all the systems have the same versions of the same software installed, review and compare their logs (with ample use of diff to isolate differences between the machines), and so forth.
This system also hooks into a global database of all Granny Linux users. When an error message comes in, it automatically taps into it to pull up tips, suggested solutions, sample response messages, etc. David can often *click* *click* and invoke a script that addresses the issue or helps narrow it down.
David also runs a cute little panel app that shows a little indicator light for each of the remote machines. This tells him if the machine is on or off, changes color if the machine hits error situations, and blinks if it needs administrative attention. David runs this on his computer at work and both of his computers at home, so he keeps close tabs on everyone. He also has a program set up to send a text message to his phone in case he's away from his computer. The users are impressed that within moments after running into a strange error message they'll get an IM from David, "It's alright, you were just low on disk space. I've allocated a bunch more space for you, you should be fine for months."
Anyway, I bet the above wouldn't be that hard to make. I know that a lot of the pieces exist in some form already, and could be adapted to this. With something like Granny Linux, I think Windows wouldn't stand a chance.