IPC$(Internet Process Connection)是共享"命名管道"的資源,它是為了讓進(jìn)程間通信而開(kāi)放的命名管道,通過(guò)提供可信任的用戶名和口令,連接雙方可以建立安全的通道并以此通道進(jìn)行加密數(shù)據(jù)的交換,從而實(shí)現(xiàn)對(duì)遠(yuǎn)程計(jì)算機(jī)的訪問(wèn)。IPC$是NT/2000的一項(xiàng)新功能,它有一個(gè)特點(diǎn),即在同一時(shí)間內(nèi),兩個(gè)IP之間只允許建立一個(gè)連接。NT/2000在提供了ipc$功能的同時(shí),在初次安裝系統(tǒng)時(shí)還打開(kāi)了默認(rèn)共享,即所有的邏輯共享(c$,d$,e$……)和系統(tǒng)目錄winnt或windows(admin$)共享。所有的這些,微軟的初衷都是為了方便管理員的管理,但在有意無(wú)意中,導(dǎo)致了系統(tǒng)安全性的降低。
posted @
2011-05-06 13:29 Madison 閱讀(177) |
評(píng)論 (0) |
編輯 收藏
-道德的起源-
把五只猴子關(guān)在一個(gè)籠子里,上頭有一串香蕉實(shí)驗(yàn)人員裝了一個(gè)自動(dòng)裝置。一旦偵測(cè)到有猴子要去拿香蕉,馬上就會(huì)有水噴向籠子,而這五只猴子都會(huì)一身濕。首先有只猴子想去拿香蕉,當(dāng)然,結(jié)果就是每只猴子都淋濕了。之後每只猴子在幾次的嘗試后,發(fā)現(xiàn)莫不如此。于是猴子們達(dá)到一個(gè)共識(shí):不要去拿香蕉,以避免被水噴到。后來(lái)實(shí)驗(yàn)人員把其中的一只猴子釋放,換進(jìn)去一只新猴子A。這只猴子A看到香蕉,馬上想要去拿。結(jié)果,被其他四只猴子海K了一頓。因?yàn)槠渌闹缓镒诱J(rèn)為猴子A會(huì)害他們被水淋到,所以制止他去拿香蕉,A嘗試了幾次,雖被打的滿頭包,依然沒(méi)有拿到香蕉。當(dāng)然,這五只猴子就沒(méi)有被水噴到。后來(lái)實(shí)驗(yàn)人員再把一只舊猴子釋放,換上另外一只新猴子B。這猴子B看到香蕉,也是迫不及待要去拿。當(dāng)然,一如剛才所發(fā)生的情形,其他四只猴子海K了B一頓。特別的是,那只A猴子打的特別用力(這叫老兵欺負(fù)新兵,或是媳婦熬成婆^O^)。 B猴子試了幾次總是被打的很慘,只好作罷。后來(lái)慢慢的一只一只的,所有的舊猴子都換成新猴子了,大家都不敢去動(dòng)那香蕉。但是他們都不知道為什么,只知道去動(dòng)香蕉會(huì)被猴扁。這就是道德的起源。
-階級(jí)的起源-
實(shí)驗(yàn)人員繼續(xù)他們的實(shí)驗(yàn),不過(guò)這一次他們改變了噴水裝置。一旦偵測(cè)到有猴子要去拿香蕉,馬上就會(huì)有水噴向拿香蕉的猴子,而不是全體。然后實(shí)驗(yàn)人員又把其中的一只猴子釋放,換進(jìn)去一只新猴子C。不同以往的是猴子C特別的威武武有力。當(dāng)然猴子C看到香蕉,也馬上想要去拿。一如以前所發(fā)生的情形,其他四只猴子也想海K猴子C一頓。不過(guò)他們錯(cuò)誤估計(jì)了C的實(shí)力,所以結(jié)果是反被C海K了一頓。于是猴子C拿到了香蕉,當(dāng)然也被淋了個(gè)透濕。C一邊打著噴嚏一邊吃著香蕉,美味但是也美中不足。A、B、D、E沒(méi)有香蕉吃卻也比較快樂(lè),畢竟沒(méi)有被淋到嘛。 后來(lái)C發(fā)現(xiàn)只有拿香蕉的那個(gè)才會(huì)被淋到,他就要最弱小的A替他去拿。A不想被K,只好每天拿香蕉然后被水淋。B、D、E越發(fā)的快樂(lè)了起來(lái),這就叫比上不足,比下有余嘛:)于是五只猴子有了三個(gè)階級(jí)。這下子階級(jí)也隨著道德起源了。
-道德的淪喪-
天變熱了,籠子里的猴子們想沖涼卻找不到地方。終于出現(xiàn)了一位反潮流英雄,猴子HERO。HERO在無(wú)意中碰到了香蕉,理所當(dāng)然的引來(lái)了一頓飽打。但在挨打的過(guò)程中,猴子們享受到了沖涼的樂(lè)趣。等身上的水干了之后,猴子A在無(wú)意中碰撞了HERO,使HERO又一次接觸到了香蕉,于是,猴子們享受了第二次沖涼,HERO遭到了第二次痛毆。在此之后,只要大家有沖涼的需要,就會(huì)有一只猴子X(jué)挺身而出,對(duì)HERO進(jìn)行合理沖撞。大家對(duì)HERO的態(tài)度也有了明顯的不同,在平時(shí)大家會(huì)對(duì)HERO異常溫和,以彌補(bǔ)在沖涼時(shí)為維護(hù)規(guī)則而不得不對(duì)它進(jìn)行的暴力舉動(dòng)。一天,在大家沖涼時(shí),飽受折磨的HERO聞到了香蕉的清香,生物本能使它在別的猴子心有旁鶩時(shí)將香蕉吃了。而且此后沒(méi)有了新的香蕉來(lái)填補(bǔ)空缺。猴子們陷入了另一個(gè)尷尬境地:沒(méi)有沖涼的水,也沒(méi)有香蕉,只有HERO。于是,另一個(gè)規(guī)則形成了。猴子在煩躁的時(shí)候會(huì)痛打HERO出氣,HERO不得反抗。 當(dāng)籠子里的舊猴子被新猴子換掉時(shí),新猴子會(huì)在最快的時(shí)間內(nèi)學(xué)會(huì)毆打HERO。
終于有一天,老天有眼,歷盡滄桑的HERO被另一只猴子代替了。猴子們失去了發(fā)泄的對(duì)象,只能任意選取一個(gè)目標(biāo)進(jìn)行攻擊。從此以后,籠子里的猴子們不吃不喝不沖涼,唯一的舉動(dòng)就是打架。這就是道德的淪喪。
-道德的重建-
實(shí)驗(yàn)人員對(duì)猴子們的爭(zhēng)斗不休感到不安。為了重建道德秩序,他們決定繼續(xù)供應(yīng)香蕉。一天,正在混戰(zhàn)的猴子們發(fā)現(xiàn)頭頂多了一串香蕉,它們其中的一個(gè)A不顧身上的劇痛,把香蕉摘了下來(lái)。于是久違的甘露出現(xiàn)了,未曾嘗過(guò)甜頭的猴子們先是茫然失措,繼而爭(zhēng)先恐后的加入沖涼的行列。香蕉反而被遺忘了。當(dāng)猴子B、C、D、E發(fā)現(xiàn)A在享受淋浴的同時(shí)還吃著美味的香蕉,嫉妒心使它們暫時(shí)團(tuán)結(jié)起來(lái),共同K了A一頓,將A吃剩的香蕉奪過(guò)來(lái),但是,此刻的香蕉成了匹夫懷里的寶玉,得到它的猴子雖然可以享受美味,但付出的代價(jià)也是巨大的。實(shí)驗(yàn)人員不斷放入香蕉,卻發(fā)現(xiàn)戰(zhàn)斗比以前更激烈了。分析清楚原因后,他們用木頭做了一個(gè)假香蕉扔進(jìn)了籠子。此時(shí)猴子們已經(jīng)學(xué)聰明了,它們知道觸摸香蕉可以享淋浴,而試圖獨(dú)占香蕉則會(huì)遭到痛扁。于是,一個(gè)新的現(xiàn)象出現(xiàn)了,當(dāng)猴子們有沖涼的需要時(shí),會(huì)有一只猴子將香蕉拿起來(lái),而當(dāng)它發(fā)現(xiàn)有遭到攻擊的可能時(shí),它會(huì)馬上放下香蕉逃到一邊去。這樣,猴子們都能沖涼,但是又不至于再象以前那樣N敗俱傷。沒(méi)有猴子發(fā)現(xiàn)那個(gè)香蕉是假的。
-信仰的起源-
五只猴子A、B、C、D、E三個(gè)階級(jí)快樂(lè)地生活了很久。他們精確的給出了三個(gè)階級(jí)的定義,即吃香階級(jí)、拿香階級(jí)和干看著階級(jí)。可惜猴子A由于長(zhǎng)期的水中作業(yè)無(wú)可避免地引發(fā)了它肺部功能的衰竭。一天他在例行的拿香蕉作業(yè)中跌倒了就再也沒(méi)有爬起來(lái)。于是實(shí)驗(yàn)人員又送進(jìn)了一只同樣孔武有力的猴F。當(dāng)然他還是對(duì)屋頂?shù)南憬逗苡信d趣。不幸的是他最終以微弱的劣勢(shì)被以C為首的群猴再次海K。第二天,又到了拿香蕉的時(shí)候。猴子C很無(wú)所謂,反正他還要吃香蕉,反正他不會(huì)被水淋到。真正恐慌的是B、D、E三猴。F是那么的健壯,他們這些媳婦是熬不成婆了:(他們將面臨一個(gè)艱難的抉擇,誰(shuí)該去步A的后塵?猴子B、D、E展開(kāi)了激烈的爭(zhēng)論,討論誰(shuí)最應(yīng)該做下一個(gè)拿香階級(jí)。 猴子F很奇怪也很好奇,什么叫“拿香階級(jí)”呢?猴子B、D、E解釋道:所謂“拿香階級(jí)”就是猴子界勇敢者的階級(jí)。需具備一不怕苦二不怕死的大無(wú)畏精神方能得此殊榮。猴子F聞聽(tīng)不禁有些神往,有些躍躍欲試。當(dāng)然他最終達(dá)到了目的,作了唯一的拿香階級(jí)。再后來(lái),B、D、E三猴陸續(xù)被換出局,換來(lái)的猴子個(gè)個(gè)健壯如C。他們繼續(xù)大大出手,不過(guò)目標(biāo)不是香蕉,而是那個(gè)唯一的拿香階級(jí)。于是信仰也出現(xiàn)了
-迷信的起源-
后來(lái)A終于被好心的實(shí)驗(yàn)人員拉出了苦海。 新來(lái)了猴子F。C覺(jué)得有必要維護(hù)自己的階級(jí)地位,B、D、E則生怕自己頂了A的坑……在各種復(fù)雜心情的作用下,B、D、E在C的帶領(lǐng)下爆扁了F一頓,然后強(qiáng)令F做拿香蕉階級(jí)。F開(kāi)始不樂(lè)意,后來(lái)慢慢在B等的勸說(shuō)下等“待多年的媳婦熬成婆”這一宿命。慢慢的老資格的B、D、E猴子漸漸被淘汰,C發(fā)現(xiàn)自己在體力上不再占有優(yōu)勢(shì),很難再通過(guò)武力讓這一游戲規(guī)則繼續(xù)下去,覺(jué)得十分苦惱。這時(shí),一只最有希望升級(jí)為吃香蕉階級(jí)(暨C的理所當(dāng)然接班人)也是C謀臣的H向C進(jìn)言。于是君臣定計(jì)。H開(kāi)始依靠自己多懂幾種猴語(yǔ)而在其他若干猴面前樹(shù)立的權(quán)威形象向其他猴鼓吹:“每一只新來(lái)籠子的猴子都是有罪的,這種罪責(zé)來(lái)自血統(tǒng)?!挥姓憬兜暮镒硬拍鼙唬▽?shí)驗(yàn)人員)送到天堂。”事實(shí)上,因?yàn)楸凰疀_很容易得肺炎病倒而被實(shí)驗(yàn)人員淘汰掉,猴子們不知道反而以為被淘汰的猴子真的進(jìn)了天堂。漸漸,猴子都相信了這套理論,并且講給每一只新猴子聽(tīng)。然后就這么流傳下去越傳越神奇。以至于后來(lái)摘香蕉階級(jí)的猴子都為了能摘香蕉而大打出手?!@些都是C沒(méi)有想到,H沒(méi)有看到的,那時(shí)他們都已經(jīng)死了。然而迷信就這么誕生了。
posted @
2009-05-21 14:09 Madison 閱讀(118) |
評(píng)論 (0) |
編輯 收藏
女:你有過(guò)女朋友?
男:東風(fēng)惡,歡情薄,一懷愁緒,幾年離索。
女:被拆散了,現(xiàn)在她呢?
男:劉郎已恨蓬山遠(yuǎn),更隔蓬山一萬(wàn)重!
女:哦,在外地。你可以去找她呀?
男:侯門已如深似海,從此蕭郎是路人。
女:已經(jīng)結(jié)婚了。那這些年你是怎么過(guò)來(lái)的?
男:滿面塵灰煙火色,兩鬢蒼蒼十指黑。
女:你們有聯(lián)系嗎?
男:欲寄彩箋兼尺素,山長(zhǎng)水闊知何處?
女:你后來(lái)遇到喜歡的人了嗎?
男:過(guò)盡千帆皆不是,斜暉脈脈水悠悠,腸斷白洲。
女:為什么沒(méi)有找到?
男:揀盡寒枝不肯棲,寂寞沙洲冷。
女:你會(huì)繼續(xù)等下去嗎?
男:路漫漫其修遠(yuǎn)兮,吾將上下而求索。
女:(很天真)真的嗎?
男:千淘萬(wàn)漉雖辛苦,吹盡狂沙始到金。
女:你……對(duì)愛(ài)情的看法呢?
男:只在此山中,云深不知處。
女:那你見(jiàn)我的第一感覺(jué)是什么?
男:忽如一夜春風(fēng)來(lái),千樹(shù)萬(wàn)樹(shù)梨花開(kāi)。
女:感覺(jué)我很美嗎?
男:回眸一笑百媚生,六宮粉黛無(wú)顏色。
女:(紅著臉)還有嗎?
男:風(fēng)吹仙袂飄飄舉,猶似霓裳羽衣舞。
女:(更加開(kāi)心)還有嗎?
男:云想衣裳花想容,春風(fēng)拂檻露華濃。
女:(很羞澀)有那么美?
男:糟粕所傳非粹美,丹青難寫(xiě)是精神。
女:你注意我多久了?
男:小荷才露尖尖角,早有蜻蜓立上頭。
女:(笑得很甜)見(jiàn)不到我的時(shí)候,想過(guò)我嗎?
男:憶君心似西江水,日夜東流無(wú)歇時(shí)。
女:(很羞澀)為什么想我?
男:蘭有秀兮菊有香,懷佳人兮自難忘。
女:馬屁精!你喜歡讀書(shū)嗎?
男:軍書(shū)十二卷,卷卷有爺名!
女:很不錯(cuò),你有理想嗎?
男:他年若遂凌云志,敢笑黃巢不丈夫。
女:你在吹牛吧?
男:大鵬一日同風(fēng)起,扶搖直上九萬(wàn)里。
女:這樣說(shuō)你的報(bào)負(fù)很遠(yuǎn)大?
男:會(huì)當(dāng)凌絕頂,一覽眾山小。
女:這牛吹大了吧!你那么有才華,怎么還獨(dú)身?
男:小姑未嫁身如寄,蓮子心多苦自知。
女:(笑)假如,我是說(shuō)假如,我答應(yīng)嫁給你,你打算怎樣待我?
男:一片冰心在玉壺。
女:你保證不會(huì)對(duì)別的女人用心?
男:波瀾誓不起,妾心古井水。
女:你會(huì)永遠(yuǎn)都愛(ài)我嗎?
男:在天愿作比翼鳥(niǎo),在地愿為連理枝。
女:你肯定不會(huì)變心嗎?
男:山無(wú)陵,江水為竭,冬雷陣陣夏雨雪,天地合,乃敢與君絕。
女:暫且信你一回。
posted @
2009-05-21 13:50 Madison 閱讀(156) |
評(píng)論 (0) |
編輯 收藏
我們從 UNREFERENCED_PARAMETER 開(kāi)始吧。這個(gè)宏在 winnt.h 中定義如下:
#define UNREFERENCED_PARAMETER(P) (P)
換句話說(shuō) UNREFERENCED_PARAMETER 展開(kāi)傳遞的參數(shù)或表達(dá)式。其目的是避免編譯器關(guān)于未引用參數(shù)的警告。許多程序員,包括我在內(nèi),喜歡用最高級(jí)別的警告 Level 4(/W4)進(jìn)行編譯。Level 4 屬于“能被安全忽略的事件”的范疇。雖然它們可能使你難堪,但很少破壞你的代碼。例如,在你的程序中可能會(huì)有這樣一些代碼行:
int x=1;
但你從沒(méi)用到過(guò) x。也許這一行是你以前使用 x 時(shí)留下來(lái)的,只刪除了使用它的代碼,而忘了刪除這個(gè)變量。Warning Level 4 能找到這些小麻煩。所以,為什么不讓編譯器幫助你完成可能是最高級(jí)別的專業(yè)化呢?用Level 4 編譯是展示你工作態(tài)度的一種方式。如果你為公眾使用者編寫(xiě)庫(kù),Level 4 則是社交禮節(jié)上需要的。你不想強(qiáng)迫你的開(kāi)發(fā)人員使用低級(jí)選項(xiàng)清潔地編譯他們的代碼。
問(wèn)題是,Level 4 實(shí)在是太過(guò)于注意細(xì)節(jié),在 Level 4 上,編譯器連未引用參數(shù)這樣無(wú)傷大雅的事情也要抱怨(當(dāng)然,除非你真的有意使用這個(gè)參數(shù),這時(shí)便相安無(wú)事)。假設(shè)你有一個(gè)函數(shù)帶來(lái)兩個(gè)參數(shù),但你只使用其中一個(gè):
int SomeFunction(int arg1, int arg2){ return arg1+5;}
使用 /W4,編譯器抱怨:
“warning C4100: ''arg2'' : unreferenced formal parameter.”
為了騙過(guò)編譯器,你可以加上 UNREFERENCED_PARAMETER(arg2)?,F(xiàn)在編譯器在編譯你的引用 arg2 的函數(shù)時(shí)便會(huì)住口。并且由于語(yǔ)句:
arg2;
實(shí)際上不做任何事情,編譯器不會(huì)為之產(chǎn)生任何代碼,所以在空間和性能上不會(huì)有任何損失。
細(xì)心的人可能會(huì)問(wèn):既然你不使用 arg2,那當(dāng)初為何要聲明它呢?通常是因?yàn)槟銓?shí)現(xiàn)某個(gè)函數(shù)以滿足某些API固有的署名需要,例如,MFC的 OnSize 處理例程的署名必須要像下面這樣:
void OnSize(UINT nType, int cx, int cy);
這里 cx/cy 是窗口新的寬/高,nType 是一個(gè)類似 SIZE_MAXIMIZED 或 SIZE_RESTORED 這樣的編碼,表示窗口是否最大化或是常規(guī)大小。一般你不會(huì)在意 nType,只會(huì)關(guān)注 cx 和 xy。所以如果你想用 /W4,則必須使用 UNREFERENCED_PARAMETER(nType)。OnSize 只是上千個(gè) MFC 和 Windows 函數(shù)之一。編寫(xiě)一個(gè)基于 Windows 的程序,幾乎不可能不碰到未引用參數(shù)。
說(shuō)了這么多關(guān)于 UNREFERENCED_PARAMETER 內(nèi)容。Judy 在她的問(wèn)題中還提到了另一個(gè) C++ 程序員常用的并且其作用與 UNREFERENCED_PARAMETER 相同的訣竅,那就是注釋函數(shù)署名中的參數(shù)名:
void CMyWnd::OnSize(UINT , int cx, int cy){}
現(xiàn)在 nType 是未命名參數(shù),其效果就像你敲入 OnSize(UINT, int cx, int cy)一樣。那么現(xiàn)在的關(guān)鍵問(wèn)題是:你應(yīng)該使用哪種方法——未命名參數(shù),還是 UNREFERENCED_PARAMETER?
大多數(shù)情況下,兩者沒(méi)什么區(qū)別,使用哪一個(gè)純粹是風(fēng)格問(wèn)題。(你喜歡你的 java 咖啡是黑色還是奶油的顏色?)但我認(rèn)為至少有一種情況必須使用 UNREFERENCED_PARAMETER。假設(shè)你決定窗口不允許最大化。那么你便禁用 Maximize 按鈕,從系統(tǒng)菜單中刪除,同時(shí)阻止每一個(gè)用戶能夠最大化窗口的操作。因?yàn)槟闶瞧珗?zhí)狂(大多數(shù)好的程序員都是偏執(zhí)狂),你添加一個(gè) ASSERT (斷言)以確保代碼按照你的意圖運(yùn)行:
void CMyWnd::OnSize(UINT nType, int cx, int cy){ ASSERT(nType != SIZE_MAXIMIZE); ... // use cx, cy}
質(zhì)檢團(tuán)隊(duì)竭盡所能以各種方式運(yùn)行你的程序,ASSERT 從沒(méi)有彈出過(guò),于是你認(rèn)為編譯生成 Release 版本是安全的。但是此時(shí) _DEBUG 定義沒(méi)有了,ASSERT(nType != SIZE_MAXIMIZE)展開(kāi)為 ((void)0),并且 nType 一下子成了一個(gè)未引用參數(shù)!這樣進(jìn)入你干凈的編譯。你無(wú)法注釋掉參數(shù)表中的 nType,因?yàn)槟阋?ASSERT 中使用它。于是在這種情況下——你唯一使用參數(shù)的地方是在 ASSERT 中或其它 _DEBUG 條件代碼中——只有 UNREFERENCED_PARAMETER 會(huì)保持編譯器在 Debug 和 Release 生成模式下都沒(méi)有問(wèn)題。知道了嗎?
結(jié)束討論之前,我想還有一個(gè)問(wèn)題我沒(méi)有提及,就是你可以象下面這樣用 pragma 指令抑制單一的編譯器警告:
#pragma warning( disable : 4100 )
4100 是未引用參數(shù)的出錯(cuò)代碼。pragma 抑制其余文件/模塊的該警告。用下面方法可以重新啟用這個(gè)警告:
#pragma warning( default : 4100 )
不管怎樣,較好的方法是在禁用特定的警告之前保存所有的警告狀態(tài),然后,等你做完之后再回到以前的配置。那樣,你便回到的以前的狀態(tài),這個(gè)狀態(tài)不一定是編譯器的默認(rèn)狀態(tài)。
所以你能象下面這樣在代碼的前后用 pragma 指令抑制單個(gè)函數(shù)的未引用參數(shù)警告:
#pragma warning( push ) #pragma warning( disable : 4100 )void SomeFunction(...){}#pragma warning( pop )
當(dāng)然,對(duì)于未引用參數(shù)而言,這種方法未免冗長(zhǎng),但對(duì)于其它類型的警告來(lái)說(shuō)可能就不是這樣了。庫(kù)生成者都是用 #pragma warning 來(lái)阻塞警告,這樣他們的代碼可以用 /W4 進(jìn)行清潔編譯。MFC 中充滿了這樣的 pragmas 指令。還有好多的 #pragma warning 選項(xiàng)我沒(méi)有在本文討論。有關(guān)它們的信息請(qǐng)參考相關(guān)文檔。
posted @
2009-04-17 10:55 Madison 閱讀(198) |
評(píng)論 (0) |
編輯 收藏
新辦公地點(diǎn)可以看到鳥(niǎo)巢的火炬形大樓。朝窗,很爽。抬頭看到云在動(dòng)
posted @
2009-04-02 14:00 Madison 閱讀(101) |
評(píng)論 (0) |
編輯 收藏
Cool,真的很舒服,不過(guò)好貴哦,花了我240大洋,挺心疼的,希望物有所值,別得鼠標(biāo)手,三年包換,這點(diǎn)挺爽的。
posted @
2009-03-30 09:58 Madison 閱讀(103) |
評(píng)論 (0) |
編輯 收藏
Windows 2000 設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)指南(原書(shū)第二版),即
The Windows 2000 Device Driver Book (Second Edition)
posted @
2009-03-23 12:41 Madison 閱讀(105) |
評(píng)論 (0) |
編輯 收藏
不玩魔獸了!
posted @
2009-03-23 12:38 Madison 閱讀(175) |
評(píng)論 (5) |
編輯 收藏
上班很無(wú)聊,這兩天項(xiàng)目到一段落,沒(méi)有代碼寫(xiě)。拿本W(wǎng)INDOWS核心編程那么厚又不方便看。所以只能看電子書(shū)了。王爽的匯編看完了,現(xiàn)在要轉(zhuǎn)到win32的保護(hù)模式下來(lái),所以就看老羅的Windows環(huán)境下32位匯編語(yǔ)言程序設(shè)計(jì)第二版呢。
posted @
2009-03-04 14:58 Madison 閱讀(126) |
評(píng)論 (0) |
編輯 收藏
` 提問(wèn)的智慧
看雪學(xué)院
提問(wèn)的智慧
How To Ask Questions The Smart Way
提問(wèn)的智慧
Copyright (C) 2001 by Eric S. Raymond
中文版Copyleft 2001 by D.H.Grand(nOBODY/Ginux)
英文版:http://www.tuxedo.org/~esr/faqs/smart-questions.html
感謝Eric的耐心指點(diǎn)和同意,本文才得以完成并發(fā)布,本指南
英文版版權(quán)為Eric Steven Raymond所有,
中文版版權(quán)由D.H.Grand[nOBODY/Ginux]所有。
目錄
簡(jiǎn)介
提問(wèn)之前
怎樣提問(wèn)
謹(jǐn)慎選擇論壇
盡量使用郵件列表
用辭貼切,語(yǔ)法正確,拼寫(xiě)無(wú)誤
用易讀格式發(fā)送問(wèn)題
使用含義豐富,描述準(zhǔn)確的標(biāo)題
精確描述,信息量大
話不在多
只說(shuō)癥狀,不說(shuō)猜想
按時(shí)間順序列出癥狀
別要求私下答復(fù)
明白你想問(wèn)什么
別問(wèn)應(yīng)該自己解決的問(wèn)題
去除無(wú)意義的疑問(wèn)
謙遜絕沒(méi)有害處,而且常幫大忙
問(wèn)題解決后,加個(gè)簡(jiǎn)短說(shuō)明
如何理解答案
RTFM和STFW:別煩我啦
還是不懂
面對(duì)無(wú)禮
決不要象個(gè)失敗者
三思而后問(wèn)
好問(wèn)題,壞問(wèn)題
找不到答案怎么辦
====
簡(jiǎn)介
====
在黑客世界里,當(dāng)提出一個(gè)技術(shù)問(wèn)題時(shí),你能得到怎樣的回答?這取決于挖出
答案的難度,同樣取決于你提問(wèn)的方法。本指南旨在幫助你提高發(fā)問(wèn)技巧,以
獲取你最想要的答案。
首先你必須明白,黑客們只偏愛(ài)艱巨的任務(wù),或者能激發(fā)他們思維的好問(wèn)題。
如若不然,我們還來(lái)干嗎?如果你有值得我們反復(fù)咀嚼玩味的好問(wèn)題,我們自
會(huì)對(duì)你感激不盡。好問(wèn)題是激勵(lì),是厚禮,可以提高我們的理解力,而且通常
會(huì)暴露我們以前從沒(méi)意識(shí)到或者思考過(guò)的問(wèn)題。對(duì)黑客而
言,“問(wèn)得好!”是發(fā)自內(nèi)心的大力稱贊。
盡管黑客們有蔑視簡(jiǎn)單問(wèn)題和不友善的壞名聲,有時(shí)看起來(lái)似乎我們對(duì)新手,
對(duì)知識(shí)貧乏者懷有敵意,但其實(shí)不是那樣的。
我們不想掩飾對(duì)這樣一些人的蔑視--他們不愿思考,或者在發(fā)問(wèn)前不去完成他
們應(yīng)該做的事。這種人只會(huì)謀殺時(shí)間--他們只愿索取,從不付出,無(wú)端消耗我
們的時(shí)間,而我們本可以把時(shí)間用在更有趣的問(wèn)題或者更值得回答的人身上。
我們稱這樣的人為“失敗者”(由于歷史原因,我們有時(shí)
把它拼作“l(fā)users”)。
我們也知道,很多人只想使用我們編寫(xiě)的軟件,對(duì)技術(shù)細(xì)節(jié)沒(méi)什么興趣。對(duì)多
數(shù)人們而言,計(jì)算機(jī)不過(guò)是一個(gè)工具,一種達(dá)到目的的手段;他們有更重要的
事情要做,有更重要的生活要過(guò)。我們明白這點(diǎn),也并不奢望每個(gè)人都對(duì)另我
們癡狂的技術(shù)問(wèn)題有興致。然而,我們回答問(wèn)題的風(fēng)格是
針對(duì)這樣一群人--他們有興趣,并且愿意積極參與問(wèn)題的解決。這點(diǎn)不會(huì)改變,
也不應(yīng)該改變;如果變了,我們將失去我們引以為傲的效率。
我們?cè)诤艽蟪潭壬蠈儆谥驹刚?,從繁忙的生活中抽出時(shí)間來(lái)解惑答疑,而且時(shí)常
被提問(wèn)淹沒(méi)。所以我們無(wú)情的濾掉一些話題,特別是拋棄那些看起來(lái)象失敗者的
家伙,以便更高效的利用時(shí)間來(lái)回答勝利者的問(wèn)題。
如果你覺(jué)得我們過(guò)于傲慢的態(tài)度讓你不爽,讓你委屈,不妨設(shè)身處地想想。我
們并沒(méi)有要求你向我們屈服--事實(shí)上,我們中的大多數(shù)人最喜歡公平交易不過(guò)
了,只要你付出小小努力來(lái)滿足最起碼的要求,我們就會(huì)歡迎你加入到我們的
文化中來(lái)。但讓我們幫助那些不愿意幫助自己的人是沒(méi)有
意義的。如果你不能接受這種“歧視”,我們建議你花點(diǎn)錢找家商業(yè)公司簽個(gè)
技術(shù)支持協(xié)議得了,別向黑客乞求幫助。
如果你決定向我們求助,當(dāng)然不希望被視為失敗者,更不愿成為失敗者中的一
員。立刻得到有效答案的最好方法,就是象勝利者那樣提問(wèn)--聰明、自信、有
解決問(wèn)題的思路,只是偶爾在特定的問(wèn)題上需要獲得一點(diǎn)幫助。
(歡迎對(duì)本指南提出改進(jìn)意見(jiàn)。任何建議請(qǐng)E-mail至esr@thyrsus.com,然而
請(qǐng)注意,本文并非網(wǎng)絡(luò)禮節(jié)的通用指南,我通常會(huì)拒絕無(wú)助于在技術(shù)論壇得到
有用答案的建議。)
(當(dāng)然,如果你寫(xiě)中文,最好還是寄到DHGrand@hotmail.com;-)
========
提問(wèn)之前
========
在通過(guò)電郵、新聞組或者聊天室提出技術(shù)問(wèn)題前,檢查你有沒(méi)有做到:
1. 通讀手冊(cè),試著自己找答案。
2. 在FAQ里找答案(一份維護(hù)得好的FAQ可以包羅萬(wàn)象:)。
3. 在網(wǎng)上搜索(個(gè)人推薦google~~~)。
4. 向你身邊精于此道的朋友打聽(tīng)。
當(dāng)你提出問(wèn)題的時(shí)候,首先要說(shuō)明在此之前你干了些什么;這將有助于樹(shù)立你
的形象:你不是一個(gè)妄圖不勞而獲的乞討者,不愿浪費(fèi)別人的時(shí)間。能說(shuō)明你
從這些操作中學(xué)到了什么就更好了。如果提問(wèn)者能從答案中學(xué)到東西,我們更
樂(lè)于回答他的問(wèn)題。
周全的思考,準(zhǔn)備好你的問(wèn)題,草率的發(fā)問(wèn)只能得到草率的回答,或者根本得
不到任何答案。越表現(xiàn)出在尋求幫助前為解決問(wèn)題付出的努力,你越能得到實(shí)
質(zhì)性的幫助。
小心別問(wèn)錯(cuò)了問(wèn)題。如果你的問(wèn)題基于錯(cuò)誤的假設(shè),普通黑客(J. Random
Hacker)通常會(huì)用無(wú)意義的字面解釋來(lái)答復(fù)你,心里想著“蠢問(wèn)題...”,希
望著你會(huì)從問(wèn)題的回答(而非你想得到的答案)中汲取教訓(xùn)。
決不要自以為夠資格得到答案,你沒(méi)這種資格。畢竟你沒(méi)有為這種服務(wù)支付任
何報(bào)酬。你要自己去“掙”回一個(gè)答案,靠提出一個(gè)有內(nèi)涵的,有趣的,有思
維激勵(lì)作用的問(wèn)題--一個(gè)對(duì)社區(qū)的經(jīng)驗(yàn)有潛在貢獻(xiàn)的問(wèn)題,而不僅僅是被動(dòng)的
從他人處索要知識(shí)--去掙到這個(gè)答案。
另一方面,表明你愿意在找答案的過(guò)程中做點(diǎn)什么,是一個(gè)非常好的開(kāi)端。
“誰(shuí)能給點(diǎn)提示?”、“我這個(gè)例子里缺了什么?”以及“我應(yīng)該檢查什么
地方?”比“請(qǐng)把確切的過(guò)程貼出來(lái)”更容易得到答復(fù)。因?yàn)槟泔@得只要有
人指點(diǎn)正確的方向,你就有完成它的能力和決心。
========
怎樣提問(wèn)
========
------------
謹(jǐn)慎選擇論壇
------------
小心選擇提問(wèn)的場(chǎng)合。如果象下面描述的那樣,你很可能被忽略掉或者被看作失敗者:
1. 在風(fēng)馬牛不相及的論壇貼出你的問(wèn)題
2. 在探討高級(jí)技巧的論壇張貼非常初級(jí)的問(wèn)題;反之亦然
3. 在太多的不同新聞組交叉張貼
黑客們通??车魡?wèn)錯(cuò)地方的問(wèn)題,以保護(hù)自己的社區(qū)不被大量無(wú)關(guān)帖子淹沒(méi)。
你不會(huì)希望自己的帖子被這樣砍掉吧。
總的說(shuō)來(lái),問(wèn)題發(fā)到精心挑選的公眾論壇,比發(fā)到封閉的小圈子更容易得到有
用的答案。這一現(xiàn)象有多種原因,其中之一是公眾論壇有更多潛在的問(wèn)題回答
者;另一個(gè)原因是公眾論壇有更多的聽(tīng)眾。黑客們更愿意讓盡量多的人--而非
有限的一兩個(gè)--從回答中受益。
----------------
盡量使用郵件列表
----------------
如果某項(xiàng)目有自己的開(kāi)發(fā)郵件列表,要把問(wèn)題發(fā)到這個(gè)郵件列表而不是某個(gè)開(kāi)
發(fā)者,即使你很清楚誰(shuí)最能回答你的問(wèn)題。仔細(xì)查看項(xiàng)目文檔和項(xiàng)目主頁(yè),找
到這個(gè)項(xiàng)目的郵件列表地址,這樣做的理由有四:
1. 任何值得問(wèn)某位開(kāi)發(fā)者的好問(wèn)題,都值得向整個(gè)開(kāi)發(fā)團(tuán)體提出。反之,若
你認(rèn)為這個(gè)問(wèn)題不值得在郵件列表中提起,就沒(méi)有理由用它來(lái)騷擾任何一位開(kāi)發(fā)者。
2. 在郵件列表提問(wèn)可以分擔(dān)開(kāi)發(fā)者的工作量。某位開(kāi)發(fā)者(尤其當(dāng)他是項(xiàng)目
負(fù)責(zé)人的情況下),可能忙得沒(méi)時(shí)間回答你的問(wèn)題。
3. 大多數(shù)郵件列表都有歷史存檔,而且都能在搜索引擎中檢索到。人們可以
從中找到你的問(wèn)題和答案,不用一遍又一遍在列表中發(fā)問(wèn)。
4. 如果某個(gè)問(wèn)題經(jīng)常被提出,開(kāi)發(fā)者可以據(jù)此改進(jìn)文檔或改進(jìn)軟件,以減少
用戶的困惑。而如果問(wèn)題總在私下提出,就不會(huì)有人對(duì)此有整體上的把握了。
如果你找不到項(xiàng)目的郵件列表地址,只能看到項(xiàng)目維護(hù)者的,那就寫(xiě)給維護(hù)
者吧。在這種情況下,也別以為郵件列表并不存在。在你的信中寫(xiě)明你已盡
力尋找,仍無(wú)法找到郵件列表。另外表明你不介意將此消息轉(zhuǎn)給他人。(大
多數(shù)人認(rèn)為私信就應(yīng)該是私下的,即使并沒(méi)有什么可保密的內(nèi)容
。允許你的消息被轉(zhuǎn)寄給他人,給了收信者一種處理你郵件的選擇。)
----------------------------
用辭貼切,語(yǔ)法正確,拼寫(xiě)無(wú)誤
----------------------------
我們從經(jīng)驗(yàn)中發(fā)現(xiàn),粗心的寫(xiě)作者通常也是馬虎的思考者(我敢打包票)。
回答粗心大意者的問(wèn)題很不值得,我們寧愿把時(shí)間耗在別處。
因此,明確充分表述你的問(wèn)題非常重要。如果你嫌這樣做麻煩,我們也會(huì)懶
得搭理你。注意推敲你的用辭,不一定要用呆板正式的語(yǔ)言--事實(shí)上,黑客
文化的價(jià)值觀是不拘小節(jié)。準(zhǔn)確的運(yùn)用俚語(yǔ)和富有幽默感的語(yǔ)言,但別亂用;
一定要能表明你在思考,在關(guān)注。
正確的拼寫(xiě),標(biāo)點(diǎn)符號(hào)和大小寫(xiě)很重要。別把“its”和“it's”或者
“l(fā)oose”和“l(fā)ose”搞混淆了。別用全部大寫(xiě)的形式,這被視為粗魯?shù)拇?
聲叫嚷(全都用小寫(xiě)也好不到哪兒去,因?yàn)檫@會(huì)給閱讀帶來(lái)困難。Alan Cox
可以用全部小寫(xiě),但你不行)。
更一般的說(shuō),如果你的提問(wèn)寫(xiě)得象個(gè)半文盲,你很有可能被忽視。如果寫(xiě)得象
一個(gè)窺客(pj愛(ài)好者)或者灰客(只會(huì)用現(xiàn)成工具的搗亂者)絕對(duì)是自己找
死,保證你除了無(wú)情的抵制什么也得不到(或者,最好的結(jié)局是得到一大堆挖
苦嘲笑的“幫助”)。
如果你在使用非母語(yǔ)的論壇提問(wèn),你可以犯點(diǎn)拼寫(xiě)和語(yǔ)法上的小錯(cuò)--但決不能
在思考上馬虎(沒(méi)錯(cuò),我們能弄清兩者的分別)。另外,除非你確切知道你的
回答者會(huì)使用什么語(yǔ)言,否則請(qǐng)用英文。匆匆忙忙的黑客往往簡(jiǎn)單的跳過(guò)他們
看不懂的問(wèn)題,而英文是網(wǎng)絡(luò)上的工作語(yǔ)言。用英文可以
降低你的問(wèn)題未被閱讀即遭拋棄的風(fēng)險(xiǎn)。
------------------
用易讀格式發(fā)送問(wèn)題
------------------
如果人為造成你的提問(wèn)難以閱讀和理解,將會(huì)更容易被人忽略。因此你要:
1. 使用純文本郵件,不要使用HTML(關(guān)掉HTML并不難)。
2. 通??梢愿郊覯IME附件,但一定要有真正的內(nèi)容(例如附加的源文件或者
補(bǔ)?。粌H僅是你的郵件客戶端產(chǎn)生的文件模板(例如你郵件的一份拷貝)。
3. 不要把所有問(wèn)題放在不停換行的一整段中。(這將讓答復(fù)的人難于回答其中
一部分問(wèn)題,即使能回答所有問(wèn)題,我也更希望條理清楚的一個(gè)一個(gè)來(lái):)。很
可能收件人只能在80個(gè)字符寬度的文本顯示器上讀信,因此要相應(yīng)的把行環(huán)繞
模式設(shè)在80字符以內(nèi)。
4. 不要在英文論壇使用MIME Quoted-Printable編碼發(fā)送;這種編碼格式對(duì)
ASCII碼不能表達(dá)的語(yǔ)言來(lái)說(shuō)是非常必要的,但很多郵件代理不支持它,這
時(shí),滿篇的“=20”符號(hào)把文字分割開(kāi),既難看,又分散注意力。
5. 永遠(yuǎn)不要指望黑客會(huì)樂(lè)于閱讀封閉所有權(quán)的文件格式,例如萎軟的Word
格式。多數(shù)黑客對(duì)此的反應(yīng)就象你在門口的階梯上堆滿熱烘烘的豬糞(意即
誰(shuí)也不會(huì)踏進(jìn)你的門--譯者注)。
6. 如果你通過(guò)一臺(tái)安裝Windows的電腦發(fā)送郵件,關(guān)閉萎軟愚蠢的“智能引
用”功能。這能使你免于在郵件中夾帶垃圾字符。
----------------------------
使用含義豐富,描述準(zhǔn)確的標(biāo)題
----------------------------
在郵件列表或者新聞組中,大約50字以內(nèi)的主題標(biāo)題是抓住資深專家注意力
的黃金時(shí)機(jī)。別用喋喋不休的“幫幫忙”(更別說(shuō)“救命?。。。。。 边@
樣讓人反感的話)來(lái)浪費(fèi)這個(gè)機(jī)會(huì)。不要妄想用你的痛苦程度來(lái)打動(dòng)我們,
別用空格代替問(wèn)題的描述,哪怕是極其簡(jiǎn)短的描述。
蠢問(wèn)題:
救命啊!我的膝上機(jī)不能正常顯示了!
聰明問(wèn)題:
XFree86 4.1下鼠標(biāo)光標(biāo)變形,F(xiàn)ooware MV1005的顯示芯片。
如果你在回復(fù)中提出問(wèn)題,記得要修改內(nèi)容標(biāo)題,表明里面有一個(gè)問(wèn)題。一個(gè)
看起來(lái)象“Re:測(cè)試”或者“Re:新bug”的問(wèn)題很難引起足夠重視。另外,引
用并刪減前文的內(nèi)容,給新來(lái)的讀者留下線索。
------------------
精確描述,信息量大
------------------
1. 謹(jǐn)慎明確的描述癥狀。
2. 提供問(wèn)題發(fā)生的環(huán)境(機(jī)器配置、操作系統(tǒng)、應(yīng)用程序以及別的什么)。
3. 說(shuō)明你在提問(wèn)前是怎樣去研究和理解這個(gè)問(wèn)題的。
4. 說(shuō)明你在提問(wèn)前采取了什么步驟去解決它。
5. 羅列最近做過(guò)什么可能有影響的硬件、軟件變更。
盡量想象一個(gè)黑客會(huì)怎樣反問(wèn)你,在提問(wèn)的時(shí)候預(yù)先給他答案。
Simon Tatham寫(xiě)過(guò)一篇名為《如何有效的報(bào)告Bug》的出色短文。強(qiáng)力推薦你也讀一讀。
--------
話不在多
--------
你需要提供精確有效的信息。這并不是要求你簡(jiǎn)單的把成噸的出錯(cuò)代碼或者數(shù)據(jù)完
全轉(zhuǎn)儲(chǔ)摘錄到你的提問(wèn)中。如果你有龐大而復(fù)雜的測(cè)試條件,盡量把它剪裁得越小
越好。
這樣做的用處至少有三點(diǎn)。第一,表現(xiàn)出你為簡(jiǎn)化問(wèn)題付出了努力,這可以使你得
到回答的機(jī)會(huì)增加;第二,簡(jiǎn)化問(wèn)題使你得到有用答案的機(jī)會(huì)增加;第三,在提煉
你的bug報(bào)告的過(guò)程中,也許你自己就能找出問(wèn)題所在或作出更正。
------------------
只說(shuō)癥狀,不說(shuō)猜想
------------------
告訴黑客們你認(rèn)為問(wèn)題是怎樣引起的沒(méi)什么幫助。(如果你的推斷如此有效,還用
向別人求助嗎?),因此要確信你原原本本告訴了他們問(wèn)題的癥狀,不要加進(jìn)你自
己的理解和推論。讓黑客們來(lái)診斷吧。
蠢問(wèn)題:
我在內(nèi)核編譯中一次又一次遇到SIG11錯(cuò)誤,我懷疑某條飛線搭在主板的走線上了,
這種情況應(yīng)該怎樣檢查最好?
聰明問(wèn)題:
我自制的一套K6/233系統(tǒng),主板是FIC-PA2007 (VIA Apollo VP2芯片組),256MB
Corsair PC133
SDRAM,在內(nèi)核編譯中頻頻產(chǎn)生SIG11錯(cuò)誤,從開(kāi)機(jī)20分鐘以后就有這種情況,開(kāi)機(jī)
前20分鐘內(nèi)從沒(méi)發(fā)生過(guò)。重啟也沒(méi)有用,但是關(guān)機(jī)一晚上就又能工作20分鐘。所有
內(nèi)存都換過(guò)了,沒(méi)有效果。相關(guān)部分的典型編譯記錄如下...。
------------------
按時(shí)間順序列出癥狀
------------------
對(duì)找出問(wèn)題最有幫助的線索,往往就是問(wèn)題發(fā)生前的一系列操作,因此,你的說(shuō)明
應(yīng)該包含操作步驟,以及電腦的反應(yīng),直到問(wèn)題產(chǎn)生。在命令行操作的情況下,保
存一個(gè)操作記錄(例如使用腳本工具),并且引用相關(guān)的大約20條命令會(huì)大有幫助。
如果崩潰的程序有診斷選項(xiàng)(例如用-v轉(zhuǎn)到詳盡模式),試著仔細(xì)考慮選擇選項(xiàng)以
在操作記錄中增加有用的調(diào)試信息。
如果你的說(shuō)明很長(zhǎng)(超過(guò)四個(gè)段落),在開(kāi)頭簡(jiǎn)述問(wèn)題會(huì)有所幫助,接下來(lái)按時(shí)間
順序詳述。這樣黑客們就知道該在你的說(shuō)明中找什么。
--------------
別要求私下答復(fù)
--------------
黑客們認(rèn)為解決問(wèn)題應(yīng)該有公開(kāi)、透明的流程。只要任何更有見(jiàn)地的人注意到答
案的不完善或者不正確,這個(gè)最初的答案就可以和應(yīng)該得到糾正。同時(shí),通過(guò)能
力和知識(shí)被大家注意,被大家接受,回答問(wèn)題者得到了應(yīng)有的獎(jiǎng)勵(lì)。
如果你要求對(duì)方私下回答你,這既破壞了整個(gè)流程,也破壞了獎(jiǎng)勵(lì)制度。別提這
要求,這是回答者的權(quán)利,由他來(lái)選擇是否私下答復(fù)--如果他選擇這樣做,通常
是因?yàn)樗J(rèn)為這個(gè)答案過(guò)于顯而易見(jiàn)或者有不良的公開(kāi)影響,別人不會(huì)感興趣。
只有一種有限的例外:如果你預(yù)計(jì)將收到大量雷同的答復(fù),你可以說(shuō):“把答案
寄給我,由我來(lái)匯總吧。”將郵件列表或者新聞組從大量重復(fù)的帖子中打救出來(lái)
是很有君子之風(fēng)的--但請(qǐng)記住,履行自己關(guān)于匯總的承諾。
--------------
明白你想問(wèn)什么
--------------
漫無(wú)邊際的提問(wèn)近乎無(wú)休無(wú)止的時(shí)間黑洞。最能給你有用答案的人也正是最忙的
人(他們忙是因?yàn)橐H自完成大部分工作)。這樣的人對(duì)無(wú)節(jié)制的時(shí)間黑洞不太
感冒,因此也可以說(shuō)他們對(duì)漫無(wú)邊際的提問(wèn)不大感冒。
如果你明確表述需要回答者做什么(提供建議,發(fā)送一段代碼,檢查你的補(bǔ)丁
或是別的),就最有可能得到有用的答案。這會(huì)定出一個(gè)時(shí)間和精力的上限,
便于回答者集中精力來(lái)幫你,這很湊效。
要理解專家們生活的世界,要把專業(yè)技能想象為充裕的資源,而回復(fù)的時(shí)間則
是貧乏的資源。解決你的問(wèn)題需要的時(shí)間越少,越能從忙碌的專家口中掏出答案。
因此,優(yōu)化問(wèn)題的結(jié)構(gòu),盡量減少專家們解決它所需要的時(shí)間,會(huì)有很
大的幫助--這通常和簡(jiǎn)化問(wèn)題有所區(qū)別。因此,問(wèn)“我想更好的理解X,
能給點(diǎn)提示嗎?”通常比問(wèn)“你能解釋一下X嗎?”更好。如果你的代碼
不能工作,問(wèn)問(wèn)它有什么地方不對(duì),比要求別人替你修改要明智得多。
------------------------
別問(wèn)應(yīng)該自己解決的問(wèn)題
------------------------
黑客們總是善于分辨哪些問(wèn)題應(yīng)該由你自己解決;因?yàn)槲覀冎械拇蠖鄶?shù)都
曾自己解決這類問(wèn)題。同樣,這些問(wèn)題得由你來(lái)搞定,你會(huì)從中學(xué)到東西。
你可以要求給點(diǎn)提示,但別要求得到完整的解決方案。
----------------
去除無(wú)意義的疑問(wèn)
----------------
別用無(wú)意義的話結(jié)束提問(wèn),例如“有人能幫我嗎?”或者“有答案嗎?”。
首先:如果你對(duì)問(wèn)題的描述不很合適,這樣問(wèn)更是畫(huà)蛇添足。其次:由于這
樣問(wèn)是畫(huà)蛇添足,黑客們會(huì)很厭煩你--而且通常會(huì)用邏輯上正確的回答來(lái)表
示他們的蔑視,例如:“沒(méi)錯(cuò),有人能幫你”或者“不,沒(méi)答案
”。
----------------------------
謙遜絕沒(méi)有害處,而且常幫大忙
----------------------------
彬彬有禮,多用“請(qǐng)”和“先道個(gè)謝了”。讓大家都知道你對(duì)他們花費(fèi)時(shí)間
義務(wù)提供幫助心存感激。
實(shí)話實(shí)說(shuō),雖然這不象合乎語(yǔ)法、清楚準(zhǔn)確的描述,避免私有格式等等那么
重要(也不能用來(lái)替代它們);黑客一般更喜歡直接了當(dāng)然而技術(shù)上敏銳的
bug報(bào)告,而不是彬彬有禮的廢話(如果這讓你迷惑不解,請(qǐng)記住,我們衡
量一個(gè)問(wèn)題價(jià)值的標(biāo)準(zhǔn)是:它能讓我們學(xué)會(huì)多少)。
然而,如果你有很多問(wèn)題無(wú)法解決,禮貌將會(huì)增加你得到有用答案的機(jī)會(huì)。
(我們注意到,自從本指南發(fā)布后,從資深黑客處得到的唯一嚴(yán)重缺陷反
饋,就是對(duì)預(yù)先道謝這一條。一些黑客覺(jué)得“先謝了”的言外之意是過(guò)后
就不會(huì)再感謝任何人了。我們的建議是:都道謝。)
------------------------
問(wèn)題解決后,加個(gè)簡(jiǎn)短說(shuō)明
------------------------
問(wèn)題解決后,向所有幫助過(guò)你的人發(fā)個(gè)說(shuō)明,讓他們知道問(wèn)題是怎樣解決
的,并再一次向他們表示感謝。如果問(wèn)題在新聞組或者郵件列表中引起了
廣泛關(guān)注,應(yīng)該在那里貼一個(gè)補(bǔ)充說(shuō)明。
補(bǔ)充說(shuō)明不必很長(zhǎng)或是很深入;簡(jiǎn)單的一句“你好,原來(lái)是網(wǎng)線出了問(wèn)
題!謝謝大家--Bill”比什么也不說(shuō)要強(qiáng)。事實(shí)上,除非結(jié)論真的很有
技術(shù)含量,否則簡(jiǎn)短可愛(ài)的小結(jié)比長(zhǎng)篇學(xué)術(shù)論文更好。說(shuō)明問(wèn)題是怎樣
解決的,但大可不必將解決問(wèn)題的過(guò)程復(fù)述一遍。
除了表示禮貌和反饋信息以外,這種補(bǔ)充有助于他人在郵件列表/新聞
組/論壇中搜索對(duì)你有過(guò)幫助的完整解決方案,這可能對(duì)他們也很有用。
最后(至少?),這種補(bǔ)充有助于所有提供過(guò)幫助的人從中得到滿足感。
如果你自己不是老手或者黑客,那就相信我們,這種感覺(jué)對(duì)于那些你向
他們求助的導(dǎo)師或者專家而言,是非常重要的。問(wèn)題久拖未決會(huì)讓人灰
心;黑客們渴望看到問(wèn)題被解決。好人有好報(bào),滿足他們的渴望,你會(huì)在下
次貼出新問(wèn)題時(shí)嘗到甜頭。
============
如何理解答案
============
--------------------
RTFM和STFW:別煩我啦
--------------------
有一個(gè)古老而神圣的傳統(tǒng):如果你收到“RTFM (Read The f\*\*king Manual)”
的回復(fù),回答者認(rèn)為你應(yīng)該去讀TMD手冊(cè)。當(dāng)然,基本上他是對(duì)的,你應(yīng)該讀一讀。
RTFM有一個(gè)年輕的親戚。如果答案是“STFW (Search The f\*\*king Web)”,
回答者認(rèn)為你應(yīng)該到TMD的網(wǎng)上去搜索。基本上,他也是對(duì)的,你就去找吧。
通常,用這兩句之一回答你的人會(huì)給你一份包含你需要內(nèi)容的手冊(cè)或者一個(gè)網(wǎng)
址,而且他們打這些字的時(shí)候正在閱讀著。這些答復(fù)意味著回答者認(rèn)為(1). 你
需要的信息非常容易獲得;(2). 你自己去搜索這些信息比灌給你能讓你學(xué)到更多。
別為這個(gè)而不爽;依照黑客的標(biāo)準(zhǔn),他沒(méi)有對(duì)你的要求視而不見(jiàn),已經(jīng)
能大致能表示對(duì)你的關(guān)注。你應(yīng)該對(duì)他祖母般的慈祥表示感謝。
----------
還是不懂
----------
如果你不是很理解答案,別立刻要求對(duì)方解釋。象你以前試著自己解決
問(wèn)題時(shí)那樣(利用手冊(cè),F(xiàn)AQ,網(wǎng)絡(luò),身邊的高手),去理解它。如果
你真的需要對(duì)方解釋,記得表現(xiàn)出你已經(jīng)學(xué)到了點(diǎn)什么。
比方說(shuō),如果我回答你:“看來(lái)似乎是zEntry被阻塞了;你應(yīng)該先清
除它?!?,然后:
一個(gè)很糟的后續(xù)問(wèn)題:“zEntry是什么?”
聰明的問(wèn)法應(yīng)該是這樣:“哦~~~我看過(guò)幫助了但是只有-z和-p兩個(gè)
參數(shù)中提到了zEntry而且還都沒(méi)有清楚的解釋:<你是指這兩個(gè)中的
哪一個(gè)嗎?還是我看漏了什么?”
--------
面對(duì)無(wú)禮
--------
黑客圈子里很多貌 拼致車難 行并非有意冒犯。更恰當(dāng)?shù)恼f(shuō),這是
直率、不說(shuō)廢話的溝通方式的產(chǎn)物,這種溝通方式源于人們關(guān)注問(wèn)
題的解決--多過(guò)讓人感受溫暖親情然而卻依舊糊里糊涂--的天性。
如果你覺(jué)得受到粗魯?shù)膶?duì)待,請(qǐng)保持冷靜。如果真有人表現(xiàn)粗野,
通常會(huì)有列表/新聞組/論壇的長(zhǎng)輩找他談心,如果沒(méi)有這樣,而你
又大發(fā)脾氣,則很可能對(duì)方的言行是黑客社區(qū)行為規(guī)范許可內(nèi),而
你被認(rèn)為是有過(guò)錯(cuò)的。這會(huì)不利于你得到信息或者幫助。
另一方面,你偶爾也會(huì)無(wú)緣無(wú)故有粗野的言行和心態(tài)。上述現(xiàn)象的
另一面是,人們?cè)试S狠狠打擊真正的冒犯者,用尖刻的言語(yǔ)剖析他
們的不當(dāng)言行。如果你真決定這樣做,先仔細(xì)又仔細(xì)的掂量一下你
自己的分量。合理的粗魯與發(fā)動(dòng)一場(chǎng)無(wú)意義的論戰(zhàn)之間只隔了一條
細(xì)細(xì)的線,冒冒失失撞上
去的黑客不在少數(shù);如果你是新手或者門外漢,不犯這種錯(cuò)的機(jī)會(huì)
是很渺茫的。如果你想得到信息而不是來(lái)胡鬧,別冒險(xiǎn)回復(fù),最好
把手從鍵盤上拿開(kāi)。
(有些人聲稱多數(shù)黑客有孤僻癥或者社交障礙綜合征的輕度癥狀,
而且確實(shí)缺少部分有助“常人”進(jìn)行社交行為的腦組織結(jié)構(gòu)。這也
許是真的,也許不是。如果你自己不是黑客,那么,把我們想象成
腦部有缺陷的人有助你面對(duì)我們的古怪。有話直說(shuō),我們無(wú)所謂;
我們樂(lè)于按自己的想法生
活,而且總是對(duì)醫(yī)學(xué)概念持相當(dāng)懷疑的態(tài)度。)
在下一節(jié)里,我們將談?wù)摿硪粋€(gè)話題;當(dāng)你行差踏錯(cuò)時(shí)可能遇到的“無(wú)禮”。
================
決不要象個(gè)失敗者
================
很有可能,你在黑客社區(qū)的論壇會(huì)受到很多公開(kāi)的攻擊--用本文提
到的各種方式或類似的方法,而且很可能會(huì)有各式各樣的旁敲側(cè)擊
來(lái)告訴你你有多討厭。
如果噩夢(mèng)成真,你能做的最糟的事就是為此發(fā)牢騷,抱怨受到人身
攻擊,要求對(duì)方道歉,尖叫,屏住呼吸,威脅要控訴對(duì)方,向他老
板告狀,不掀起馬桶座圈,等等等等。然而,你應(yīng)該這樣:
由它去吧,這沒(méi)什么大不了的。實(shí)際上這么做是恰當(dāng)?shù)暮陀幸娴模?
主要是有利身心健康:)。
社區(qū)的規(guī)范不靠社區(qū),而是靠積極推行它們的人們來(lái)維護(hù),這種維
護(hù)是公開(kāi)的,顯而易見(jiàn)的。別抱怨說(shuō)一切批評(píng)都應(yīng)該通過(guò)私信傳送,
它本來(lái)就不該那樣。當(dāng)別人指出你的話有錯(cuò)誤,或者他有不同觀點(diǎn)的
時(shí)候,堅(jiān)持認(rèn)為他在羞辱你是沒(méi)有用的。這些都是失敗者的態(tài)度。
有那么一些黑客論壇,出于對(duì)高度自謙的誤解,禁止參與者張貼專給
人找茬的帖子,而且被告知“如果不愿幫助用戶,那就閉嘴?!?,他
們認(rèn)為,引開(kāi)參與者的話題,只會(huì)使得他們陶醉在毫無(wú)意義的喋喋不
休中,從而失去了技術(shù)論壇的意義。
夸張的“友善”(以那種方式)還是有用的幫助:你自己選擇吧。
記?。寒?dāng)黑客說(shuō)你很煩人,(無(wú)論用多么粗暴的語(yǔ)言)警告你別再那
樣做了,他的本意并非是針對(duì)(1)你,以及(2)他的社區(qū)。他本來(lái)可以
輕易的忽略你,把你從他的視線中抹去。如果你無(wú)法接受要向他表示
感激,至少應(yīng)該表現(xiàn)出你的氣度,別抱怨,別期望只因?yàn)槟闶切氯耍?
你有戲劇般的敏
感脆弱的神經(jīng)和自封的權(quán)利,而受到易碎玩偶般的特別對(duì)待。
==========
三思而后問(wèn)
==========
以下是幾個(gè)經(jīng)典蠢問(wèn)題,以及黑客在拒絕回答時(shí)的心中所想:
問(wèn)題:我能在哪找到X程序?
問(wèn)題:我的程序/配置/SQL申明沒(méi)有用
問(wèn)題:我的Windows有問(wèn)題,你能幫我嗎?
問(wèn)題:我在安裝Linux(或者X)時(shí)有問(wèn)題,你能幫我嗎?
問(wèn)題:我怎么才能pjroot帳號(hào)/竊取OP特權(quán)/讀別人的郵件呢?
提問(wèn):我能在哪找到X程序?
回答:就在我找到它的地方啊蠢貨--搜索引擎的那一頭。天吶!
還有人不會(huì)用Google嗎?
提問(wèn):我的程序(配置、SQL申明)沒(méi)有用
回答:這不算是問(wèn)題吧,我對(duì)找出你的真正問(wèn)題沒(méi)興趣--如果要
我問(wèn)你二十個(gè)問(wèn)題才找得出來(lái)的話--我有更有意思的事要做呢。
在看到這類問(wèn)題的時(shí)候,我的反應(yīng)通常不外如下三種:
1. 你還有什么要補(bǔ)充的嗎?
2. 真糟糕,希望你能搞定。
3. 這跟我有什么鳥(niǎo)相關(guān)?
提問(wèn):我的Windows有問(wèn)題,你能幫我嗎?
回答:能啊,扔掉萎軟的垃圾,換Linux吧。
提問(wèn):我在安裝Linux(或者X)時(shí)有問(wèn)題,你能幫我嗎?
回答:不能,我只有親自在你的電腦上動(dòng)手才能找到毛病。
還是去找你當(dāng)?shù)氐腖inux用戶組尋求手把手的指導(dǎo)吧(你能
在這兒找到用戶組的清單)。
提問(wèn):我怎么才能pjroot帳號(hào)/竊取OP特權(quán)/讀別人的郵件呢?
回答:想要這樣做,說(shuō)明你是個(gè)卑鄙小人;想找個(gè)黑客幫你,說(shuō)明你是個(gè)白癡!
==============
好問(wèn)題,壞問(wèn)題
==============
最后,我舉一些例子來(lái)說(shuō)明,怎樣聰明的提問(wèn);同一個(gè)問(wèn)題的兩種問(wèn)
法被放在一起,一種是愚蠢的,另一種才是明智的。
蠢問(wèn)題:我可以在哪兒找到關(guān)于Foonly Flurbamatic的資料?
這種問(wèn)法無(wú)非想得到“STFW”這樣的回答。
聰明問(wèn)題:我用Google搜索過(guò)“Foonly Flurbamatic 2600”,但是
沒(méi)找到有用的結(jié)果。誰(shuí)知道上哪兒去找對(duì)這種設(shè)備編程的資料?
這個(gè)問(wèn)題已經(jīng)STFW過(guò)了,看起來(lái)他真的遇到了麻煩。
蠢問(wèn)題:我從FOO項(xiàng)目找來(lái)的源碼沒(méi)法編譯。它怎么這么爛?
他覺(jué)得都是別人的錯(cuò),這個(gè)傲慢自大的家伙
聰明問(wèn)題:FOO項(xiàng)目代碼在Nulix 6.2版下無(wú)法編譯通過(guò)。我讀過(guò)了FAQ,
但里面沒(méi)有提到跟Nulix有關(guān)的問(wèn)題。這是我編譯過(guò)程的記錄,我有什么
做得不對(duì)的地方嗎?
他講明了環(huán)境,也讀過(guò)了FAQ,還指明了錯(cuò)誤,并且他沒(méi)有把問(wèn)題的責(zé)任
推到別人頭上,這個(gè)家伙值得留意。
蠢問(wèn)題:我的主板有問(wèn)題了,誰(shuí)來(lái)幫我?
普通黑客對(duì)這類問(wèn)題的回答通常是:“好的,還要幫你拍拍背和換尿布
嗎?” ,然后按下刪除鍵。
聰明問(wèn)題:我在S2464主板上試過(guò)了X、Y和Z,但沒(méi)什么作用,我又試了
A、B和C。請(qǐng)注意當(dāng)我嘗試C時(shí)的奇怪現(xiàn)象。顯然邊帶傳輸中出現(xiàn)了收縮,
但結(jié)果出人意料。在多處理器主板上引起邊帶泄漏的通常原因是什么?
誰(shuí)有好主意接下來(lái)我該做些什么測(cè)試才能找出問(wèn)題?
這個(gè)家伙,從另一個(gè)角度來(lái)看,值得去回答他。他表現(xiàn)出了解決問(wèn)題的
能力,而不是坐等天上掉答案。
在最后一個(gè)問(wèn)題中,注意“告訴我答案”和“給我啟示,指出我還應(yīng)該
做什么診斷工作”之間微妙而又重要的區(qū)別。
事實(shí)上,后一個(gè)問(wèn)題源自于2001年8月在Linux內(nèi)核郵件列表上的一個(gè)真
實(shí)的提問(wèn)。我(Eric)就是那個(gè)提出問(wèn)題的人。我在Tyan S2464主板上
觀察到了這種無(wú)法解釋的鎖定現(xiàn)象,列表成員們提供了解決那一問(wèn)題的重要信息。
通過(guò)我的提問(wèn)方法,我給了大家值得玩味的東西;我讓人們很容易參與并
且被吸引進(jìn)來(lái)。我顯示了自己具備和他們同等的能力,邀請(qǐng)他們與我共同
探討。我告訴他們我所走過(guò)的彎路,以避免他們?cè)倮速M(fèi)時(shí)間,這是一種對(duì)
他人時(shí)間價(jià)值的尊重。
后來(lái),當(dāng)我向每個(gè)人表示感謝,并且贊賞這套程序(指郵件列表中的討論
--譯者注)運(yùn)作得非常出色的時(shí)候,一個(gè)Linux內(nèi)核郵件列表(lkml)成
員表示,問(wèn)題得到解決并非由于我是這個(gè)列表中的“名人”,而是因?yàn)?
我用了正確的方式來(lái)提問(wèn)。
我們黑客從某種角度來(lái)說(shuō)是擁有豐富知識(shí)但缺乏人情味的家伙;我相信
他是對(duì)的,如果我象個(gè)乞討者那樣提問(wèn),不論我是誰(shuí),一定會(huì)惹惱某些
人或者被他們忽視。他建議我記下這件事,給編寫(xiě)這個(gè)指南的人一些指導(dǎo)。
================
找不到答案怎么辦
================
如果仍得不到答案,請(qǐng)不要以為我們覺(jué)得無(wú)法幫助你。有時(shí)只是看到你
問(wèn)題的人不知道答案罷了。沒(méi)有回應(yīng)不代表你被忽視,雖然不可否認(rèn)這
種差別很難區(qū)分。
總的說(shuō)來(lái),簡(jiǎn)單的重復(fù)張貼問(wèn)題是個(gè)很糟的想法。這將被視為無(wú)意義的
喧鬧。
喧鬧。
你可以通過(guò)其它渠道獲得幫助,這些渠道通常更適合初學(xué)者的需要。
有許多網(wǎng)上的以及本地的用戶組,由狂熱的軟件愛(ài)好者(即使他們可能
從沒(méi)親自寫(xiě)過(guò)任何軟件)組成。通常人們組建這樣的團(tuán)體來(lái)互相幫助并
幫助新手。
另外,你可以向很多商業(yè)公司尋求幫助,不論公司大還是?。≧ed
Hat和LinuxCare就是兩個(gè)最常見(jiàn)的例子)。別為要付費(fèi)才能獲得幫助而
感到沮喪!畢竟,假使你的汽車發(fā)動(dòng)機(jī)汽缸密封圈爆掉了--完全可能如
此--你還得把它送到修車鋪,并且為維修付費(fèi)。就算軟件沒(méi)花費(fèi)你一分
錢,你也不能強(qiáng)求技術(shù)支持總是免費(fèi)的。
對(duì)大眾化的軟件,就象Linux之類而言,每個(gè)開(kāi)發(fā)者至少會(huì)有上萬(wàn)名用戶。
根本不可能由一個(gè)人來(lái)處理來(lái)自上萬(wàn)名用戶的求助電話。要知道,即使你
要為幫助付費(fèi),同你必須購(gòu)買同類軟件相比,你所付出的也是微不足道
的(通常封閉源代碼軟件的技術(shù)支持費(fèi)用比開(kāi)放源代碼軟件要高得多,
且內(nèi)容也不那么豐富)。
?2000-2005 PEdiy.com All rights reserved.
By KanXue Studio
posted @
2009-03-03 13:59 Madison 閱讀(173) |
評(píng)論 (0) |
編輯 收藏