0% found this document useful (0 votes)
505 views24 pages

How To Ask Questions The Smart Way

free

Uploaded by

Suhas Rohit Pai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
505 views24 pages

How To Ask Questions The Smart Way

free

Uploaded by

Suhas Rohit Pai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

HowToAskQuestionsTheSmartWay

EricStevenRaymond
ThyrsusEnterprises
<[email protected]>

RickMoen
<[email protected]>

Copyright2001,2006,2014EricS.Raymond,RickMoen
RevisionHistory
Revision3.10
21May2014
NewsectiononStackOverflow.
Revision3.9
23Apr2013
URLfixes.
Revision3.8
19Jun2012
URLfix.
Revision3.7
06Dec2010
HelpfulhintsforESLspeakers.
Revision3.7
02Nov2010
Severaltranslationshavedisappeared.
Revision3.6
19Mar2008
Minorupdateandnewlinks.
Revision3.5
2Jan2008
Typofixandsometranslationlinks.
Revision3.4
24Mar2007
Newsection,"Whenaskingaboutcode".
Revision3.3
29Sep2006
FoldedinagoodsuggestionfromKaiNiggemann.
Revision3.2
10Jan2006
FoldedineditsfromRickMoen.
Revision3.1
28Oct2004
Document'Googleisyourfriend!'
Revision3.0
2Feb2004
MajoradditionofstuffaboutproperetiquetteonWebforums.

esr
esr
esr
esr
esr
esr
esr
esr
esr
esr
esr
esr

TableofContents
Translations
Disclaimer
Introduction
BeforeYouAsk
WhenYouAsk
Chooseyourforumcarefully
StackOverflow
WebandIRCforums
Asasecondstep,useprojectmailinglists
Usemeaningful,specificsubjectheaders
Makeiteasytoreply
Writeinclear,grammatical,correctlyspelledlanguage
Sendquestionsinaccessible,standardformats
Bepreciseandinformativeaboutyourproblem
Volumeisnotprecision
Don'trushtoclaimthatyouhavefoundabug
Grovellingisnotasubstitutefordoingyourhomework
Describetheproblem'ssymptoms,notyourguesses
Describeyourproblem'ssymptomsinchronologicalorder
Describethegoal,notthestep
Don'taskpeopletoreplybyprivateemail
Beexplicitaboutyourquestion
Whenaskingaboutcode
Don'tposthomeworkquestions
Prunepointlessqueries
Don'tflagyourquestionasUrgent,evenifitisforyou
Courtesyneverhurts,andsometimeshelps
Followupwithabriefnoteonthesolution
HowToInterpretAnswers
RTFMandSTFW:HowToTellYou'veSeriouslyScrewedUp
Ifyoudon'tunderstand...
Dealingwithrudeness
OnNotReactingLikeALoser
QuestionsNotToAsk
GoodandBadQuestions
IfYouCan'tGetAnAnswer
HowToAnswerQuestionsinaHelpfulWay
RelatedResources
Acknowledgements

Translations
Translations:DanishBahasaIndonesianBelorussianBulgarianBraziloPortugueseBulgarianChinese

(Traditional)DutchFrenchGeorgianGermanGreekJapanesePolishPortugueseRomanianRussian
SerbianSpanishThaiIfyouwanttocopy,mirror,translate,orexcerptthisdocument,pleaseseemy
copyingpolicy.

Disclaimer
Manyprojectwebsiteslinktothisdocumentintheirsectionsonhowtogethelp.That'sfine,it'stheuse
weintendedbutifyouareawebmastercreatingsuchalinkforyourprojectpage,pleasedisplay
prominentlynearthelinknoticethatwearenotahelpdeskforyourproject!
Wehavelearnedthehardwaythatwithoutsuchanotice,wewillrepeatedlybepesteredbyidiotswho
thinkhavingpublishedthisdocumentmakesitourjobtosolvealltheworld'stechnicalproblems.
Ifyou'rereadingthisdocumentbecauseyouneedhelp,andyouwalkawaywiththeimpressionyoucan
getitdirectlyfromtheauthorsofthisdocument,youareoneoftheidiotswearetalkingabout.Don'task
usquestions.We'lljustignoreyou.Weareheretoshowyouhowtogethelpfrompeoplewhoactually
knowaboutthesoftwareorhardwareyou'redealingwith,but99.9%ofthetimethatwillnotbeus.
Unlessyouknowforcertainthatoneoftheauthorsisanexpertonwhatyou'redealingwith,leaveus
aloneandeverybodywillbehappier.

Introduction
Intheworldofhackers,thekindofanswersyougettoyourtechnicalquestionsdependsasmuchonthe
wayyouaskthequestionsasonthedifficultyofdevelopingtheanswer.Thisguidewillteachyouhowto
askquestionsinawaymorelikelytogetyouasatisfactoryanswer.
Nowthatuseofopensourcehasbecomewidespread,youcanoftengetasgoodanswersfromother,
moreexperiencedusersasfromhackers.ThisisaGoodThinguserstendtobejustalittlebitmore
tolerantofthekindoffailuresnewbiesoftenhave.Still,treatingexperienceduserslikehackersinthe
wayswerecommendherewillgenerallybethemosteffectivewaytogetusefulanswersoutofthem,too.
Thefirstthingtounderstandisthathackersactuallylikehardproblemsandgood,thoughtprovoking
questionsaboutthem.Ifwedidn't,wewouldn'tbehere.Ifyougiveusaninterestingquestiontochewon
we'llbegratefultoyougoodquestionsareastimulusandagift.Goodquestionshelpusdevelopour
understanding,andoftenrevealproblemswemightnothavenoticedorthoughtaboutotherwise.Among
hackers,Goodquestion!isastrongandsincerecompliment.
Despitethis,hackershaveareputationformeetingsimplequestionswithwhatlookslikehostilityor
arrogance.Itsometimeslookslikewe'rereflexivelyrudetonewbiesandtheignorant.Butthisisn'treally
true.
Whatweare,unapologetically,ishostiletopeoplewhoseemtobeunwillingtothinkortodotheirown
homeworkbeforeaskingquestions.Peoplelikethataretimesinkstheytakewithoutgivingback,and
theywastetimewecouldhavespentonanotherquestionmoreinterestingandanotherpersonmore
worthyofananswer.Wecallpeoplelikethislosers(andforhistoricalreasonswesometimesspellit
lusers).
Werealizethattherearemanypeoplewhojustwanttousethesoftwarewewrite,andwhohaveno
interestinlearningtechnicaldetails.Formostpeople,acomputerismerelyatool,ameanstoanend
theyhavemoreimportantthingstodoandlivestolive.Weacknowledgethat,anddon'texpecteveryone

totakeaninterestinthetechnicalmattersthatfascinateus.Nevertheless,ourstyleofanswering
questionsistunedforpeoplewhodotakesuchaninterestandarewillingtobeactiveparticipantsin
problemsolving.That'snotgoingtochange.Norshoulditifitdid,wewouldbecomelesseffectiveat
thethingswedobest.
We're(largely)volunteers.Wetaketimeoutofbusylivestoanswerquestions,andattimeswe're
overwhelmedwiththem.Sowefilterruthlessly.Inparticular,wethrowawayquestionsfrompeoplewho
appeartobelosersinordertospendourquestionansweringtimemoreefficiently,onwinners.
Ifyoufindthisattitudeobnoxious,condescending,orarrogant,checkyourassumptions.We'renot
askingyoutogenuflecttousinfact,mostofuswouldlovenothingmorethantodealwithyouasan
equalandwelcomeyouintoourculture,ifyouputintheeffortrequiredtomakethatpossible.Butit's
simplynotefficientforustotrytohelppeoplewhoarenotwillingtohelpthemselves.It'sOKtobe
ignorantit'snotOKtoplaystupid.
So,whileitisn'tnecessarytoalreadybetechnicallycompetenttogetattentionfromus,itisnecessaryto
demonstratethekindofattitudethatleadstocompetencealert,thoughtful,observant,willingtobean
activepartnerindevelopingasolution.Ifyoucan'tlivewiththissortofdiscrimination,wesuggestyou
paysomebodyforacommercialsupportcontractinsteadofaskinghackerstopersonallydonatehelpto
you.
Ifyoudecidetocometousforhelp,youdon'twanttobeoneofthelosers.Youdon'twanttoseemlike
one,either.Thebestwaytogetarapidandresponsiveansweristoaskitlikeapersonwithsmarts,
confidence,andclueswhojusthappenstoneedhelpononeparticularproblem.
(Improvementstothisguidearewelcome.Youcanmailsuggestionstoesr@thyrsus.comorrespond
auto@linuxmafia.com.Notehoweverthatthisdocumentisnotintendedtobeageneralguideto
netiquette,andwewillgenerallyrejectsuggestionsthatarenotspecificallyrelatedtoelicitinguseful
answersinatechnicalforum.)

