PDA

View Full Version : Pitting the computer nerds who design pop-up messages in cyberbabble!


Valteron
01-06-2007, 09:51 AM
I am fucking sick and tired of pop-up computer error messages designed by computer geeks who are able to understand that normal people do not speak their cyberbabble.

If these people can design computers that do everything but wash the floor, why can't one of them find a way to communicate in plain language to normal people who do not have plastic pocket protectors in the pockets of their plaid shirts and high-water pants with the hems stapled in, who do not have glasses taped in the middle, and who DO get laid once in a while.

Case in point. Just today when I went to print a message in my email, I get the following Pop-up message (I have Windows 98). It reads: Error starting Program.
The SHLWAPI.DLL file is linked to missing export MSVCRT.DLL:_wtol The box also offers me an "OK" button to click on!????

What the fuck is this?????? :mad:

Error starting which program??? :dubious: What in the Hell am I saying "OK" to if I click on the button? :dubious:

Now, I restarted my computer and the pop-up box did not reappear when I performed the same operation.

But what I want to know is, where in outer space is the computer geek who sat down and designed a pop-up box that can appear on millions of computers, and that contains a message that is totally incomprehensible to 99% of the people before whom it will appear?

And there are many of these pop-up messages, all equally confusing.

Do these computer geeks have shit for brains or what is their problem? :mad: :mad: :mad:

Valteron
01-06-2007, 09:53 AM
I am fucking sick and tired of pop-up computer error messages designed by computer geeks who are able to understand that normal people do not speak their cyberbabble.



:smack: Sorry, I meant "unable". These computer poindexters get me so mad I can't type straight. :mad:

Liberal
01-06-2007, 10:06 AM
That's one part of the job I hate most. And it isn't just in reporting it to the users, but to myself. I've devised all sorts of message tables, log files, error classes, and whatnot. But seldom is anything I've designed both handy and informative. The more meat there is to it, the more difficult it is to implement, integrate, and interpret later in maintenance.

But I think the OP makes a valid point. Maybe we should report friendlier messages to the user, and more technical messages to the support staff. (The message really is for the benefit of support people.) Maybe a "More Detail" button, or something. Meanwhile, just tell the user something like: "A problem has occurred in the program that controls your printer."

Polycarp
01-06-2007, 10:12 AM
There is one purpose to those messages, and I do agree they are annoying: you can copy down the technogibberish and relay it to some tech support guy, who can figure out what you need to do from their contents. In your example, he now knows he needs to figure out why you're missing MSVCRT.DLL:_wtol and recover it for you from somewhere.

Even more annoying are the error messages that don't inform you what's wrong in enough detail to fix it, even if you speak Old High Technobabble (which like most people I understand only as a pidgin: "Computer no work right. Missing ARCANE.WTF file. Need find file and put back. All your _.BASs are belong to us."

For example, Windows ME will not run MSN Messenger. Period. (Yeah, two Microsoft products are mutually incompatible. Does this surprise anybody?) But the error message is that "Error: MSNMSGR.EXE is calling an invalid DLL file." Yay! I have now reduced my problem to the fact that MSN Messenger needs to find one of the ten billion freaking DLL files created by Windows programmers over the years -- but not which one. And not even a clue where to look or what for to refine that search.

I'm beginning to get the impression that the story about the guys in a helicopter in the fog and the programmer with the cardboard sign is not a joke but factual.

Absolute
01-06-2007, 10:20 AM
Do these computer geeks have shit for brains or what is their problem? :mad: :mad: :mad:
It comes down to bad user interface design, because you're using software from a company that apparently does not consider it a priority.

Mac OS X, and Mac applications in general, tend to be much better about this - but there are still egregious exceptions.

Revtim
01-06-2007, 10:23 AM
There is a LOT of room for improvement in that area. For example, a friend of mine got a game for Christmas, that installed fine. But when he went to run it, it just gave an error something like "This program requires Pixel Shader 1.1". And that's it.

1) The goddamn install program should have checked for pre-requisites, and stopped before installation.

2) That error message is inadequate to help the average user. What percentage of computer users know that's even a feature of the graphics card? It would have been simplicity itself to use more descriptive text like "This game requires Pixel Shader 1.1, a feature which is not supported by your current graphics card. You will have to upgrade your graphics card to one that supports that feature to play this game."

ed
01-06-2007, 10:37 AM
The problem is that making nice, informative, and understandable messages isn't something that will be done just by being more considerate to laypeople. Useful and informative error messages are sort of the Holy Grail for a lot of programmers, and I'd say that a lot of serious projects spend as much (if not more) of their time trying to architect a way to handle all of the millions of things that go wrong in a way that allows them to report something useful to the user as they do developing the actual features in the first place.

The problem is that programmers can't anticipate all of the millions of potential problems. This means at a certain point, you have to report errors that just tell you what low level operation failed. I'm sure in the OP's case, something very basic failed and the error handler says "show the user what files are missing". The reason is that they probably have no idea why or even how such a thing could happen. I'd be willing to bet that somewhere around that exception in the source code there's a comment like:


