日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

做一名开源社区的扫地僧

發(fā)布時(shí)間:2024/3/7 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 做一名开源社区的扫地僧 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

不知道怎么為開(kāi)源軟件做貢獻(xiàn)?從匯報(bào) Bug 開(kāi)始吧,或許還有錢(qián)賺呢~ 且看 Qian Hong 的經(jīng)驗(yàn)分享。全文轉(zhuǎn)載開(kāi)始

今年的軟件自由日(SFD),我在廣州Linux用戶(hù)組的線(xiàn)下活動(dòng)上做了一個(gè)分享,主題叫做《做一名開(kāi)源社區(qū)的掃地僧(上)》。我把演講的內(nèi)容重新整理擴(kuò)充, 寫(xiě)出了文字版, 希望可以跟更多朋友分享。

金庸筆下有一個(gè)傳奇人物,人稱(chēng)掃地僧,身世隱秘,武功絕頂。小說(shuō)中的掃地僧一出現(xiàn)就是個(gè)高手,沒(méi)人知道高手怎么煉成的。這種"掃地僧",實(shí)在可望不可及。 然而,還有另一種掃地僧,人人都可以效仿,人人都可以做到,不妨稱(chēng)之為"山寨掃地僧"。

最近流傳一個(gè)真實(shí)的故事, 有個(gè)廣外宿管旁聽(tīng)了中大和廣外的會(huì)計(jì)類(lèi)課程, 考過(guò)了注冊(cè)會(huì)計(jì)師, 跳槽去了四大會(huì)計(jì)事務(wù)所. 還有一個(gè)更著名的例子, 今年倫敦奧運(yùn)會(huì)閉幕式里約八分鐘上, 表演桑巴舞的巴西清潔工, 名副其實(shí)的"掃地僧", 他是巴西一家舞蹈學(xué)校的清潔工.

每一個(gè)山寨掃地僧, 都是一個(gè)勵(lì)志帝...

這篇文章要推廣的, 就是一條開(kāi)源社區(qū)掃地僧的打怪升級(jí)之路. 當(dāng)然, 起這個(gè)標(biāo)題, 完全是為了騙取點(diǎn)擊率, 真正的標(biāo)題是:

= 從Bug report到Google Summer of Code = 副標(biāo)題是: == 從200個(gè)bug到5000美金 == 直白一點(diǎn), 其實(shí)重點(diǎn)是: === 怎樣騙錢(qián)? ===

預(yù)告: 這篇文章很長(zhǎng), 讀不下去的時(shí)候想一想5000美金 XD

報(bào)bug跟騙錢(qián)有什么關(guān)系呢? 這要從Google Summer of Code說(shuō)起.

GSoC是一個(gè)由Google出錢(qián)贊助, 由開(kāi)源項(xiàng)目提供一對(duì)一的導(dǎo)師, 由學(xué)生給開(kāi)源項(xiàng)目寫(xiě)代碼賺錢(qián)的夏令營(yíng)活動(dòng). GSoC項(xiàng)目的時(shí)間是3個(gè)月, 每一個(gè)完成GSoC項(xiàng)目通過(guò)考核的學(xué)生都可以獲得5000美元的獎(jiǎng)金. 官方的介紹很長(zhǎng), 讀不下去的時(shí)候想一想5000美金:?http://www.google-melange.com/document/show/gsoc_program/google/gsoc2012/faqs

GSoC每年和全球大約200個(gè)開(kāi)源項(xiàng)目組織合作, 每年有4000多個(gè)學(xué)生申請(qǐng), 最終有1000多名學(xué)生通過(guò), 通過(guò)申請(qǐng)的絕大部分學(xué)生都能通過(guò)中期考核和末期考核. 如果你有幸通過(guò)了申請(qǐng), 那么只要你接下來(lái)不偷懶不耍賴(lài)不懂多請(qǐng)教, 那么不用擔(dān)心通不過(guò)考核. GSoC學(xué)生的通過(guò)率可能會(huì)影響到開(kāi)源項(xiàng)目組織下一年分配到的學(xué)生名額, 所以導(dǎo)師一定會(huì)幫助你克服困難. 當(dāng)然,換個(gè)角度想, 一旦你通過(guò)了申請(qǐng), 也有責(zé)任好好珍惜這個(gè)名額, 努力完成目標(biāo).

不管是申請(qǐng), 中期檢驗(yàn)還是末期檢驗(yàn), 每個(gè)階段都是開(kāi)源項(xiàng)目的導(dǎo)師說(shuō)了算, 因此, 如果你想騙錢(qián), 不妨提前跟開(kāi)源項(xiàng)目的開(kāi)發(fā)者混熟 ;-)

2011年初, 我開(kāi)始有預(yù)謀地給Wine項(xiàng)目報(bào)bug掃地做測(cè)試順便混熟臉, 到了2012年4月, 我申請(qǐng)了Wine項(xiàng)目的GSoC, 沒(méi)有費(fèi)多大力氣就通過(guò)了申請(qǐng), 并且最終順利完成騙錢(qián)計(jì)劃 [注1]. 今年有十幾個(gè)學(xué)生報(bào)名Wine項(xiàng)目的GSoC, 而Wine項(xiàng)目的學(xué)生名額只有5個(gè), 如果不是提前預(yù)謀好, 騙錢(qián)的好事肯定輪不到我.

獨(dú)騙騙不如眾騙騙, 希望可以把騙錢(qián)的經(jīng)驗(yàn)跟大家分享: - 提前一年做準(zhǔn)備, 從報(bào)bug入門(mén)參與開(kāi)源項(xiàng)目, 花一年時(shí)間報(bào)接近200個(gè)bug - 通過(guò)報(bào)bug, 了解開(kāi)源項(xiàng)目的工作流, 認(rèn)識(shí)開(kāi)源項(xiàng)目的開(kāi)發(fā)者, 從開(kāi)發(fā)者身上"偷學(xué)", 入門(mén)開(kāi)源項(xiàng)目開(kāi)發(fā) - 通過(guò)報(bào)bug與開(kāi)源項(xiàng)目開(kāi)發(fā)者建立起信任的關(guān)系, "騙取" GSoC 的資格, 最終騙到5000美元獎(jiǎng)金.

簡(jiǎn)單地說(shuō), 騙錢(qián)的訣竅就是通過(guò)報(bào)bug加入開(kāi)源項(xiàng)目不斷打怪升級(jí), 從而提升自己的水平和提高GSoC申請(qǐng)的成功率.