BeforeYouAsk
Beforeaskingatechnicalquestionbyemail,orinanewsgroup,oronawebsitechatboard,dothe
following:
1. Trytofindananswerbysearchingthearchivesoftheforumormailinglistyouplantopostto.
2. TrytofindananswerbysearchingtheWeb.
3. Trytofindananswerbyreadingthemanual.
4. TrytofindananswerbyreadingaFAQ.
5. Trytofindananswerbyinspectionorexperimentation.
6. Trytofindananswerbyaskingaskilledfriend.
7. Ifyou'reaprogrammer,trytofindananswerbyreadingthesourcecode.
Whenyouaskyourquestion,displaythefactthatyouhavedonethesethingsfirstthiswillhelpestablish
thatyou'renotbeingalazyspongeandwastingpeople'stime.Betteryet,displaywhatyouhavelearned

fromdoingthesethings.Welikeansweringquestionsforpeoplewhohavedemonstratedtheycanlearn
fromtheanswers.
UsetacticslikedoingaGooglesearchonthetextofwhatevererrormessageyouget(searchingGoogle
groupsaswellasWebpages).Thismightwelltakeyoustraighttofixdocumentationoramailinglist
threadansweringyourquestion.Evenifitdoesn't,sayingIgoogledonthefollowingphrasebutdidn't
getanythingthatlookedpromisingisagoodthingtodoinemailornewspostingsrequestinghelp,if
onlybecauseitrecordswhatsearcheswon'thelp.Itwillalsohelptodirectotherpeoplewithsimilar
problemstoyourthreadbylinkingthesearchtermstowhatwillhopefullybeyourproblemand
resolutionthread.
Takeyourtime.Donotexpecttobeabletosolveacomplicatedproblemwithafewsecondsof
Googling.ReadandunderstandtheFAQs,sitback,relaxandgivetheproblemsomethoughtbefore
approachingexperts.Trustus,theywillbeabletotellfromyourquestionshowmuchreadingand
thinkingyoudid,andwillbemorewillingtohelpifyoucomeprepared.Don'tinstantlyfireyourwhole
arsenalofquestionsjustbecauseyourfirstsearchturnedupnoanswers(ortoomany).
Prepareyourquestion.Thinkitthrough.Hastysoundingquestionsgethastyanswers,ornoneatall.The
moreyoudotodemonstratethathavingputthoughtandeffortintosolvingyourproblembeforeseeking
help,themorelikelyyouaretoactuallygethelp.
Bewareofaskingthewrongquestion.Ifyouaskonethatisbasedonfaultyassumptions,J.Random
HackerisquitelikelytoreplywithauselesslyliteralanswerwhilethinkingStupidquestion...,and
hopingtheexperienceofgettingwhatyouaskedforratherthanwhatyouneededwillteachyoualesson.
Neverassumeyouareentitledtoananswer.Youarenotyouaren't,afterall,payingfortheservice.You
willearnananswer,ifyouearnit,byaskingasubstantial,interesting,andthoughtprovokingquestion
onethatimplicitlycontributestotheexperienceofthecommunityratherthanmerelypassively
demandingknowledgefromothers.
Ontheotherhand,makingitclearthatyouareableandwillingtohelpintheprocessofdevelopingthe
solutionisaverygoodstart.Wouldsomeoneprovideapointer?,Whatismyexamplemissing?,and
WhatsiteshouldIhavechecked?aremorelikelytogetansweredthanPleaseposttheexact
procedureIshoulduse.becauseyou'remakingitclearthatyou'retrulywillingtocompletetheprocess
ifsomeonecanjustpointyouintherightdirection.

WhenYouAsk
Chooseyourforumcarefully
Besensitiveinchoosingwhereyouaskyourquestion.Youarelikelytobeignored,orwrittenoffasa
loser,ifyou:
postyourquestiontoaforumwhereit'sofftopic
postaveryelementaryquestiontoaforumwhereadvancedtechnicalquestionsareexpected,or
viceversa
crossposttotoomanydifferentnewsgroups
postapersonalemailtosomebodywhoisneitheranacquaintanceofyoursnorpersonally

responsibleforsolvingyourproblem
Hackersblowoffquestionsthatareinappropriatelytargetedinordertotrytoprotecttheir
communicationschannelsfrombeingdrownedinirrelevance.Youdon'twantthistohappentoyou.
Thefirststep,therefore,istofindtherightforum.Again,GoogleandotherWebsearchingmethodsare
yourfriend.Usethemtofindtheprojectwebpagemostcloselyassociatedwiththehardwareorsoftware
givingyoudifficulties.UsuallyitwillhavelinkstoaFAQ(FrequentlyAskedQuestions)list,andto
projectmailinglistsandtheirarchives.Thesemailinglistsarethefinalplacestogoforhelp,ifyourown
efforts(includingreadingthoseFAQsyoufound)donotfindyouasolution.Theprojectpagemayalso
describeabugreportingprocedure,orhavealinktooneifso,followit.
Shootingoffanemailtoapersonorforumwhichyouarenotfamiliarwithisriskyatbest.Forexample,
donotassumethattheauthorofaninformativewebpagewantstobeyourfreeconsultant.Donotmake
optimisticguessesaboutwhetheryourquestionwillbewelcomeifyou'reunsure,senditelsewhere,or
refrainfromsendingitatall.
WhenselectingaWebforum,newsgroupormailinglist,don'ttrustthenamebyitselftoofarlookfora
FAQorchartertoverifyyourquestionisontopic.Readsomeofthebacktrafficbeforepostingsoyou'll
getafeelforhowthingsaredonethere.Infact,it'saverygoodideatodoakeywordsearchforwords
relatingtoyourproblemonthenewsgroupormailinglistarchivesbeforeyoupost.Itmayfindyouan
answer,andifnotitwillhelpyouformulateabetterquestion.
Don'tshotgunblastalltheavailablehelpchannelsatonce,that'slikeyellingandirritatespeople.Step
throughthemsoftly.
Knowwhatyourtopicis!OneoftheclassicmistakesisaskingquestionsabouttheUnixorWindows
programminginterfaceinaforumdevotedtoalanguageorlibraryortoolportableacrossboth.Ifyou
don'tunderstandwhythisisablunder,you'dbebestoffnotaskinganyquestionsatalluntilyougetit.
Ingeneral,questionstoawellselectedpublicforumaremorelikelytogetusefulanswersthan
equivalentquestionstoaprivateone.Therearemultiplereasonsforthis.Oneissimplythesizeofthe
poolofpotentialrespondents.Anotheristhesizeoftheaudiencehackerswouldratheranswerquestions
thateducatemanypeoplethanquestionsservingonlyafew.
Understandably,skilledhackersandauthorsofpopularsoftwarearealreadyreceivingmorethantheir
fairshareofmistargetedmessages.Byaddingtotheflood,youcouldinextremecasesevenbethestraw
thatbreaksthecamel'sbackquiteafewtimes,contributorstopopularprojectshavewithdrawntheir
supportbecausecollateraldamageintheformofuselessemailtraffictotheirpersonalaccountsbecame
unbearable.

StackOverflow
Search,thenaskonStackExchange
Inrecentyears,theStackExchangecommunityofsiteshasemergedasamajorresourceforanswering
technicalandotherquestionsandiseventhepreferredforumformanyopensourceprojects.
StartwithaGooglesearchbeforelookingatStackExchangeGoogleindexesitinrealtime.There'sa
verygoodchancesomeonehasalreadyaskedasimilarquestion,andtheStackExchangesitesareoften
nearthetopofthesearchresults.Ifyoudidn'tfindanythingthroughGoogle,searchagainonthespecific

sitemostrelevanttoyourquestion(seebelow).Searchingwithtagscanhelpnarrowdowntheresults.
Ifyoustilldidn'tfindanything,postyourquestionontheonesitewhereit'smostontopic.Usethe
formattingtools,especiallyforcode,andaddtagsthatarerelatedtothesubstanceofyourquestion
(particularlythenameoftheprogramminglanguage,operatingsystem,orlibraryyou'rehavingtrouble
with).Ifacommenterasksyouformoreinformation,edityourmainposttoincludeit.Ifanyansweris
helpful,clicktheuparrowtoupvoteitifananswergivesasolutiontoyourproblem,clickthecheck
underthevotingarrowstoacceptitascorrect.
StackExchangehasgrowntoover100sites,butherearethemostlikelycandidates:
SuperUserisforquestionsaboutgeneralpurposecomputing.Ifyourquestionisn'taboutcodeor
programsthatyoutalktoonlyoveranetworkconnection,itprobablygoeshere.
StackOverflowisforquestionsaboutprogramming.
ServerFaultisforquestionsaboutserverandnetworkadministration.
Severalprojectshavetheirownspecificsites,includingAndroid,Ubuntu,TeX/LaTeX,andSharePoint.
ChecktheStackExchangesiteforanuptodatelist.