// if that didn't work, something is very wrong, but I have no idea what
else {
....
}


I'd also like to point out that if you try too hard to make errors "user friendly" you end up with the equivalent of an idiot light. "Something is broken, press OK to continue." I'm not sure if that's better or worse, but then I'm one of the poindexters mentioned in the OP.

It's definitely something that needs improvement, but it's one of the Big Problems in programming.

ultrafilter
01-06-2007, 10:48 AM
It's a good rant, but I'd like to point out a couple things in the defense of us programmers:

1) Unless you're dealing with a very small company, the programmers didn't write the text. It came from some combination of a technical writer, product manager, UI designer, lawyer, and whatever other groups need to review it. We just copy and paste it into the program.

2) The error message in the OP is a Windows error message, and not something anyone outside of Microsoft has control over. It's actually a pretty good error message if you know what it means, but I can definitely see where a non-programmer would be confused.

Liberal
01-06-2007, 11:52 AM
Ed makes a good point, too. This is a true story, I swear...

Way back, when programming with VB for Windows 3.x, I was helping a guy find a problem in his (goddawful stringy hard-to-read) code. It was the Case (c.f., switch) statement from hell. I pointed out that he had no Case Else clause, and asked what would happen if none of his tests applied. "Oh, that's impossible," he insisted. "There's no possible way the code would ever execute a Case Else."

So just for shits and giggles, I added a Case Else, and put in a Message Box saying something like, "What the hell happened?". We compiled it and delivered to the customer — our biggest account. Sure enough, only a couple of days later, the intercom on my phone beeped. It was the receptionist. "Libby at DraCo says there's a message on her screen asking her what the hell happened."

Of course, that meant we then had the ultimate shit-task of programming — finding a logic error in spaghetti code.

the PC apeman
01-06-2007, 12:19 PM
...
Case in point. Just today when I went to print a message in my email, I get the following Pop-up message (I have Windows 98). It reads: Error starting Program.
The SHLWAPI.DLL file is linked to missing export MSVCRT.DLL:_wtol The box also offers me an "OK" button to click on!????

What the fuck is this?????? :mad:
...What would you like it to say? How much computer savvy should be assumed? Should the "Check engine" light on your car dashboard say something like "use a 10mm socket wrench to remove the oxygen sensor located on the rear driver side of the exhaust manifold and replace it with part #702933849 which can be ordered by calling 800-555-1234 M-F 8-8 ET" plus all relevant diagrams? Not everyone is a computer technician. Not everyone needs to be. Isn't the message you're getting better than a check CPU light? At least you can give a mechanic a clue where to look for the problem.

Captain_C
01-06-2007, 12:36 PM
My personal favorite was crica 1999 trying to boot a new compaq with no keyboard:

"No keyboard found, press F6 to continue."

Ok fuckers, why can't I boot with just a mouse? I see no reason I should have to if I don't want to. Sure, you could disable this message in bios. But to get to BIOS, I need a keyboard... What the fuck do you want me to do then?!!!?!

Dog80
01-06-2007, 01:33 PM
You can Google most error messages and find a solution for your problem quickly.

The error messages I hate the most are those that say "Contact your administrator" and nothing else more useful. Especially when they occur on my home computer!

mks57
01-06-2007, 02:43 PM
The message makes perfect sense to me. Then again, I'm one of those "computer geeks who never get laid".

Your problem is probably caused by electron sludge. As with the pipes in your house, electron sludge can build up in the circuits of your computer, reducing its efficiency and causing errors. The easiest way to solve this problem is to break loose the electron sludge with mechanical shock. Unplug your computer and drop it onto a concrete surface from a height of ten meters. Do this several times. You will no longer be bothered by cryptic error messages.

Jackmannii
01-06-2007, 03:06 PM
I've mentioned this elsewhere, but inanely hostile "error" messages trump incomprehensible ones.

In one form, it's the dire warnings that my computer has performed an ILLEGAL OPERATION and no doubt black-clad cyberswat teams will be descending on my home to haul me away. Whatever happened is "illegal" only in your fuzzy little logic-impaired brains.

Or if, god forbid, I am using medical report software and scroll down to the end, inevitably to be greeted with the message "Attempt to scroll past end of document". I must be reminded that I am a bad boy who ATTEMPTED to immorally run past the end so that I could...what? Is it sort of like peeking under the bathroom door? What illegal sight could I possibly see? Is it the same one I'd potentially see if I committed an "Attempt to scroll past beginning of document" at the other end?

There are some really prissy, controlling little farts who write these sorts of messages, is all.

Declan
01-06-2007, 05:37 PM
What would you like it to say? How much computer savvy should be assumed? Should the "Check engine" light on your car dashboard say something like "use a 10mm socket wrench to remove the oxygen sensor located on the rear driver side of the exhaust manifold and replace it with part #702933849 which can be ordered by calling 800-555-1234 M-F 8-8 ET" plus all relevant diagrams? Not everyone is a computer technician. Not everyone needs to be. Isn't the message you're getting better than a check CPU light? At least you can give a mechanic a clue where to look for the problem.