正經(jīng)地說(shuō), 一個(gè)人能為開(kāi)源項(xiàng)目報(bào)200個(gè)bug, 那他肯定對(duì)這個(gè)項(xiàng)目真心有愛(ài), 也一定會(huì)珍惜自己在開(kāi)源社區(qū)中的聲譽(yù), 不會(huì)只騙錢(qián)不干活. GSoC的本意是培養(yǎng)開(kāi)源項(xiàng)目的新貢獻(xiàn)者, 希望學(xué)生在結(jié)束夏令營(yíng)之后仍然愿意為開(kāi)源項(xiàng)目做貢獻(xiàn). 報(bào)200個(gè)bug本身就是一種不小的貢獻(xiàn), 而從開(kāi)源項(xiàng)目開(kāi)發(fā)者的角度看, 愿意提前花一年時(shí)間給項(xiàng)目報(bào)200個(gè)bug的學(xué)生, 騙完錢(qián)之后繼續(xù)做貢獻(xiàn)的可能性也比較大, 所以把名額給這樣的學(xué)生也是合理的. 因此, 信任和機(jī)會(huì)其實(shí)是汗水換來(lái)的, 所謂"騙"只是開(kāi)玩笑, 不可當(dāng)真.

報(bào)200個(gè)bug似乎很難, 可是只要堅(jiān)信報(bào)完200個(gè)bug就可以騙到5000美金, 立刻就變得不難了 :D

怎么報(bào)bug呢? 其實(shí)每一個(gè)成熟的開(kāi)源項(xiàng)目都有詳細(xì)的bug report guide line, 只要照著文檔去做, 就知道怎么報(bào)bug. 如果從來(lái)沒(méi)讀過(guò)這類(lèi)文檔, 可以試試google一下下面的關(guān)鍵詞組合: XXX + QA / testing / bug report 例如:?http://lmgtfy.com/?q=libreoffice+qa?http://lmgtfy.com/?q=chromium+bug+report?https://www.google.com/search?btnG=1&pws=0&q=ubuntu+testing?等等.

這些文檔通常都不短, 讀不下去的時(shí)候想一想5000美金 ;-)

大多數(shù)文檔會(huì)引用很多外部鏈接, 這些鏈接也應(yīng)該盡可能閱讀一下, 它們可能會(huì)解釋開(kāi)源項(xiàng)目的測(cè)試發(fā)布周期, 或者介紹專(zhuān)用的報(bào)bug和調(diào)試工具, 也可能是介紹項(xiàng)目相關(guān)的郵件列表, 還有可能會(huì)講解開(kāi)源項(xiàng)目的?工作流?(workflow)

工作流是什么東西呢? 打個(gè)比方, 去醫(yī)院看病, 工作流就是掛號(hào)就診檢查化驗(yàn)繳費(fèi)取藥也許還有送紅包; 去學(xué)校上學(xué), 工作流就是報(bào)名注冊(cè)選課逃課交作業(yè)考試也許還有掛科補(bǔ)考; 參加GSoC, 工作流就是選項(xiàng)目選課題混熟臉報(bào)名申請(qǐng)寫(xiě)代碼考核還有最重要的騙錢(qián). 總之, 工作流就是這類(lèi)看起來(lái)有點(diǎn)煩瑣無(wú)聊卻有時(shí)候不得不面對(duì)的辦事流程.

開(kāi)源項(xiàng)目的工作流包括, 去什么地方報(bào)bug, bug生命周期如何運(yùn)轉(zhuǎn), 去什么地方提交補(bǔ)丁, 補(bǔ)丁沒(méi)有被接受怎么辦, 如何獲得開(kāi)源項(xiàng)目bug tracker的管理權(quán)限, 如何獲得官方的代碼提交權(quán)限, 等等.

對(duì)新人來(lái)說(shuō), 有時(shí)候加入一個(gè)開(kāi)源項(xiàng)目最大的門(mén)檻居然不是技術(shù)也不是語(yǔ)言, 而是對(duì)工作流的困惑不了解. 不知道去哪反饋問(wèn)題, 不知道補(bǔ)丁發(fā)給誰(shuí), 不知道去哪里尋求幫助, 等等各種不知道. 有時(shí)候商業(yè)公司的開(kāi)發(fā)者也可能會(huì)遇到這種問(wèn)題, 比如在工作中用到了一些開(kāi)源項(xiàng)目, 修復(fù)了一些bug, 卻不知道怎么把補(bǔ)丁反饋給社區(qū), 或者補(bǔ)丁發(fā)送一次沒(méi)有被接受就從此放棄改進(jìn), 于是長(zhǎng)期維護(hù)一個(gè)本地的分支, 這樣就把原本簡(jiǎn)單的事情變復(fù)雜了, 把原本可以共贏(yíng)的事情變成自己額外的負(fù)擔(dān). 其實(shí)開(kāi)源項(xiàng)目的工作流大同小異, 只要接觸過(guò)一個(gè)項(xiàng)目, 以后參與其他任何項(xiàng)目都不難根據(jù)文檔了解工作流.

如果你對(duì)報(bào)bug的工作流有初步的了解, 就會(huì)發(fā)現(xiàn)報(bào)bug其實(shí)跟論壇發(fā)貼差不多, 只不過(guò)發(fā)貼的地方是bug tracker. 這么看來(lái), 報(bào)bug的技術(shù)門(mén)檻其實(shí)是很低的, 正是因?yàn)闆](méi)有技術(shù)含量, 所以才叫做"掃地".

雖然報(bào)bug跟發(fā)貼一樣容易, 但是如何把bug report寫(xiě)得好仍然是一件需要用心的事情. 前人寫(xiě)過(guò)關(guān)于報(bào)bug的通用教程, 最著名的是 "如何有效地報(bào)bug" , 這篇文章具有超級(jí)牛力. 另外一篇同樣具有超級(jí)牛力的文章叫做"提問(wèn)的智慧". 認(rèn)真地閱讀這兩篇文章的任何一篇, 時(shí)常反省檢查一下自己做到了沒(méi)有, 就能寫(xiě)出質(zhì)量不錯(cuò)的bug report. 這兩篇文章都很長(zhǎng), 讀不下去的時(shí)候就想想5000美金, 這兩篇文章瞬間都不長(zhǎng)了. 如果兩篇都認(rèn)真讀過(guò)了, 就會(huì)發(fā)現(xiàn)本質(zhì)上提問(wèn)和報(bào)bug都需要相同的素質(zhì). 當(dāng)你確信自己"會(huì)報(bào)bug"的時(shí)候, 再看一下論壇上大多數(shù)的提問(wèn)貼, 也許會(huì)覺(jué)得很多人不會(huì)提問(wèn), 說(shuō)不定也包括過(guò)去的自己. 不信報(bào)200個(gè)bug試試? :P

一個(gè)高質(zhì)量的bug report會(huì)受到開(kāi)發(fā)者的歡迎, 而劣質(zhì)的bug report則有可能幫倒忙, 浪費(fèi)開(kāi)發(fā)者的時(shí)間. 也許很多人不愿意仔細(xì)閱讀 "如何有效地報(bào)bug" 和 "提問(wèn)的智慧" (詛咒他們拿不到5000美金 :P) 為了防止有人真的一下子報(bào)200個(gè)劣質(zhì)的bug, 還是得先打一下預(yù)防針. 合格的bug reporter需要做到: - 閱讀項(xiàng)目的bug report guide line! 不讀guide line就報(bào)bug, 是很不負(fù)責(zé)任的做法. - 每個(gè)bug只報(bào)告一個(gè)問(wèn)題 -?精確?說(shuō)明相關(guān)程序版本號(hào)和操作系統(tǒng)版本 - 按?時(shí)間順序?分點(diǎn)?列出重現(xiàn)bug的?精確?步驟 - 記得及時(shí)回復(fù)開(kāi)發(fā)者的問(wèn)題!!!

