一年國慶又到~
程序猿、運維工程師、利用假期該結婚的結婚,該回老家的回老家。產品經理、項目經理們也要出國旅游了(好像這次是去東京玩),并且叮囑一定要安排好值班表。
我是個程序員,我也想出國旅游,卻覺得有點兒貴。多虧了領導上安排我值班,只能在北京待著,這樣我就有個借口跟新交的女朋友說 “你看我國慶要加班。。。下次放假去馬爾代夫玩好不好?唉,唉,別生氣了,我幫你把手機升級到ios11好不好?”
但仍舊心里忐忑不安,萬一服務節中掛了還真得干活,通常就有這種新聞:
或者這種:
我的一位運維同事管理上千臺的服務器,就在節前在自己的跳板機上面上線了這玩意兒(親眼所見):
以上這些吧,受黨教育這么多年,我好歹有點唯物主義精神,雖然實在想找個人保佑,又覺得我這行兒跟佛祖有點不搭。再說到底是拜禪宗還是密宗也選擇困難,眼看就國慶了,臨時抱佛腳也不大虔誠。罪過罪過。
俗話說:飲水思源。各行當都有祖師爺。求祖師爺保佑如何?
木匠拜祖師爺魯班,
江湖黑幫拜關二爺,
媒婆都拜月下老人,
包粽子工人拜屈原。
(好像不押韻)
沒有屈原就沒有粽子
計算機行當的祖師爺當然就是Alan Turing和John von Neumann。我覺得每個程序員都應該知道他們2位的貢獻,這才會對為什么現代計算機是這個樣子有一個更深的理解。
圖靈的事跡很多,可以讀這篇了解一二:為什么每個人都應該知道圖靈, 還有他的傳記電影,模仿游戲。
模仿游戲海報
16歲的艾倫圖靈
在二戰中,圖靈建造出世界上第一個建造出電子計算機,提出了算法和計算機的概念,沒錯,就是你找工作,筆試面試時最討厭的考試內容:算法。 什么數據庫里面的歸并排序,HTTPS協議里面用的RSA加密可都是一種算法。
所以,沒有圖靈,我們程序員都不知道什么是算法,當然也沒有程序可寫。
圖靈的電子計算機
關于馮·諾伊曼的事跡就更多了,罕見的天才,在多個領域神一樣的存在,他有很多逸事傳聞。
馮·諾伊曼
在他之前的電子計算機不能叫做通用計算機,因為每臺計算機的功能都是專用的。 一個計算火箭彈道的計算機只能研究火箭彈道,但想玩一把王者榮耀?那就只能重新設計,修改計算機結構,或者再買一臺王者榮耀專用計算機。這成本高的嚇人。
馮·諾伊曼結構計算機定義了Program的概念(沒錯,就是你現在寫的那種程序),只需要計算機可以讀取指令,根據Program里面的指令做計算和控制,那這種計算機就是一個多用途的通用計算機。如果這個Program是算火箭彈道的,那這臺計算機就可以計算火箭彈道。但如果這個program里面的指令都是3D建模渲染,自動尋路數的算法之類,那這個Program就是你玩的王者榮耀了。
無論是Minecraft游戲里面的計算機, 還是我們公司里面的商用服務器,又或者我給新女朋友承諾,將要給她買的IPhoneX,都是馮·諾伊曼架構的計算機。
minecraft游戲中的計算機
馮·諾伊曼開創了程序員這個工種,程序員只要動動手(比如我就擅長用手),就幾乎可以做任何事情,奇妙啊奇妙~
說了這么多,我作為一個程序員,就求2位計算機之父圖靈和馮·諾伊曼保佑,國慶7天服務在線永不壞。 于是做了這個ASCII ART在我的堡壘機上,每次登陸都可以看到:
(求祖師爺保佑)高清大圖
每次登陸就看到二神,左馮老,右圖神,運維也有勁了,代碼調試比以前快很多了,最奇妙的是女朋友也比以前溫柔許多。(知乎的圖做了壓縮,可以點擊看高清大圖,效果剛剛的)
2條命令,你就可以擁有和我一樣神奇的功能。值得擁有:
curl https://raw.githubusercontent.com/thesues/blessme/master/bless.txt -o .bless.txt
echo 'cat .bless.txt' >> ~/.bash_profile
最后,如果有的同學已經上線佛祖保佑的版本,也不用非請我佛下來。俗話說。請神容易送神難, 是吧?
如果也非要說我佛和計算機行業有關系的話,我很喜歡佛經里面對數字和時間的理解,也算是和程序員這行有關,佛祖也會保佑你的:一些佛經對地獄痛苦的夸張描述,已經到了無法計算的地步。比如《佛說十八泥犁經》說,有65536(即2的16次方)斛芥種,一百年拿走一粒芥種,把這些芥種都拿光了,在十八層地獄犁受苦的眾生的壽命還沒有盡呢。。。。這只不過是人在地獄中開始的一剎那而已。
-------《佛,到底講了些什么》
所以佛經里不光有二進制,而且還有地獄。每次我調試底層Bug的感覺都跟在無間地獄里面一般。
最后,祝大家國慶愉快。
附錄:如何制作上面的ASCII圖?
一共分4步:網上搜索照片
提取計算機之父的照片中的邊緣,這樣可以提升生成ASCII圖的效果
有很多在線免費的圖片轉ASCII網站,轉化圖形
后期處理,比如合并圖靈和馮諾伊曼的ASCII頭像,增加顏色等等
第一步:搜圖好辦,我找到了2張圖片:
第二步:提取照片邊緣
TMD我是一個系統程序員,這個圖像處理算法不大會, 假期在即,也懶得學。 怎么辦?
我想到了這個神奇的數學網站Computational Knowledge Engine,像他們這種超級大名人,肯定有很多崇拜者,于是我就找到了邊緣清晰的圖靈頭像和馮·諾伊曼的頭像:
這2個頭像都是用函數畫出來的,邊緣要多清晰有多清晰:
由上面一個大函數畫出圖靈頭像
John von Neumann
Alan Turing
所以,如果有讀者知道有簡單的提取圖像邊緣的辦法,歡迎分享一下,我覺得在wolframalpha上找,實在是有點怪.
第三步:
我用的是ASCII Art Generator這個網站,上傳圖片,就可以把圖片轉化成ASCII碼。上面還有一些參數可以調整,我用的是默認的,效果很好
第四步:
把ASCII Art Generator生成的2個文本文件,合并成一個大文件,保證2位計算機之父是并排站立的,而不是馮祖師在上,圖祖師在下。站位很重要。當然,這都看個人喜好。
#!/usr/bin/python
from itertools import izip
with open("von.txt") as von, open("turing.txt") as turing:
for x, y in izip(von, turing):
#remove new line
x = x.rstrip();
y = y.rstrip();
#fill space until to 76 for von
l = len(unicode(x,"utf8"));
x = x + " " * (76 - l)
print("{0}{1}".format(x, y))
兩位計算機之父:并排站立
#!/bin/bashcat von.txt turing.txt
兩位計算機之父:一個在上面,一個在下面
最后,你還可以在文本下面填幾個名言警語兒,就跟有“好好學習,天天向上”這種標語一樣。相信我,在你加這幾個名言的時候,能體會到為人師表的自豪感:
如果有人不相信數學是簡單的,那是因為他們沒有意識到人生有多復雜
------ 馮·諾伊曼
有時候,被世人遺棄的人,才能成就讓人想像不到的大事
------ 艾倫·圖靈