運維祈求不宕機_[國慶特輯] 程序員應該求誰保佑才能保證不宕機?

一年國慶又到~

程序猿、運維工程師、利用假期該結婚的結婚,該回老家的回老家。產品經理、項目經理們也要出國旅游了(好像這次是去東京玩),并且叮囑一定要安排好值班表。

我是個程序員,我也想出國旅游,卻覺得有點兒貴。多虧了領導上安排我值班,只能在北京待著,這樣我就有個借口跟新交的女朋友說 “你看我國慶要加班。。。下次放假去馬爾代夫玩好不好?唉,唉,別生氣了,我幫你把手機升級到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

兩位計算機之父:一個在上面,一個在下面

最后,你還可以在文本下面填幾個名言警語兒,就跟有“好好學習,天天向上”這種標語一樣。相信我,在你加這幾個名言的時候,能體會到為人師表的自豪感:

如果有人不相信數學是簡單的,那是因為他們沒有意識到人生有多復雜

------ 馮·諾伊曼

有時候,被世人遺棄的人,才能成就讓人想像不到的大事

------ 艾倫·圖靈

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373700.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373700.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373700.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle Weblogic 11g(10.3.4)的小知識

本周,我將為Weblogic進行許多設置和配置(我猜是開發人員)。 在過去的4年中,我一直在與Weblogic合作,并且我不得不承認-與Eclipse類似-我已經開始使用它。 我曾經是Netbeans / JBoss開發人員,后來轉向Eclips…

java中HashMap的用法

重點介紹HashMap。首先介紹一下什么是Map。在數組中我們是通過數組下標來對其內容索引的,而在Map中我們通過對象來對對象進行索引,用來索引的對象叫做key,其對應的對象叫做value。在下文中會有例子具體說明。 再來看看HashMap和TreeMap有什么…

關于 MVCC 的基礎

作為第一篇對 MVCC 的學習材料,以下內容翻譯自 Wikipedia。 1. 什么是MVCC 1.1 基礎概念 MVCC,Multi-Version Concurrency Control,多版本并發控制。MVCC 是一種并發控制的方法,一般在數據庫管理系統中,實現對數據庫的…

集成測試CDI 1.0和Spring 3.1中的作用域bean

在這篇博客文章中,我描述了如何在Spring和CDI中使用作用域bean進行集成測試。 一切都用小代碼示例進行說明。 使用范圍進行集成測試并不是特別容易。 想象一下存在于會話范圍內的bean,例如UserCredentials 。 在集成測試中,通常沒有HttpReque…

JavaScript學習隨記——數組一

數組的創建及length屬性 <script type"text/javascript" charset"utf-8">// 數組創建方式一,此種方式寫的時候比較麻煩var arrnew Array();// 數組創建方式二var arr [1,2,3,4,true,str,new Date()];console.log("arr.length&#xff1a;"…

USACO milk4 枚舉答案再檢驗

剛開始寫了一個暴力的dfs超時了&#xff0c; 最后看了下題解說是先枚舉答案再判斷&#xff0c;然后就寫了雙dfs&#xff0c;全部秒殺&#xff0c;代碼如下&#xff1a; /*ID: m1500293LANG: CPROG: milk4 */ #include <cstdio> #include <cstring> #include <al…

微信小程序常見問題集合(長期更新)

最新更新&#xff1a; 新手跳坑系列&#xff1a;推薦閱讀&#xff1a;《二十四》request:fail錯誤&#xff08;含https解決方案&#xff09;&#xff08;真機預覽問題 跳坑指南《七十》如何讓微信小程序服務類目審核通過跳坑六十九&#xff1a;uploadFile:fail Error: unable t…

mysql指令按順序排列_mysql基本語法大全

1.備份數據庫&#xff1a;1.1備份數據庫中的表:mysqldump -u root -p test a b >d:\bank_a.sql//分別備份數據庫test下a和b表1.2備份一個數據庫mysqldump -u root -p test > d:\testbk.sql1.3備份多個數據庫mysqldump -u root -p --databases test mysql > D:\data.sq…

Spring和石英:多作業計劃服務

作業調度對于應用程序來說是如此重要。 尤其是在大型項目中&#xff0c;處理大量工作可能是一個問題。 Spring和Quartz為解決該問題帶來了巨大的好處。 本文介紹了如何通過使用Spring和Quartz輕松地計劃多個作業。 二手技術&#xff1a; JDK 1.6.0_21 春天3.1.1 石英1.8.5 M…