本來(lái)還需要增加一點(diǎn): - 報(bào)bug之前先分別在google和項(xiàng)目bug tracker里搜索重復(fù)的問(wèn)題. 但實(shí)際上對(duì)于新手來(lái)說(shuō), 搜索重復(fù)問(wèn)題是最難做好的, 尤其對(duì)于英文不好的人來(lái)說(shuō)更是如此.

當(dāng)你知道怎么搜索鑒別重復(fù)的bug的時(shí)候, 已經(jīng)不是新手了, 不妨提高對(duì)bug質(zhì)量的要求: - 養(yǎng)成自己固定的風(fēng)格. 盡量按照固定的格式寫(xiě)bug報(bào)告, 就容易養(yǎng)成習(xí)慣, 有助于形成嚴(yán)密的思維, 不會(huì)漏掉重要的信息. 很多bug tracker都有bug報(bào)告的"模板", 可以參考這些模板養(yǎng)成習(xí)慣. - 假想自己報(bào)了50個(gè)bug, 如果半年后隨機(jī)挑一個(gè)給自己看, 能否保證閱讀一次就知道如何重現(xiàn)? 帶著這樣的想法去報(bào)bug, 等真正報(bào)了很多bug的時(shí)候, 回頭檢驗(yàn)一下. 如果自己都沒(méi)辦法讀過(guò)一次就知道怎么重現(xiàn), 那別人怎么知道? - 訂閱/跟蹤開(kāi)源項(xiàng)目的bug tracker, 觀(guān)察別人怎么報(bào)bug, 從老手身上學(xué)習(xí), 并主動(dòng)幫助新手. 幫助別人也是提高自己的一種方法. 讀完報(bào)bug必讀的文檔, 領(lǐng)會(huì)了報(bào)bug的要點(diǎn), 也許你會(huì)發(fā)現(xiàn): 報(bào)bug不是問(wèn)題, 問(wèn)題是沒(méi)bug!

的確, 報(bào)bug本身不難, 難的是找bug. 在日常使用中發(fā)現(xiàn)bug, 通常是一件可遇不可求的事情, 否則肯定沒(méi)人愿意使用這個(gè)軟件 ;-) 但是, 如果你非常想報(bào)bug, 一定要了解一下?批量找bug的方法, 哪怕沒(méi)有方法, 也要?jiǎng)?chuàng)造方法!

什么? 批量找bug?! 其實(shí)批量找bug并不稀奇, 有一類(lèi)工作干的就是批量找bug的事情, 這種職位或者叫測(cè)試, 或者叫QA, 或者叫QE.

要批量找bug, 首先必須做到的一點(diǎn)是 "早".

很多開(kāi)源項(xiàng)目都有devel版, alpha版, beta版等各種開(kāi)發(fā)測(cè)試版, 也有所謂的最終版穩(wěn)定版, 如果你在開(kāi)源軟件的"穩(wěn)定版"中遇到不穩(wěn)定的現(xiàn)象, 不用大驚小怪, 因?yàn)楹芏嚅_(kāi)源項(xiàng)目都沒(méi)有足夠的人手可以去做充分的測(cè)試, 而商業(yè)軟件背后通常有不少全職的QA. 反過(guò)來(lái), 如果你沒(méi)遇到過(guò)什么嚴(yán)重的bug, 其實(shí)應(yīng)該感激為開(kāi)源項(xiàng)目默默做貢獻(xiàn)的QA們. 想抓住"批量報(bào)bug"的機(jī)會(huì), 就應(yīng)該?盡早, 每當(dāng)軟件發(fā)布新版本的時(shí)候, 第一時(shí)間去測(cè)試, 最好是alpha版, 最好是daily build版, 最好最好是自己從git倉(cāng)庫(kù)下載編譯的實(shí)時(shí)版.

早起的鳥(niǎo)兒有bug吃, 但批量找到bug的通常還得是老鳥(niǎo). 所以, 第二點(diǎn)就是跟老鳥(niǎo)學(xué). 訂閱開(kāi)源項(xiàng)目的bug列表, 觀(guān)察別人報(bào)的bug, 觀(guān)察哪些是老鳥(niǎo), 觀(guān)察老鳥(niǎo)怎么找bug怎么報(bào)bug. 詳細(xì)閱讀QA的文檔, 也許批量找bug的方法工具就記錄在QA文檔中.

有時(shí)候, 批量找bug的方法很簡(jiǎn)單, 比如說(shuō), 怎么給 wine 報(bào)200個(gè)bug? 我用過(guò)的是最笨的方法: - 去軟件下載站找排行top 100的軟件, 有空就在wine上測(cè)試一下, 只要有時(shí)間, 要多少bug有多少bug. - 有針對(duì)性地下載各家網(wǎng)銀的控件進(jìn)行安裝測(cè)試, 不知不覺(jué)也報(bào)了很多bug, 順便改進(jìn)了工行和招行等網(wǎng)銀的很多問(wèn)題. - 關(guān)注郵件列表和論壇里其他朋友反饋的Wine的問(wèn)題, 看到順眼的帖子就去幫忙測(cè)試一下報(bào)幾個(gè)bug ;-)

如果這些笨辦法對(duì)你實(shí)在沒(méi)有吸引力, 可以看一下比較有技術(shù)含量的批量方法:?http://wiki.winehq.org/UnitTestSuites

很多項(xiàng)目都有自己的單元測(cè)試, 如果你在Wine上面運(yùn)行這些單元測(cè)試, 就變成一組非常有價(jià)值的Wine測(cè)試用例. (如果你恰好是某個(gè)Windows軟件的作者, 希望借助Wine將軟件移植到Linux/Mac, 其實(shí)只要在Wine下運(yùn)行一下單元測(cè)試, 就能發(fā)現(xiàn)和解決絕大部分問(wèn)題了.)

上面的例子不是特例, 其實(shí)很多項(xiàng)目都有前人總結(jié)開(kāi)發(fā)出來(lái)的批量報(bào)bug方法或工具:

  • 怎么批量發(fā)現(xiàn)Chromium/Firefox瀏覽器的bug? 有一個(gè)叫做Selenium的開(kāi)源項(xiàng)目, 它是一個(gè)瀏覽器自動(dòng)化測(cè)試工具, 支持IE, Firefox, Chromium以及一些手機(jī)瀏覽器:?http://seleniumhq.org/

  • 怎么批量發(fā)現(xiàn)linux桌面環(huán)境的bug? 有一個(gè)叫做linux desktop testing project的開(kāi)源項(xiàng)目, 用來(lái)做桌面環(huán)境和圖形界面軟件的自動(dòng)測(cè)試工具, 支持linux, windows 和 mac:?http://ldtp.freedesktop.org/wiki

  • 怎么批量發(fā)現(xiàn)LibreOffice/OpenOffice的bug? 我不知道有什么聰明的辦法, 但笨辦法倒是很簡(jiǎn)單: 每個(gè)LibreOffice/OpenOffice跟MS office格式不兼容的地方都是一個(gè)bug. 面對(duì)格式兼容問(wèn)題, 有的人只會(huì)抱怨, 有的人默默地拿走了5000美金... 從Libreoffice的wiki上可以看到, 已經(jīng)有好幾個(gè)GSoC學(xué)生做的是改進(jìn)格式兼容的工作.

