March 19, 2006
View Comments | Post CommentNow back to our regularly scheduled nerdy, boring programming.
Now back to our regularly scheduled nerdy, boring programming.
It's funny the way people are willing to accept computers as a scapegoat for damn near every problem, and to do so without question. At Tryst today, our order took a while to come (not long enough that any explanation was really even needed), but our waitress apologized for it, saying that their computers had crashed. Her explanation got me thinking about how often crashing computers are offered as an excuse for every possible bad situation.
It works to our detriment when businesses blame poor service on computers, and it works to our advantage when we blame late assignments on our own computer problems. And computers get blamed for everything from miscommunications to power blackouts. In the classic sci-fi novel/movie The Andromeda Strain, a computer printer malfunction is nearly responsible for wiping out the entire human race. With all these problems, we forget that there are entitites actually at fault when computers don't work properly, and that computers don't have to fail all the time.
The complexity of computers means that the average person doesn't even begin to understand their inner workings. As a result, no one questions the assumption that computer crashes, no matter how often, are inevitable. They aren't. They're due to thousands of little errors in programming. And those errors are due to thousands of little programmers doing sloppy work. And though it is true that in a sufficiently complex system, some errors are bound to be present at first, successive iterations of upgrades and bugfixes can actually make things run in some manner resembling proper operation. But no one demands it from the computer industry the way they do from every other industry.
This observation led to two thoughts, neither of them the least bit original:
- There ought to be better mechanisms in place to hold software and hardware producers accountable when their products fail. End-User License Agreements shouldn't be able to disclaim all liability, especially when there are no choices in the market that don't come with an indentical waiver.
If McDonald's posted a flyer on their doors that said by entering, one waives the right to hold them accountable for the quality of their food, courts and legislators would not find this acceptable. If McDonald's serves bacteria-ridden Big Macs, no court is going to dismiss suits just because they told the customers they couldn't sue. McDonald's would be viewed as unreasonable, and derelict in their duty to provide safe food.
Unlike the McDonald's case, courts would find bugs in software and hardware to be reasonable and normal problems, and probably refuse to hold the manufacturers responsible. Hence, the perception that computer crashes are inevitable is a self-fulfilling prophecy, because everyone assumes they are normal, removing the companies' duty to avoid them.
Disclaiming liability with EULA's shouldn't be possible in most cases. I'm not proposing strict liability for commercial software (I haven't given it enough thought), only proposing that there be some liability. Our rights are, after all, inalienable, and that includes by EULAs.
- We need to make sure we preserve traditional ways of functioning without computers. When computers go down, we should degrade gracefully, and have backup systems in place that don't rely on sophisticated electronics. Waiters and waitresses can write orders down, electronic ballots can have verifiable paper trails, credit-card merchants can use the old knucklebusters, and when ESPN.com goes down, we have to remember to watch Sportscenter on the television.
But in any case, we need to stop accepting computers problems as attributable to some sort of cosmic bad luck. It probably isn't your waitress' fault that the computers at Tryst are down, but it is someone's fault. And if the computers at Tryst keep going down, it's their job to get better software.
Posted at March 19, 2006 8:43 PM | Comments (10)
Comments
Post a new comment
Go, Barzelay, Go! Take down the evil Big Computer!
-Z-
Posted by: Zeeshan at March 20, 2006 12:24 AM
haha. oh i hear you on this. in fact, it reminds of a certain night when a cd with a video on it took longer to spin up than usual. of course, blame was placed on the cd drive, when in fact, the operator should have just copied it onto the harddrive. if only the harddrive was not full of...stuff.
but i disagree a bit. i dont know if the programmers are always at fault. alot of time, people have unreasonable expectations of computers. they've have become this panacea. people dont realize that there are limits to their use. gigo. and when these expectations arent completely fulfilled, well, the comp is a piece of junk!
i also think that there is an expectation of excellence that is growing as people become more adept with computers. look at the wrath spewed at microsoft everytime a new hole in ie is found. people are demanding accountability. if vista isnt secure, im sure ms will see reperucussions. is it completely fair to draw comparisons to other industries where the products are generally independent of other factors? a program isnt standalone. its gotta sync with the os, with hardware, with other programs. a lawnmower just has to move over grass. pipecleaner has to simply dissolve shit, and the composition of the pipes is standardized.
perhaps cut the software hacks some slack?
Posted by: ghazaly at March 20, 2006 12:37 AM
People def have unreasonable expectations of computers. I worked for a while selling computers at Circuit City, and so many people would return them because "it won't burn a CD," or something like that. Well, yeah, it can't read your mind, fetch a blank disc, choose content, and perform the burn for you. You have to know how to control it.
But I don't see the expectation of excellence you're talking about. The point of my post was that the opposite is the case. There's an expectation of regular failure. Have you heard the old joke, "If the automobile had followed the same development as the computer, a Rolls-Royce would today cost $100, get a million miles per per gallon, and explode once a year killing everyone inside?" And cars are complex systems, though not as complex.
Remember, Ghazaly, there are standards in the computer industry. And though systems must work together, it's actually much easier for computers to handle improper input than it is for cars. Example: Depending on how it's encoded, clicking on a .avi file sometimes causes Windows Explorer to crash. When one clicks on the file, Windows jumps to read the file and create a preview, and if the file isn't properly formatted, instead of simply rejecting the input, Windows tries to display it anyway, and crashes.
Windows XP has been out for many years now, and this happens to me at least once a week. Sure I can expect some bugs. But 99% of the errors come from trusting input data. This shouldn't keep happening. If one out of every twenty shipments of hamburgers McDonald's got were tainted and caused severe diarrhea in customers, McD's would start testing their shipments of hamburgers before serving them.
I know quite well how complex the interactions are between software and hardware, but you'd think we'd have the point-of-sale system figured out by now. And in fact, we do have it figured out. So when one vendor puts out a faulty one, why shouldn't they be liable for the loss of business it causes?
Posted by: David Barzelay at March 20, 2006 12:53 AM
good points.
one thing we have to address is the source of the input. lets take media files. I can hardly presume to know what the designers of windows media player were thinking, but i gotta wonder whether they knew that digital media was going to be coming from every direction of the earth. we have god knows how many ways to encode media, and have you seen how many different codec packs you can, and usually have to dl to play some types of media files? btw, i need to look into the various ways to encode stuff. i depend too much on vlc to take care of anything i throw at it. try it out if you havent. it works wonders on media files.
perhaps they were expecting a standardized encoding system. mcdonalds can control their source. microsoft cant. i think thats the crucial difference. its like forcing mcdonalds to accept meat from any farmer in any country in the world that wanted to sell meat to mcds. would it be fair to hold the company liable for the digestive problems that are sure to follow? its tough to assign liability when the input cant be controlled and the player is forced to accept what the user gives it.
at what point does the program start turning away input? i stopped using windows media player years ago because it refused to play most of the files i wanted to play, the exact solution you are proposing! if ms goes down that path, it will alienate more people than it already has. cant be good for business, neh?
i said that the expectation is developing, and perhaps in a different way than in other industries. instead of harranguing the old producer, people migrate to alternatives. firfeox, vlc, these are the reaction to disappointment with the old standards. i would say its a much more effective way of making the failing companies respond. people simply dont hang around anymore when there are better ways to accomplish their tasks.
i think we might be talking about the reactions of two different groups here as well. the mainstream reaction might be of constant disappointment with computers, like you described in your encounter with the waitress. maybe im describing the reaction of the people who grew up weaned on computers. just something to think about.
Posted by: ghazaly at March 20, 2006 2:19 AM
btw, i love the constantly changing banner and background. i just keep clicking to see what it shifts to.
yes, im bored and avoiding civ pro reading as well.
Posted by: ghazaly at March 20, 2006 2:26 AM
1) If you click on the top banner, it'll take you to a page showing all the banners, so that you don't have to just keep refreshing.
2) I already use VLC as my primary media player. Good suggestion.
3) We're not talking about some rogue file format. We're talking an .avi. And yes, Windows does have control over the input. It must comply with certain Windows standards for Media Player even to attempt to open it, i.e. it must be in big endian byte order, it must get passed a pointer to the start of the file, the file must have certain metadata, it must assume a format, etc. Given all of those requirements, there is no reason Windows ever should crash when previewing an .avi. If Windows encounters a file that isn't well-formed, it is perfectly reasonable for it to fail to preview the file. It is not reasonable for it to crash. Point well-taken about WMP simply failing to play a majority of files, and I'm not saying it shouldn't attempt to play the file. But you know enough about computers to know that the processes using that input data should be isolated from the main Windows runtime, and a crash in a sub-process shouldn't propagate up to a main process. Those errors should be trapped way down in sub-routines. Furthermore, since the file should at least be minimally verified at runtime, not even the sub-processes should crash. Windows should attempt to play the file, and then when it ceases to play properly, stop playing the file. Errors in an .avi should never cause a crash of an entire system.
Posted by: David Barzelay at March 20, 2006 3:10 AM
ouchies!
i agree, that is one screwy error.
man, ive never had wmp crash the os. thats something brand new for me.
the usual wmp response follows the routine you described. so im wondering what exactly it is that forces the crash. is it on the input end or the player end? something within the file itself? like you said, a specific format or encoder could be the answer. weekly pr0n updates are hereby forbidden by our new censor, the windows media player!
to learn the secrets of the .avi...
Posted by: ghazaly at March 20, 2006 4:00 AM
Ever try the All-In-One Codec Pack? I use it with winamp, and its a good pack to have on hand when you reformat.
Posted by: Chris Santoro at March 20, 2006 5:48 PM
So...are you suggesting mentat-like training for people? Or just a reasonable measure of self-sufficiency?
When the blue screen revolution comes, skilled blue-collar workers will be the new elite.
Posted by: Gabriel at March 22, 2006 9:40 PM
Three things:
1) If systems were verified to the level that flight control systems and military applications, they would cost as much. (more than you or I are worth)
2) Not all crashes are caused by bad software design. Sometimes a stray ESD or a funky power fluctuation can blow things to hell. (or cosmic ray screaming through your computer and flipping a RAM bit...this is why some people use ECC RAM)
3a) AVI is a container format, not an actual video format
3b) Most systems just have so many states that it's impossible to test. For example, I made a very minor change to a program last month. I did a small impact analysis and found no problems, but this month somebody's production job failed... the job they were running didn't have a particular attribute. This attribute was only indirectly used in the change, but it crashed anyway. Computers don't care whether you meant to reference a null pointer or not :)
That being said, I do test the hell out of my work. I hate fucking things up.
..ok, that was four.
Posted by: Daniel at March 23, 2006 2:09 AM