JavaScript學習隨記——數組二

數組indexOf(arg) 和 lastIndexOf(arg)方法使用 <script type"text/javascript" charset"utf-8">/*** indexOf(arg):返回指定參數在數組中的索引位置&#xff08;從前往后查&#xff0c;比較是使用 ‘’&#xff0c;查詢到立即返回索引位置&#xff…

反射的簡單應用

首先有一個類 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Threading.Tasks;6 7 namespace ConsoleApplication18 {9 public class demo 10 { 11 public string name "程序員"; 12…

JavaFX 2.0示例介紹書

我最近完成了有關JavaFX 2.0 SDK新版本的書的編寫&#xff0c;并且已經將它放在您附近的書店&#xff08; Amazon &#xff09;的書架上。 該書將逐步指導您完成JavaFX 2.0的來龍去脈。 當您遇到一章時&#xff0c;將看到一些菜譜&#xff0c;這些菜譜將帶來一個問題&#xff0…

雙縱坐標的繪圖命令_工程師繪圖必備軟件——OriginLab 2019b

點擊右上角關注&#xff0c;盡享后續精品軟件OriginLab 2019b是OriginLab OriginPro 2019版本的加強版&#xff0c;這個軟件對于許多人來講并不陌生&#xff0c;可以說是科學家和工程師的繪圖必備軟件。新的版本也帶來許多改變&#xff0c;軟件擁有多種功能&#xff0c;這個版本…

JavaScript學習隨記——對象

JS中對象基本使用 <script type"application/javascript" charset"utf-8">//Objcet 所有類的基礎類/*** 創建對象方式一*/ // var objnew Objcet();/** 創建對象方式二,注意 {}不可忘記寫* */var obj {};obj.name "什碼情況";obj.age …

[轉]Java_List元素的遍歷和刪除

原文地址:http://blog.csdn.net/insistgogo/article/details/19619645 1、創建一個ArrayList [java] view plainList<Integer> list new ArrayList<Integer>(); 2、List常用的遍歷方法有三種&#xff1a; &#xff08;1&#xff09;下標循環 [java] view plainfo…

分層設計 --java中的幾種包

對于剛接觸包分層的同學&#xff0c;下面簡單介紹一下java中各個層次&#xff1a; Modle 模型層 &#xff1a;存放你的實體類 dao&#xff1a;主要做數據庫的交互工作&#xff0c;具體的增刪改查等方法&#xff0c;操作數據庫的&#xff1b;這里也可以存放查詢所有的信息接口 …

Spring遠程支持和開發RMI服務

Spring遠程支持簡化了啟用遠程服務的開發。 當前&#xff0c;Spring支持以下遠程技術&#xff1a;遠程方法調用&#xff08;RMI&#xff09;&#xff0c;HTTP調用程序&#xff0c;Hessian&#xff0c;Burlap&#xff0c;JAX-RPC&#xff0c;JAX-WS和JMS。 遠程方法調用&#xf…

cesium繪制網格_Cesium學習筆記-工具篇37-風場繪制

這兩天重新接觸到流場&#xff0c;于是研究下&#xff0c;在大牛們的輪子上也算實現了效果&#xff1a;1二維2三維主要參考以下三篇文章&#xff1a;《WebGL風向圖》給出制作風向圖通常步驟&#xff1a;1. 在屏幕上生成一系列隨機粒子位置并繪制粒子。2. 對于每一個粒子&#x…

ToString:身份哈希碼的十六進制表示形式

我以前在方便的Apache Commons ToStringBuilder上寫過博客&#xff0c;最近有人問我&#xff0c;在生成的String輸出中出現的看似神秘的文本是什么構成的。 詢問該問題的同事正確地推測出他正在查看的是哈希碼&#xff0c;但與他實例的哈希碼不匹配。 我解釋說ToStringBuilder將…

HTML+CSS筆記 CSS中級 縮寫入門

盒子模型代碼簡寫回憶盒模型時外邊距(margin)、內邊距(padding)和邊框(border)設置上下左右四個方向的邊距是按照順時針方向設置的&#xff1a;上右下左。語法:margin:10px 15px 12px 14px;/*上設置為10px、右設置為15px、下設置為12px、左設置為14px*/通常有三種縮寫的方法:1、…