其實(shí), 凡是跟兼容靠邊的項(xiàng)目, 都很容易"制造"大量不兼容的bug :P mono, Wine, ReactOS, Haiku OS, LibreOffice/OpenOffice, mingw/mxe, gnash/lightspark, 這些都是跟兼容有關(guān)的項(xiàng)目, 只要google一下 XXX open source alternative, 可以發(fā)現(xiàn)兼容類(lèi)開(kāi)源項(xiàng)目還有很多, 這類(lèi)項(xiàng)目非常需要志愿者去找bug報(bào)bug. 兼容性相關(guān)的問(wèn)題常常是很有挑戰(zhàn)的技術(shù)難題, 開(kāi)發(fā)調(diào)試不容易, 還時(shí)不時(shí)需要逆向工程, 遺憾的是這類(lèi)項(xiàng)目卻被罵得最多, 真是吃力不討好. 如果我們都能做到多報(bào)bug, 少抱怨, 這個(gè)世界會(huì)變得更好.

批量報(bào)bug的方法通常跟自動(dòng)測(cè)試/單元測(cè)試工具有關(guān), open source testing項(xiàng)目為我們收集總結(jié)了大量的自動(dòng)測(cè)試/單元測(cè)試工具:http://www.opensourcetesting.org/functional.php

如果給一般的項(xiàng)目報(bào)bug對(duì)你來(lái)說(shuō)太沒(méi)技術(shù)含量怎么辦? 不用擔(dān)心, 總有夠硬的骨頭可以啃.

  • 怎么批量發(fā)現(xiàn)gcc的bug? 這個(gè)我真不知道, 不過(guò)當(dāng)我搜尋這個(gè)問(wèn)題的答案的時(shí)候, 我發(fā)現(xiàn)Delta這個(gè)工具真是帥呆了:?http://gcc.gnu.org/wiki/Aguidetotestcasereduction?Delta是一個(gè)利用二分原理對(duì)代碼進(jìn)行裁剪的工具, 對(duì)于診斷編譯器的bug有很大幫助. 如果報(bào)bug可以騙錢(qián), 我會(huì)先學(xué)習(xí)Delta工具, 然后上GCC的bugzilla搜索前人報(bào)過(guò)的有效的bug, 親自重現(xiàn)幾十個(gè)bug.?重現(xiàn)bug?其實(shí)跟?報(bào)bug?一樣, 也是一種"掃地", 同樣能學(xué)到很多東西. 俗話(huà)說(shuō)熟讀唐詩(shī)三百首,不會(huì)作詩(shī)也會(huì)吟, 如果你讀過(guò)的bug report夠多, 重現(xiàn)過(guò)的bug夠多, 那你也一定會(huì)找bug報(bào)bug. 像gcc這樣基礎(chǔ)而重要的項(xiàng)目, 對(duì)于新手來(lái)說(shuō)確實(shí)不容易找到bug, 但也不是沒(méi)有機(jī)會(huì). gcc在x86平臺(tái)上可能非常完善, 但在一些冷門(mén)的平臺(tái)上則未必有那么完美, 這也是找bug的一種思路.

  • 怎么批量發(fā)現(xiàn)內(nèi)核的bug? 有一個(gè)開(kāi)源項(xiàng)目叫做linux testing project, 是一個(gè)專(zhuān)門(mén)針對(duì)Linux內(nèi)核開(kāi)發(fā)的測(cè)試套件:?http://ltp.sourceforge.net/同樣, 如果報(bào)內(nèi)核的bug太難, 也可以先從重現(xiàn)別人的bug report開(kāi)始入手, 照樣可以學(xué)到很多東西. 給內(nèi)核找bug同樣不容易, 但也不是沒(méi)有機(jī)會(huì), 一些冷門(mén)的平臺(tái), 例如openrisc, 人手不一定夠, 肯定有很多bug等你捉 ;-)

很多人說(shuō)Linux kernel穩(wěn)定, 其實(shí)linux kernel哪里穩(wěn)定? 測(cè)內(nèi)核的最傷不起了, 新出的內(nèi)核動(dòng)不動(dòng)就panic, 穩(wěn)定的內(nèi)核都是經(jīng)過(guò)多輪測(cè)試的. 其實(shí)只要有足夠多的工業(yè)級(jí)測(cè)試, linux桌面也可以跟內(nèi)核一樣穩(wěn)定. 開(kāi)源社區(qū)極缺大量志愿QA, 如果你愿意捉蟲(chóng), 到處歡迎你, 甚至巴不得手把手教你 (就怕人手不夠沒(méi)手教你...) 當(dāng)你報(bào)了200個(gè)bug的時(shí)候, 會(huì)發(fā)現(xiàn)原來(lái)開(kāi)源項(xiàng)目bug那么多, 人手那么少...

在批量找bug這件事上, 需要一定的創(chuàng)意和想象力. 比如Selenium原本的作用是測(cè)試瀏覽器, 內(nèi)置了大量的browser test case, 而ReactOS是一個(gè)開(kāi)源的仿Windows操作系統(tǒng), 如果把這兩者組合起來(lái), 在ReactOS上運(yùn)行Windows版的Selenium+Firefox/Chrome, 那就變成一組現(xiàn)成的ReactOS test case了, 這時(shí)候還怕找不到ReactOS的bug嗎?

只要肯動(dòng)腦, 一定能發(fā)明出前人沒(méi)想到過(guò)的批量找bug的方法. 還是那句話(huà), 只要想一想5000美金, 辦法一定有的 :P 讀到這里, 也許你會(huì)發(fā)現(xiàn), 報(bào)bug不是問(wèn)題, 找bug也不是問(wèn)題, 問(wèn)題是木有項(xiàng)目!

很多人想?yún)⑴c開(kāi)源項(xiàng)目, 卻不知參加什么項(xiàng)目好. 其實(shí)這個(gè)問(wèn)題功利的答案很簡(jiǎn)單: 如果是沖著GSoC的5000美金去報(bào)bug的, 那就去GSoC的官方網(wǎng)站查一下最近5年有哪些項(xiàng)目跟google合作過(guò):?http://code.google.com/intl/zh-CN/soc/?看完之后可以猜出哪些項(xiàng)目明年參與合作的機(jī)會(huì)比較大, 然后就可以從中找感興趣的項(xiàng)目去研究. 如果過(guò)去對(duì)開(kāi)源項(xiàng)目了解不多, 那么不妨花一兩個(gè)星期的時(shí)間廣泛瀏覽然后再篩選一些進(jìn)一步鉆研.

