Jak se správně ptát
Toto je zrcadlo od spazeho z 26. dubna 2006. stare.cz má jakýsi problém.
Překlad
16. dubna 2004, překlad verze 3.0 anglického
originálu.
27. září 2004, opravy od Jakuba Vrány.
Upozornění
Stránky mnoha projektů uvádějí odkaz na tento dokument jako nápovědu. To je
v pořádku, to jsme zamýšleli - pokud ale na své stránce takový odkaz
vytváříte, zdůrazněte prosím, že nejsme helpdesk pro váš projekt!
Bez takového upozornění (jak jsme zjistili) budeme opakovaně obtěžováni idioty,
kteří se domnívají, že zveřejnění podobného dokumentu nás zavazuje řešit veškeré
technické problémy světa.
Pokud čtete tento dokument ve snaze získat pomoc, a odnášíte si dojem, že tuto
pomoc získáte od nás, pak právě vy patříte mezi takové idioty.
Nás se neptejte. Neodpovíme vám. Chceme vám jen ukázat, jak získat
pomoc od těch, kteří vašim problémům rozumí, což z devětadevadesáti procent
nejsme my. Pakliže si nejste jisti, že právě některý z autorů je
odborníkem na váš problém, dejte nám raději pokoj a všechno bude lepší.
Úvod
Ve světě
hackerů
záleží odpověď na vaši technickou otázku stejně tak na obtížnosti otázky
samotné jako na tom, jak se zeptáte. Tato příručka si klade za cíl poučit vás o
tom, jak se ptát tak, abyste získali uspokojivou odpověď.
Předně, hackeři mají rádi těžké problémy a dobré, stimulující otázky. Jinak
bychom to nedělali. Za dobrou otázku budeme vděční; dobrá otázka je povzbuzení.
Dobré otázky prohlubují chápání věci, a často odhalí problémy, kterých bychom si
jinak nevšimli. Mezi hackery je "Dobrá otázka!" skutečným komplimentem.
Přesto mají hackeři reputaci těch, kdo přijímají jednoduché otázky
s jakýmsi nepřátelstvím či arogancí. Vypadá to, jako bychom byli na
začátečníky a neználky drzí. Ale tak to není.
Jsme jen zaujatí vůči lidem, kteří nechtějí přemýšlet nebo se sami snažit
předtím, než se začnou ptát. S takovými lidmi člověk pouze ztrácí čas,
který se dá strávit nad jinou, zajímavější otázkou, nebo věnovat někomu, kdo
spíš stojí za odpověď. Říkáme takovým lidem losers [lúzeři] (a
z historických důvodů to někdy píšeme lusers).
Uvědomujeme si, že spousta lidí se nezajímá o technické detaily, chtějí prostě
jen používat programy, které píšeme. Pro většinu lidí je počítač pouhý nástroj -
mají spoustu lepších věcí na práci a svých starostí dost. To bereme na vědomí, a
nečekáme, že se každý zajímá o technické záležitosti, které fascinují nás.
Nicméně naše odpovědi jsou šité pro lidi, kteří takový zájem mají, a
jsou připraveni se aktivně účastnit řešení daného problému. To se nezmění - a
není ani proč. Jenom bychom se zhoršili v tom, co nám jde nejlépe.
Většina z nás jsou dobrovolníci. Taky máme spoustu práce, a najdeme si čas
na zodpovídání otázek - které nás občas zavalují. Takže nemilosrdně filtrujeme.
Zvláště zahazujeme otázky od loserů, abychom mohli svůj čas strávit plodněji nad
otázkami těch ostatních.
Pokud vás takový postoj uráží nebo vám přijde arogantní, blahosklonný, či
prostě nepřijatelný, zamyslete se nad svým postojem. Nemusíte se před nikým
klanět - většina z nás bude upřímně jednat jako s rovným členem
vlastní kultury s každým, kdo se bude trochu snažit. Je prostě marné snažit
se pomoci někomu, kdo se nesnaží pomoct si sám. Nevědět - to je v pořádku.
Dělat blbého v pořádku není.
K získání pozornosti není nutné mít patřičné technické schopnosti, zato
je nutné projevit postoj, který ke schopnostem vede - pohotovost,
přemýšlivost, pozornost, pečlivost. Pokud to považujete za diskriminaci,
nežádejte osobní pomoc - můžete si přeci zaplatit technickou podporu.
Pokud si jdete pro pomoc, neměl byste vypadat jako loser. Nejlepší způsob, jak
získat rychlou odpověď, je ptát se směle jako člověk, který chápe, jen prostě
potřebuje s touto konkrétní věcí pomoci.
(Veškeré zlepšovací návrhy vítáme. Pište na
esr@thyrsus.com. Tento text však není
zamýšlen jako obecný průvodce
netiketou, a přijímají se
pouze návrhy ohledně získávání užitečných odpovědí na technické dotazy.
Poznámka překladatele: připomínky směřujte pochopitelně anglicky
k anglickému
originálu, a to
k aktuální verzi - překlad může být zpozdilý.)
Než se zeptáte
Než začnete klást otázky mailem nebo v news nebo na webovém fóru,
- zkuste najít odpověď na webu.
- zkuste najít odpověď v manuálu.
- zkuste najít odpověď ve FAQ.
- zkuste najít odpověď experimentováním.
- zkuste se zeptat zkušenějšího kamaráda.
- zkuste odpověď zjistit ze zdrojového kódu (jste-li programátor).
Když se ptáte, ukažte, že jste to už zkusili - ukážete, že nejste lenoch a
příživník plýtvající cizím časem. Ještě lépe: ukažte, že jste se
z dosavadních snah poučili. Rádi odpovídáme těm, kteří se
z odpovědí poučí.
Zkuste najít text své chybové hlášky v
Google. Možná se dostanete přímo na ten
odstavec v dokumentaci nebo příspěvek v konferenci, který vaši otázku
zodpoví. A i když ne, je lepší, když pak můžete do mailu napsat "Hledal
jsem v Google, ale nic pořádného jsem nenašel".
Svou otázku si připravte a promyslete. Na ukvapené otázky dostanete jen ukvapené
odpovědi (nebo žádné). Čím víc bude znát, že jste se pokusili problém vyřešit
ještě předtím, než jste se rozhodli žádat o pomoc, tím spíše se vám pomoci
skutečně dostane.
Pozor na špatně položené otázky. Pokud se ptáte na základě špatných
předpokladů, Hackerovic Lojza si nejspíš řekne "blbost ..." a odpoví zcela
nepoužitelným doslovným řešením, které vaše otázka implikuje. Místo toho, co
jste potřebovali, dostanete to, oč jste žádali.
Nepředpokládejte, že máte na odpověď nárok. Nemáte; koneckonců za ni
nikomu neplatíte. Odpovědi se vám dostane, je-li vaše otázka zajímavá,
podstatná nebo stimulující - taková, která nakonec prospěje všem zúčastněným a
přispěje ke zkušenostem celé komunity, narozdíl od otázky, která pouze tahá
rozumy z ostatních.
Je dobré ukázat, že jste sami připraveni pomoci při řešení problému. Spíše se
dostane odpovědi otázkám "Mohl byste mě někdo nasměrovat?", "Co mému příkladu
chybí?" a "Co bych si měl přečíst?", než "Prosil bych přesný postup", protože
dáváte najevo, že jste připraveni dotáhnout věc do konce, když vám někdo ukáže
kudy.
Když se ptáte
Zvolte pečlivě, koho se zeptat
Citlivě uvažte, kde se zeptat. Odpovědi se nejspíš nedočkáte (nebo s vámi
rovnou bude zacházeno jako s loserem), pokud:
- pošlete svou otázku někam, kde se probírá jiné téma
- pošlete velmi elementární otázku do fóra, kde se probírají pokročilé
technické detaily, nebo naopak
- pošlete svou otázku zároveň na několik různých míst
- pošlete svou otázku osobně někomu, koho neznáte, a kdo za váš
problém nikterak nezodpovídá.
Špatně mířené otázky většinou hackeři zahazují, aby uchránili komunikační
kanály před záplavou podružností. To si jistě nepřejete.
Prvním krokem je tedy zvolit pro svou otázku správné fórum. Google a
prohledávání webu vůbec vám pomůže najít stránky projektu, který se vašich
problémů týká co možná nejvíc. Obvykle tam najdete i odkazy na FAQ (= frequently
asked questions, často kladené otázky), mailing listy a jejich archivy. Mailing
list je ta poslední instance, pokud vaše vlastní snahy (včetně pročtení
FAQ) selžou.
Vypálit svou otázku do neznáma je přinejmenším riskantní. Nepředpokládejte
například, že se autor nějaké informační stránky chce stát vaším osobním
poradcem. Nepředpokládejte ani, že vaše otázka je vítána. Pokud si nejste jisti,
pošlete ji radši jinam, nebo neposílejte nic.
Při výběru vhodného mailing listu nebo newsgrupy se příliš nespoléhejte na
jejich název; přečtěte si něco ze starších dotazů a odpovědí, ať víte, že jste
na správném místě; případně zjistíte, jak to tam chodí. Správné je vyhledat
ještě před odesláním otázky klíčová slova v archivu: když nezískáte přímo
odpověď, dojdete třeba k lepší formulaci problému.
Ujasněte si své téma! Klasickou chybou je klást obecné programátorské otázky
(řekněme vůči UNIXu či Windows) v konferenci věnované nějakému konkrétnímu
jazyku či knihovně (která je portována na oba systémy). Pokud nechápete, proč je
to chyba, radši nikam nepište, dokud to nepochopíte.
Obecně platí, že otázka veřejně zaslaná do správně vybraného fóra má
mnohem větší šanci na odpověď než tatáž otázka zaslaná soukromě. Jednak si ji
přečte víc lidí, jednak má i případná odpověď větší publikum. Hackeři radši
zodpoví takovou otázku, která poučí mnohé, než takovou, která poslouží jen pár
lidem.
Schopní hackeři a autoři oblíbeného softwaru dostávají spoustu špatně
adresovaných zpráv. Pokud se k této záplavě přidáte, můžete se
v krajním případě stát poslední kapkou - několikrát už přispěvatelé
oblíbených projektů zcela zrušili uživatelskou podporu, protože objem zbytečných
zpráv v osobní komunikaci byl neúnosný.
Nejrychleji najdete odpověď na webu nebo IRC kanálu pro nováčky
Vaše místní user group nebo Vaše linuxová distribuce má webové fórum nebo IRC
kanál zřízený speciálně pro nováčky. To je dobrý první pokus, obzvláště pokud
narazíte na nějaký jednoduchý problém. Na IRC kanálu možná dostanete odpověď
obratem.
Pokud Vás zlobí nějaký program z konkrétní distribuce, možná bude lepší
obrátit se nejdříve na fórum/maillist té které distribuce, a nikoli přímo na
autory. Ti Vám nejspíše řeknou: "No tak použijte naší verzi."
Než do webového fóra napíšete, poohlédněte se po nějakém vyhledávacím formuláři
- pokud tam mají vyhledávání, zkuste nejdříve svůj problém najít v archivu.
Pokud jste již hledali obecně na webu, stejně to zkuste i tady - možná, že Váš
vyhledávač ještě nemá celé toto fórum zindexované.
Čím dál více projektů začíná pro podporu uživatelů používat web nebo IRC (a
ponechává mailing listy jako nástroj komunikace vývojářů). Pokud se tedy Váš
dotaz týká nějakého konkrétního projektu, zkuste nejdříve toto.
Jako druhou možnost použijte mailing list
Pokud má projekt svůj uživatelský mailing list, používejte ho - adresu najdete
v dokumentaci nebo na webových stránkách projektu. Nepište jednotlivým
vývojářům, i když si myslíte, že přesně víte, kdo by vaši otázku nejspíš
zodpověděl. Je k tomu několik dobrých důvodů:
-
Problém, který stojí za otázku na vývojáře, má svou hodnotu pro celou skupinu
uživatelů. Pokud se naopak obáváte, že vaše otázka je příliš hloupá na to,
abyste ji posílali do mailing listu, nemá cenu obtěžovat s ní jednotlivé
vývojáře.
-
Dotazy položené v mailing listu se přirozeně rozloží mezi jednotlivé
vývojáře. Naproti tomu jednotlivec (obzvláště vedoucí projektu) bude nejspíše
dosti zaneprázdněn.
-
Mailing listy jsou archivovány a dají se zpětně prohledávat. Takže další tazatel
už případnou odpověď najde v archivu a nemusí se ptát znovu.
-
Pokud se jisté otázky stále opakují, pomůže to vývojářům sepsat lepší
dokumentaci nebo vylepšit samotný software. Pokud se ptáte jednotlivců, nikdo
nemůže mít kompletní přehled o tom, na co se uživatelé nejčastěji ptají.
Pokud má projekt jak "uživatelský", tak "vývojářský" mailing
list, pište nejdříve do uživatelského - pakliže se aktivně nepodílíte přímo na
psaní kódu. Na vývojářském listu byste nejspíše obtěžovali.
Pokud jste si nicméně jisti, že vaše otázka je závažná, a na
uživatelském listu se Vám několik dní nedostalo odpovědi, zkuste vývojářský
list. Než tam ale napíšete, porozhlédněte se, jak to tam chodí - to se ostatně
týká každého (polo)soukromého mailing listu.
Pokud se vám nedaří najít adresu mailing listu, ale znáte adresu vedoucího
projektu, napište mu. Nepředpokládejte však, že mailing list neexistuje -
napište, že jste se ho pokusili najít, ale nenašli. Zmiňte se rovněž, že vám
nevadí, bude-li vaše zpráva přeposlána dalším lidem. (Mnoho lidí má za to, že
osobní korespondence je přísně soukromá, i když neobsahuje nic tajného. Dáte-li
korespondentovi možnost zprávu přeposílat, může se teprve rozhodnout, jak
s vaším mailem naloží).
Použijte smysluplný, výstižný "Subject:"
Hlavička "Subject:" vám dává možnost upoutat pomocí padesáti písmen pozornost
kvalifikovaného odborníka. Takže ji nepromarněte bláboly typu "pomozte prosím"
(natožpak "POMOC!!!!! PROSÍM!!!!!!" - takové zprávy se rovnou mažou). Nesnažte
se nikoho dojmout svým trápením, ale pregnatně vyslovte svůj problém.
Užitečnou konvencí je používat "Subject:" tvaru "téma - problém", přičemž "téma"
popisuje, které věci se problém týká, a "problém" je popis chyby. Například:
- Špatně:
POMOC! Nefunguje mi na laptopu grafika!
- Dobře:
Deformovaný kurzor v XFree86 4.1, chipset Fooware MV1005
- Lépe:
Kurzor v XFree86 4.1 s chipsetem Fooware MV1005 - je deformovaný
Takový popis usměrňuje tok myšlenek směrem k podstatným detailům: co je
přesně špatně? Jenom kurzor, nebo i ostatní grafika? Týká se to výhradně
XFree86? Ve verzi 4.1? Speciálně s chipsetem Fooware? Model MV1005? Je hned
vidět, s čím máte problém, a jaký přesně je to problém.
Představte si, že se obsah archivu zobrazuje jen jako řádky se Subjectem.
Napište svůj subject tak, aby další člověk se stejným problémem mohl jít
vyšlapanou cestou, a nemusel se ptát znovu na totéž.
Pokud v odpovědi kladete další otázky, změňte Subject zprávy tak, aby bylo
jasné, že obsahuje další otázky. Subject jako "Re: test" asi nikoho nezaujme.
Rovněž ocitujte relevantní části předchozí korespondence, aby se mohli zapojit i
nově příchozí.
Chcete-li v mailing listu začít novou debatu, nezačínejte odpovědí na
některou z předchozích zpráv - omezíte své publikum. Některé poštovní
programy (např. mutt) umožňují řadit zprávy do threadů ("vláken" vzájemně
navazujících zpráv) a tyto thready vizuálně "zabalit". Takoví uživatelé vaši
zprávu nikdy neuvidí.
V takovém případě nestačí ani změnit Subject - zprávy se threadují i podle
jiných hlaviček. Začněte zbrusu novou zprávou.
Na webových fórech je situace trošku jiná: zprávy jsou často úzce svázány
s konkrétním threadem, a mimo něj se nezobrazují. V takovém případě
není nutné měnit subject, když kladete další otázky (ostatně některá fóra to ani
neumožnují). Nicméně další otázky, položené v odpovědích, uvidí jen ti,
kteří už současný thread sledují. Pokud si tedy nejste jisti, že se chcete
zeptat stávajícího publika, začněte nový thread.
Odpovědět musí být snadné
Končí-li vaše zpráva slovy "Odpovězte mi prosím na adresu ...", nejspíše žádnou
odpověď nedostanete. Pokud nevěnujete ani těch pár vteřin tomu, abyste si
správně nastavili "Reply-To:", těžko bude někdo věnovat čas vašim problémům.
Pokud to váš poštovní program neumožňuje, pořiďte si lepší. Pokud pro váš
operační systém takové programy nejsou, pořiďte si lepší operační systém.
Žádat na webovém fóru separátní odpověď emailem je vyložená nevychovanost,
pakliže se nejedná o nějaké citlivé informace. Chcete-li být mailem upozorněni
na odpověď, použijte přímo funkcí toho webového fóra - většinou máte možnost
"sledovat tento thread" nebo "odebírat odpovědi".
Pište jasně, spisovně a bez překlepů.
Zkušenost nás učí, že ledabylí a nepozorní pisatelé většinou také nedbale
uvažují (a programují). Odpovídat takovým je k ničemu. Radši budeme dělat
něco jiného.
Vyjádřit se přesně a jasně je velmi důležité. Pokud vám to nestojí za námahu,
nám to nestojí za pozornost. Svůj jazyk pečlivě pročistěte. Nemusí být upjatý či
formální - hackeři spíše ocení neformální, slangový, vtipný jazyk, pakliže se
v něm vyjadřujete přesně. Váš zájem a soustředění musí být zřejmé.
Používejte správně interpunkci a velká písmena. Nepište VŠECHNO KAPITÁLKAMI - to
se považuje za psanou formu křiku a za protivnost. (Všechna malá nejsou o moc
lepší, protože se špatně čtou. Alanu Coxovi to projde, ale vám ne.)
Obecně vzato, píšete-li jako pologramotné nemehlo, budou vás ignorovat. Odezvou
na projev někoho, kdo se vyjadřuje jako fuckt d0st wostrey týpeck, bývá jen
ticho (nebo posměch).
Ptáte-li se ve fóru, kde se mluví cizím jazykem, jistě vám prominou nějakou tu
chybu v pravopise, ale lenost vám promíjet nebudou (a ten rozdíl se pozná).
Dále, pokud nevíte, kterou řečí adresát(i) mluví, pište anglicky. Zprávu
v jazyce, kterému nerozumí, každý hned smaže; a jazykem internetu je
angličtina.
Pokud uměle ztížíte čitelnost své otázky, nejspíš bude přeskočena ve prospěch
nějaké čitelnější. Proto:
-
Posílejte čistě textové maily (plain text), žádné HTML. Vypnout HTML není těžké.
-
MIME přílohy jsou v pořádku, pakliže jsou opravdu k věci (přiložený
zdrojový kód a podobně), a nejsou jen balastem vašeho poštovního programu (jako
např. další kopie těla zprávy).
-
Neposílejte maily, ve kterých jdou odstavce bez zalomení přes několik řádek. (Je
složité odpovídat na části takového textu.) Předpokládejte, že váš mail bude
číst někdo, kdo má čistě textový terminál, široký 80 znaků, a zalamujte podle
toho řádky (tj. dříve než na osmdesátém znaku).
-
Data (jako např. výstupní logy programů a chybová hlášení) naopak vůbec
nezalamujte. Posílejte je tak jak jsou, ať má čtenář stejnou informaci,
jakou vidíte vy.
-
Nepište do anglicky mluvících konferencí s diakritikou. To je samozřejmě
potřeba, pokud píšete jazykem, který se nevejde do ASCII, ale mnoho poštovních
programů tato kódování neumí. A všechna ta "=20" roztroušená po textu jsou
opravdu hnusná.
-
V žádném případě nečekejte, že se hacker bude snažit přečíst nějaký
uzavřený proprietární formát, jako třeba Microsoft Word. Většina bude reagovat
asi tak jako vy, kdyby vám někdo na práh vyklopil kýbl hnoje.
-
Píšete-li z počítače, na kterém běží Windows, rozhodně vypněte stupidní
"Smart Quotes". Ve vašem mailu ubyde zbytečného balastu.
- Na webových fórech nezneužívejte "smajlíky" a možnosti html -
pokud je Vaše zpráva plná :-))))))) a barevného textu, čtenáři si řeknou, že
jste blbeček nebo chichotající se šestnáctka (což vám možná dopomůže
k sexuálním zážitkům, ale ne k odpovědím).
Používáte-li nějaký grafický poštovní program (Netscape Messenger, MS Outlook a
tahle sorta) s jejich standardním nastavením, nejspíš některé z těchto
pravidel porušujete. Tyto programy mívají funkci "View source (Zobrazit zdrojový
text)" - vyzkoušejte na svých odeslaných mailech, zda skutečně odesíláte jen
čistý text, bez zbytečného balastu.
Popište problém co nejpřesněji
-
Popište příznaky problému nebo chyby co možná nejjasněji a nejpečlivěji.
-
Popište prostředí, ve kterém chyba nastává, tj. architekturu, operační systém,
aplikaci, verzi, atd. Jmenujte distribuci a verzi systému (např. Red Hat
8.0, Slackware 5.1, atd.).
-
Popište, jak jste se k chybě dostali, a jak jste se ji pokusili odhalit,
isolovat a pochopit ještě předtím, než jste se zeptali.
-
Popište relevantní změny v konfiguraci, které jste v poslední době
provedli.
-
Pokuste se už předem zodpovědět případné doplňující otázky.
Množství není přesnost
Je třeba vyjádřit se přesně. K tomu nestačí zakomponovat do otázky obrovské
množství kódu nebo dat. Posíláte-li rozsáhlý test, demonstrující chybu programu,
pokuste se ho ořezat na co nejmenší konzistentní část.
Jsou pro to alespoň tři dobré důvody. Za prvé: snaha zjednodušit otázku
vám spíše zaručí odpověď; za druhé: zjednodušení otázky spíše zaručí
užitečnou odpověď; za třetí: při zjemňování vlastní otázky
možná přijdete na odpověď sami.
Netvrďte, že jste našli chybu
Pokud máte problémy s nějakým softwarem, netvrďte hned, že jste našli
chybu, pakliže si nejste opravdu jisti. Pokud zároveň nezasíláte opravu
zdrojového kódu nebo zpětně ověřitelný test, který chybu demonstruje, pak si
patrně jisti nejste.
Uvědomte si, že spousta lidí daný software používá, aniž by k takové chybě
docházelo. Jinak byste na ni přišli už při čtení dokumentace nebo byste našli
její popis na webu (což jste jistě zkusili ještě předtím, než jste se začali
ptát,
nebo ne?). Takže chyba je nejspíš na vaší straně,
nikoli v programu.
Lidé, kteří ten software napsali, si dali velmi záležet na tom, aby fungoval
nejlepším možným způsobem. Tvrdíte-li, že jste našli chybu, znamená to, že tu
chybu udělali oni - což se jich většinou dotkne, i když máte pravdu. Zvláště
nediplomatické je hulákat CHYBA! už v Subjectu.
Pište svůj dotaz raději z pozice toho, kdo podezřívá z chyby nejdřív
sebe, i když si jste celkem jisti, že je to opravdu chyba softwaru.
Pokud je to opravdu tak, v odpovědi se o tom jistě dočtete. Vývojář se
nejspíš bude chtít omluvit - což je lepší než dlužit mu omluvu za vlastní
zmatky.
Servilita vás neomlouvá z domácích prací
Někteří z těch, kteří vědí, že by otázka neměla působit neurvale či
arogantně, se uchylují k opačnému extrému - ke skuhrání. Vím, že jsem
jen ubohý začátečník a loser, ale .... Tím ničemu nepomůžete. Zvláště
protivné je to ve spojení s vágně položenou otázkou.
Nemarněte svůj (ani náš) čas takovou neomalenou politikou. Raději co nejjasněji
popište situaci a svůj problém.
Na webových fórech bývá speciální sekce pro nováčky - je-li tedy vaše otázka
začátečnická, jděte rovnou sem. Ale ani tady neskuhrejte.
Popište příznaky problému, nikoli vlastní dohady
Nepovídejte hackerům, kde jsou příčiny vašich problémů. (Ptají se takoví machři,
co to hned poznají, ostatních na radu?) Spíše než svoje teorie a interpretace
jim popište příznaky problému. Diagnostika je na nich.
- Špatně:
-
Při kompilaci jádra dostávám divné segfaulty, a něco se mi nepozdává na
motherboardu: asi nějaký přerušený spoj. Jak to mám zkontrolovat?
- Dobře:
-
Postavil jsem si K6/233 na motherboardu FIC-PA2007 (chipset VIA Apollo VP2)
s 256MB Corsair PC133 SDRAM. Asi dvacet minut po bootu začínám dostávat
segfaulty při kompilaci jádra; během prvních dvaceti minut nikdy ne. Po vypnutí
přes noc se vyresetovaly hodiny, při rebootu ne. Vyswapovat celou paměť nijak
nepomohlo. Následuje log typického případu.
Popište příznaky problému chronologicky
Nejužitečnější nápovědou při nějaké chybě bývá to, co bezprostředně předcházelo.
Popište tedy přesně, co jste udělali, jak program odpověděl, a tak dále až
k selhání programu. V případě textových programů, komunikujících
pomocí příkazové řádky, je velmi užitečné přiložit záznam posledních - řekněme -
dvaceti řádek (např. pomocí programu script).
Má-li program nějakou vnitřní diagnostiku (typicky -v jako verbose),
zvažte pečlivě, které informace k záznamu přidat.
Pokud je nakonec popis chyby dlouhý (řekněme více než čtyři odstavce), může být
užitečnější precizně zformulovat problém hned na začátku a pokračovat
podrobnostmi. Čtenář pak ví, na co se při četbě soustředit.
Popište cíl, nikoli dílčí krok
Pokud zjišťujete, jak se udělá to či ono, hned na začátku popište svůj cíl.
Teprve poté popisujte dílčí krok, který se vám nedaří.
Lidé hledající technickou pomoc mají často na mysli nějaký konečný cíl, a
problémy mají s něčím, co považují za jeden z dílčích kroků vedoucích
k tomuto cíli. Ptají se na radu ohledně tohoto kroku, a přitom třeba
nevědí, že jdou po úplně špatné cestě.
- Špatně:
-
Jak se ve FooDraw zjišťují RGB hodnoty barev?
- Správně:
-
Snažím se nahradit tabulku barev jistého obrázku vlastními barvami. Nevidím
jinou cestu než přepsat postupně všechny záznamy v tabulce, ale nedaří se
mi ve FooDraw získat RGB hodnoty příslušných barev.
Druhá verze otázky je lepší - odpověď může obsahovat návrh na úplně jiné řešení
úkolu.
Nežádejte soukromou odpověď
Hackeři jsou přesvědčeni, že řešení problémů má být věc veřejná a transparentní.
Pokud si někdo další všimne, že odpověď je neúplná či chybná, může (a měla by)
být doplněna či opravena. Rovněž je jim odměnou jistý kredit, který získají u
kolegů, když dokáží kompetentně zodpovídat otázky veřejnosti.
Soukromá odpověď znemožňuje obojí. Nedělejte to. Je věcí
odpovídajícího, jestli odpoví soukromě - a pokud ano, bude to nejspíš
proto, že otázka není dost zajímavá pro ostatní.
Existuje jedna výjimka: je-li otázka taková, že lze očekávat mnoho navzájem
podobných odpovědí, použijte kouzelná slůvka "odpovídejte na soukromý mail,
shrnu pak odpovědi veřejně". Je slušností ušetřit mailing list záplavy téměř
identických odpovědí - ale musíte svůj slib dodržet.
Řekněte jasně, co chcete
Otázky s otevřeným koncem jsou jako časová výlevka (s otevřeným koncem).
Lidé, kteří by mohli nejspíše zodpovědět váš dotaz, jsou většinou zároveň ti
nejzaneprázdněnější. Bývají alergičtí na časové výlevky - a na otázky
s otevřeným koncem.
Užitečnou odpověď dostanete tím spíše, čím jasněji řeknete, co po adresátech
vlastně žádáte (poučit vás o dokumentaci, poslat kód, vyzkoušet vaši opravu,
reprodukovat chybu, cokoli). Jejich snaha získá jasný cíl a získají jistou horní
mez pro odhad investované energie a času. Což je dobře.
Zkuste si představit odbornost jako hojně se vyskytující materiál a čas
jako vzácnou bylinu. Čím menší časovou investici žádáte, tím spíše se vám
dostane odpovědi od někoho skutečně schopného (a zaneprázdněného).
Je užitečné postavit otázku tak, aby se dala zodpovědět co nejrychleji -
což není totéž jako otázku zjednodušit. Například: "Poradil byste mi, kde najdu
dobré vysvětlení pro X?" je lepší než "Vysvětlete mi prosím X". Nebo: máte-li
nějaký nefunkční kód, je lepší zeptat se, proč nefunguje, než žádat opravu.
Neptejte se na domácí cvičení
Hackeři většinou bezpečně rozeznají domácí úkoly - většina z nás je sama
řešila. Tyto otázky si máte vyřešit sami, a poučit se. Můžete se
samozřejmě zeptat na radu, ale nežádejte po nikom řešení základních věcí.
Pouze tehdy, pokud nedokážete s úlohou hnout, zkuste se zeptat. Otázka bude
nepochybně odhalena jako domácí cvičení, ale možná Vám někdo naznačí směr.
Zbytečné otázky v kriminalistice
Odolejte pokušení uzavřít svou žádost bezvýznamnými otázkami jako "Mohl by
mi prosím někdo pomoci?" nebo "Neznáte nějaké řešení?" Takové otázky jsou
přinejlepším nadbytečné. Jelikož jsou nadbytečné, mají je hackeři za otravné - a
mají sklon odpovídat na ně logicky bezchybnými větami typu "Ano, někdo Vám
možná pomůže" nebo "Ne, bohužel Vám není pomoci".
Obecně vzato, neklaďte otázky typu ano-ne, pokud skutečně nežádáte odpověď typu
ano-ne.
Neoznačujte svůj problém za "urgentní" (i když pro vás třeba
je)
To je přeci váš problém, ne náš. Většina hackerů takovou zprávu smaže jakožto
sobecký pokus vyloudit si speciální pozornost.
Existuje výjimka: když svůj problém řešíte na nějakém důležitém místě, které
hackery zaujme; v takovém případě, pokud vás opravdu tlačí čas, a slušně
požádáte, mohl by někdo skutečně odpovědět o něco rychleji.
Ovšem zdaleka to není jisté, protože hackerův žebříček "zajímavosti" je patrně
jiný než váš. Zprávě z mezinárodní orbitální stanice se jistě dostane
promptní odpovědi, zato dobře myšlené charitativní (nebo politické) pobídce
nejspíš ne. Napíšete-li Urgentní: Zachraňte nebohá tuleňátka!,
pravděpodobně se vám vyhnou i ti, kteří považují nebohá tuleňátka za důležitou
věc.
Pokud vám to přijde divné, čtěte si tento návod pořád dokola, dokud mu
neporozumíte, a pak se teprve ptejte.
Zdvořilost neškodí, a občas i pomáhá
Buďte zdvořilí: "prosím", "děkuji za pozornost" atd. Važte si času, který je vám
zdarma věnován.
Popravdě řečeno, zdvořilost není tak důležitá jako přesnost, jasný, popisný
jazyk, vyhýbání se uzavřeným formátům atd. (a nemůže je nahradit); hackeři
raději dostávají lehce břitké, zato však technicky přesné zprávy, než zdvořilé
plky. (Přijde-li vám to divné, pamatujte, že hodnotíme otázku podle toho, co nás
naučí.) Nicméně, je-li zpráva technicky v pořádku, zdvořilost zvýší vaše
šance.
Zašlete stručnou zprávu o úspěšném řešení.
Poté, co problém vyřešíte, zašlete zprávu všem, kteří vám pomohli. Povězte jim,
jak to odpadlo, a poděkujte. Pokud si problém získal veřejný zájem, měli byste
zaslat zprávu do mailing listu.
Odpověď by měla navazovat na thread s původní otázkou, a Subject by měl
obsahovat "VYŘEŠENO" (SOLVED, FIXED) či podobně. Tam, kde je provoz dostatečně
rychlý, si čtenář threadu "Problém X" hned všimne zprávy "Problém X - VYŘEŠENO"
a nemusí číst celý thread (pakliže ho ovšem problém X nezaujme), a ušetřený čas
může věnovat řešení jiných problémů.
Vaše závěrečná zpráva nemusí být dlouhá - lepší něco než nic; "Zdravím, nakonec
to bylo špatným kabelem. Díky. Pepa". Nakonec je krátké shrnutí lepší než
detailní elaborát (pakliže se ovšem nejedná o skutečně hluboký problém). Sdělte
ostatním, co přesně pomohlo, nemusíte celý problém rekapitulovat.
U hlubších otázek je správné zaslat shrnutí postupných snah a oprav. Popište
výsledné řešení, jakož i slepé cesty (to ovšem až po správném řešení -
nemá to být detektivka). Jmenovitě poděkujte řešitelům. Nakonec si ještě získáte
nové přátele.
Taková závěrečná zpráva dá všem zúčastněným pocit zdárně vyřešeného problému.
Pokud sám nejste technický typ či hacker, věřte, že tento pocit je pro
odborníky, kterých se ptáte, velmi důležitý. Problémy vedoucí do neznáma nebo
nikam je frustrují a svědí. Pokud jim toto svědění poškrábete, získaná dobrá
karma vám u příští otázky může hodně pomoci.
Považte, jak byste mohli ostatním tento problém v budoucnu ušetřit; zda by
nebylo dobré rozšířit či upravit dokumentaci. Pošlete takovou opravu správci
dokumentace.
Mezi hackery je takové chování uznávanější než tradiční zdvořilost. Takto se
získává reputace toho, kdo hraje s ostatními, což je výrazné aktivum.
Jak interpretovat odpovědi
RTFM a STFW, aneb jste úplně mimo
Existuje dávná a uctívaná tradice: dostanete-li odpověď "RTFM", znamená to, že
si máte Read The Fucking Manual, neboli že si máte, kurva, přečíst manuál. Což
je nejspíš pravda. Jděte si ho přečíst.
RTFM má mladšího sourozence: opdověď "STFW" znamená, že byste měli Search The
Fucking Web, neboli podívat se, kurva, na web. Což je nejspíš pravda. Jděte
hledat.
Často má člověk, který vám takto odpovídá, manuál či příslušnou stránku přímo
před očima. Taková odpověď znamená, že podle jeho názoru je (a) velmi snadné
kýženou informaci najít (b) mnohem užitečnější najít ji sám než ji dostat od
maminky na talířku.
Nemusíte se kvůli tomu urážet; dle měřítek platných mezi hackery vám vlastně
projevuje svého druhu respekt, když vaší otázku neignoruje. Měli byste mu spíš
poděkovat.
Pokud odpovědi nerozumíte
Pokud odpovědi nerozumíte, nepište si rovnou pro vysvětlení. Stejnými metodami,
kterými jste hledali odpověď na svou původní otázku, se pokuste najít i
vysvětlení odpovědi. Pokud se i pak potřebujete ještě zeptat, ukažte opět, že
jste se poučili.
Dostanete-li například odpověď "Nejspíš Vám podpěra šprajcla trakci - zkuste jí
prošťouchnout", pak typická špatná reakce je "Co je to podpěra?". Mnohem lepší
je: "V manuálu se o podpěrách píše jen v kapitole o karbidových
hořácích, ale o prošťuchování tam nic není. Nebo jsem něco přehlédl?".
Jak zvládat neurvalost
To, co často vypadá jako arogance či nezdvořilost, není většinou myšleno nijak
zle. Mnohem spíše je to jen produktem komunikace jdoucí přímo skrze řečičky -
která je přirozená pro lidi, které spíš zajímá řešení problému než to, jestli se
i všichni ostatní cítí dobře a příjemně.
Dostane-li se vám neurvalé odpovědi, snažte se zůstat v klidu. Pokud někdo
opravdu vyvádí, nejspíše mu někdo z místních domluví. Pokud se tak
nestane, a vy ztratíte nervy, dost možná to dopadne tak, že on
se choval jak je v kraji zvykem, a někdo domluví vám. Tím klesají
vaše šance získat to, proč jste původně přišli.
Na druhou stranu, občas narazíte na nezaslouženou a bezdůvodnou obhroublost.
V takovém případě je zcela v pořádku drzouna proplesknout, a jeho
drzosti natrhnout ostrým verbálním hákem. Nicméně, než to uděláte, buďte si
zcela jisti, že jste v právu. Hranice mezi usměrněním nezdvořáka a
vyhlášením zbytečné slovní války je dosti tenká, a hackeři ji nezřídka sami
překračují. Jste-li nováček nebo cizinec, nejspíš se vám to stane velmi snadno.
Pokud jste přišli pro informace a ne pro zábavu, raději od klávesnice dál.
(Někteří lidé tvrdí, že hackeři trpí lehčí formou autismu či Aspergerova
syndromu, to jest nefungují u nich jisté základní modely "normálního"
chování. Možná ano, možná ne. Pokud nejste sám hacker, snad vám to pomůže
vypořádat se s naší výstředností, když si budete myslet, že jsme postižení.
Jak je libo. Nám je to jedno; my jsme rádi tím, čím jsme; k těmto
nálepkám máme zdravě skeptický postoj.)
V dalším odstavci pohovoříme o poněkud odlišném tématu: o "nerudnosti",
kterou si můžete vysloužit svým vlastním vyváděním.
Nechovat se jako loser
Asi se vám párkrát stane, že se v hackerské komunitě ocitnete zcela mimo
mísu - právě tak, jak to popisujeme v tomto článku, nebo podobně. A bude
vám to dáno patřičně najevo, možná velmi květnatě. A to veřejně.
Když se to stane, nejhorší je naříkat, jak vám bylo ublíženo, vyžadovat omluvu,
vyhrožovat žalobami, stěžovat si u zaměstnavatele, nechávat prkýnko nahoře, atp.
Radši udělejte toto:
Povzneste se nad to. Je to normální. A snad i zdravé.
Komunitní zvyklosti se neudržují samy: jsou dány tím, že se jimi lidé řídí, že
je viditelně a veřejně aplikují. Neskuhrejte, že se má osobní kritika
vyřizovat soukromou poštou - tak to prostě nefunguje. Stejně tak je
k ničemu označovat za osobní urážku, když někdo vyvrací vaše tvrzení, nebo
má prostě jiný názor. To je loserský přístup.
Existují i veřejná fóra, kde je v zájmu jakési hyperzdvořilosti vůbec
zakázáno zasílat zpochybňující zprávy, a pravidlo zní "Pokud nehodláte uživateli
pomoci, neříkejte vůbec nic". Následným přesunem schopných přispěvatelů jinam se
z nich stávají bezvýznamné snůšky blábolů a jako technická fóra jsou
k ničemu.
Pamatujte: když vám ten hacker říká (jakkoli drsně), že jste mimo, a ať už to
neděláte, říká vám to (1) ve vašem zájmu a (2) v zájmu své komunity. Mnohem
jednodušší by bylo vás prostě ignorovat. Mějte trochu důstojnosti, nefňukejte, a
nečekejte, že s vámi někdo bude jednat jako se slečinkou, protože jste
nováček s citlivou dušičkou.
Otázky, které se nekladou
Ukázka klasických stupidních otázek, a co si o nich hackeři myslí.
- Kde bych našel X?
- Tam kde já, blbečku - proboha, copak ještě někdo nezná Google?!
- Jak se Xem udělá Y?
- Pokud chceš udělat Y, tak při otázce nepředpokládej, že se to dělá Xem.
Takoví lidé většinou nejenže nevědí o nic o X, ale ani neznají svůj problém Y.
Většinou je nejlepší počkat, až se zeptají lépe.
- Jak si mám nakonfigurovat shell?
- Pokud jsi dost chytrý na to, aby ses ptal na takové věci, jistě také
zvládneš RTFM a přijdeš na to sám.
- Dají se Mega-Convertorem konvertovat soubory z UltraOffice do
TeXu?
- Zkus to a uvidíš. Kdybys to zkusil hned, pak bys (a) zjistil odpověď sám,
(b) neplýtval mým časem.
- Můj program / konfigurák / příkaz nefunguje.
- To ani není otázka. Nebudu s tebou hrát vadí-nevadí; mám lepší věci
na práci. Obvyklou odpovědí na takový dotaz bývá:
- Ještě něco?
- Hmm, tak to je špatný. Snad se to nějak spraví!
- A se mnou to má společnýho co?
- Mám nějaký pokažený Windows. Co mám dělat?
- Vyhoď tu sračku a pořiď si nějaký operační systém, třeba BSD nebo
Linux.
- Ten program nefunguje. Asi je v systému špatné X.
- Je samozřejmě možné, že jsi jako první odhalil nějakou zjevnou chybu
v systémových voláních nebo knihovnách, které denně používají statisíce
lidí, ale mnohem spíše jsi úplně mimo. Takováto kromobyčejná tvrzení si žádají
mimořádně přesvědčivé důkazy. Měl bys to doložit vyčerpávající dokumentací a
přesným popisem chyby.
- Nedaří se mi nainstalovat Linux a X. Nepomohl bys mi?
- Ne. Na to bych potřeboval u toho počítače sedět. Zeptej se v místní
Linux user group. (Jejich seznam najdeš tady.)
- Jak se dá prolomit rootovské heslo / číst cizí pošta?
- Pokud chceš něco z toho udělat, jseš lump. Pokud přitom žádáš hackera o
radu, jseš blbec.
Dobré a špatné otázky
Nakonec budeme ilustrovat dobré a špatné otázky na příkladech. Vždycky jedna
dobře položená a jedna špatně položená otázka na stejné téma.
- Špatně:
Kde bych našel něco o Krajáči Mléka?
Ten si koleduje o STFW.
- Dobře:
Hledal jsem na Google "Krajáč Mléka 2600", ale nic užitečného jsem
nedostal. Kde bych našel nějaký programátorský popis krajáčů?
Tenhle už STFWoval, a zřejmě opravdu potřebuje pomoci.
- Špatně:
Zdrojáky z foo-projektu se vůbec nezkompilují. Co s tím je?
Předpokládá, že chybu udělali jiní, což je arogantní.
- Dobře:
Nedaří se mi zkompilovat foo na Nulixu 6.2; četl jsem FAQ, ale o problémech na
Nulixu tam nic není. Zasílám kompilační log. Dělám něco špatně?
Popsal vývojové prostředí, přečetl FAQ, nepřipisuje své problémy chybě někoho
jiného. Ten možná stojí za pozornost.
- Špatně:
Mám problémy s myší. Mohl by mi někdo pomoci?
"Jasně. Jestli se bojíš koček, mám i pastičky". Delete.
- Dobře:
Zkoušel jsem X, Y a Z na nefunkční myš Confuse-a-cat 68. Nepomohlo to,
zkusil jsem A, B a C. Všimněte si toho divného pištění při C. Hužva asi rourácí,
ale nebubří přitom zlemejže. Co bývá u těchto myší příčinou rourácení? Co mám
ještě otestovat?
Tenhle stojí za odpověď. Je schopen sám hledat řešení - nečeká na pomoc shůry.
U poslední otázky si všimněte jemného, ale podstatného rozdílu mezi "Poraďte mi
co mám dělat" a "Pomozte mi najít způsob, jak sám dojdu osvícení".
Forma té poslední otázky je postavená na skutečné diskusi, která proběhla
v srpnu 2001 na linux-kernel mailing listu (lkml). Ptal jsem se já.
Ptáte-li se takto, prokazujete respekt vůči schopnostem svých bližních, a rovněž
úctu k jejich drahocenému času, když ukážete, které slepé cesty jste už
vyzkoušeli.
Nakonec, když jsem všem poděkoval a pochvaloval si, jak jsme to pěkně
rozlouskli, poznamenal někdo, že to není tím, že jsem na lkml "někdo", ale
protože jsem se správně zeptal.
Hackerská kultura je v jistém smyslu diktaturou meritokracie. Kdybych se
choval jako pako, jistě by mě ignorovali. Z tehdejšího návrhu, abych tu
historku sepsal formou návodu pro ostatní, vzešel tento článek.
(Poznámka překladatele: v originále se problém týká "motherboardu", což
v angličtině umožnuje jazykovou hru - nabídnout tazateli "přebalování a
zásyp". Bohužel česky "motherboard" je asi "motherboard"; nebo "základní deska".
Proto tedy kočka a "myš". ESR jistě nemá problém s rozchozením myši.)
Když se vám nedostane odpovědi
Když vám nikdo neodpoví, neberte si to osobně, že vám nemůžeme pomoci. Třeba to
prostě nikdo neví. Neodpovědět je něco jiného než ignorovat otázku, i když
zvenčí je jistě těžké to rozeznat.
Poslat svůj dotaz jednoduše znovu není dobrý nápad. To se bere jako zbytečné
otravování.
Jsou i jiná místa, kde by vám mohli pomoci, často i lépe uzpůsobená potřebám
nováčků. Kromě online diskusí existují i místní skupinky softwarových nadšenců,
které se scházejí právě za účelem vzájemné pomoci, zvláště pak pomoci
začátečníkům.
Existuje také spousta komerčních společností, malých i velkých, u kterých si
můžete sjednat pomoc. Neděste se myšlenky, že byste za to měli platit!
Koneckonců, když se vám porouchá motor, také ho vezmete do servisu, kde musíte
za opravu zaplatit. I když jste software získali zadarmo, neznamená to přeci, že
veškerá podpora bude také zdarma.
U oblíbeného a rozšířeného softwaru, jakým je třeba Linux, připadá na jednoho
vývojáře třeba 10,000 uživatelů. Není prostě možné pomáhat deseti tisícům lidí.
Pamatujte, že i když musíte za pomoc zaplatit, pořád platíte výrazně méně, než
kdybyste si museli kupovat i software samotný (a podpora pro komerční software
bývá ostatně dražší a horší než pro
open
source).
Jak odpovídat k užitku tazatele
Buďte přátelští. Když člověka stresuje nějaký problém, může působit
jako otrava či blbec, i když není.
První nepravosti vyřiďte soukromě. Není třeba veřejně ponižovat někoho,
kdo se v dobré víře třeba jen zmýlil. Úplný začátečník třeba ani neví, jak
prohledávat archivy, že něco jako FAQ vůbec existuje, a kde.
Pokud si nejste jisti, řekněte to! Špatná, přitom odborně znějící rada,
je horší než žádná. Nenavádějte nikoho na pochybné cesty jen proto, že chcete
vypadat jako expert. Buďte poctiví; buďte dobrým příkladem tazateli i ostatním.
Nemůžete-li pomoci, nerušte. Nedělejte si legraci z něčeho, co
může uživateli úplně rozhodit systém - nějaký ubožák se tím třeba bude řídit.
Klaďte doplňující otázky, chtějte detaily. Budete-li to dělat dobře,
tazatel se něco naučí - a vy také. Zformulujte špatnou otázku dobře. Všichni
jsme bývali začátečníci.
Odpovědět líné kůži RTFM je jistě v pořádku; odkaz na dokumentaci (třeba
jen na Googlovský dotaz) je lepší.
Pokud už odpovídáte, poraďte správný postup. Nenavrhujte mazané triky,
jak problém obejít, když někdo používá špatný postup. Navrhněte čisté řešení a
správné nástroje. Přeformulujte otázku.
Pomozte ostatním poučit se. Narazíte-li na dobrou otázku, pouvažujte
nad tím, jak by se dala současná dokumentace vylepšit, aby se nikdo nemusel ptát
znovu. Pošlete takovou opravu správci dokumentace.
Pokud vás odpověď stála jisté úsilí a zkoumání, ukažte, jak jste toho
dosáhli. Netvařte se, že jste odpověď vytáhli z klobouku. Zodpovědět
otázku je jako nakrmit hladového - ukázat cestu vedoucí k odpovědi je jako
naučit hladového hospodařit.
Související
[ Thu Jun 3 13:17:32 CEST 2004
|
valid html
| hans NOSP@M stare.cz ]