WebandIRCforums
Yourlocalusergroup,oryourLinuxdistribution,mayadvertiseaWebforumorIRCchannelwhere
newbiescangethelp.(InnonEnglishspeakingcountriesnewbieforumsarestillmorelikelytobe
mailinglists.)Thesearegoodfirstplacestoask,especiallyifyouthinkyoumayhavetrippedovera
relativelysimpleorcommonproblem.AnadvertisedIRCchannelisanopeninvitationtoaskquestions
thereandoftengetanswersinrealtime.
Infact,ifyougottheprogramthatisgivingyouproblemsfromaLinuxdistribution(asiscommon
today),itmaybebettertoaskinthedistro'sforum/listbeforetryingtheprogram'sprojectforum/list.The
project'shackersmayjustsay,useourbuild.
BeforepostingtoanyWebforum,checkifithasaSearchfeature.Ifitdoes,tryacoupleofkeyword
searchesforsomethinglikeyourproblemitjustmighthelp.IfyoudidageneralWebsearchbefore(as
youshouldhave),searchtheforumanywayyourWebwidesearchenginemightnothaveallofthis
forumindexedrecently.
ThereisanincreasingtendencyforprojectstodousersupportoveraWebforumorIRCchannel,withe
mailreservedmorefordevelopmenttraffic.Solookforthosechannelsfirstwhenseekingproject
specifichelp.

Asasecondstep,useprojectmailinglists
Whenaprojecthasadevelopmentmailinglist,writetothemailinglist,nottoindividualdevelopers,
evenifyoubelieveyouknowwhocanbestansweryourquestion.Checkthedocumentationofthe
projectanditshomepagefortheaddressofaprojectmailinglist,anduseit.Thereareseveralgood
reasonsforthispolicy:
Anyquestiongoodenoughtobeaskedofonedeveloperwillalsobeofvaluetothewholegroup.
Contrariwise,ifyoususpectyourquestionistoodumbforamailinglist,it'snotanexcuseto

harassindividualdevelopers.
Askingquestionsonthelistdistributesloadamongdevelopers.Theindividualdeveloper
(especiallyifhe'stheprojectleader)maybetoobusytoansweryourquestions.
Mostmailinglistsarearchivedandthearchivesareindexedbysearchengines.Ifyouaskyour
questiononlistanditisanswered,afuturequerentcouldfindyourquestionandtheansweronthe
Webinsteadofaskingitagain.
Ifcertainquestionsareseentobeaskedoften,developerscanusethatinformationtoimprovethe
documentationorthesoftwareitselftobelessconfusing.Butifthosequestionsareaskedin
private,nobodyhasthecompletepictureofwhatquestionsareaskedmostoften.
Ifaprojecthasbothauserandadeveloper(orhacker)mailinglistorWebforum,andyouarenot
hackingonthecode,askintheuserlist/forum.Donotassumethatyouwillbewelcomeonthe
developerlist,wherethey'relikelytoexperienceyourquestionasnoisedisruptingtheirdevelopertraffic.
However,ifyouaresureyourquestionisnontrivial,andyougetnoanswerintheuserlist/forumfor
severaldays,trythedeveloperone.Youwouldbewelladvisedtolurkthereforafewdaysoratleast
reviewthelastfewdaysofarchivedmessages,tolearnthelocalfolkwaysbeforeposting(actuallythisis
goodadviceonanyprivateorsemiprivatelist).
Ifyoucannotfindaproject'smailinglistaddress,butonlyseetheaddressofthemaintainerofthe
project,goaheadandwritetothemaintainer.Buteveninthatcase,don'tassumethatthemailinglist
doesn'texist.Mentioninyouremailthatyoutriedandcouldnotfindtheappropriatemailinglist.Also
mentionthatyoudon'tobjecttohavingyourmessageforwardedtootherpeople.(Manypeoplebelieve
thatprivateemailshouldremainprivate,evenifthereisnothingsecretinit.Byallowingyourmessage
tobeforwardedyougiveyourcorrespondentachoiceabouthowtohandleyouremail.)

Usemeaningful,specificsubjectheaders
Onmailinglists,newsgroupsorWebforums,thesubjectheaderisyourgoldenopportunitytoattract
qualifiedexperts'attentioninaround50charactersorfewer.Don'twasteitonbabblelikePleasehelp
me(letalonePLEASEHELPME!!!!messageswithsubjectslikethatgetdiscardedbyreflex).Don't
trytoimpressuswiththedepthofyouranguishusethespaceforasuperconciseproblemdescription
instead.
Onegoodconventionforsubjectheaders,usedbymanytechsupportorganizations,isobject
deviation.Theobjectpartspecifieswhatthingorgroupofthingsishavingaproblem,andthe
deviationpartdescribesthedeviationfromexpectedbehavior.
Stupid:
HELP!Videodoesn'tworkproperlyonmylaptop!
Smart:
X.org6.8.1misshapenmousecursor,FoowareMV1005vid.chipset
Smarter:
X.org6.8.1mousecursoronFoowareMV1005vid.chipsetismisshapen

Theprocessofwritinganobjectdeviationdescriptionwillhelpyouorganizeyourthinkingaboutthe
probleminmoredetail.Whatisaffected?Justthemousecursororothergraphicstoo?Isthisspecificto
theX.orgversionofX?Toversion6.8.1?IsthisspecifictoFoowarevideochipsets?Tomodel
MV1005?Ahackerwhoseestheresultcanimmediatelyunderstandwhatitisthatyouarehavinga
problemwithandtheproblemyouarehaving,ataglance.
Moregenerally,imaginelookingattheindexofanarchiveofquestions,withjustthesubjectlines
showing.Makeyoursubjectlinereflectyourquestionwellenoughthatthenextpersonsearchingthe
archivewithaquestionsimilartoyourswillbeabletofollowthethreadtoananswerratherthanposting
thequestionagain.
Ifyouaskaquestioninareply,besuretochangethesubjectlinetoindicatethatyou'reaskinga
question.ASubjectlinethatlookslikeRe:testorRe:newbugislesslikelytoattractusefulamounts
ofattention.Also,parequotationofpreviousmessagestotheminimumconsistentwithcluinginnew
readers.
Donotsimplyhitreplytoalistmessageinordertostartanentirelynewthread.Thiswilllimityour
audience.Somemailreaders,likemutt,allowtheusertosortbythreadandthenhidemessagesina
threadbyfoldingthethread.Folkswhodothatwillneverseeyourmessage.
Changingthesubjectisnotsufficient.Mutt,andprobablyothermailreaders,looksatotherinformation
intheemail'sheaderstoassignittoathread,notthesubjectline.Insteadstartanentirelynewemail.
OnWebforumstherulesofgoodpracticeareslightlydifferent,becausemessagesareusuallymuch
moretightlyboundtospecificdiscussionthreadsandofteninvisibleoutsidethosethreads.Changingthe
subjectwhenaskingaquestioninreplyisnotessential.Notallforumsevenallowseparatesubjectlines
onreplies,andnearlynobodyreadsthemwhentheydo.However,askingaquestioninareplyisa
dubiouspracticeinitself,becauseitwillonlybeseenbythosewhoarewatchingthisthread.So,unless
youaresureyouwanttoaskonlythepeoplecurrentlyactiveinthethread,startanewone.

Makeiteasytoreply
FinishingyourquerywithPleasesendyourreplyto...makesitquiteunlikelyyouwillgetananswer.
Ifyoucan'tbebotheredtotakeeventhefewsecondsrequiredtosetupacorrectReplyToheaderinyour
mailagent,wecan'tbebotheredtotakeevenafewsecondstothinkaboutyourproblem.Ifyourmail
programdoesn'tpermitthis,getabettermailprogram.Ifyouroperatingsystemdoesn'tsupportanye
mailprogramsthatpermitthis,getabetteroperatingsystem.
InWebforums,askingforareplybyemailisoutrightrude,unlessyoubelievetheinformationmaybe
sensitive(andsomebodywill,forsomeunknownreason,letyoubutnotthewholeforumknowit).Ifyou
wantanemailcopywhensomebodyrepliesinthethread,requestthattheWebforumsenditthis
featureissupportedalmosteverywhereunderoptionslikewatchthisthread,sendemailonanswers,
etc.

Writeinclear,grammatical,correctlyspelledlanguage
We'vefoundbyexperiencethatpeoplewhoarecarelessandsloppywritersareusuallyalsocarelessand
sloppyatthinkingandcoding(oftenenoughtobeton,anyway).Answeringquestionsforcarelessand
sloppythinkersisnotrewardingwe'dratherspendourtimeelsewhere.
Soexpressingyourquestionclearlyandwellisimportant.Ifyoucan'tbebotheredtodothat,wecan'tbe

