如何用一段簡單的代碼講述一個悲傷的故事?

#建議各位答主使用「插入代碼」功能 添上語法著色和縮進


rm -rf /usr /lib/nvidia-current/xorg/xorg

這絕對是個悲傷的故事,真實案件。

詳情:一個空格引發的慘劇

GitHub 景點傳送門:https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdbe0acce6#diff-3fbb47e318cd8802bd325e7da9aaabe8L351

// 2017-02-01 19:22:48
// 更新一則新聞

http://GitLab.com 官方網站發布聲明稱由於其產品資料庫問題導致的網站無法正常訪問。據國外媒體報道稱 Gitlab 網站疲憊的系統管理員深夜在進行資料庫維護時,使用 rm -rf 刪了300GB 生產環境數據。等到清醒過來緊急按下ctrl + c,只有4.5GB保留下來。然後恢復備份失敗,網站已經宕了10個小時,現在還沒恢復。


我在工作中實際代碼里看得讓我最悲傷的三種代碼就是:
(1)

// TODO: ...

(2)

// FIXME: ...

(3)

Unimplemented(); // FIXME: implement this later

基本上都是前人挖坑我來被坑。


#include &
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.
");
}


一張圖大家感受一下在我身上發生過什麼


想寫另外一種代碼故事。
不幽默,也不一定悲傷,就描述一下開發一個小東西的過程到底怎樣吧。
(裡面好多東西遇到了痛苦和彆扭,一直令人發火,所以自己感覺很悲傷)
一直想用計算機自然生產虛擬的世界。
所以今天畫了一天做到還不錯的效果了。然後把過程寫下來。
最後的結果大概是這樣的:

這代碼不短,但是也沒有多麼繁瑣。估計大家都能看懂。

一開始我只是想用python把東西畫出來。結果很簡單。
之前做過很多OpenGL,感覺這樣簡單畫東西,雖然很低級,但是還蠻自由。

好,至少我知道可以控制畫出來的每一個點的顏色。

這一步可能花了最長的時間。試了各種想到的辦法,最後確實找到了一個。

我們有一個基本地形圖了!

(我比較在意這種細節)

稍微好看一點。我們可以開始新的功能。至少應該製造上面幾個國家。

好吧,我很滿意這些。一天能夠做到這裡,已經很開心。

本來滿喜歡地圖。如果有時間很想做3D的版本,得用shader和一些procedural的手段。還有各種想法,比如,模擬氣候,沙漠,河流。或者直接重新開始從tectonics的角度出發。

也有想過,給數據再加一個時間維度,讓國家競爭起來。這樣可以做成動畫。

------

最後,或許有人看不懂我的意思。或者感覺這不是一種故事。
故事就是:開發一個東西,或者有個想法,或者發展自己的技術能力,是一個這樣的過程。

如果我生活沒有任何現實壓力,我很願意努力把這個project一直做下去。

------

上面的代碼故意選擇用python,比較簡潔。也沒引用更高級的library。
如果感興趣,可以直接在python裡面運行這些。大概只需要安裝numpy。
每次運行,則是全新的一個隨機世界地圖。


$ git log

commit d883807f62c8b74a6f41da0da595737ff738262efc

Author: LingLongXieSeng

&
Date: Fri Jan 15 01:51:24 2016 +0800

200 yuan modify the banner 200 yuan

commit 1e98c4d81e4a1dc5b4e94ddd25fb0b0dacdcd2e13

Author: LingLongXieSeng &

Date: Thu Jan 14 13:07:02 2016 +0800
1. 200 yuan Change the layout 200 yuan
2. 200 yuan Modify the API 200 yuan

commit 30512d1c8aff32cefa3ecf87d778e2b793627253efca

Author: LingLongXieSeng
&

Date: Wed Jan 13 16:35:58 2016 +0800

1. 200 yuan Add the Fund button 200 yuan
2. 200 yuan Fix the function of double click 200 yuan

。。。。所以朋友你到底什麼時候才能記起你從我這借走的200塊錢。。


女生節微博看到的:

