There are a lot of things that annoy me about computers, or more usually, Windows in particular.
Why can't my computer:
1) Accurately gauge how long it will take to do something? (Prime Culprit: Windows)
File copies, program installations, downloads, no matter what it is, if it's got a progress bar it's not going to be accurate. Not only will it not be accurate, it won't even be close most of the time. Sometimes, granted, it'll be spot-on but that's just got statistical averaging written all over it. Why, in the middle of a file copy, does it suddenly decide that it's going to take 3 days, no, 10 seconds, no, wait, 18 hours, no, hold on, ... ?
Yes, not all things are predictable, but the computer could at least estimate (within a reasonable margin of error) and not blindly pick up random and wildly varying estimates without even flinching. It'd be much better if, when it gets confused or held up, it just gave up until it knew again! (KDE does do this, for instance, when copying files... it'll just say "Stalled" for a second).
2) Know where the drivers for a bit of hardware will be? (Prime Culprit: Windows)
Why do I have to point it to a driver that I've either had to insert myself or, a lot of the time, had to go to www.randommanufacturerswebsite.com/techsupport/drivers/windows/xp/driver/thingamajig/v8/revision2/setup.exe and downloaded myself before it will recognise the hardware I bought?
Why can't there be a standard for hardware so that everything USB or PCI-based contains some information that tells the computer roughly WHERE a set of drivers will be. Or, failing that, some website where it can automatically look up what drivers exist and where when given a PCI/USB id, even if it gets "Not Supported" or "Unknown" some of the time?
3) Know what I mean? (Prime Culprit: All OS)
When I type www.fredc.om into my browser, why can't it just correct it for me (maybe with a Google-style "did you mean?")? Some mistakes are hard to catch but it doesn't even catch the little ones. wwww.fred.com or www,fred,com , for instance. And when I have a file copy command, rather than just error at me because I mis-spelled or, in Linux, mis-capitalised a filename, have a small go at working out what I meant and ask me if it's right. (Yes, there are certain plugins etc. but I want it to be a standard feature. I can't be the only person who's done these silly typos!)
4) Protect me from others and myself?(Prime Culprit: Windows and Linux)
Now, I'd like to point out that this is almost exclusively a Windows problem for one part of the question (protecting me from others) and almost exclusively a Linux problem for the other (protecting me from myself). Windows just doesn't go far enough to stop other people getting into/onto/through my computer's defences. Not even after the 50th version which has promised to do so. But it has some fantastic features to protect me from myself, if they are enabled. File deletes are, on the whole, confirmed first and undoable later. Plus, it's quite hard to completely shoot yourself in the foot by, say, deleting your Windows directory accidentally. On the other hard, it's extremely easy if you are not careful to totally balls up your Windows installation just by clicking on the wrong website, the wrong email etc. or even disabling the wrong service.
Linux, though, protects you from outside elements a lot more. And even if they do get through, it is quite easy to recover from them and, additionally, their impact will be limited to the user accounts that are affected. However, even as a normal user, you can wipe out your home directory in one command without any confirmations and with little chance of getting it back unless you have specifically put into place procedures to recover it (such as replacing commands with safer versions, configuring user accounts so that they can't do that sort of thing, or just having easy-to-restore backups in place).
So it seems that Linux could benefit from a bit of Shadow Copy, a bit of System Restore or some kind of filesystem rollback and Windows could benefit from a bit more privilege seperation, a bit better programming and a focus on non-virus software rather than anti-virus software (i.e. before-the-event practices that stop the viruses getting on there so easily in the first place).
And this doesn't just apply to desktop environments. Humans make mistakes. Operating systems should be designed to take account of this fact and help where possible.
5) At least give me a clue? (Prime Culprit: All OS)
"mplayer: error while loading shared libraries: liba52.so.0: cannot open shared object file: No such file or directory"
(Note that this is an example only - when you compile mplayer from source, it does in fact warn you or leave out support when pre-requisites are missing).
Well. Lovely. Fantastic. So you know that you NEED liba52. You won't run without it. You were obviously written with it in mind. So why can't I instead get:
"Mplayer: Error: You haven't installed liba52. You can download this from http://liba52.sourceforge.net/"
Now, with modern dependency checking this sort of thing is getting rarer but even so, where's the error message that a human can parse easily? Windows does just the same with missing DLL's. And compile-time messages but not run-time messages are another bit of a bind. Fine, tell me gently at compile-time that I need libX and exit neatly. But why not do the same when I move that binary to another machine that doesn't HAVE libX, instead of erroring as above? More people RUN programs than COMPILE them. People compiling programs usually have the sense to sort such problems out for themselves (and such a trivial error is nothing compared to some of the doozies that you can get when compiling software for yourself!), ordinary users can't.
Similarly, dumbing down error messages too much is a major mistake:
"An error has occurred."
What error? Why? Whose error was it? Was it my fault? Was something wrong with the machine? Where did the error occur - in the program, in Windows, in something else? What can be done about it?
As a replacement, how about:
"An error has occurred in PartyPoker. [[Note the friendly program name]]This appears to be a problem with that program. You can try running it again, or checking for a PartyPoker update. If you still recieve errors with PartyPoker, the program gives the website address www.partypoker.com/problem as a source of help. Click below for a file which will help the program author to determine the cause of the problem."
Or:
"An out-of-disk-space error has occurred. Windows is showing you this error because it did not have enough room to create a 50Gb file on drive C: as requested by the program Nero Burning ROM. You have only 10Gb free space on drive C:. You can try:
- Clearing up 40Gb of space on drive C: and retrying the operation
- Instructing Nero Burning ROM to use a drive with more space (for example, D: currently has 100Gb free)"
6) Fix itself. (Prime Culprit: All OS)
Windows.
Windows Last Known Good Configuration.
Windows Safe Mode.
Windows Recovery Console.
Where's the "I need to get to my files" option - with a minimal desktop that uses NO programs, services or other information in common with the main Windows install and lets you copy your files off the computer before it dies completely? Where's the "Run Diagnostics" option to let Windows have a go at trying to find out what it actually wrong rather than blindly looping through a list of Windows "versions", each of which gets less and less drivers loaded? While we're at it, where's the "Check My Disks/Memory/Hardware" option in that list?
Where's the "Right, last time I crashed loading the graphics driver, according to these logs - this time I'll ignore graphics and just load a basic VESA driver and see if I can get further" logic?
And then we have the fantastic idea to include an option, which is usually the default, to automatically restart Windows on error (great, so you can't even SEE the BSOD when it whizzes past, and then Windows will blindly sit there trying to get into Windows every time it reboots until you come and fix it - it'd be better just to turn itself off!). Yeah, there sometimes a need for a watchdog on a high-availability server but on an OS designed for Home Desktop use? And what's the point of it just infinitely restarting at the same place unless it LEARNS from that mistake, especiallly if that place is before it evens gets to a desktop?
That's just the start of my list. Hopefully, I'll finish it off soon.
Sunday, October 28, 2007
Why can't my computer...