不那么功利的答案: 只要是感興趣的任何項(xiàng)目都可以. 如果毫無(wú)頭緒, 不妨到ohloh.net上隨便瀏覽, 比如看看按活躍貢獻(xiàn)人數(shù)排名的top 1000:https://www.ohloh.net/p?page=100&sort=active_committers?如果找到一個(gè)感興趣的項(xiàng)目, 還可以在?ohloh.net?上搜索這個(gè)項(xiàng)目的related project, 一不小心就會(huì)牽出一批有趣的項(xiàng)目. 如果有多個(gè)候選項(xiàng)目要篩選出一個(gè)進(jìn)行重點(diǎn)研究, 可以在?ohloh.net?上看一下這些項(xiàng)目的統(tǒng)計(jì)數(shù)據(jù), 比如: - 近期代碼提交數(shù)量 - 最近一個(gè)月的new contributor的人數(shù) - 高kudo rank的開(kāi)發(fā)者的人數(shù).

一個(gè)開(kāi)源項(xiàng)目經(jīng)常有新代碼提交, 說(shuō)明這個(gè)項(xiàng)目很活躍, 加入活躍的項(xiàng)目才有活干, 給活躍項(xiàng)目報(bào)bug才有人處理; 一個(gè)項(xiàng)目經(jīng)常有新貢獻(xiàn)者加入, 說(shuō)明這個(gè)項(xiàng)目很吸引人并且對(duì)新人的門(mén)檻不是特別高; 一個(gè)項(xiàng)目有很多高kudo rank的開(kāi)發(fā)者, 那么加入這個(gè)項(xiàng)目可以跟很多大牛學(xué)習(xí).

如果找到這樣的項(xiàng)目, 但它以前沒(méi)有參與過(guò)GSoC, 也可以慫恿項(xiàng)目開(kāi)發(fā)者明年向Google申請(qǐng)作為GSoC的合作項(xiàng)目, 當(dāng)然, 申請(qǐng)不一定會(huì)成功, 因?yàn)槊磕曛挥写蠹s200個(gè)項(xiàng)目有機(jī)會(huì)跟Google合作. 另外,Google每年都說(shuō)不保證明年會(huì)繼續(xù)舉辦GSoC, 所以, 騙錢(qián)要趁早...

很多事情是知易行難, 報(bào)bug也一樣, 哪怕項(xiàng)目找到了, 批量報(bào)bug的方法也找到了, 堅(jiān)持報(bào)200個(gè)bug也是一件不容易的事情.

怎樣才能找到足夠的動(dòng)力持續(xù)去報(bào)bug呢? 其實(shí)也不難.

報(bào)bug被修復(fù)帶來(lái)的成就感, 本身就能激勵(lì)人繼續(xù)努力. 問(wèn)題是, 不是每一個(gè)bug都能被及時(shí)修復(fù). 很多新手經(jīng)常問(wèn), 一個(gè)bug要多久才能修復(fù)? 網(wǎng)上流傳個(gè)段子, 正好回答了這個(gè)問(wèn)題:

=== >> 師爺, 寫(xiě)代碼最重要的是什么? >淡定. >> 師爺, 調(diào)試程序最重要的是什么? >運(yùn)氣. ===

這個(gè)段子很經(jīng)典, 影響bug修復(fù)的因素太多了, 有的bug一天就能修復(fù), 有的陳年老bug很多年都沒(méi)解決. 一個(gè)bug要多久才能被修復(fù), 這個(gè)問(wèn)題本身無(wú)法回答, 但是換個(gè)說(shuō)法就能帶來(lái)希望: 報(bào)100個(gè)bug一年后會(huì)有多少個(gè)被修復(fù)? 根據(jù)我的粗略統(tǒng)計(jì), 給Wine項(xiàng)目報(bào)100個(gè)bug, 一年后大約會(huì)有50個(gè)被修復(fù). 換句話(huà)說(shuō), "bug半衰期" 差不多是1年. 其他開(kāi)源項(xiàng)目, 只要是活躍開(kāi)發(fā)中, "bug半衰期"應(yīng)該都不會(huì)太長(zhǎng). 所以, 保持報(bào)bug的動(dòng)力的方法之一就是多報(bào)bug, 這樣必定有一部分bug先被修復(fù), 這些成果就會(huì)激勵(lì)自己繼續(xù)前進(jìn).

實(shí)際上, 保持動(dòng)力的第二個(gè)方法仍然是 "多報(bào)bug". 當(dāng)你報(bào)的bug足夠多的時(shí)候, 可能會(huì)發(fā)現(xiàn)只要你一段時(shí)間不上網(wǎng), 郵箱里就有很多bug郵件等著你處理, 可能是開(kāi)發(fā)者發(fā)布了新補(bǔ)丁等你幫忙測(cè)試, 也可能是一組相關(guān)聯(lián)的bug狀態(tài)發(fā)生變化需要重測(cè), 這時(shí)候bug reporter的作用就很重要. 如果不回復(fù), 開(kāi)發(fā)者的工作就可能被阻塞, 意識(shí)到這一點(diǎn), 就會(huì)加倍感受到自己在社區(qū)中的價(jià)值.

如果我說(shuō)保持動(dòng)力的第三個(gè)方法仍然是多報(bào)bug, 那我一定會(huì)被讀者罵死 :) 其實(shí), 在我看來(lái), 保持動(dòng)力的最終極辦法, 就是跟開(kāi)源項(xiàng)目的其他貢獻(xiàn)者成為朋友. 加入一個(gè)國(guó)際性的開(kāi)源項(xiàng)目, 可以認(rèn)識(shí)到地球上不同角落的朋友, 也許有的角落你一輩子都沒(méi)有機(jī)會(huì)到達(dá), 但是那里有個(gè)跟你素未謀面卻一樣為同一個(gè)開(kāi)源項(xiàng)目做貢獻(xiàn)的人, 這是多么神奇的事情! 如果你得到某個(gè)老外的幫助, 一定要記住她/他的名字, 雖然老外的名字很難記; 如果你得到別人的鼓勵(lì), 也不要忘了鼓勵(lì)別人, 大牛和菜鳥(niǎo)一樣都需要鼓勵(lì). 如果你跟世界各地的開(kāi)源項(xiàng)目貢獻(xiàn)者成為朋友, 就會(huì)加倍享受到開(kāi)源的樂(lè)趣, 那個(gè)時(shí)候, 地球人都無(wú)法阻止你報(bào)bug了...