No its not better , for most things I would dearly like a link to a FAQ starting with the original vendor .

This Faq would either be a hyperlink from the little box that pops up or an input form that I could transcribe the original error message, should a net connection no longer be possible from the computer and I have to use a second computer.

If after the relavent information has been disclosed via the frequently asked questions and it says essentially , bring it in to be serviced, then fine.

Basically until then I have to use a combination of google and several computer forums to see what might solve the various problems.

Declan

Rick
01-06-2007, 06:14 PM
What would you like it to say? How much computer savvy should be assumed? Should the "Check engine" light on your car dashboard say something like "use a 10mm socket wrench to remove the oxygen sensor located on the rear driver side of the exhaust manifold and replace it with part #702933849 which can be ordered by calling 800-555-1234 M-F 8-8 ET" plus all relevant diagrams? Not everyone is a computer technician. Not everyone needs to be. Isn't the message you're getting better than a check CPU light? At least you can give a mechanic a clue where to look for the problem.
Well the check engine light is backed up by stored fault code, that when looked up in the car makers diagnostic system will yield a result like what you ask.
Why doesn't my computer generate a fault code that can be looked up? All I get are these fuck off and die messages (contact admin, illegal operation etc)

the PC apeman
01-06-2007, 06:29 PM
Well the check engine light is backed up by stored fault code, that when looked up in the car makers diagnostic system will yield a result like what you ask.
Why doesn't my computer generate a fault code that can be looked up? All I get are these fuck off and die messages (contact admin, illegal operation etc)
It does. The technician knows where to look for them.

the PC apeman
01-06-2007, 06:46 PM
No its not better...The programmer probably wrote a generic error message that handles a big chunk of the millions of possible problems. The generic {blanks} get filled in appropriately at the time the error occurs:

The {FileA} file is linked to missing export {FileB}:{Function}.

The programmer is not expecting non-technical people to know what to do with that. It's not his job to make every computer user into a technician capable of repairing every problem that could conceivably come up. Would knowing that certain DLL functions were missing really be a help to you? Would you know what to do in every likely case that might cause that? Would a more English-like translation be a help to you? He would have to write a specific error message for every possible combination of things that shouldn't go wrong but might:

The SHLWAPI dynamic link library is not able to access the MSVCRT dynamic link library to use its _wtol function that converts 16-bit unicode characters into 32-bit long integers. The program requesting SHLWAPI to do this will not be able to continue.

Or even more simply as:

One collection of small bits of programming (SHLWAPI.DLL) expected another collection of small bits of programming (MSVCRT.DLL) to be making available a small bit of programming that converts certain representations of letters into certain other representations of numbers (_wtol) but it wasn't available. Therefore, I can't do what you asked me to do.

While his program is running, the programmer is counting on numerous other resources being there and working properly. If he had to stop and check for that at each stop, your software would run so slow it would be unusable. But since it would be too expensive to afford such software, that wouldn't be a problem.

Musicat
01-06-2007, 06:59 PM
While I cuss out those stupid error messages as much as you do, I would like to offer a word or two of explanation.

1. No matter what language you write code in, if an error happens deep in the language interpreter, compiler or run-time package, not your code, it's up to the language developer to provide the error message. This is something that most application developers have no control over, or gloss over the options where they might. Example: if something in the computer (maybe a memory error) causes a glitch in a Basic internal routine, you will typically get an Basic error message, not one from the application developer. These tend to be even more arcane. System and BIOS messages are even worse.

2. Testing for unusual error conditions is not a high priority for most development teams. Getting the product out the door and worrying about it later is. Let the customer do the debugging. He paid for the privilege. :dubious:

3. Some programmers aren't very good, like the one that didn't put an else clause in his case statements. I spend a lot of time writing error handlers and debugging tools; many do not.

Cleophus
01-06-2007, 07:08 PM
I've mentioned this elsewhere, but inanely hostile "error" messages trump incomprehensible ones.

In one form, it's the dire warnings that my computer has performed an ILLEGAL OPERATION and no doubt black-clad cyberswat teams will be descending on my home to haul me away. Whatever happened is "illegal" only in your fuzzy little logic-impaired brains.

Or if, god forbid, I am using medical report software and scroll down to the end, inevitably to be greeted with the message "Attempt to scroll past end of document". I must be reminded that I am a bad boy who ATTEMPTED to immorally run past the end so that I could...what? Is it sort of like peeking under the bathroom door? What illegal sight could I possibly see? Is it the same one I'd potentially see if I committed an "Attempt to scroll past beginning of document" at the other end?

There are some really prissy, controlling little farts who write these sorts of messages, is all.

Are you serious? You think the application is implying you broke a law? And I thought stories about people taking error messages personally were just that.

Nanoda
01-06-2007, 07:38 PM
the PC apeman says what I was going to say, only far less obstreperously.

jackelope
01-06-2007, 08:01 PM
To answer those asking "What do you want it to say?":