Thursday, March 25, 2004
Nightmare of a day
Today was terrible.
I had a bright idea that I would install an old redundant hard disk from a computer I never use (that's going to become a Linux router before much longer) into my newest machine so that I can read all my old data off of it to back it up / delete it. Good idea, I thought, get some more hard disk space, clean up some old crap and get back some silly programs and some data that I knew was on there.
I opened both machines (after several minutes of untangling cables and unscrewing bits), moved the harddisk over, something I've done countless times, gave the inside of the computers a little spring clean and put everything back where it was.
Now, my current machine has more than a few disks in it... first there's a 120Gb whopper drive that's my main drive, a floppy (obviously), a CD-RW, a DVD-ROM, a tape drive and then there's a double-3Gb RAID array run off of a PCI RAID card (having used up all of my motherboard IDE connectors).
This RAID/ATA 133 card (an Silicone Image 0680-based model) was the only space left to install the extra harddrive on so I hooked it all up to that, knowing that it can serve the drive as a normal drive in addition to it's existing RAID setup.
I turned my computer on and the new drive didn't appear in the RAID card's BIOS initialisation. I pressed F3 to get a look at it in more detail and the RAID BIOS said that it could only see the 3Gb drives, as they normally were. Very strange. I checked my jumper settings and power and everything seemed fine. Shuffled the drives around a bit with respect to primary, secondary, master, slave and got it to appear in the RAID BIOS. My RAID-mirror array nicely intact on the original 3Gb drives and a seperate BIOS entry for the "new" drive.
Wonderful.
While I was waiting for Windows to boot, I began worrying what letter Windows would choose to assign to this new drive (don't want it to mess up my G: drive being Games!). Never mind, I can always reinstall stuff or do a bit of registry hacking to fix that. Anyway, the new drive didn't appear in My Computer.
Strange.
Went into Control Panel / System and the drive is listed there and working fine, but no drive letter was assigned to it. So I ran Paragon Partition Manager 2000 (a little partitioning utility that I found on a magazine coverdisk). It showed the new drive but with a full-sized "unknown" partition. When it was in the previous computer it had been given 7 partitions, all of them FAT!
It seems that the RAID BIOS had taken it upon itself to try and incorporate this new drive into it's RAID set without so much as asking! In doing so, it had wiped the partition table, some of the FAT and some data.
ARGH! I was not a happy bunny.
What idiot designer thought that it should try to include every drive it sees into a RAID array without confirmation?! This thing was supposed to keep my data safe, not copy my data over anything I fed the card, especially seeing as this card is also marketed as a plain ATA-133 interface as well!
After I'd calmed down enough to go back and investigate, I needed to find a Filesystem Recovery tool. Well, I initially found a few on Data Recovery Specialists websites, some were well-thought-out, i.e. download a read-only version of the software to see if it can recover anything then buy it if you want to actually get your data back.
I didn't fancy having to go into Linux and perform a serious autopsy of this drive... hell... it's been in a computer that I haven't turned on for two years. A little hunting found me a freeware tool to do the job (as almost always happens).
PC Inspector File Recovery came to the rescue. I ran it from my (thankfully) working Windows, set it to look at this mystery blank disk that Windows refused to assign a drive letter to and, after several hours, it came back with 15 partitions it said it had found. Erm... that drive only had 7. Apparantly, sometimes it can pick up "fake" partition tables from things like disk images and suchlike.
Anyway, it seems that the partition tables and FAT's must have been a little corrupted but it managed to see most of my files, with the correct name and size, and allowed me to save any of them onto another harddrive as normal files. It also picked up a few bad sectors on the disk but I was able to safely click ignore and it carried on, skipping over them.
Thank you!
So, now all I have to do is sift through the crap that's on there, decide what's worth recovering and save it, then blank the drive and use it to shift the data burden on my main drives. Next time I want to copy an old hard drive onto my computer, I'll just replace my CDROM and copy the data over, then put it back how it was.