既然決心報(bào)bug, 就千萬(wàn)別浪費(fèi)一邊掃地一邊偷學(xué)的好機(jī)會(huì), 這正是掃地僧的真諦所在. 開(kāi)源社區(qū)里雖然不需要"偷", 但要觀(guān)察到別人忽略的東西, 學(xué)到別人沒(méi)學(xué)到的東西, 也需要 "留心", 所謂的 "偷學(xué)" 其實(shí)就是分外留心地觀(guān)察和學(xué)習(xí). 只要有心, 報(bào)200個(gè)bug可以學(xué)到很多東西.

  • 如果開(kāi)發(fā)者反復(fù)追問(wèn)bug的細(xì)節(jié)和日志, 你可以學(xué)習(xí)積累排錯(cuò)調(diào)試的方法思路.
  • 如果開(kāi)發(fā)者關(guān)閉了重復(fù)的bug, 就應(yīng)該注意學(xué)習(xí)搜索方法和積累搜索關(guān)鍵詞, 尤其是英文不好的新手.
  • 如果一個(gè)bug被開(kāi)發(fā)者確診為上游的bug, 你也可以順便了解上游項(xiàng)目.
  • 對(duì)于大型項(xiàng)目, 要閱讀完所有代碼幾乎是不可能的, 報(bào)bug的過(guò)程可以熟悉局部代碼并逐漸入門(mén)開(kāi)發(fā):
  • 如果開(kāi)發(fā)者針對(duì)bug發(fā)布了一個(gè)補(bǔ)丁, 可以嘗試從這個(gè)補(bǔ)丁周?chē)拇a入手閱讀和學(xué)習(xí), 理解補(bǔ)丁的作用, 暫時(shí)忽略無(wú)關(guān)的代碼.
  • 如果你自己報(bào)的bug足夠多, 可能會(huì)發(fā)現(xiàn)某些bug涉及的代碼似曾相識(shí), 這時(shí)候不妨嘗試自己動(dòng)手修改代碼, 也許是從協(xié)助診斷開(kāi)始, 也許是從dirty hack開(kāi)始, 慢慢地就可能從報(bào)bug進(jìn)階到修bug.

值得強(qiáng)調(diào)的是, 如果你的目標(biāo)是從報(bào)bug入門(mén)進(jìn)階為開(kāi)發(fā), 那么從一開(kāi)始就應(yīng)該訂閱開(kāi)源項(xiàng)目的patch列表和devel列表, 一開(kāi)始讀不懂不要緊, 長(zhǎng)期耳濡目染, 量變可能會(huì)引起質(zhì)變, 這也是一種"掃地".

如果你像我當(dāng)初一樣對(duì)自己的開(kāi)發(fā)能力沒(méi)有足夠自信, 這種看似曲折的道路可以大大降低入門(mén)開(kāi)發(fā)的門(mén)檻, 不知不覺(jué)增長(zhǎng)信心. 如果你還是沒(méi)信心, 想一想5000美金吧 XD

除了這些能直接學(xué)到的東西, 報(bào)bug還能帶來(lái)很多間接的好處.

  • 報(bào)bug的過(guò)程可以跟開(kāi)發(fā)者熟悉甚至成為朋友, 將來(lái)他們能夠?qū)δ阌泻芏鄮椭? 有開(kāi)發(fā)方面的問(wèn)題可以向他們請(qǐng)教.
  • 報(bào)bug過(guò)程可以鍛煉英文!!! 如果你跟我一樣, 大學(xué)入學(xué)英語(yǔ)分班考試考到了最差的班, 那么趕緊去報(bào)bug. 當(dāng)你報(bào)了200個(gè)bug的時(shí)候, 計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)肯定不是障礙. 我剛開(kāi)始用英文給開(kāi)源項(xiàng)目報(bào)bug的時(shí)候, 很多單詞不懂, 一邊寫(xiě)bug report一邊查, 報(bào)一個(gè)bug花很多時(shí)間, 還戰(zhàn)戰(zhàn)兢兢生怕自己表達(dá)錯(cuò), 現(xiàn)在雖然英文也不太好, 但至少錢(qián)是騙到手了 =) 如果你在一個(gè)開(kāi)源項(xiàng)目里混久了, 那么很容易會(huì)認(rèn)識(shí)幾個(gè)老外朋友, 那時(shí)候遇到英語(yǔ)的問(wèn)題你還可以向老外請(qǐng)教... (用英語(yǔ)請(qǐng)教LOL)

  • 報(bào)bug的過(guò)程會(huì)逐漸改變自己的思維方式. 報(bào)10個(gè)bug跟報(bào)200個(gè)bug, 學(xué)到的東西不一樣, 思考方式也不一樣, 前者可能是從用戶(hù)的角度出發(fā)去思考問(wèn)題, 而后者會(huì)迫使你從開(kāi)源項(xiàng)目團(tuán)隊(duì)的角度出發(fā)去思考問(wèn)題, 例如:

  • 怎么做才能提高bug被修復(fù)的概率?
  • 怎么節(jié)省開(kāi)發(fā)者的時(shí)間和自己的時(shí)間?
  • 這個(gè)項(xiàng)目什么地方最需要改進(jìn)?
  • 怎么降低新手報(bào)bug的門(mén)檻?
  • 等等 當(dāng)你想這些問(wèn)題的時(shí)候, 其實(shí)已經(jīng)逐漸融入項(xiàng)目團(tuán)隊(duì)了. 當(dāng)你融入項(xiàng)目團(tuán)隊(duì)了, 可能就會(huì)像我一樣沒(méi)事總想騙幾個(gè)人來(lái)幫忙... 所以就有了這篇文章 =)

報(bào)bug能學(xué)到很多東西, 可惜很多東西記錄不下來(lái), 記下來(lái)的也可能會(huì)失真. 這也正常, 如果讀一讀別人的分享就能學(xué)到這些東西, 那又何必親力親為去掃地? 如果真的報(bào)了200個(gè)bug, 一定會(huì)充分掌握掃地僧騙錢(qián)大法, 申請(qǐng)GSoC成功的概率一定會(huì)很大. GSoC的學(xué)生需要在申請(qǐng)時(shí)說(shuō)明自己想要為項(xiàng)目做什么貢獻(xiàn), 盡管GSoC的合作項(xiàng)目會(huì)提供一些可選的任務(wù), 但更鼓勵(lì)學(xué)生提出自己的idea. 如果你對(duì)項(xiàng)目很了解, 就容易提出自己的idea, 不會(huì)跟其他學(xué)生撞車(chē). 如果你對(duì)項(xiàng)目很了解, 就會(huì)對(duì)不同任務(wù)的難度心里有數(shù), 申請(qǐng)成功后也容易實(shí)現(xiàn)目標(biāo). 其實(shí)大多數(shù)被拒絕的學(xué)生, 不是idea太難不現(xiàn)實(shí), 就是idea太容易騙錢(qián)意圖太明顯. 騙錢(qián)可以, 但不要太明顯 ;-)

其實(shí), <<做一名開(kāi)源社區(qū)的掃地僧(上)>>, 到這里就可以結(jié)束了. 也許有人會(huì)困惑, 這才剛講完掃地, 還沒(méi)開(kāi)始講騙錢(qián), 怎么就結(jié)束了? 有這樣的困惑, 正是紙上談兵的后果. 如果真的按照掃地僧打怪升級(jí)的道路去做, 會(huì)發(fā)現(xiàn)對(duì)自己幫助最大的人, 其實(shí)是開(kāi)源項(xiàng)目中的前輩, 而這篇文章最大的作用無(wú)非是引誘多幾個(gè)人去嘗試, 真正的價(jià)值不大, 屬于讀過(guò)就可以忘掉的類(lèi)型.

