How To Ask Questions The Smart Way
The Art of Asking Questions
Copyright (C) 2001 by Eric S. Raymond
Chinese version Copyleft 2001 by D.H.Grand(nOBODY/Ginux)
English version: http://www.tuxedo.org/~esr/faqs/smart-questions.html
Thanks to Eric for his patient guidance and consent, this article was able to be completed and published. The copyright of the English version belongs to Eric Steven Raymond,
and the copyright of the Chinese version belongs to D.H.Grand.
Contents
Introduction
Before You Ask
How To Ask
Choose the right forum carefully
Try to use mailing lists
Use proper wording, correct grammar, and accurate spelling
Send questions in an easy-to-read format
Use meaningful, specific subject headers
Be precise and informative about your problem
Volume is not precision
Describe the symptoms, not your guesses
Describe your problem's symptoms in chronological order
Don't ask people to reply by private email
Be explicit about the question you have
Don't ask questions that should be solved by using a little brainpower
Prune pointless queries
Courtesy never hurts, and sometimes helps
Follow up with a brief note on the solution
How To Interpret Answers
RTFM and STFW: go find out for yourself
If you don't understand...
Dealing with rudeness
On not reacting like a loser
How To Ask Smart Questions
Good and Bad Questions
If You Can't Get An Answer
====
Introduction
====
In the world of hackers, what kind of answer you get to a technical question depends on the difficulty of digging out the answer, and just as much on the way you ask. This guide is meant to help you improve your way of asking questions, so that you can get the answer you most want.
First of all, you must understand that hackers really only like challenging problems, or good questions that stimulate their thinking. Otherwise, what are we even here for? If you have a good question worth chewing over again and again, we will naturally be very grateful. Good questions are a stimulus, a gift, they can improve our understanding, and they often expose problems we had never noticed or thought about before. To hackers,
“Good question!” is heartfelt, high praise.
Although hackers are notorious for scorning simple questions and for being unfriendly, and at times it may seem as though we are hostile to newbies and to those lacking knowledge, that is not really the case.
We do not wish to conceal our contempt for certain kinds of people -- those who refuse to think, or who do not do what they should before asking questions. Such people only murder time -- they only want to take, never give, and pointlessly consume our time, time that we could have spent on more interesting problems or people more worth answering. We call such people “losers” (for historical reasons, we sometimes
spell it “lusers”).
We also know that many people only want to use the software we write, and have no interest in technical details. For most people, a computer is merely a tool, a means to an end; they have more important things to do, and more important lives to live. We understand that, and do not expect everyone to be interested in the technical issues that fascinate us. However, our style of answering questions is aimed at
a different group -- people who are interested, and willing to actively participate in solving problems. This will not change, nor should it change; if it did, we would lose the efficiency that we pride ourselves on.
To a large extent, we are volunteers, taking time out of our busy lives to answer questions, and we are often
flooded with them. So we ruthlessly filter out some topics, especially discarding those who look like losers, in order to use our time more efficiently to answer the questions of winners.
If you feel our over-arrogant attitude is unpleasant and makes you feel wronged, try putting yourself in our shoes.
We are not asking you to bow down to us -- in fact, most of us like nothing more than fair exchange. As long as you make a small effort to meet the most basic requirements, we welcome you into our culture. But having us help people who are unwilling to help themselves
is meaningless. If you cannot accept this kind of “discrimination”, we suggest you spend some money and sign a technical support contract with a commercial company instead of begging hackers for help.
If you decide to ask us for help, of course you do not want to be seen as a loser, much less become one of them. The best way to get an effective answer right away is to ask like a winner -- smart, confident, with a clear way of thinking about solving the problem, only occasionally needing a bit of help on a specific issue.
(Comments on improving this guide are welcome. Any suggestions please E-mail to esr@thyrsus.com, however
please note that this article is not a general guide to netiquette, and I will usually reject suggestions that do not help people get useful answers in technical forums.)
(Of course, if you write Chinese, you'd better send it to DHGrand@hotmail.com ;-)
========
Before You Ask
========
Before asking a technical question by email, newsgroup, or chatroom, check whether you have done the following:
1. Read the manual all the way through, and try to find the answer yourself.
2. Look for the answer in the FAQ (a well-maintained FAQ can cover almost everything
.
3. Search the web (I personally recommend google~~~).
4. Ask skilled friends around you.
When you ask your question, first explain what you have done before that point; this helps establish your image: you are not a beggar trying to get something for nothing, and you do not want to waste other people's time. It is even better if you can show what you learned from those steps. If the person asking can learn something from the answer, we are more willing to answer.
Think things through carefully and prepare your question well. Hasty questions get only hasty answers, or no answers at all. The more you show the effort you put into solving the problem before seeking help, the more likely you are to get substantial help.
Be careful not to ask the wrong question. If your question is based on a wrong assumption, an ordinary hacker (J. Random
Hacker) will usually answer you with a pointless literal explanation, while thinking “stupid question...”, hoping that you will learn something from the answer to your question (rather than the answer you wanted).
Never assume you are entitled to an answer; you are not. After all, you are not paying anything for this service. You must “earn” an answer yourself by asking a substantial, interesting, thought-provoking question -- one that potentially contributes to the experience of the community, rather than merely passively demanding knowledge from others.
On the other hand, showing that you are willing to do something in the process of finding the answer is a very good beginning.
“Can anyone give me a hint?”, “What am I missing in this example?” and “What should I check?” are more likely to get answers than “Please post the exact procedure.” Because you appear to have the ability and determination to finish it if someone just points you in the right direction.
========
How To Ask
========
------------
Choose the right forum carefully
------------
Choose where you ask with care. If you do something like the following, you will very likely be ignored or regarded as a loser:
1. Post your question in a forum where it is completely irrelevant
2. Post a very basic question in a forum discussing advanced techniques; or vice versa
3. Cross-post to too many different newsgroups
Hackers often delete questions asked in the wrong place, in order to protect their communities from being flooded by masses of unrelated posts.
You wouldn't want your post to get cut down like that, would you?
Generally speaking, a question posted to a carefully chosen public forum is more likely to get useful answers than one sent to a closed little circle. There are several reasons for this. One is that public forums have more potential answerers; another is that public forums have a larger audience. Hackers would rather let as many people as possible -- rather than just one or two limited individuals -- benefit from the answer.
----------------
Try to use mailing lists
----------------
If a project has its own development mailing list, send your question to that mailing list instead of to some developer, even if you know very well who is most likely to answer your question. Carefully check the project documentation and homepage to find the mailing list address. There are four reasons for this:
1. Any good question worth asking one developer is worth putting before the whole development community. Conversely, if
you think the question is not worth bringing up on the mailing list, then there is no reason to bother any individual developer with it.
2. Asking on the mailing list helps distribute the developers' workload. A particular developer (especially if he is the project lead) may be too busy to answer your question.
3. Most mailing lists have archive history, and those archives can be searched by search engines. People can find your question and its answer there instead of asking the same question over and over on the list.
4. If a certain question gets asked frequently, developers can use that fact to improve the documentation or improve the software, thereby reducing user confusion. But if questions are always asked privately, no one can get an overall grasp of the situation.
If you cannot find the mailing list address for the project and can only see the project maintainer, then write to the
maintainer. In that case, don't assume the mailing list does not exist. In your letter, make it clear that you have
done your best to look for it and still could not find it. Also make it clear that you do not mind if the message is forwarded to others. (Most people think private mail should remain private, even if there is nothing in it that needs to be kept secret. Allowing your message to be forwarded gives the recipient a way to handle your mail.)
----------------------------
Use proper wording, correct grammar, and accurate spelling
----------------------------
Experience tells us that careless writers are usually sloppy thinkers as well (I am willing to bet on it).
Answering questions from careless people is hardly worth it; we would rather spend our time elsewhere.
Therefore, it is very important to state your question clearly and fully. If you find that too troublesome, we will also be too lazy to pay attention to you. Be careful in choosing your words. You do not have to use stiff, formal language -- in fact, hacker
culture values informality. Use slang accurately and speak with humor if you like, but do not misuse it;
you must show that you are thinking and paying attention.
Correct spelling, punctuation, and capitalization matter. Don't confuse “its” and “it's”, or
“loose” and “lose”. Do not write entirely in uppercase; that is regarded as rude shouting (all lowercase is not much better either, because it makes reading difficult. Alan Cox
can get away with all lowercase, but you can't).
More generally, if your question is written like
a semi-literate person, you will very likely be ignored. If you write like
a cracker (a pj enthusiast) or a script kiddie (someone who only uses ready-made tools to make trouble), you are absolutely asking for trouble yourself; you are guaranteed to get nothing but merciless rejection (or, at best, a whole pile of sarcastic and mocking “help”).
If you are asking in a forum that uses a language other than your native one, you may make a few minor spelling and grammar mistakes -- but you absolutely must not be careless in your thinking (yes, we can tell the difference). Also, unless you know exactly what language your answerers use, please use English. Hackers in a hurry often simply skip questions they can't read, and English is the working language of the Internet. Using English can
reduce the risk of your question being thrown away unread.
------------------
Send questions in an easy-to-read format
------------------
If you make your question hard to read and understand, it will be more easily ignored. So you should:
1. Use plain text email, do not use HTML (turning off HTML is not hard).
2. MIME attachments are usually okay, but they must have real content (for example attached source files or
patches), not just file templates produced by your mail client (for example a copy of your email).
3. Do not put all your questions in one giant paragraph with constant line wrapping. (That makes it hard for the person replying to answer only
part of the question; even if they can answer all of it, I would still prefer things to be clearly organized one by one
. It is very
likely that the recipient can only read mail on an 80-character-wide text display, so set your line wrap to within 80 characters accordingly.
4. Do not use MIME Quoted-Printable encoding in English-language forums; this encoding is
very necessary for languages that ASCII cannot represent, but many mail agents do not support it. In that
case, the page full of “=20” symbols breaking up the text is ugly and distracting.
5. Never expect hackers to enjoy reading closed proprietary file formats, such as M$ Word
format. Most hackers react to this the same way you would if someone piled steaming pig dung on your doorstep (meaning
no one will step through your door -- translator's note).
6. If you send mail from a Windows machine, turn off M$'s stupid “smart quoting”
feature. This will save you from stuffing garbage characters into your mail.
----------------------------
Use meaningful, specific subject headers
----------------------------
On a mailing list or in a newsgroup, a subject line within about 50 characters is the golden chance to catch the attention
of experienced experts. Don't waste that chance with rambling “Help me” (let alone obnoxious things like “Save me!!!!!”).
Do not imagine you can move us by the depth of your suffering.
Do not use blank space instead of describing the problem, not even for a very short description.
Stupid question:
Save me! My laptop won't display properly!
Smart question:
Deformed mouse cursor under XFree86 4.1, Fooware MV1005 display chip.
If you ask a question in a reply, remember to modify the subject line to show there is a question inside. A question
that looks like “Re: test” or “Re: new bug” is hard to attract enough attention. Also, quote and trim the previous content
to give new readers some clue.
------------------
Be precise and informative about your problem
------------------
1. Carefully and clearly describe the symptoms.
2. Provide the environment in which the problem occurs (machine specs, operating system, application, and anything else).
3. Explain how you researched and tried to understand the problem before asking.
4. Explain what steps you took to try to solve it before asking.
5. List recent hardware or software changes that might be relevant.
Try to imagine how a hacker would question you in return, and answer those questions in advance when you ask.
Simon Tatham wrote an excellent short article called “How to Report Bugs Effectively”. I strongly recommend you read it too.
--------
Volume is not precision
--------
You need to provide precise and useful information. This does not mean you should simply dump tons of broken code or data
verbatim into your question. If you have a huge and complicated test case, try to trim it down as much as possible.
This is useful in at least three ways. First, showing that you made an effort to simplify the problem increases your
chances of getting an answer; second, simplifying the problem increases your chances of getting a useful answer; third, in the process of refining
your bug report, you may discover the problem yourself or correct it.
------------------
Describe the symptoms, not your guesses
------------------
It does not help hackers if you tell them what you think caused the problem. (If your guess were that useful, would you still
need to ask others for help?) So make sure you tell them the symptoms of the problem exactly as they are, and do not mix in your
own interpretations and deductions. Let the hackers diagnose it.
Stupid question:
I keep getting SIG11 errors during kernel compilation. I suspect some flying wire is touching a trace on the motherboard.
What is the best way to check for that?
Smart question:
I built my own K6/233 system, with an FIC-PA2007 motherboard (VIA Apollo VP2 chipset), 256MB
Corsair PC133
SDRAM. During kernel compilation I get frequent SIG11 errors. It starts happening after the machine has been on for 20 minutes; it never
happens within the first 20 minutes after boot. Rebooting does not help, but after powering it off overnight it will work for another 20 minutes. I have replaced all the
memory, with no effect. A typical compile log from the relevant part is as follows...
------------------
Describe your problem's symptoms in chronological order
------------------
The clues most helpful for finding a problem often lie in the series of actions right before it happened, so your explanation
should include the steps you took and the computer's reactions, up to the point where the problem appeared. In command-line cases, keeping a session log (for example using the script tool), and quoting the relevant twenty or so commands can be very helpful.
If the crashing program has diagnostic options (for example using -v to switch to verbose mode), try to think carefully about which option to choose
so that the session log contains useful debugging information.
If your explanation is long (more than four paragraphs), it may help to briefly summarize the problem at the beginning, and then describe it in chronological order. That way hackers will know what to look for in your description.
--------------
Don't ask people to reply by private email
--------------
Hackers believe problem solving should be a public, transparent process. As long as any more perceptive person notices that an answer is incomplete or incorrect, the original answer can and should be corrected. Also, the person answering gets the reward they deserve through having their skill and knowledge noticed and accepted by everyone.
If you ask someone to reply to you privately, you undermine both the process and the reward system. Don't make that request. It is
the answerer's right to choose whether to reply privately -- if they do choose that, it is usually because they think the answer is too obvious or has bad public implications, and others will not be interested.
There is only one limited exception: if you expect to receive a lot of similar replies, you can say, “Mail the answer to me, and I will summarize it.” Saving the mailing list or newsgroup from a flood of duplicate posts
is very gentlemanly -- but remember to keep your promise to summarize.
The Art of Asking Questions
Copyright (C) 2001 by Eric S. Raymond
Chinese version Copyleft 2001 by D.H.Grand(nOBODY/Ginux)
English version: http://www.tuxedo.org/~esr/faqs/smart-questions.html
Thanks to Eric for his patient guidance and consent, this article was able to be completed and published. The copyright of the English version belongs to Eric Steven Raymond,
and the copyright of the Chinese version belongs to D.H.Grand.
Contents
Introduction
Before You Ask
How To Ask
Choose the right forum carefully
Try to use mailing lists
Use proper wording, correct grammar, and accurate spelling
Send questions in an easy-to-read format
Use meaningful, specific subject headers
Be precise and informative about your problem
Volume is not precision
Describe the symptoms, not your guesses
Describe your problem's symptoms in chronological order
Don't ask people to reply by private email
Be explicit about the question you have
Don't ask questions that should be solved by using a little brainpower
Prune pointless queries
Courtesy never hurts, and sometimes helps
Follow up with a brief note on the solution
How To Interpret Answers
RTFM and STFW: go find out for yourself
If you don't understand...
Dealing with rudeness
On not reacting like a loser
How To Ask Smart Questions
Good and Bad Questions
If You Can't Get An Answer
====
Introduction
====
In the world of hackers, what kind of answer you get to a technical question depends on the difficulty of digging out the answer, and just as much on the way you ask. This guide is meant to help you improve your way of asking questions, so that you can get the answer you most want.
First of all, you must understand that hackers really only like challenging problems, or good questions that stimulate their thinking. Otherwise, what are we even here for? If you have a good question worth chewing over again and again, we will naturally be very grateful. Good questions are a stimulus, a gift, they can improve our understanding, and they often expose problems we had never noticed or thought about before. To hackers,
“Good question!” is heartfelt, high praise.
Although hackers are notorious for scorning simple questions and for being unfriendly, and at times it may seem as though we are hostile to newbies and to those lacking knowledge, that is not really the case.
We do not wish to conceal our contempt for certain kinds of people -- those who refuse to think, or who do not do what they should before asking questions. Such people only murder time -- they only want to take, never give, and pointlessly consume our time, time that we could have spent on more interesting problems or people more worth answering. We call such people “losers” (for historical reasons, we sometimes
spell it “lusers”).
We also know that many people only want to use the software we write, and have no interest in technical details. For most people, a computer is merely a tool, a means to an end; they have more important things to do, and more important lives to live. We understand that, and do not expect everyone to be interested in the technical issues that fascinate us. However, our style of answering questions is aimed at
a different group -- people who are interested, and willing to actively participate in solving problems. This will not change, nor should it change; if it did, we would lose the efficiency that we pride ourselves on.
To a large extent, we are volunteers, taking time out of our busy lives to answer questions, and we are often
flooded with them. So we ruthlessly filter out some topics, especially discarding those who look like losers, in order to use our time more efficiently to answer the questions of winners.
If you feel our over-arrogant attitude is unpleasant and makes you feel wronged, try putting yourself in our shoes.
We are not asking you to bow down to us -- in fact, most of us like nothing more than fair exchange. As long as you make a small effort to meet the most basic requirements, we welcome you into our culture. But having us help people who are unwilling to help themselves
is meaningless. If you cannot accept this kind of “discrimination”, we suggest you spend some money and sign a technical support contract with a commercial company instead of begging hackers for help.
If you decide to ask us for help, of course you do not want to be seen as a loser, much less become one of them. The best way to get an effective answer right away is to ask like a winner -- smart, confident, with a clear way of thinking about solving the problem, only occasionally needing a bit of help on a specific issue.
(Comments on improving this guide are welcome. Any suggestions please E-mail to esr@thyrsus.com, however
please note that this article is not a general guide to netiquette, and I will usually reject suggestions that do not help people get useful answers in technical forums.)
(Of course, if you write Chinese, you'd better send it to DHGrand@hotmail.com ;-)
========
Before You Ask
========
Before asking a technical question by email, newsgroup, or chatroom, check whether you have done the following:
1. Read the manual all the way through, and try to find the answer yourself.
2. Look for the answer in the FAQ (a well-maintained FAQ can cover almost everything
. 3. Search the web (I personally recommend google~~~).
4. Ask skilled friends around you.
When you ask your question, first explain what you have done before that point; this helps establish your image: you are not a beggar trying to get something for nothing, and you do not want to waste other people's time. It is even better if you can show what you learned from those steps. If the person asking can learn something from the answer, we are more willing to answer.
Think things through carefully and prepare your question well. Hasty questions get only hasty answers, or no answers at all. The more you show the effort you put into solving the problem before seeking help, the more likely you are to get substantial help.
Be careful not to ask the wrong question. If your question is based on a wrong assumption, an ordinary hacker (J. Random
Hacker) will usually answer you with a pointless literal explanation, while thinking “stupid question...”, hoping that you will learn something from the answer to your question (rather than the answer you wanted).
Never assume you are entitled to an answer; you are not. After all, you are not paying anything for this service. You must “earn” an answer yourself by asking a substantial, interesting, thought-provoking question -- one that potentially contributes to the experience of the community, rather than merely passively demanding knowledge from others.
On the other hand, showing that you are willing to do something in the process of finding the answer is a very good beginning.
“Can anyone give me a hint?”, “What am I missing in this example?” and “What should I check?” are more likely to get answers than “Please post the exact procedure.” Because you appear to have the ability and determination to finish it if someone just points you in the right direction.
========
How To Ask
========
------------
Choose the right forum carefully
------------
Choose where you ask with care. If you do something like the following, you will very likely be ignored or regarded as a loser:
1. Post your question in a forum where it is completely irrelevant
2. Post a very basic question in a forum discussing advanced techniques; or vice versa
3. Cross-post to too many different newsgroups
Hackers often delete questions asked in the wrong place, in order to protect their communities from being flooded by masses of unrelated posts.
You wouldn't want your post to get cut down like that, would you?
Generally speaking, a question posted to a carefully chosen public forum is more likely to get useful answers than one sent to a closed little circle. There are several reasons for this. One is that public forums have more potential answerers; another is that public forums have a larger audience. Hackers would rather let as many people as possible -- rather than just one or two limited individuals -- benefit from the answer.
----------------
Try to use mailing lists
----------------
If a project has its own development mailing list, send your question to that mailing list instead of to some developer, even if you know very well who is most likely to answer your question. Carefully check the project documentation and homepage to find the mailing list address. There are four reasons for this:
1. Any good question worth asking one developer is worth putting before the whole development community. Conversely, if
you think the question is not worth bringing up on the mailing list, then there is no reason to bother any individual developer with it.
2. Asking on the mailing list helps distribute the developers' workload. A particular developer (especially if he is the project lead) may be too busy to answer your question.
3. Most mailing lists have archive history, and those archives can be searched by search engines. People can find your question and its answer there instead of asking the same question over and over on the list.
4. If a certain question gets asked frequently, developers can use that fact to improve the documentation or improve the software, thereby reducing user confusion. But if questions are always asked privately, no one can get an overall grasp of the situation.
If you cannot find the mailing list address for the project and can only see the project maintainer, then write to the
maintainer. In that case, don't assume the mailing list does not exist. In your letter, make it clear that you have
done your best to look for it and still could not find it. Also make it clear that you do not mind if the message is forwarded to others. (Most people think private mail should remain private, even if there is nothing in it that needs to be kept secret. Allowing your message to be forwarded gives the recipient a way to handle your mail.)
----------------------------
Use proper wording, correct grammar, and accurate spelling
----------------------------
Experience tells us that careless writers are usually sloppy thinkers as well (I am willing to bet on it).
Answering questions from careless people is hardly worth it; we would rather spend our time elsewhere.
Therefore, it is very important to state your question clearly and fully. If you find that too troublesome, we will also be too lazy to pay attention to you. Be careful in choosing your words. You do not have to use stiff, formal language -- in fact, hacker
culture values informality. Use slang accurately and speak with humor if you like, but do not misuse it;
you must show that you are thinking and paying attention.
Correct spelling, punctuation, and capitalization matter. Don't confuse “its” and “it's”, or
“loose” and “lose”. Do not write entirely in uppercase; that is regarded as rude shouting (all lowercase is not much better either, because it makes reading difficult. Alan Cox
can get away with all lowercase, but you can't).
More generally, if your question is written like
a semi-literate person, you will very likely be ignored. If you write like
a cracker (a pj enthusiast) or a script kiddie (someone who only uses ready-made tools to make trouble), you are absolutely asking for trouble yourself; you are guaranteed to get nothing but merciless rejection (or, at best, a whole pile of sarcastic and mocking “help”).
If you are asking in a forum that uses a language other than your native one, you may make a few minor spelling and grammar mistakes -- but you absolutely must not be careless in your thinking (yes, we can tell the difference). Also, unless you know exactly what language your answerers use, please use English. Hackers in a hurry often simply skip questions they can't read, and English is the working language of the Internet. Using English can
reduce the risk of your question being thrown away unread.
------------------
Send questions in an easy-to-read format
------------------
If you make your question hard to read and understand, it will be more easily ignored. So you should:
1. Use plain text email, do not use HTML (turning off HTML is not hard).
2. MIME attachments are usually okay, but they must have real content (for example attached source files or
patches), not just file templates produced by your mail client (for example a copy of your email).
3. Do not put all your questions in one giant paragraph with constant line wrapping. (That makes it hard for the person replying to answer only
part of the question; even if they can answer all of it, I would still prefer things to be clearly organized one by one
. It is very likely that the recipient can only read mail on an 80-character-wide text display, so set your line wrap to within 80 characters accordingly.
4. Do not use MIME Quoted-Printable encoding in English-language forums; this encoding is
very necessary for languages that ASCII cannot represent, but many mail agents do not support it. In that
case, the page full of “=20” symbols breaking up the text is ugly and distracting.
5. Never expect hackers to enjoy reading closed proprietary file formats, such as M$ Word
format. Most hackers react to this the same way you would if someone piled steaming pig dung on your doorstep (meaning
no one will step through your door -- translator's note).
6. If you send mail from a Windows machine, turn off M$'s stupid “smart quoting”
feature. This will save you from stuffing garbage characters into your mail.
----------------------------
Use meaningful, specific subject headers
----------------------------
On a mailing list or in a newsgroup, a subject line within about 50 characters is the golden chance to catch the attention
of experienced experts. Don't waste that chance with rambling “Help me” (let alone obnoxious things like “Save me!!!!!”).
Do not imagine you can move us by the depth of your suffering.
Do not use blank space instead of describing the problem, not even for a very short description.
Stupid question:
Save me! My laptop won't display properly!
Smart question:
Deformed mouse cursor under XFree86 4.1, Fooware MV1005 display chip.
If you ask a question in a reply, remember to modify the subject line to show there is a question inside. A question
that looks like “Re: test” or “Re: new bug” is hard to attract enough attention. Also, quote and trim the previous content
to give new readers some clue.
------------------
Be precise and informative about your problem
------------------
1. Carefully and clearly describe the symptoms.
2. Provide the environment in which the problem occurs (machine specs, operating system, application, and anything else).
3. Explain how you researched and tried to understand the problem before asking.
4. Explain what steps you took to try to solve it before asking.
5. List recent hardware or software changes that might be relevant.
Try to imagine how a hacker would question you in return, and answer those questions in advance when you ask.
Simon Tatham wrote an excellent short article called “How to Report Bugs Effectively”. I strongly recommend you read it too.
--------
Volume is not precision
--------
You need to provide precise and useful information. This does not mean you should simply dump tons of broken code or data
verbatim into your question. If you have a huge and complicated test case, try to trim it down as much as possible.
This is useful in at least three ways. First, showing that you made an effort to simplify the problem increases your
chances of getting an answer; second, simplifying the problem increases your chances of getting a useful answer; third, in the process of refining
your bug report, you may discover the problem yourself or correct it.
------------------
Describe the symptoms, not your guesses
------------------
It does not help hackers if you tell them what you think caused the problem. (If your guess were that useful, would you still
need to ask others for help?) So make sure you tell them the symptoms of the problem exactly as they are, and do not mix in your
own interpretations and deductions. Let the hackers diagnose it.
Stupid question:
I keep getting SIG11 errors during kernel compilation. I suspect some flying wire is touching a trace on the motherboard.
What is the best way to check for that?
Smart question:
I built my own K6/233 system, with an FIC-PA2007 motherboard (VIA Apollo VP2 chipset), 256MB
Corsair PC133
SDRAM. During kernel compilation I get frequent SIG11 errors. It starts happening after the machine has been on for 20 minutes; it never
happens within the first 20 minutes after boot. Rebooting does not help, but after powering it off overnight it will work for another 20 minutes. I have replaced all the
memory, with no effect. A typical compile log from the relevant part is as follows...
------------------
Describe your problem's symptoms in chronological order
------------------
The clues most helpful for finding a problem often lie in the series of actions right before it happened, so your explanation
should include the steps you took and the computer's reactions, up to the point where the problem appeared. In command-line cases, keeping a session log (for example using the script tool), and quoting the relevant twenty or so commands can be very helpful.
If the crashing program has diagnostic options (for example using -v to switch to verbose mode), try to think carefully about which option to choose
so that the session log contains useful debugging information.
If your explanation is long (more than four paragraphs), it may help to briefly summarize the problem at the beginning, and then describe it in chronological order. That way hackers will know what to look for in your description.
--------------
Don't ask people to reply by private email
--------------
Hackers believe problem solving should be a public, transparent process. As long as any more perceptive person notices that an answer is incomplete or incorrect, the original answer can and should be corrected. Also, the person answering gets the reward they deserve through having their skill and knowledge noticed and accepted by everyone.
If you ask someone to reply to you privately, you undermine both the process and the reward system. Don't make that request. It is
the answerer's right to choose whether to reply privately -- if they do choose that, it is usually because they think the answer is too obvious or has bad public implications, and others will not be interested.
There is only one limited exception: if you expect to receive a lot of similar replies, you can say, “Mail the answer to me, and I will summarize it.” Saving the mailing list or newsgroup from a flood of duplicate posts
is very gentlemanly -- but remember to keep your promise to summarize.
================================= kickout
大功告成,打个Kiss!
大功告成,打个Kiss!