for(int i=0;i&

P.S. 改了一下格式更符合實際,這段代碼就是這樣被列印在一個碩大的橫幅上掛在校園裡,真是大寫的悲傷.......

多謝當事者@于振洹提供的圖片:


據說有個人曾經

UPDATE `user` SET `password` = "123456";

忘記寫

WHERE `uid` = 1;


多圖預警!
#分界線
我上初中時,班裡一個同學的號被盜了。盜號者在空間里發送了大量的釣魚信息,內容大概是「看看,這是不是你做的事」等等。而且 @ 了很多人,包括我在內。每條信息里都有一個網址。基本上有點經驗就知道,這個網址不正常。果然,點開後,是一個偽造的登陸框,提示「您所查看的內容需要許可權,請登錄。」下面要求輸入 QQ 號和密碼。做的和真正的登錄頁面相差無幾。隨手輸入了 10 位數字假裝 QQ 號,然後瞎編一個密碼。輸入密碼時,我發現好像有點問題。密碼符號(星號)與 HTML 實現的密碼框不同,而且差距很大。仔細一看,登陸框上方的提示字體居然是點陣渲染的中易宋體。然而我用的是 openSUSE ,這樣的字體是絕對不會出現的。輸入完密碼,點登陸時,網頁沒有任何反饋。於是覺得非常蹊蹺,習慣性地按了下 F12 。

我頓時就驚著了。整個網頁就是一片空白,中間嵌了個 Flash 來冒充登陸框。遂覺不解。如果只是盜號,用 HTML 做兩個文本框就行,然後把輸入內容 POST 到盜號者的伺服器即可。做個 Flash ,豈不是自找麻煩?當時還不會用 Wireshark ,Charles 嫌麻煩,於是就沒抓包繼續深究。

然後不止如此。代碼的後幾行寫了幾個 & ,用 class 標記,標記全部是亂碼。有點好奇,於是隨便展開幾個看看,一看一身冷汗。不多說了,看圖吧。


// 不知為何加上這個條件後 bug就沒了
// if(a) { accessDB();}
// fvck you 這個條件才是萬惡之源,刪刪刪!
// accessDB();
// LS的傻逼這個條件a是用來判斷資料庫有沒有加鎖訪問的,伺服器嗝屁查了一個月原因居然在這,肏
// if(a) { accessDB();}
// LS這群紙張那個a壓根兒就沒TM賦值你們吵個J8,我已經給a賦值了,感謝我吧,fool humans
// if(a=mutex.isLocked()) { accessDB();}
// 草你媽現在不需要加鎖了,那個DB都已經廢除了,誰還在這裡訪問accessDB,還有這函數這會兒返回全是異常,調用的J8

} // end of main()

//項目 經理:我們準備開發下一版本,上面的code以後就不用了,請各位加點班趕緊重構吧


《Head First Java》 Page 375

class MyEx extends Exception {}



In [1]: "She" is not "Yours"

Out[1]: True


來源見水印,侵刪。


以前看到的,大概意思是這樣:
男孩給喜歡很久的女孩寫了一封情書
for(int day = SOMEDAY; day &< FOREVER; day++)
{
love++;
}
意思是:情不知所起,一往情深……

女孩的回答是 在for那行後面加了一個分號
for(int day = SOMEDAY; day &< FOREVER; day++);
{
love++;
}


int memory=0;
int happiness=0;
int sadness=0;

while(alive)
{
memory++;
happiness++;
sadness++;
}

memory=0;
happiness=0;
sadness=0;

return null;


// happy debugging, suckers.
#define true (rand()&>10)


這是一個發生在某大公司的故事,一切的開端源於一個符號,某天測試人員發現在正常的購物後端平台上,退款的金額可以大於貨品的原價,在發現的時候出於公司某些商品已經在電商平台有打折活動並且客服的退款操作已經運行了很久,測試不敢怠慢,立即報告研發群體,但是後台一直穩定的運行了很久,這個漏洞的出現會不會已經有內部人員從中獲利其中的退額差價呢?後台一單單的測試整個流程,其他則在資料庫中找取有沒有人從中獲利,終於找到問題出現的情況了,原來是每次退款的多次操作可以多退2塊錢,但究竟為什麼會多退2塊呢,終於後台給出了答案

bccomp(參數1,參數2,小數位)

bccomp(參數1+參數2,2)

後台在某個地方的一個符號導致的,參數1和參數2之間因為後台的一個失誤從逗號變成加號,導致這個事故發生的

這個問題直到最後完全修復了都不為人知,研發不得不鬆了口氣,資料庫全部檢驗完後,大家驚人的發現,原來一直退款都沒人注意可以退多,究竟是客服的輸入率高還是退貨率低就真的不得而知了,於是大家又默默裝成什麼都沒發生過一樣,繼續工作…


不知誰在根目錄下創建了一個目錄名為*,真是的取名字也不按基本法,我進去看了看啥也沒有,就順手把它給刪了"rm -rf *",等等剛才發生了什麼!!!


沒人發這個么:

Result love(boy, girl) {
if (boy.有房() boy.有車()) {
boy.set(nullptr);
return girl.嫁給(boy);
}
if (girl.願意等()) {
while (!(boy.賺錢 &> 100000 girl.感情 &> 8)) {
for (day = 1; day &<= 365; day++) { if (day == 情人節) if (boy.givegirl(玫瑰)) girl.感情++; else girl.感情--; if (day == girl.生日) if (boy.givegirl(玫瑰)) girl.感情++; else girl.感情--; boy.拚命賺錢(); } } if (boy.有房() boy.有車()) { boy.set(nullptr); return girl.嫁給(boy); } 年齡++; girl.感情--; } return girl.goto(another_boy); }

我記得是好多年以前在一本書的習題裡面看見的
這東西版本很多,現在網上還能找到
當時給我造成了巨大的心理陰影


推薦閱讀:

如何處理 Python 入門難以進步的現象?
有多少人按@蕭井陌大神給出的Python+Flask路線找到工作了?
初學 Python,有哪些 Pythonic 的源碼推薦閱讀?
Python 有哪些好的學習資料或者博客?
相比於 Django、Pylon 等 Python 框架,Ruby on Rails 是否有很大的技術優勢?

TAG:程序員 | Python | Java | C(編程語言) | Bash |