開(kāi)源項(xiàng)目的前輩, 有的就是GSoC的潛在導(dǎo)師. 騙錢(qián)事宜, 都是導(dǎo)師說(shuō)了算, 所以最重要的還是趕緊找個(gè)項(xiàng)目去跟潛在的導(dǎo)師混熟 ;-)

正經(jīng)地說(shuō), 這篇文章希望探討的問(wèn)題不僅僅是騙錢(qián), 而是這么一個(gè)老大難的問(wèn)題: 應(yīng)屆畢業(yè)生找工作難! 沒(méi)有工作經(jīng)驗(yàn), 所以找不到工作; 找不到工作, 所以沒(méi)有工作經(jīng)驗(yàn).

其實(shí)對(duì)于未來(lái)碼農(nóng)來(lái)說(shuō), 解決這個(gè)問(wèn)題的辦法很簡(jiǎn)單, 只要愿意在開(kāi)源項(xiàng)目中找一份掃地的活干, 花個(gè)大半年的時(shí)間報(bào)一兩百個(gè)bug, 就能積累一定的經(jīng)驗(yàn), 這個(gè)時(shí)候去找測(cè)試崗位的實(shí)習(xí) [廣告1], 肯定很受歡迎, 而有了開(kāi)源項(xiàng)目經(jīng)歷和靠譜的實(shí)習(xí), 肯定不怕找不到工作. 在開(kāi)源項(xiàng)目中掃地掃久了, 還能逐漸進(jìn)階入門(mén)開(kāi)發(fā), 如果成功參加過(guò)GSoC, 就更不愁找不到工作了.

當(dāng)然, 參與開(kāi)源項(xiàng)目實(shí)踐, 也不能包治百病. 比如, 參與開(kāi)源項(xiàng)目不能代替學(xué)習(xí)計(jì)算機(jī)基礎(chǔ)和算法基礎(chǔ), 不能代替閱讀好書(shū). 不過(guò), 多實(shí)踐對(duì)于明白需要學(xué)什么會(huì)很有幫助, 實(shí)踐遇到瓶頸的時(shí)候也會(huì)更容易發(fā)現(xiàn)自己讀書(shū)不夠. 再比如, 參與開(kāi)源項(xiàng)目也不能代替企業(yè)的實(shí)習(xí)經(jīng)歷, 實(shí)際上兩者都能學(xué)到很多東西, 但兩者互不可替代. 不過(guò), 如果有開(kāi)源項(xiàng)目的實(shí)踐經(jīng)歷, 對(duì)于尋找更好的實(shí)習(xí)機(jī)會(huì)肯定大有幫助.

希望這篇文章對(duì)在讀本科新生或者研究生新生有幫助, 尤其是對(duì)開(kāi)源感興趣卻不知如何入手的同學(xué), 或者對(duì)開(kāi)發(fā)感興趣卻經(jīng)驗(yàn)不足的同學(xué). 開(kāi)發(fā)能力很強(qiáng)的同學(xué)請(qǐng)不要被這篇文章誤導(dǎo), 你應(yīng)該向?google-opensource.blogspot.com?中記錄的優(yōu)秀案例看齊, 爭(zhēng)取成為下一個(gè)優(yōu)秀案例, 掃地的路徑不一定適合你, 我這種騙錢(qián)的技倆也不應(yīng)該是你追求的層次 ;-)

GSoC每年報(bào)名申請(qǐng)的時(shí)間是4月份, 現(xiàn)在開(kāi)始掃地距離GSoC2013還有半年的時(shí)間, 其實(shí)很充裕. 對(duì)于接近畢業(yè)面臨就業(yè)壓力的學(xué)生, 現(xiàn)在開(kāi)始掃地合不合適我就不知道了 :P

我有一個(gè)小小的愿望, 希望以后國(guó)內(nèi)的大學(xué)生爭(zhēng)先恐后給開(kāi)源項(xiàng)目報(bào)bug, 通過(guò)報(bào)bug入門(mén)參與開(kāi)源項(xiàng)目, 緊接著成功申請(qǐng)GSoC, 并且在騙完錢(qián)之后仍然繼續(xù)給開(kāi)源項(xiàng)目做貢獻(xiàn) ;-) 希望將來(lái)本科生參與開(kāi)源項(xiàng)目就像現(xiàn)在的本科生參加數(shù)學(xué)建模競(jìng)賽, ACM競(jìng)賽, XXX軟件開(kāi)發(fā)比賽一樣多. 想一想哪個(gè)比賽有5000美金, 就知道誰(shuí)吸引力大了 XD

我還有一個(gè)大一點(diǎn)的愿望, 希望將來(lái)我們可以在國(guó)內(nèi)舉辦比GSoC更大規(guī)模的夏令營(yíng), 鼓勵(lì)和支持更多的學(xué)生為開(kāi)源項(xiàng)目做貢獻(xiàn). 每年1000多名參加GSoC的學(xué)生中, 印度學(xué)生和美國(guó)學(xué)生是最多的, 都有200人上下, 而中國(guó)學(xué)生只有50人左右. 如果有更多中國(guó)學(xué)生愿意走"掃地僧路線(xiàn)", 我相信人數(shù)翻一翻兩翻完全不是問(wèn)題. 但是如果大家真的爭(zhēng)先恐后都去申請(qǐng)GSoC了, 肯定也沒(méi)辦法全部申請(qǐng)成功, 畢竟機(jī)會(huì)有限. 我希望我們能夠舉辦一個(gè)"本土化類(lèi)GSoC", 提供更多的機(jī)會(huì), 當(dāng)然這需要錢(qián). 其實(shí)現(xiàn)在很多學(xué)校都喜歡舉辦ACM/數(shù)模等的院賽和校內(nèi)賽, 是否以后也可以多舉辦一些院級(jí)或校級(jí)的"報(bào)bug掃地夏令營(yíng)"呢?

有人會(huì)問(wèn), 如果掃地捉bug的人多了, 僧多bug少怎么辦? 我只能說(shuō), 我非常期待沒(méi)bug可報(bào)的那一天 ;-) 其實(shí)很多開(kāi)源項(xiàng)目每年"制造"的bug遠(yuǎn)不只200個(gè), 比如Wine項(xiàng)目, 從2011年到2012年就增長(zhǎng)了3500個(gè)bug. 粗略估計(jì), 凡是ohloh.net上活躍貢獻(xiàn)人數(shù)排名前1000的項(xiàng)目, 每年都能制造成百上千個(gè)bug:?https://www.ohloh.net/p?page=100&sort=active_committers?如果你不信, 你給我錢(qián)我找給你看 XD 活躍的開(kāi)源項(xiàng)目其實(shí)是一直在發(fā)展中的, 簡(jiǎn)直可以說(shuō)是批量生bug, 所以bug是永遠(yuǎn)捉不完的...

