當前位置:
首頁 > 最新 > 和你白頭偕老的,不一定是妹子,卻一定是bug……

和你白頭偕老的,不一定是妹子,卻一定是bug……

源/ 頂級程序員文/ An先生

程序員的人生就是bug和debug交織在一起的悲歌

1

新浪微博黑名單「劉偉楠」

從前有一個哥們叫劉偉楠,想用自己的名字註冊新浪微博,但他發現只要涉及「劉偉楠」三個字,甭管加怎樣的前綴後綴,都會註冊失敗。

劉偉楠萬般無奈之下發了帖子,一時間響應者無數。最終在網友聲討下,新浪微博取消了該項屏蔽,修復了這個bug。不過面對劉偉楠的精神拷問「這尼瑪是為什麼?」新浪微博並沒有給出解釋……

2

Google Arts & Culture ?

「Fuck this app」

谷歌有一款強大的APP:Arts & Culture。用戶上傳自己的自拍照後,系統會將照片與藝術畫作進行對比,匹配出一張和用戶長得最像的名畫或藝術品。

社交網路頓時沸騰了!人們紛紛曬出自己的自拍匹配成果,有些效果不錯:

但,有些就比較尷尬了

前!方!高!能!

這就尷尬了,配合上當事人對此bug鏗鏘有力的吐槽,瞬間獲得無數點贊和轉發,希望Google的大佬們能早點改掉這些bug,讓他們重新做人…

3

放《青藏高原》高音會造成筆記本死機

知乎用戶wuz遇到這樣一件事:

有用戶反應每次用筆記本播放《青藏高原》時,電腦就會死機。經測試發現,唱到最後的「那就是青藏高~~」時,硬碟產生共振,振幅過大,讀寫頭就讀不出數據了。聽說,為了抓住這個bug,聽了一個月的青藏高原……

最後bug怎麼解決的呢?把固定硬碟的螺絲緊一緊,改變固有頻率就可以了。

4

中英文符號逼瘋無數程序員

請看,如上兩段代碼有什麼不同?一模一樣是吧?但實際上第二行可以運行,第一行就不行。

為啥?因為中文的「-」和英文的「-」雖然外表相同,但編碼上差遠了。

5

無獨有偶,大小寫bug也逼瘋了一批

曾有一位負責微信公眾號開發的程序員自述:當時後台是技術領導寫的,c#公眾號支付的預定單和加密全在後台,後來後台改版本,由c#改為Java,結果調了一晚上,顯示簽名錯誤。

c#的代碼和Java的代碼對了一遍,沒發現問題;又把微信公眾號配置也看了一遍

也沒問題;各種百度、各種猜想、各種驗證,都不對……

最後去微信官網看了開發者文檔,發現上面預定單的appId的i是大寫,但支付的時候是小寫!

6

WIFI竟然也能成為bug的罪魁禍首

剛進公司做iPad應用,公司給了兩台測試機:一台iPad4、一台iPad Air。

應用裡面有個資源下載功能,同一個資源用同一段代碼,不過在iPad Air上下得飛快,在iPad4上面就慢如龜爬,一模一樣的程序為什麼會有這麼大的差別呢?是不是兩台設備內部某個網路硬體不一樣導致的呢?

之後不斷查資料,看帖看論壇看博客,尋找有沒有前輩遇到同樣的問題。然而找了3天還是找不到……到了最後,突然發現!

那台iPad4連的是樓下咖啡店的WiFi……

7

電子郵件無法發送到 500 英里以外

我在做校園的郵件系統管理員的時候,有用戶向我抱怨說:他們不能發送超過500英里距離的email...

用戶中有位地理統計人員,還添油加醋地製作了一張郵件發送失敗地圖,地圖上顯示,她郵件的送達區域半徑比500英里就多那麼一點點:半徑內的收件人,全收到了,之外的,全失敗了。

然而事情的真相是:

一次軟體升級導致遠程伺服器超時時間被設為0。在一個具有典型負載的特定機器上,零超時意味著如果連接時間稍微超過3毫秒,伺服器就會終止連接。而以光速傳播的電信號,在3毫秒的時間內所能到達的距離大約是:

0.003 * c (光速) = 558.84719 miles

8

只有在星期三才會崩潰的系統

一家醫院用來監控病人健康的資料庫,每到周三,會自己崩潰。

該事件中,最大的難度在於,一周只有一天有機會debug。

該系統記錄日誌是用 C 風格的代碼編寫的,把日誌字元串記錄到了一個固定長度的緩衝區中,其中日誌時間一欄,格式例如「Monday, July 17, 1997, 10:38:47.123「。

到底為什麼呢?請看下圖:

因為周三的日誌的時間一欄,緩衝區恰好溢出了。(就差一個位元組寫不下)

9

當我坐在窗邊的時候,內存讀寫就會失敗

給一個自己設計的SD卡控制器寫驅動,從五月開始調試,一直很順利,到了七月份突然開始出現間歇性的SD卡讀寫失敗,而且越靠近窗戶,失敗頻率越高。

驅動程序是要下載到控制器的板子上的。當這塊板子放置於窗邊,特別是正午的時候,調試幾乎總是失敗。

造成這個bug的原因是:電路板上晶元的正常工作溫度有限,當超過一定的溫度時它就帶不動負載了,而7月的正午,太陽正好會通過窗戶會照到板子,導致溫度過高。

10

搖動遊戲手柄的時候,遊戲存檔就會失敗

在開發PS1遊戲「袋鼠大進擊」這款遊戲的存檔/讀檔時候遇到的。Bug的癥狀是每隔一段時間存檔/讀檔都會超時失敗。並且十分隨機。

該事件中的難點在於重現bug。當開發人員把可能出錯的代碼已經注釋到了四大皆空的時候,bug依然隨機出現。偶然間,測試發現了快速重現Bug的方法:一邊擺動手柄,一邊存檔。

殘酷的真相是PS的時鐘在高頻率下運行時,會影響到主板旁邊的晶振,造成手柄控制器的內存卡控制器之間的串擾。手柄上一有信號,內存就被干擾了。

還有一些,生活中的讓人啼笑皆非的小bug

比如:

557854km/h的星際高鐵……

打個車,敬業到跨省來接你的司機吳師傅……

你呢,遇到過哪些讓你終生難忘的bug?

期待在評論區看到你的故事!

-END-

聲明:本文資料來源於網路,由頂級程序員搜集整理。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

天哪,春天來了,萬物蘇醒,你在這幹嘛?
今日哲理文:深到骨子的善良—是尊重他人並呵護別人的尊嚴

TAG:全球大搜羅 |