botheredtopayattention.Spendtheextraefforttopolishyourlanguage.Itdoesn'thavetobestiffor
formalinfact,hackerculturevaluesinformal,slangyandhumorouslanguageusedwithprecision.But
ithastobeprecisetherehastobesomeindicationthatyou'rethinkingandpayingattention.
Spell,punctuate,andcapitalizecorrectly.Don'tconfuseitswithit's,loosewithlose,or
discretewithdiscreet.Don'tTYPEINALLCAPSthisisreadasshoutingandconsideredrude.
(Allsmallsisonlyslightlylessannoying,asit'sdifficulttoread.AlanCoxcangetawaywithit,butyou
can't.)
Moregenerally,ifyouwritelikeasemiliterateboobyouwillverylikelybeignored.Sodon'tuse
instantmessagingshortcuts.Spelling"you"as"u"makesyoulooklikeasemiliterateboobtosavetwo
entirekeystrokes.Worse:writinglikeal33tscriptkiddiehax0ristheabsolutekissofdeathand
guaranteesyouwillreceivenothingbutstonysilence(or,atbest,aheapinghelpingofscornand
sarcasm)inreturn.
Ifyouareaskingquestionsinaforumthatdoesnotuseyournativelanguage,youwillgetalimited
amountofslackforspellingandgrammarerrorsbutnoextraslackatallforlaziness(andyes,wecan
usuallyspotthatdifference).Also,unlessyouknowwhatyourrespondent'slanguagesare,writein
English.Busyhackerstendtosimplyflushquestionsinlanguagestheydon'tunderstand,andEnglishis
theworkinglanguageoftheInternet.BywritinginEnglishyouminimizeyourchancesthatyour
questionwillbediscardedunread.
IfyouarewritinginEnglishbutitisasecondlanguageforyou,itisgoodformtoalertpotential
respondentstopotentiallanguagedifficultiesandoptionsforgettingaroundthem.Examples:
Englishisnotmynativelanguagepleaseexcusetypingerrors.
Ifyouspeak$LANGUAGE,pleaseemail/PMmeImayneedassistancetranslatingmyquestion.
Iamfamiliarwiththetechnicalterms,butsomeslangexpressionsandidiomsaredifficultforme.
I'vepostedmyquestionin$LANGUAGEandEnglish.I'llbegladtotranslateresponses,ifyou
onlyuseoneortheother.

Sendquestionsinaccessible,standardformats
Ifyoumakeyourquestionartificiallyhardtoread,itismorelikelytobepassedoverinfavorofonethat
isn't.So:
Sendplaintextmail,notHTML.(It'snothardtoturnoffHTML.)
MIMEattachmentsareusuallyOK,butonlyiftheyarerealcontent(suchasanattachedsource
fileorpatch),andnotmerelyboilerplategeneratedbyyourmailclient(suchasanothercopyof
yourmessage).
Don'tsendemailinwhichentireparagraphsaresinglemultiplywrappedlines.(Thismakesittoo
difficulttoreplytojustpartofthemessage.)Assumethatyourrespondentswillbereadingmailon
80characterwidetextdisplaysandsetyourlinewrapaccordingly,tosomethinglessthan80.
However,donotwrapdata(suchaslogfiledumpsorsessiontranscripts)atanyfixedcolumn
width.Datashouldbeincludedasis,sorespondentscanhaveconfidencethattheyareseeingwhat

yousaw.
Don'tsendMIMEQuotedPrintableencodingtoanEnglishlanguageforum.Thisencodingcanbe
necessarywhenyou'repostinginalanguageASCIIdoesn'tcover,butmanyemailagentsdon't
supportit.Whentheybreak,allthose=20glyphsscatteredthroughthetextareuglyanddistracting
ormayactivelysabotagethesemanticsofyourtext.
Never,everexpecthackerstobeabletoreadclosedproprietarydocumentformatslikeMicrosoft
WordorExcel.Mosthackersreacttotheseaboutaswellasyouwouldtohavingapileofsteaming
pigmanuredumpedonyourdoorstep.Evenwhentheycancope,theyresenthavingtodoso.
Ifyou'resendingemailfromaWindowsmachine,turnoffMicrosoft'sproblematicSmart
Quotesfeature(FromTools>AutoCorrectOptions,clearthesmartquotescheckboxunder
AutoFormatAsYouType.).Thisissoyou'llavoidsprinklinggarbagecharactersthroughyour
mail.
InWebforums,donotabusesmileyandHTMLfeatures(whentheyarepresent).Asmileyor
twoisusuallyOK,butcoloredfancytexttendstomakepeoplethinkyouarelame.Seriously
overusingsmileysandcolorandfontswillmakeyoucomeofflikeagigglyteenagegirl,whichis
notgenerallyagoodideaunlessyouaremoreinterestedinsexthananswers.
Ifyou'reusingagraphicaluserinterfacemailclientsuchasNetscapeMessenger,MSOutlook,ortheir
ilk,bewarethatitmayviolatetheseruleswhenusedwithitsdefaultsettings.Mostsuchclientshavea
menubasedViewSourcecommand.Usethisonsomethinginyoursentmailfolder,verifyingsending
ofplaintextwithoutunnecessaryattachedcrud.

Bepreciseandinformativeaboutyourproblem
Describethesymptomsofyourproblemorbugcarefullyandclearly.
Describetheenvironmentinwhichitoccurs(machine,OS,application,whatever).Provideyour
vendor'sdistributionandreleaselevel(e.g.:FedoraCore7,Slackware9.1,etc.).
Describetheresearchyoudidtotryandunderstandtheproblembeforeyouaskedthequestion.
Describethediagnosticstepsyoutooktotryandpindowntheproblemyourselfbeforeyouasked
thequestion.
Describeanypossiblyrelevantrecentchangesinyourcomputerorsoftwareconfiguration.
Ifatallpossible,provideawaytoreproducetheprobleminacontrolledenvironment.
Dothebestyoucantoanticipatethequestionsahackerwillask,andanswertheminadvanceinyour
requestforhelp.
Givinghackerstheabilitytoreproducetheprobleminacontrolledenvironmentisespeciallyimportantif
youarereportingsomethingyouthinkisabugincode.Whenyoudothis,youroddsofgettingauseful
answerandthespeedwithwhichyouarelikelytogetthatanswerbothimprovetremendously.
SimonTathamhaswrittenanexcellentessayentitledHowtoReportBugsEffectively.Istrongly
recommendthatyoureadit.

Volumeisnotprecision
Youneedtobepreciseandinformative.Thisendisnotservedbysimplydumpinghugevolumesofcode
ordataintoahelprequest.Ifyouhavealarge,complicatedtestcasethatisbreakingaprogram,tryto
trimitandmakeitassmallaspossible.
Thisisusefulforatleastthreereasons.One:beingseentoinvesteffortinsimplifyingthequestionmakes
itmorelikelyyou'llgetananswer,Two:simplifyingthequestionmakesitmorelikelyyou'llgetauseful
answer.Three:Intheprocessofrefiningyourbugreport,youmaydevelopafixorworkaroundyourself.

Don'trushtoclaimthatyouhavefoundabug
Whenyouarehavingproblemswithapieceofsoftware,don'tclaimyouhavefoundabugunlessyouare
very,verysureofyourground.Hint:unlessyoucanprovideasourcecodepatchthatfixestheproblem,
oraregressiontestagainstapreviousversionthatdemonstratesincorrectbehavior,youareprobablynot
sureenough.Thisappliestowebpagesanddocumentation,tooifyouhavefoundadocumentation
bug,youshouldsupplyreplacementtextandwhichpagesitshouldgoon.
Remember,therearemanyotherusersthatarenotexperiencingyourproblem.Otherwiseyouwould
havelearnedaboutitwhilereadingthedocumentationandsearchingtheWeb(youdiddothatbefore
complaining,didn'tyou?).Thismeansthatveryprobablyitisyouwhoaredoingsomethingwrong,not
thesoftware.
Thepeoplewhowrotethesoftwareworkveryhardtomakeitworkaswellaspossible.Ifyouclaimyou
havefoundabug,you'llbeimpugningtheircompetence,whichmayoffendsomeofthemevenifyouare
correct.It'sespeciallyundiplomatictoyellbugintheSubjectline.
Whenaskingyourquestion,itisbesttowriteasthoughyouassumeyouaredoingsomethingwrong,
evenifyouareprivatelyprettysureyouhavefoundanactualbug.Iftherereallyisabug,youwillhear
aboutitintheanswer.Playitsothemaintainerswillwanttoapologizetoyouifthebugisreal,rather
thansothatyouwillowethemanapologyifyouhavemessedup.

Grovellingisnotasubstitutefordoingyourhomework
Somepeoplewhogetthattheyshouldn'tbehaverudelyorarrogantly,demandingananswer,retreatto
theoppositeextremeofgrovelling.IknowI'mjustapatheticnewbieloser,but....Thisisdistracting
andunhelpful.It'sespeciallyannoyingwhenit'scoupledwithvaguenessabouttheactualproblem.
Don'twasteyourtime,orours,oncrudeprimatepolitics.Instead,presentthebackgroundfactsandyour
questionasclearlyasyoucan.Thatisabetterwaytopositionyourselfthanbygrovelling.
SometimesWebforumshaveseparateplacesfornewbiequestions.Ifyoufeelyoudohaveanewbie
question,justgothere.Butdon'tgrovelthereeither.

Describetheproblem'ssymptoms,notyourguesses
It'snotusefultotellhackerswhatyouthinkiscausingyourproblem.(Ifyourdiagnostictheorieswere
suchhotstuff,wouldyoubeconsultingothersforhelp?)So,makesureyou'retellingthemtheraw
symptomsofwhatgoeswrong,ratherthanyourinterpretationsandtheories.Letthemdothe
interpretationanddiagnosis.Ifyoufeelit'simportanttostateyourguess,clearlylabelitassuchand

describewhythatanswerisn'tworkingforyou.
Stupid:
I'mgettingbacktobackSIG11errorsonkernelcompiles,andsuspectahairlinecrackononeof
themotherboardtraces.What'sthebestwaytocheckforthose?
Smart:
MyhomebuiltK6/233onanFICPA2007motherboard(VIAApolloVP2chipset)with256MB
CorsairPC133SDRAMstartsgettingfrequentSIG11errorsabout20minutesafterpoweron
duringthecourseofkernelcompiles,butneverinthefirst20minutes.Rebootingdoesn'trestart
theclock,butpoweringdownovernightdoes.SwappingoutallRAMdidn'thelp.Therelevantpart
ofatypicalcompilesessionlogfollows.
Sincetheprecedingpointseemstobeatoughoneformanypeopletograsp,here'saphrasetoremind
you:"AlldiagnosticiansarefromMissouri."ThatUSstate'sofficialmottois"Showme"(earnedin1899,
whenCongressmanWillardD.Vandiversaid"Icomefromacountrythatraisescornandcottonand
cocklebursandDemocrats,andfrothyeloquenceneitherconvincesnorsatisfiesme.I'mfromMissouri.
You'vegottoshowme.")Indiagnosticians'case,it'snotamatterofskepticism,butratheraliteral,
functionalneedtoseewhateverisascloseaspossibletothesamerawevidencethatyousee,ratherthan
yoursurmisesandsummaries.Showus.

Describeyourproblem'ssymptomsinchronologicalorder
Thecluesmostusefulinfiguringoutsomethingthatwentwrongoftenlieintheeventsimmediately
prior.So,youraccountshoulddescribepreciselywhatyoudid,andwhatthemachineandsoftwaredid,
leadinguptotheblowup.Inthecaseofcommandlineprocesses,havingasessionlog(e.g.,usingthe
scriptutility)andquotingtherelevanttwentyorsolinesisveryuseful.
Iftheprogramthatblewuponyouhasdiagnosticoptions(suchasvforverbose),trytoselectoptions
thatwilladdusefuldebugginginformationtothetranscript.Rememberthatmoreisnotnecessarily
bettertrytochooseadebuglevelthatwillinformratherthandrowningthereaderinjunk.
Ifyouraccountendsupbeinglong(morethanaboutfourparagraphs),itmightbeusefultosuccinctly
statetheproblemuptop,thenfollowwiththechronologicaltale.Thatway,hackerswillknowwhatto
watchforinreadingyouraccount.

Describethegoal,notthestep
Ifyouaretryingtofindouthowtodosomething(asopposedtoreportingabug),beginbydescribingthe
goal.Onlythendescribetheparticularsteptowardsitthatyouareblockedon.
Often,peoplewhoneedtechnicalhelphaveahighlevelgoalinmindandgetstuckonwhattheythinkis
oneparticularpathtowardsthegoal.Theycomeforhelpwiththestep,butdon'trealizethatthepathis
wrong.Itcantakesubstantialefforttogetpastthis.
Stupid:
HowdoIgetthecolorpickerontheFooDrawprogramtotakeahexadecimalRGBvalue?

Smart:
I'mtryingtoreplacethecolortableonanimagewithvaluesofmychoosing.Rightnowtheonly
wayIcanseetodothisisbyeditingeachtableslot,butIcan'tgetFooDraw'scolorpickertotakea
hexadecimalRGBvalue.
Thesecondversionofthequestionissmart.Itallowsananswerthatsuggestsatoolbettersuitedtothe
task.

Don'taskpeopletoreplybyprivateemail
Hackersbelievesolvingproblemsshouldbeapublic,transparentprocessduringwhichafirsttryatan
answercanandshouldbecorrectedifsomeonemoreknowledgeablenoticesthatitisincompleteor
incorrect.Also,helpersgetsomeoftheirrewardforbeingrespondentsfrombeingseentobecompetent
andknowledgeablebytheirpeers.
Whenyouaskforaprivatereply,youaredisruptingboththeprocessandthereward.Don'tdothis.It's
therespondent'schoicewhethertoreplyprivatelyandifheorshedoes,it'susuallybecauseheorshe
thinksthequestionistooillformedorobvioustobeinterestingtoothers.
Thereisonelimitedexceptiontothisrule.Ifyouthinkthequestionissuchthatyouarelikelytoget
manyanswersthatareallcloselysimilar,thenthemagicwordsareemailmeandI'llsummarizethe
answersforthegroup.Itiscourteoustotryandsavethemailinglistornewsgroupafloodof
substantiallyidenticalpostingsbutyouhavetokeepthepromisetosummarize.

Beexplicitaboutyourquestion
Openendedquestionstendtobeperceivedasopenendedtimesinks.Thosepeoplemostlikelytobeable
togiveyouausefulanswerarealsothebusiestpeople(ifonlybecausetheytakeonthemostwork
themselves).Peoplelikethatareallergictoopenendedtimesinks,thustheytendtobeallergictoopen
endedquestions.
Youaremorelikelytogetausefulresponseifyouareexplicitaboutwhatyouwantrespondentstodo
(providepointers,sendcode,checkyourpatch,whatever).Thiswillfocustheireffortandimplicitlyput
anupperboundonthetimeandenergyarespondentmustallocatetohelpingyou.Thisisgood.
Tounderstandtheworldtheexpertslivein,thinkofexpertiseasanabundantresourceandtimeto
respondasascarceone.Thelessofatimecommitmentyouimplicitlyaskfor,themorelikelyyouareto
getananswerfromsomeonereallygoodandreallybusy.
Soitisusefultoframeyourquestiontominimizethetimecommitmentrequiredforanexperttofieldit
butthisisoftennotthesamethingassimplifyingthequestion.Thus,forexample,Wouldyougive
meapointertoagoodexplanationofX?isusuallyasmarterquestionthanWouldyouexplainX,
please?.Ifyouhavesomemalfunctioningcode,itisusuallysmartertoaskforsomeonetoexplain
what'swrongwithitthanitistoasksomeonetofixit.

Whenaskingaboutcode
Don'taskotherstodebugyourbrokencodewithoutgivingahintwhatsortofproblemtheyshouldbe
searchingfor.Postingafewhundredlinesofcode,saying"itdoesn'twork",willgetyouignored.Posting

adozenlinesofcode,saying"afterline7Iwasexpectingtosee<x>,but<y>occurredinstead"ismuch
morelikelytogetyouaresponse.
Themosteffectivewaytobepreciseaboutacodeproblemistoprovideaminimalbugdemonstrating
testcase.What'saminimaltestcase?It'sanillustrationoftheproblemjustenoughcodetoexhibitthe
undesirablebehaviorandnomore.Howdoyoumakeaminimaltestcase?Ifyouknowwhatlineor
sectionofcodeisproducingtheproblematicbehavior,makeacopyofitandaddjustenoughsupporting
codetoproduceacompleteexample(i.e.enoughthatthesourceisacceptabletothe
compiler/interpreter/whateverapplicationprocessesit).Ifyoucan'tnarrowitdowntoaparticular
section,makeacopyofthesourceandstartremovingchunksthatdon'taffecttheproblematicbehavior.
Thesmalleryourminimaltestcaseis,thebetter(seethesectioncalledVolumeisnotprecision).
Generatingareallysmallminimaltestcasewillnotalwaysbepossible,buttryingtoisgooddiscipline.It
mayhelpyoulearnwhatyouneedtosolvetheproblemonyourownandevenwhenitdoesn't,
hackersliketoseethatyouhavetried.Itwillmakethemmorecooperative.
Ifyousimplywantacodereview,sayasmuchupfront,andbesuretomentionwhatareasyouthink
mightparticularlyneedreviewandwhy.

Don'tposthomeworkquestions
Hackersaregoodatspottinghomeworkquestionsmostofushavedonethemourselves.Thosequestions
areforyoutoworkout,sothatyouwilllearnfromtheexperience.ItisOKtoaskforhints,butnotfor
entiresolutions.
Ifyoususpectyouhavebeenpassedahomeworkquestion,butcan'tsolveitanyway,tryaskinginauser
groupforumor(asalastresort)inauserlist/forumofaproject.Whilethehackerswillspotit,someof
theadvancedusersmayatleastgiveyouahint.

Prunepointlessqueries
ResistthetemptationtocloseyourrequestforhelpwithsemanticallynullquestionslikeCananyone
helpme?orIsthereananswer?First:ifyou'vewrittenyourproblemdescriptionhalfway
competently,suchtackedonquestionsareatbestsuperfluous.Second:becausetheyaresuperfluous,
hackersfindthemannoyingandarelikelytoreturnlogicallyimpeccablebutdismissiveanswerslike
Yes,youcanbehelpedandNo,thereisnohelpforyou.
Ingeneral,askingyesornoquestionsisagoodthingtoavoidunlessyouwantayesornoanswer.

Don'tflagyourquestionasUrgent,evenifitisforyou
That'syourproblem,notours.Claimingurgencyisverylikelytobecounterproductive:mosthackers
willsimplydeletesuchmessagesasrudeandselfishattemptstoelicitimmediateandspecialattention.
Furthermore,theword'Urgent'(andothersimilarattemptstograbattentioninthesubjectline)often
triggersspamfiltersyourintendedrecipientsmightneverseeitatall!
Thereisonesemiexception.Itcanbeworthmentioningifyou'reusingtheprograminsomehighprofile
place,onethatthehackerswillgetexcitedaboutinsuchacase,ifyou'reundertimepressure,andyou
saysopolitely,peoplemaygetinterestedenoughtoanswerfaster.

Thisisaveryriskythingtodo,however,becausethehackers'metricforwhatisexcitingprobablydiffers
fromyours.PostingfromtheInternationalSpaceStationwouldqualify,forexample,butpostingon
behalfofafeelgoodcharitableorpoliticalcausewouldalmostcertainlynot.Infact,postingUrgent:
Helpmesavethefuzzybabyseals!willreliablygetyoushunnedorflamedevenbyhackerswhothink
fuzzybabysealsareimportant.
Ifyoufindthismysterious,rereadtherestofthishowtorepeatedlyuntilyouunderstanditbefore
postinganythingatall.

Courtesyneverhurts,andsometimeshelps
Becourteous.UsePleaseandThanksforyourattentionorThanksforyourconsideration.Makeit
clearyouappreciatethetimepeoplespendhelpingyouforfree.
Tobehonest,thisisn'tasimportantas(andcannotsubstitutefor)beinggrammatical,clear,preciseand
descriptive,avoidingproprietaryformatsetc.hackersingeneralwouldrathergetsomewhatbrusquebut
technicallysharpbugreportsthanpolitevagueness.(Ifthispuzzlesyou,rememberthatwevaluea
questionbywhatitteachesus.)
However,ifyou'vegotyourtechnicalducksinarow,politenessdoesincreaseyourchancesofgettinga
usefulanswer.
(Wemustnotethattheonlyseriousobjectionwe'vereceivedfromveteranhackerstothisHOWTOis
withrespecttoourpreviousrecommendationtouseThanksinadvance.Somehackersfeelthis
connotesanintentionnottothankanybodyafterwards.OurrecommendationistoeithersayThanksin
advancefirstandthankrespondentsafterwards,orexpresscourtesyinadifferentway,suchasby
sayingThanksforyourattentionorThanksforyourconsideration.)

Followupwithabriefnoteonthesolution
Sendanoteaftertheproblemhasbeensolvedtoallwhohelpedyouletthemknowhowitcameoutand
thankthemagainfortheirhelp.Iftheproblemattractedgeneralinterestinamailinglistornewsgroup,
it'sappropriatetopostthefollowupthere.
Optimally,thereplyshouldbetothethreadstartedbytheoriginalquestionposting,andshouldhave
FIXED,RESOLVEDoranequallyobvioustaginthesubjectline.Onmailinglistswithfast
turnaround,apotentialrespondentwhoseesathreadaboutProblemXendingwithProblemX
FIXEDknowsnottowastehis/hertimeevenreadingthethread(unless(s)hepersonallyfindsProblem
Xinteresting)andcanthereforeusethattimesolvingadifferentproblem.
Yourfollowupdoesn'thavetobelongandinvolvedasimpleHowdyitwasafailednetworkcable!
Thanks,everyone.Billwouldbebetterthannothing.Infact,ashortandsweetsummaryisbetterthan
alongdissertationunlessthesolutionhasrealtechnicaldepth.Saywhatactionsolvedtheproblem,but
youneednotreplaythewholetroubleshootingsequence.
Forproblemswithsomedepth,itisappropriatetopostasummaryofthetroubleshootinghistory.
Describeyourfinalproblemstatement.Describewhatworkedasasolution,andindicateavoidableblind
alleysafterthat.Theblindalleysshouldcomeafterthecorrectsolutionandothersummarymaterial,
ratherthanturningthefollowupintoadetectivestory.Namethenamesofpeoplewhohelpedyouyou'll
makefriendsthatway.

Besidesbeingcourteousandinformative,thissortoffollowupwillhelpotherssearchingthearchiveof
themailinglist/newsgroup/forumtoknowexactlywhichsolutionhelpedyouandthusmayalsohelp
them.
Last,andnotleast,thissortoffollowuphelpseverybodywhoassistedfeelasatisfyingsenseofclosure
abouttheproblem.Ifyouarenotatechieorhackeryourself,trustusthatthisfeelingisveryimportantto
thegurusandexpertsyoutappedforhelp.Problemnarrativesthattrailoffintounresolvednothingness
arefrustratingthingshackersitchtoseethemresolved.Thegoodwillthatscratchingthatitchearnsyou
willbevery,veryhelpfultoyounexttimeyouneedtoposeaquestion.
Considerhowyoumightbeabletopreventothersfromhavingthesameprobleminthefuture.Ask
yourselfifadocumentationorFAQpatchwouldhelp,andiftheanswerisyessendthatpatchtothe
maintainer.
Amonghackers,thissortofgoodfollowupbehaviorisactuallymoreimportantthanconventional
politeness.It'showyougetareputationforplayingwellwithothers,whichcanbeaveryvaluableasset.

HowToInterpretAnswers
RTFMandSTFW:HowToTellYou'veSeriouslyScrewedUp
Thereisanancientandhallowedtradition:ifyougetareplythatreadsRTFM,thepersonwhosentit
thinksyoushouldhaveReadTheFuckingManual.Heorsheisalmostcertainlyright.Goreadit.
RTFMhasayoungerrelative.IfyougetareplythatreadsSTFW,thepersonwhosentitthinksyou
shouldhaveSearchedTheFuckingWeb.Heorsheisalmostcertainlyright.Gosearchit.(Themilder
versionofthisiswhenyouaretoldGoogleisyourfriend!)
InWebforums,youmayalsobetoldtosearchtheforumarchives.Infact,someonemayevenbesokind
astoprovideapointertothepreviousthreadwherethisproblemwassolved.Butdonotrelyonthis
considerationdoyourarchivesearchingbeforeasking.
Often,thepersontellingyoutodoasearchhasthemanualorthewebpagewiththeinformationyou
needopen,andislookingatitasheorshetypes.Theserepliesmeanthattheresponderthinks(a)the
informationyouneediseasytofind,and(b)youwilllearnmoreifyouseekouttheinformationthanif
youhaveitspoonfedtoyou.
Youshouldn'tbeoffendedbythisbyhackerstandards,yourrespondentisshowingyouaroughkindof
respectsimplybynotignoringyou.Youshouldinsteadbethankfulforthisgrandmotherlykindness.

Ifyoudon'tunderstand...
Ifyoudon'tunderstandtheanswer,donotimmediatelybouncebackademandforclarification.Usethe
sametoolsthatyouusedtotryandansweryouroriginalquestion(manuals,FAQs,theWeb,skilled
friends)tounderstandtheanswer.Then,ifyoustillneedtoaskforclarification,exhibitwhatyouhave
learned.
Forexample,supposeItellyou:Itsoundslikeyou'vegotastuckzentryyou'llneedtoclearit.Then:
here'sabadfollowupquestion:What'sazentry?Here'sagoodfollowupquestion:OK,Ireadtheman
pageandzentriesareonlymentionedunderthezandpswitches.Neitherofthemsaysanythingabout

clearingzentries.IsitoneoftheseoramImissingsomethinghere?

Dealingwithrudeness
Muchofwhatlookslikerudenessinhackercirclesisnotintendedtogiveoffense.Rather,it'stheproduct
ofthedirect,cutthroughthebullshitcommunicationsstylethatisnaturaltopeoplewhoaremore
concernedaboutsolvingproblemsthanmakingothersfeelwarmandfuzzy.
Whenyouperceiverudeness,trytoreactcalmly.Ifsomeoneisreallyactingout,itisverylikelyasenior
persononthelistornewsgrouporforumwillcallhimorheronit.Ifthatdoesn'thappenandyoulose
yourtemper,itislikelythatthepersonyouloseitatwasbehavingwithinthehackercommunity'snorms
andyouwillbeconsideredatfault.Thiswillhurtyourchancesofgettingtheinformationorhelpyou
want.
Ontheotherhand,youwilloccasionallyrunacrossrudenessandposturingthatisquitegratuitous.The
flipsideoftheaboveisthatitisacceptableformtoslamrealoffendersquitehard,dissectingtheir
misbehaviorwithasharpverbalscalpel.Bevery,verysureofyourgroundbeforeyoutrythis,however.
Thelinebetweencorrectinganincivilityandstartingapointlessflamewaristhinenoughthathackers
themselvesnotinfrequentlyblunderacrossitifyouareanewbieoranoutsider,yourchancesof
avoidingsuchablunderarelow.Ifyou'reafterinformationratherthanentertainment,it'sbettertokeep
yourfingersoffthekeyboardthantoriskthis.
(SomepeopleassertthatmanyhackershaveamildformofautismorAsperger'sSyndrome,andare
actuallymissingsomeofthebraincircuitrythatlubricatesnormalhumansocialinteraction.Thismay
ormaynotbetrue.Ifyouarenotahackeryourself,itmayhelpyoucopewithoureccentricitiesifyou
thinkofusasbeingbraindamaged.Gorightahead.Wewon'tcarewelikebeingwhateveritisweare,
andgenerallyhaveahealthyskepticismaboutclinicallabels.)
Inthenextsection,we'lltalkaboutadifferentissuethekindofrudenessyou'llseewhenyou
misbehave.

OnNotReactingLikeALoser
Oddsareyou'llscrewupafewtimesonhackercommunityforumsinwaysdetailedinthisarticle,or
similar.Andyou'llbetoldexactlyhowyouscrewedup,possiblywithcolourfulasides.Inpublic.
Whenthishappens,theworstthingyoucandoiswhineabouttheexperience,claimtohavebeen
verballyassaulted,demandapologies,scream,holdyourbreath,threatenlawsuits,complaintopeople's
employers,leavethetoiletseatup,etc.Instead,here'swhatyoudo:
Getoverit.It'snormal.Infact,it'shealthyandappropriate.
Communitystandardsdonotmaintainthemselves:They'remaintainedbypeopleactivelyapplyingthem,
visibly,inpublic.Don'twhinethatallcriticismshouldhavebeenconveyedviaprivateemail:That'snot
howitworks.Norisitusefultoinsistyou'vebeenpersonallyinsultedwhensomeonecommentsthatone
ofyourclaimswaswrong,orthathisviewsdiffer.Thoseareloserattitudes.
Therehavebeenhackerforumswhere,outofsomemisguidedsenseofhypercourtesy,participantsare
bannedfrompostinganyfaultfindingwithanother'sposts,andtoldDon'tsayanythingifyou're
unwillingtohelptheuser.Theresultingdepartureofcluefulparticipantstoelsewherecausesthemto

descendintomeaninglessbabbleandbecomeuselessastechnicalforums.
Exaggeratedlyfriendly(inthatfashion)oruseful:Pickone.
Remember:Whenthathackertellsyouthatyou'vescrewedup,and(nomatterhowgruffly)tellsyounot
todoitagain,he'sactingoutofconcernfor(1)youand(2)hiscommunity.Itwouldbemucheasierfor
himtoignoreyouandfilteryououtofhislife.Ifyoucan'tmanagetobegrateful,atleasthavealittle
dignity,don'twhine,anddon'texpecttobetreatedlikeafragiledolljustbecauseyou'reanewcomerwith
atheatricallyhypersensitivesoulanddelusionsofentitlement.
Sometimespeoplewillattackyoupersonally,flamewithoutanapparentreason,etc.,evenifyoudon't
screwup(orhaveonlyscrewedupintheirimagination).Inthiscase,complainingisthewaytoreally
screwup.
Theseflamersareeitherlamerswhodon'thaveacluebutbelievethemselvestobeexperts,orwouldbe
psychologiststestingwhetheryou'llscrewup.Theotherreaderseitherignorethem,orfindwaystodeal
withthemontheirown.Theflamers'behaviorcreatesproblemsforthemselves,whichdon'thaveto
concernyou.
Don'tletyourselfbedrawnintoaflamewar,either.Mostflamesarebestignoredafteryou'vechecked
whethertheyarereallyflames,notpointerstothewaysinwhichyouhavescrewedup,andnotcleverly
cipheredanswerstoyourrealquestion(thishappensaswell).

QuestionsNotToAsk
Herearesomeclassicstupidquestions,andwhathackersarethinkingwhentheydon'tanswerthem.
Q:WherecanIfindprogramorresourceX?
Q:HowcanIuseXtodoY?
Q:HowcanIconfiguremyshellprompt?
Q:CanIconvertanAcmeCorpdocumentintoaTeXfileusingtheBassomaticfileconverter?
Q:My{program,configuration,SQLstatement}doesn'twork
Q:I'mhavingproblemswithmyWindowsmachine.Canyouhelp?
Q:Myprogramdoesn'twork.IthinksystemfacilityXisbroken.
Q:I'mhavingproblemsinstallingLinuxorX.Canyouhelp?
Q:HowcanIcrackroot/stealchannelopsprivileges/readsomeone'semail?
Q: WherecanIfindprogramorresourceX?
A: ThesameplaceI'dfindit,foolattheotherendofawebsearch.Ghod,doesn'teverybodyknow
howtouseGoogleyet?
Q: HowcanIuseXtodoY?
A: IfwhatyouwantistodoY,youshouldaskthatquestionwithoutpresupposingtheuseofamethod
thatmaynotbeappropriate.Questionsofthisformoftenindicateapersonwhoisnotmerely

ignorantaboutX,butconfusedaboutwhatproblemYtheyaresolvingandtoofixatedonthedetails
oftheirparticularsituation.Itisgenerallybesttoignoresuchpeopleuntiltheydefinetheirproblem
better.
Q: HowcanIconfiguremyshellprompt?
A: Ifyou'resmartenoughtoaskthisquestion,you'resmartenoughtoRTFMandfindoutyourself.
Q: CanIconvertanAcmeCorpdocumentintoaTeXfileusingtheBassomaticfileconverter?
A: Tryitandsee.Ifyoudidthat,you'd(a)learntheanswer,and(b)stopwastingmytime.
Q: My{program,configuration,SQLstatement}doesn'twork
A: Thisisnotaquestion,andI'mnotinterestedinplayingTwentyQuestionstopryyouractualquestion
outofyouIhavebetterthingstodo.Onseeingsomethinglikethis,myreactionisnormallyof
oneofthefollowing:
doyouhaveanythingelsetoaddtothat?
oh,that'stoobad,Ihopeyougetitfixed.
andthishasexactlywhattodowithme?
Q: I'mhavingproblemswithmyWindowsmachine.Canyouhelp?
A: Yes.ThrowoutthatMicrosofttrashandinstallanopensourceoperatingsystemlikeLinuxorBSD.
Note:youcanaskquestionsrelatedtoWindowsmachinesiftheyareaboutaprogramthatdoeshave
anofficialWindowsbuild,orinteractswithWindowsmachines(i.e.,Samba).Justdon'tbesurprised
bythereplythattheproblemiswithWindowsandnottheprogram,becauseWindowsissobroken
ingeneralthatthisisveryoftenthecase.
Q: Myprogramdoesn'twork.IthinksystemfacilityXisbroken.
A: Whileitispossiblethatyouarethefirstpersontonoticeanobviousdeficiencyinsystemcallsand
librariesheavilyusedbyhundredsorthousandsofpeople,itisrathermorelikelythatyouareutterly
clueless.Extraordinaryclaimsrequireextraordinaryevidencewhenyoumakeaclaimlikethisone,
youmustbackitupwithclearandexhaustivedocumentationofthefailurecase.

Q: I'mhavingproblemsinstallingLinuxorX.Canyouhelp?
A: No.I'dneedhandsonaccesstoyourmachinetotroubleshootthis.GoaskyourlocalLinuxuser
groupforhandsonhelp.(Youcanfindalistofusergroupshere.)
Note:questionsaboutinstallingLinuxmaybeappropriateifyou'reonaforumormailinglistabouta
particulardistribution,andtheproblemiswiththatdistrooronlocalusergroupsforums.Inthis
case,besuretodescribetheexactdetailsofthefailure.Butdocarefulsearchingfirst,with"linux"
andallsuspiciouspiecesofhardware.
Q: HowcanIcrackroot/stealchannelopsprivileges/readsomeone'semail?
A: You'realowlifeforwantingtodosuchthingsandamoronforaskingahackertohelpyou.

GoodandBadQuestions
Finally,I'mgoingtoillustratehowtoaskquestionsinasmartwaybyexamplepairsofquestionsabout
thesameproblem,oneaskedinastupidwayandoneinasmartway.
Stupid:WherecanIfindoutstuffabouttheFoonlyFlurbamatic?
Thisquestionjustbegsfor"STFW"asareply.
Smart:IusedGoogletotrytofindFoonlyFlurbamatic2600ontheWeb,butIgotnousefulhits.Can
Igetapointertoprogramminginformationonthisdevice?
ThisonehasalreadySTFWed,andsoundsliketheremightbearealproblem.
Stupid:Ican'tgetthecodefromprojectfootocompile.Whyisitbroken?
Thequerentassumesthatsomebodyelsescrewedup.Arrogantgit...
Smart:Thecodefromprojectfoodoesn'tcompileunderNulixversion6.2.I'vereadtheFAQ,butit
doesn'thaveanythinginitaboutNulixrelatedproblems.Here'satranscriptofmycompilationattempt
isitsomethingIdid?
Thequerenthasspecifiedtheenvironment,readtheFAQ,isshowingtheerror,andisnot
assuminghisproblemsaresomeoneelse'sfault.Thisonemightbeworthsomeattention.
Stupid:I'mhavingproblemswithmymotherboard.Cananybodyhelp?
J.RandomHacker'sresponsetothisislikelytobeRight.Doyouneedburpinganddiapering,
too?followedbyapunchofthedeletekey.
Smart:ItriedX,Y,andZontheS2464motherboard.Whenthatdidn'twork,ItriedA,B,andC.Note
thecurioussymptomwhenItriedC.Obviouslytheflorbishisgrommicking,buttheresultsaren'twhat
onemightexpect.WhataretheusualcausesofgrommickingonAthlonMPmotherboards?Anybodygot

ideasformoretestsIcanruntopindowntheproblem?
Thisperson,ontheotherhand,seemsworthyofananswer.He/shehasexhibitedproblemsolving
intelligenceratherthanpassivelywaitingforananswertodropfromonhigh.
Inthelastquestion,noticethesubtlebutimportantdifferencebetweendemandingGivemeananswer
andPleasehelpmefigureoutwhatadditionaldiagnosticsIcanruntoachieveenlightenment.
Infact,theformofthatlastquestioniscloselybasedonarealincidentthathappenedinAugust2001on
thelinuxkernelmailinglist(lkml).I(Eric)wastheoneaskingthequestionthattime.Iwasseeing
mysteriouslockupsonaTyanS2462motherboard.ThelistmemberssuppliedthecriticalinformationI
neededtosolvethem.
ByaskingthequestioninthewayIdid,IgavepeoplesomethingtochewonImadeiteasyand
attractiveforthemtogetinvolved.Idemonstratedrespectformypeers'abilityandinvitedthemto
consultwithmeasapeer.Ialsodemonstratedrespectforthevalueoftheirtimebytellingthemtheblind
alleysIhadalreadyrundown.
Afterwards,whenIthankedeveryoneandremarkedhowwelltheprocesshadworked,anlkmlmember
observedthathethoughtithadworkednotbecauseI'manameonthatlist,butbecauseIaskedthe
questionintheproperform.
HackersareinsomewaysaveryruthlessmeritocracyI'mcertainhewasright,andthatifIhadbehaved
likeaspongeIwouldhavebeenflamedorignorednomatterwhoIwas.HissuggestionthatIwriteup
thewholeincidentasinstructiontoothersleddirectlytothecompositionofthisguide.

IfYouCan'tGetAnAnswer
Ifyoucan'tgetananswer,pleasedon'ttakeitpersonallythatwedon'tfeelwecanhelpyou.Sometimes
themembersoftheaskedgroupmaysimplynotknowtheanswer.Noresponseisnotthesameasbeing
ignored,thoughadmittedlyit'shardtospotthedifferencefromoutside.
Ingeneral,simplyrepostingyourquestionisabadidea.Thiswillbeseenaspointlesslyannoying.Have
patience:thepersonwithyouranswermaybeinadifferenttimezoneandasleep.Oritmaybethatyour
questionwasn'twellformedtobeginwith.
Thereareothersourcesofhelpyoucangoto,oftensourcesbetteradaptedtoanovice'sneeds.
Therearemanyonlineandlocalusergroupswhoareenthusiastsaboutthesoftware,eventhoughthey
mayneverhavewrittenanysoftwarethemselves.Thesegroupsoftenformsothatpeoplecanhelpeach
otherandhelpnewusers.
Therearealsoplentyofcommercialcompaniesyoucancontractwithforhelp,bothlargeandsmall.
Don'tbedismayedattheideaofhavingtopayforabitofhelp!Afterall,ifyourcarengineblowsahead
gasket,chancesareyouwouldtakeittoarepairshopandpaytogetitfixed.Evenifthesoftwaredidn't
costyouanything,youcan'texpectthatsupporttoalwayscomeforfree.
ForpopularsoftwarelikeLinux,thereareatleast10,000usersperdeveloper.It'sjustnotpossiblefor
onepersontohandlethesupportcallsfromover10,000users.Rememberthatevenifyouhavetopayfor
support,youarestillpayingmuchlessthanifyouhadtobuythesoftwareaswell(andsupportfor
closedsourcesoftwareisusuallymoreexpensiveandlesscompetentthansupportforopensource

software).

HowToAnswerQuestionsinaHelpfulWay
Begentle.Problemrelatedstresscanmakepeopleseemrudeorstupidevenwhenthey'renot.
Replytoafirstoffenderoffline.Thereisnoneedofpublichumiliationforsomeonewhomayhavemade
anhonestmistake.ArealnewbiemaynotknowhowtosearcharchivesorwheretheFAQisstoredor
posted.
Ifyoudon'tknowforsure,sayso!Awrongbutauthoritativesoundinganswerisworsethannoneatall.
Don'tpointanyonedownawrongpathsimplybecauseit'sfuntosoundlikeanexpert.Behumbleand
honestsetagoodexampleforboththequerentandyourpeers.
Ifyoucan'thelp,don'thinder.Don'tmakejokesaboutproceduresthatcouldtrashtheuser'ssetupthe
poorsapmightinterprettheseasinstructions.
Askprobingquestionstoelicitmoredetails.Ifyou'regoodatthis,thequerentwilllearnsomething
andsomightyou.Trytoturnthebadquestionintoagoodonerememberwewereallnewbiesonce.
WhilemutteringRTFMissometimesjustifiedwhenreplyingtosomeonewhoisjustalazyslob,a
pointertodocumentation(evenifit'sjustasuggestiontogoogleforakeyphrase)isbetter.
Ifyou'regoingtoanswerthequestionatall,givegoodvalue.Don'tsuggestkludgyworkaroundswhen
somebodyisusingthewrongtoolorapproach.Suggestgoodtools.Reframethequestion.
Answertheactualquestion!Ifthequerenthasbeensothoroughastodohisorherresearchandhas
includedinthequerythatX,Y,Z,A,B,andChavealreadybeentriedwithoutgoodresult,itis
supremelyunhelpfultorespondwithTryAorB,orwithalinktosomethingthatonlysays,TryX,Y,
Z,A,B,orC..
Helpyourcommunitylearnfromthequestion.Whenyoufieldagoodquestion,askyourselfHow
wouldtherelevantdocumentationorFAQhavetochangesothatnobodyhastoanswerthisagain?
Thensendapatchtothedocumentmaintainer.
Ifyoudidresearchtoanswerthequestion,demonstrateyourskillsratherthanwritingasthoughyou
pulledtheansweroutofyourbutt.Answeringonegoodquestionislikefeedingahungrypersonone
meal,butteachingthemresearchskillsbyexampleisshowingthemhowtogrowfoodforalifetime.

RelatedResources
Ifyouneedinstructioninthebasicsofhowpersonalcomputers,Unix,andtheInternetwork,seeThe
UnixandInternetFundamentalsHOWTO.
Whenyoureleasesoftwareorwritepatchesforsoftware,trytofollowtheguidelinesintheSoftware
ReleasePracticeHOWTO.

Acknowledgements

EvelynMitchellcontributedsomeexamplestupidquestionsandinspiredtheHowToGiveAGood
Answersection.MikhailRamendikcontributedsomeparticularlyvaluablesuggestionsfor
improvements.

You might also like