從捉bug入門(mén)進(jìn)階開(kāi)發(fā), 不是新鮮事, 我只是跟隨前人的腳步走, 應(yīng)該感謝掃地的前人. 劉未鵬寫(xiě)過(guò)一篇文章, 叫做 <<怎樣花兩年時(shí)間面試一個(gè)人>>, 我的掃地僧計(jì)劃有很大程度上受到了這篇文章的啟發(fā), 所以我還應(yīng)該謝謝劉未鵬 ^_^ <<做一名開(kāi)源社區(qū)的掃地僧>>, 其實(shí)就是從學(xué)生的角度出發(fā), 對(duì) <<怎樣花兩年時(shí)間面試一個(gè)人>> 的理論進(jìn)行實(shí)踐. 有(上)自然有(下), <<掃地僧(下)>>也大致預(yù)謀好了, 但現(xiàn)在仍不能劇透, 否則一旦失敗就變成搞笑劇了 冏 其實(shí), 最完美的結(jié)果是, 這篇文章的學(xué)生讀者, 將來(lái)寫(xiě)出成百上千各種版本的 <<掃地僧(下)>>.

雖然文章的標(biāo)題叫做掃地僧, 可是文章的內(nèi)容其實(shí)是"山寨掃地僧", 為了呼應(yīng)金庸原著中的絕世掃地僧, 在結(jié)尾向大家介紹Wine社區(qū)的掃地高僧 Anastasius Focht, 十一年來(lái)他分析了成百上千個(gè)bug, 他的bug report就是Wine的調(diào)試教材...?http://goo.gl/TxIvZ

最后, 感謝我的GSoC導(dǎo)師Aric Stewart, 在Wine的開(kāi)發(fā)中給我很多幫助. Aric Stewart是日本人, 我們都希望中日和平友好. 我相信開(kāi)源不分種族性別信仰和國(guó)界. 感謝 Dan Kegal, Bruno Jesus, Austin English, André Hentschel 等幫助和鼓勵(lì)過(guò)我的開(kāi)發(fā)者, 盡管他們看不懂中文 :-\ 感謝Google Open Source Team, 8年來(lái)為培養(yǎng)開(kāi)源社區(qū)新人做了很多貢獻(xiàn), 特別要感謝 Carol Smith, GSoC的成功舉辦離不開(kāi)她.

親愛(ài)的讀者, 如果你讀到這里才想起自己已經(jīng)不是學(xué)生, 猛然意識(shí)到GSoC騙錢(qián)已經(jīng)與你無(wú)關(guān), 那我只能說(shuō)非常抱歉, 騙你讀了這么久... 如果你想報(bào)復(fù)社會(huì), 就轉(zhuǎn)載這篇文章吧...

小調(diào)查: CrossOver (Wine的商業(yè)版) 將專(zhuān)門(mén)為中文用戶(hù)提供中文技術(shù)支持以及特別優(yōu)惠. 如果你有時(shí)間, 請(qǐng)花3分鐘做一份關(guān)于 Wine / CrossOver 的調(diào)查, 一共只有6個(gè)問(wèn)題, 非常感謝!?http://goo.gl/aEfE4

Qian Hong fracting AT gmail DOT com 2012-10-12

[注1] 要了解技術(shù)性的內(nèi)容, 可以看一下我的 "分享Wine調(diào)試經(jīng)驗(yàn)" 系列, 比如:?https://groups.google.com/forum/?fromgroups=#!topic/gzlug/dGet0BGOikQ?[廣告1] 代Kexin姐發(fā)個(gè)廣告: 紅帽北京長(zhǎng)期招內(nèi)核測(cè)試實(shí)習(xí)生, 歡迎在校學(xué)生投簡(jiǎn)歷, google一下就可以找到相關(guān)信息. 如果感興趣但擔(dān)心自己達(dá)不到要求, 我建議從掃地開(kāi)始 ;-) 如果掃地掃夠了準(zhǔn)備出山, 也可以發(fā)信問(wèn)我要Kexin的聯(lián)系方式.

全文轉(zhuǎn)載自郵件列表


轉(zhuǎn)自:https://linuxtoy.org/archives/from-bug-reporter-google-summer-code.html

總結(jié)

以上是生活随笔為你收集整理的做一名开源社区的扫地僧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰caopor| 三年中文在线观看免费观看 | 看片日韩 | 久久夜色精品国产欧美乱 | 黄色链接视频 | 97久久人人超碰caoprom欧美 | 91精品国产一区二区三区蜜臀 | 夜夜操操 | 精品麻豆 | 日日干天天 | av软件在线观看 | 欧美黄色免费在线观看 | 欧美精品一区二区三区四区五区 | 好吊妞视频这里只有精品 | 久久久男人天堂 | 亚洲精品日日夜夜 | 美女激情网站 | 国产又黄又粗又猛又爽 | 亚洲精品成人无码 | 免费在线观看网址 | 日韩三级视频在线 | 国产91综合 | 婷婷开心激情 | 一区二区三区四区日韩 | 国产美女精品视频国产 | 91福利一区二区 | 亚洲天堂高清 | www在线观看国产 | 国产1区2区3区 | 久久久久亚洲无码 | 91视频黄版 | 欧美整片第一页 | 日韩精品av一区二区三区 | 九一爱爱 | 一品毛片 | 国产乱淫a∨片免费视频 | 精品视频免费在线 | 国产真实乱 | 亚洲一区二区播放 | 波多野结衣视频免费 | 男人的天堂视频网站 | 黄色a一片| 黄色片一级片 | 波多野在线播放 | 日毛片 | 九九三级 | 国产精品夜夜 | 6699嫩草久久久精品影院 | 麻豆changesxxx国产 | 国产成人综合在线 | 四虎影院永久 | 中文字幕av高清 | 中国美女毛片 | 国产96在线 | 亚洲 | 在线一区二区三区四区五区 | 久久av色 | 韩日视频在线观看 | 久草国产在线观看 | 亚洲一区二区三区视频 | 视频这里只有精品 | www.久久久久久久 | 精品无码久久久久久久 | www.五月天婷婷.com | 日韩av综合网站 | 成人av在线影院 | 疯狂揉花蒂控制高潮h | 男人视频网站 | 性欧美hd调教 | 中文字幕高清一区 | 日日爱av | 黄色性视频 | 手机在线看片日韩 | 色哒哒影院 | 激情免费视频 | 无法忍受在线观看 | 91成人精品视频 | 亚州男人的天堂 | www狠狠爱| 深夜老司机福利 | 天天做天天干 | av怡红院 | 国产成人一区二区 | 草草在线观看视频 | 能看毛片的网站 | 97人妻精品一区二区 | 91av一区二区三区 | 一级伦理农村妇女愉情 | 99热只有 | 直接看的av | 国产一区二区三区毛片 | 久久国产柳州莫菁门 | 色av网| 鲁一鲁啪一啪 | 天天色亚洲 | 天天躁夜夜躁 | 成人在线视频免费播放 | 亚洲人成电影网 | 色网站免费 | 日本一区视频在线播放 |