I want it to say: "[Name of program] has encountered a problem. If you have tech support available, tell them this: [Long string of technical stuff I don't understand]. If not, here is a Google link that may help you find information on solving this issue yourself: Link (http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=GGLD,GGLD:2004-40,GGLD:en&q=Long+string+of+technical+stuff+I+don%27t+understand)."

In other words, don't just tell me something's wrong; tell me what I should do about it.

Granted, I'm not a programmer and I have no idea how feasible this is. But that's what I want.

Oh, and when I get an error message with technical stuff in it, why can't I select and copy the text on the error message? I end up leaving the error message up, getting a pencil and paper, and writing it down, then typing it into Google. Stone Age, man.

the PC apeman
01-06-2007, 08:43 PM
To answer those asking "What do you want it to say?":

I want it to say: "[Name of program] has encountered a problem. If you have tech support available, tell them this: [Long string of technical stuff I don't understand]. If not, here is a Google link that may help you find information on solving this issue yourself: Link (http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=GGLD,GGLD:2004-40,GGLD:en&q=Long+string+of+technical+stuff+I+don%27t+understand)."

In other words, don't just tell me something's wrong; tell me what I should do about it.

Granted, I'm not a programmer and I have no idea how feasible this is. But that's what I want.

Oh, and when I get an error message with technical stuff in it, why can't I select and copy the text on the error message? I end up leaving the error message up, getting a pencil and paper, and writing it down, then typing it into Google. Stone Age, man.Well the [Name of program] is problematic. In this example it was probably the SHLWAPI.DLL that reported the exception. Helpful? It might have been invoked by a printer driver that might have been invoked by a viewer program that was invoked by the email program the user sees. SHLWAPI.DLL might not be able to "see" the title you would like to have reported.

In this example, it's likely that some other program trashed the MSVCRT.DLL and it went unnoticed until the email print request. Shame on SHLWAPI.DLL for not investigating that?

As far as "what should I do", this is what I'm talking about before. Someone has to write the linked article. But the net effect of such articles is to be a tutorial for user on how to be a technician. I don't think the folks that write software are obligated to educate everyone on how to diagnose and resolve complicated problems. Call a technician or get educated the way technicians do. Don't expect to be spoon fed everything you want to know.

tbdi
01-06-2007, 09:13 PM
There's some amusing reading about this sort of thing under the Errors section of
http://homepage.mac.com/bradster/iarchitect/

lowbrass
01-06-2007, 09:56 PM
What would you like it to say? How much computer savvy should be assumed? Should the "Check engine" light on your car dashboard say something like "use a 10mm socket wrench to remove the oxygen sensor located on the rear driver side of the exhaust manifold and replace it with part #702933849 which can be ordered by calling 800-555-1234 M-F 8-8 ET" plus all relevant diagrams? Not everyone is a computer technician. Not everyone needs to be. Isn't the message you're getting better than a check CPU light? At least you can give a mechanic a clue where to look for the problem.
Actually, that's an interesting thing you bring up. All new cars have OBD-II diagnostic systems. When a malfunction is detected by the computer, it generates an error code, and illuminates the check-engine light. The code can only be read by plugging a special tool into a connector in the car. Most of the codes can be written briefly in plain English, like "Oxygen sensor malfunction" or "Engine misfire cylinder 2". Seems like it would be child's play to simply display the code on the dashboard display instead of just having an idiot light. That would be a lot more helpful than "check engine".

Dinaroozie
01-06-2007, 11:01 PM
My personal favourites are those error messages that are the product of a failed attempt to glue different variables together dynamically into a coherent sentence. Two of the best I've seen:
ERROR: 'undefined' is undefinedandERROR: Couldn't copy file: The file exists.
I've done a fair bit of programming, though, so it just makes me laugh. :D Naturally, no human has sat down and typed these things out like that, thinking it will be of use to someone. Error message reporting software is prone to errors too. The thing to remember is that errors can be internal, too - that is, sometimes you look at your switch statement and absolutely can't imagine when it would fall through to the default clause. So you put an error message at the default because it's good form to do so, but really, there's not much the error message can say besides "Whoa, something is so messed up right now." :)

Bryan Ekers
01-07-2007, 01:37 AM
I find when presented with a recurring error that running the exact text of the warning in quotes through a Google search is extremely useful.

sturmhauke
01-07-2007, 03:40 AM
There are some really prissy, controlling little farts who write these sorts of messages, is all.
It's nothing so malicious as that (not most of the time, anyway). See, there are people who can speak machine, and people who can speak human. People who are fluent in both are relatively rare.

Aquila Be
01-07-2007, 03:51 AM
I find when presented with a recurring error that running the exact text of the warning in quotes through a Google search is extremely useful.

I've actually tried that and got nothing and nowhere.

Every time I log on to my 2 month old Dell, after half an hour of use I invariably get this blue box flash up in the middle of the screen: -

"Error Access violation at 0x01997793 (tried to read from 0x040A1025), Program terminated."

clicking on "OK" seems to solve the problem, whatever it was.

Rick
01-07-2007, 09:07 AM
Actually, that's an interesting thing you bring up. All new cars have OBD-II diagnostic systems. When a malfunction is detected by the computer, it generates an error code, and illuminates the check-engine light. The code can only be read by plugging a special tool into a connector in the car. Most of the codes can be written briefly in plain English, like "Oxygen sensor malfunction" or "Engine misfire cylinder 2". Seems like it would be child's play to simply display the code on the dashboard display instead of just having an idiot light. That would be a lot more helpful than "check engine".
Yes but not all cars have text displays. Also Check engine confuses people enough, having a display that says P0102 isn't going to help.

Shalmanese
01-07-2007, 09:09 AM
What you're asking for is in effect, impossible. First of all, it's helpful to distinguish between errors and bugs. Errors are a known set of conditions under which the program is unable to operate correctly. For example, if you don't have an internet connection or you're graphics card doesn't have the required features to run a game. In such cases, sure, it would be nice for you to get a nice clear message saying exactly what is wrong. Bugs on the other hand are unknown mistakes in the program that causes it to perform incorrectly. If a program encounters a bug, then it can't help but give you an incomprehensible error message. If the program doesn't know what went wrong. If it knew what was wrong, it would be fixed already. The best it can do is to pass on as much information to the original programmers so they can figure out whats going on and fix the bug. You don't need to know what the bug report means because there's nothing you can do to fix the problem. The best you can do is to pass the entire error message on verbatim to the developers and then wait patiently for the next version which should hopefully fix your bug.

mhendo
01-07-2007, 11:10 AM
...and I'd say that a lot of serious projects spend as much (if not more) of their time trying to architect a way to handle all of the millions of things...

<snip>

...but then I'm one of the poindexters mentioned in the OP.Why am i not surprised that the folks who write computer error messages also use "architect" as a verb?

Frylock
01-07-2007, 11:23 AM
Are you serious? You think the application is implying you broke a law? And I thought stories about people taking error messages personally were just that.

Yeah, I can't figure out if that post was a whoosh or not...

-FrL-

ed
01-07-2007, 11:45 AM
Why am i not surprised that the folks who write computer error messages also use "architect" as a verb?

I'm going to have to apologize for that one, but I should point out that I picked up that nasty habit from my time as a corporate drone, not as a geek.

Lightnin'
01-07-2007, 11:53 AM
Ya think that's bad?

At one of my previous jobs, I worked with a very specific program, written by a branch of the company that had gone out of business (basically, we inherited the software). The dead branch, by the way, was based in France.

So, every now and then a totally incomprehensible french error message would pop up. Oh, and of course, nobody in my office spoke french.

BlackKnight
01-07-2007, 12:45 PM
French is bad, but how about Latin (http://www.multicians.org/hodie-natus-est.html)?

slaphead
01-10-2007, 08:00 AM
Heh. Occasionally Notes will fall over and generate an error popup. My favourite is one that just reports
!:# with an OK button below it. Nice.

tdn
01-10-2007, 09:25 AM
If these people can design computers that do everything but wash the floor, why can't one of them find a way to communicate in plain language to normal people who do not have plastic pocket protectors in the pockets of their plaid shirts and high-water pants with the hems stapled in, who do not have glasses taped in the middle, and who DO get laid once in a while.

As a programmer with no pocket protector in my stylish shirt, normal-length pants, 20-20 vision, and a hot girlfriend, I take exception to this insulting characterization. And this stereotype has been going on for far too long. However, we "poindexters" have taken our revenge by supplying you idiot users with cryptic error messages. I am currently working on a worm that targets all whiners (including Valteron) with a special error message. If you click on "OK", a random DLL will be corrupted. If you click on "Cancel", $10 will be deducted from your credit card and deposited into my Swiss bank account.

There is no way to delete or avoid this worm. Resistance is futile.

Do not insult those of us who control your personal and professional information.

tdn
01-10-2007, 09:29 AM
"Oh, that's impossible," he insisted. "There's no possible way the code would ever execute a Case Else."
Lib, that's a clear case of a moron who needs to be bitch slapped until he finds a new profession. Preferably one in management, where such braindeadery is expected.

Dead Badger
01-10-2007, 09:59 AM
Lib, that's a clear case of a moron who needs to be bitch slapped until he finds a new profession.Not an error catching boob, but my favourite anecdote of this sort involves a consultant working with a couple of my friends in a major investment bank's middle-office IT division. He was "helping" with some VB coding manipulating some array data. His code was running sort of slowly, and one of my friends had a look. To access the nth element of an array he had written a for loop that iterated a variable i from 0 to n, checking at each iteration to see if i was equal to n. When it did, he returned the value of arrayname[i].

He was getting paid about £400 a day.

tdn
01-10-2007, 10:03 AM
Dead Badger, not to expose my own braindeadery, but how else would you do it?

ed
01-10-2007, 10:12 AM
Dead Badger, not to expose my own braindeadery, but how else would you do it?

Well, you could just access array[n] directly, but then if you're consulting at an hourly rate it's not nearly as lucrative.

Liberal
01-10-2007, 10:15 AM
Dead Badger, not to expose my own braindeadery, but how else would you do it?If you don't want to feel embarrassed, don't read any further... X = ArrayName(n).

tdn
01-10-2007, 10:22 AM
Ah, I see. Of course.

I guess I was assuming that you would not initially know which element of the array you needed to return.

Liberal
01-10-2007, 10:25 AM
But he stopped when i = n, so he knew.

Liberal
01-10-2007, 10:29 AM
Damn, I almost forgot again. Meant to mention this earlier. Same guy as before, different day. This is a paraphrase of a VB subroutine he wrote:

Sub MySub()

Dim MyVariable

'Lottsa code...

If MyVariable = 5 Then
Exit Sub
End If

End Sub

It would exit the sub anyway, regardless of the value of MyVariable. End Sub immediately follows End If.

Dead Badger
01-10-2007, 10:45 AM
I guess I was assuming that you would not initially know which element of the array you needed to return.Yeah, I could've been clearer. I was going to write the code but I figured I'd cock up the VB syntax and become a victim of Dorky Gaudere.

tdn
01-10-2007, 10:59 AM
I once worked with a guy that wrote code this way:

Sub MySub()
Dim MyVariable
'Lottsa code...
If MyVariable = 5 Then
Exit Sub
End If
End Sub

Yes, with those sorts of indentations. Usually there were far more than 7 lines of code, though. Hundreds or thousands, mostly.

lowbrass
01-10-2007, 01:14 PM
Yes but not all cars have text displays.

It wouldn't cost much to have a simple text display instead of a light bulb behind a little engine logo.

Also Check engine confuses people enough, having a display that says P0102 isn't going to help.
Sure it would. I can easily use that code to find out how the problem will affect driveability of the car and even some possible ways to fix the car, potentially saving me hundreds of dollars.

http://www.obd-codes.com/trouble_codes/generic/p0102-maf-mass-air-flow-circuit-low-input.php

GargoyleWB
01-10-2007, 01:58 PM
That's one part of the job I hate most. And it isn't just in reporting it to the users, but to myself. I've devised all sorts of message tables, log files, error classes, and whatnot. But seldom is anything I've designed both handy and informative.

There's a simple answer really. As a coding golden-rule, any error message that is ever potentially displayable in a dialog box should have *two* messages; a common end-user message, and a developer/techie message.

The OP's example could have been written as:

"User alert: Minesweeper was unable to find a necessary data file and failed to start.
Developer note: The SHLWAPI.DLL file is linked to missing export MSVCRT.DLL:_wtol"

That way, the end-user at least know generally what went wrong, and useful error information is still passed to one who has the expertise to analyze the error.

Liberal
01-10-2007, 02:19 PM
Yeah, that would work if the coder for mindsweeper returned his error messages that way. My understanding (and I could be wrong) was that this was a problem in a tertiary file. A printer driver or something. And then there are SQL Server errors with useless information like: Ambiguous syntax at "'". Or "Field name not found." Why not go ahead and give me what field it is? Or which frigging apostrophe?

And the one that really riles my ass. Errors from VB like: Expected "Then". Well, hell, if you expected it, just add it and go on, dammit!

Voyager
01-10-2007, 02:44 PM
Lib, that's a clear case of a moron who needs to be bitch slapped until he finds a new profession. Preferably one in management, where such braindeadery is expected.
No, no, no. Sales. ;)

Voyager
01-10-2007, 02:51 PM
How many of you have ever tried to write good error messages for a reasonably complex program? The problem is lack of context, and the fact that guessing the cause of the error will totally confuse the user more often than not - since you'll be wrong.

I got a similar error when trying to open a file on the new version of Quicken I just installed on my wife's computer. After a short chat with a support guy who seemed to know someone, he directed me to a hidden error page. It seems that installing over the demo version doesn't work, and you have to reinstall in a new directory. Now, how someone writing the code to open a file would ever guess this is beyond me. I suspect a lot of pages giving resolutions for error messages get written after the code is released and tney see how things are screwed up.

It's better to expect to Google than to expect the error messages to anticipate the root cause of all problems.

DiggitCamara
01-10-2007, 02:55 PM
I've actually tried that and got nothing and nowhere.

Every time I log on to my 2 month old Dell, after half an hour of use I invariably get this blue box flash up in the middle of the screen: -

"Error Access violation at 0x01997793 (tried to read from 0x040A1025), Program terminated."

clicking on "OK" seems to solve the problem, whatever it was.
Not to alarm you, and all, but that error might be a bug-ridden virus or, possibly, spyware. It could be running happily until it meets some unexpected condition and crashes.

tdn
01-10-2007, 03:42 PM
No, no, no. Sales. ;)
It really depends on the hair. Good hair = sales. Bad hair = management.

DiggitCamara
01-10-2007, 04:49 PM
It really depends on the hair. Good hair = sales. Bad hair = management.
Bad teeth=BOFH (http://www.theregister.co.uk/odds/bofh/) :p

iamthewalrus(:3=
01-10-2007, 07:00 PM
One of those computer nerds chiming in to point out that most error messages are not meant for the user. Sure, if you're typing in your email address, and you put a # instead of an @, the error message should let you know that you need to type it back in. That's something you can fix.

When you see a cryptic error message that you don't understand, just imagine that it says "Wow, something went really wrong back there, and there is no way you you can fix it. Here's some technical junk to tell to someone who can fix it for you."

mhendo
01-10-2007, 11:42 PM
When you see a cryptic error message that you don't understand, just imagine that it says "Wow, something went really wrong back there, and there is no way you you can fix it. Here's some technical junk to tell to someone who can fix it for you."Sorry, but that's patently not true.

Over the years, i've had a bunch of error messages which, with some Googling, i've been able to decipher and then fix the problem. Just the other day, my wife's laptop popped up an error message after Windows started up. I wrote done the message, including the error number, and plugged it into Google. Sure enough, it turns out that there was a problem with Windows Defender that i then fixed relatively easily.

This sort of thing has happened a bunch of times. Now, it may be that writing a plain-text, easy-to-understand error message for all possible errors is completely impractical, but it's just plain wrong to suggest that every cryptic error message represents some sort of catastrophic problem that only a paid expert can fix.

Aquila Be
01-11-2007, 01:21 AM
Not to alarm you, and all, but that error might be a bug-ridden virus or, possibly, spyware. It could be running happily until it meets some unexpected condition and crashes.

Good Lord.

If that's right I must have got it in the first two weeks.
I have Spyware Detector, supposed to be one of the best (and not free as my unofficial advisor claims the free stuff is not worth it).

Also McAfee.

I think I'll wait for a while and see. The tower unit weighs about three tons.

Aquila Be
01-11-2007, 01:35 AM
The tower unit weighs about three tons.

Sorry. I'm exaggerating.

Dead Badger
01-11-2007, 05:51 AM
Good Lord.

If that's right I must have got it in the first two weeks.Well I wouldn't start panicking; it's just *some* program crashing, there's really no indication at all that it's malicious. It might be a bit of some messenger program, or some of the rubbish they tend to install to update RealPlayer, or QuickTime, or Acrobat. There's a million innocent things it could be.

Nava
01-11-2007, 06:12 AM
My favourite error:

trying to install 'net-access software, the modem, etc. - it doesn't work and I get a popup telling me to contact support at http:/ /www.weresocute.com

No phone number, just the linky. Eeeeh... you know... what I'm trying to install is precisely the stuff I need to be able to go anywhere that begins with http (and other interesting and adventurous locations).

Liberal
01-11-2007, 06:25 AM
Yeah, that's like the one that's something like "Keyboard not found. Press Escape to continue."

Nava
01-11-2007, 06:32 AM
Yeah, although in my case it's definitely Marketing's fault. I'll own up to being oversensitive about it right now, too, after receiving it daily for some 3 weeks (every time that the modem said "uh, can't find a live phone line"). That's the time it took for my current ISP to figure out that a piece outside my apartment needed replacing.

No other ISPs available in the area. But I've gotten those same messages pretty much every time that the computer could not establish the initial connection, apparently all those guys in Marketing went to the same school.

ed
01-11-2007, 09:07 AM
Now, it may be that writing a plain-text, easy-to-understand error message for all possible errors is completely impractical, but it's just plain wrong to suggest that every cryptic error message represents some sort of catastrophic problem that only a paid expert can fix.

It's not so much that it's impractical, it's that for the vast majority of error conditions it's completely impossible to know what caused the problem while the software is in development. In fact, a lot of horrible error messages I've seen can be partly attributed to an attempt by the programmer to guess at a likely cause (which ends up being wrong) which can result in some hilariously misleading messages. All you can do as a programmer is figure out some sensible way to present the actual failure information in as useful a manner as possible.

Let's say a program has a component that has to retrieve some information for the user, behind the scenes. This program calls a function called "get the user's information". This function in turn calls a function from some library called "open my information file", and this function in turn calls a system function called "open a file on disk and read the contents".

Imagine this last step fails, the file is not there for some reason. As a programmer, I have a bit of a problem: I have no idea in the world why or how that file went missing, so I have to try and decide what information to give. The obvious options are:

1) Report the most specific error that can be found: when the system is asked to "open a file on disk and read the contents" and it fails, report that error. This results in messages like the OP's, where it may be technically accurate ("system could not find file BLAH_12345ABC.FOO" or something), yet completely obtuse.

2) Report the least specific error. That is, when the main program calls the function "get the user's information", report that it failed. This is seemingly more useful, because it tells the user what it couldn't do, but in reality this is the equivalent of a "check engine" light. Since the underlying system error is hidden, and it could be one of hundreds or thousands of errors, it means the user is left unable to do anything himself.

3) Report an error including information from the whole "stack" of function calls. In this case, report that "getting the user's information failed: getting the information file failed: the file could not be found". This sounds great, and it's what a lot of applications are starting to do these days, but in practice it's very difficult to make work correctly, because in real applications it's not a simple 3 layer stack like this. What frequently happens is you get 50 lines of technical gibberish, which includes errors from every level of the function leading from most to least specific. My experience is that this isn't any more readable for non-techie users.

In my own work I've been trying diligently to make the third approach work, and in some cases I've pulled it off, but it's very hard to make work for certain kinds of failures. I think this is something that should improve slowly over time, but there's no easy fix.

Oh, and I should point out that badly implemented error handling (iuncluding unnecessarily obtuse or outright silly messages) does, in fact, infuriate us nerds, too. Check out the Pop-up Potpourri regular feature over at www.thedailywtf.com to see nerds making fun of such things.

the PC apeman
01-11-2007, 09:49 AM
Here's an example I encountered earlier this week. I'm helping a customer with an older program written in the Windows 3.x or 9x days. Meaningful support for this problem from the publisher has dried up. My customer is trying to run this program on new Windows XP computers and gets these two messages:
The application or DLL C:\xyzcorp\wrkspell\xtras\rtkkyf.x32 is not a valid Windows Image. Please check this against your installation diskette.
This program requires at least 3MB of free virtual memory to run.
There's nothing wrong with the program. It runs fine on other computers on the same network. It's just that the programmer didn't foresee his work running on a then non-existent Windows XP machine. He wouldn't have been able to tell you how to configure Windows XP to use "Compatibility Mode". He wouldn't have been able to tell you that you need to lower your initial virtual memory instead of adding more. It is simply impossible for some error messages to convey the necessary steps to resolve the problem.

Telemark
01-11-2007, 10:18 AM
My favorite easy-to-understand error messages:

"Lint's little mind is blown" - This was from the original BSD Unix implementation, I had to make it nicer for the DEC release.

And the all time best:

"Data potato - Doo Wop, Doo Wop." - On the old Dartmouth Avatar editing terminal back around 1983. That was the unrecoverable failure message. It was very soothing when you'd just lost a few hours of work.

DiggitCamara
01-11-2007, 10:31 AM
Well I wouldn't start panicking; it's just *some* program crashing, there's really no indication at all that it's malicious. It might be a bit of some messenger program, or some of the rubbish they tend to install to update RealPlayer, or QuickTime, or Acrobat. There's a million innocent things it could be.

Couldn't agree more. That's why I wrote:

Not to alarm you, and all, (...) :D

mks57
01-11-2007, 10:42 AM
My favorite error message:

urk

Used for a fatal error. What sound would you make if a knife was plunged into your back?

Musicat
01-11-2007, 01:31 PM
This program requires at least 3MB of free virtual memory to run.
There's nothing wrong with the program. It runs fine on other computers on the same network. It's just that the programmer didn't foresee his work running on a then non-existent Windows XP machine. He wouldn't have been able to tell you how to configure Windows XP to use "Compatibility Mode". He wouldn't have been able to tell you that you need to lower your initial virtual memory instead of adding more. A good programmer might have approached the problem differently.

Could he have forseen greater memory sizes? Absolutely. He may have checked a memory size and instead of parsing it as three possibilities (greater, lesser, exactly right), ignored one of those. Or failed to recognize that a memory size of zero was probably misleading.

Or the error message he wrote could have said, "Available memory appears to be X as reported by the opsys. You need Y to continue..." which would have been substantually better.

Doesn't take a genius to handle SOME future errors, but there is as much a skill in this regard as there is in designing perky, animated graphics.

the PC apeman
01-11-2007, 01:40 PM
A good programmer might have approached the problem differently.

Could he have forseen greater memory sizes? Absolutely. He may have checked a memory size and instead of parsing it as three possibilities (greater, lesser, exactly right), ignored one of those. Or failed to recognize that a memory size of zero was probably misleading.

Or the error message he wrote could have said, "Available memory appears to be X as reported by the opsys. You need Y to continue..." which would have been substantually better.

Doesn't take a genius to handle SOME future errors, but there is as much a skill in this regard as there is in designing perky, animated graphics.All true. He probably used a data type that wasn't up to the task of describing today's vm sizes. Kind of like a Y2K bug. That very well may be pit-worthy. Given that decision, more detailed information in the error message would give "interesting" results since it'd likely be using the same data types.

iamthewalrus(:3=
01-11-2007, 03:24 PM
Sorry, but that's patently not true.

Over the years, i've had a bunch of error messages which, with some Googling, i've been able to decipher and then fix the problem. Just the other day, my wife's laptop popped up an error message after Windows started up. I wrote done the message, including the error number, and plugged it into Google. Sure enough, it turns out that there was a problem with Windows Defender that i then fixed relatively easily.Sorry, you're right. I didn't mean to suggest that no one could fix their own computer, and the procedure you describe is exactly what I do when I get an error message that I don't understand. With the example in the OP, even though I understand exactly what's happening (some library was missing), I'd still have to go to Google to see whether I need a replacement .dll or a different version, or if some other programs I had installed were simply incompatible.

But the OP is complaining about an error message that's more specific than he understands. That's just silly.