藝語錄
煎蛋中...
藝:「蛋在對我們說:『嘖!嘖!嘖!』」
我:「嗯?」(一時間沒意會過來...)
藝:「煎蛋的聲音,『嘖!嘖!嘖!』,好像很不耐煩。」
我:「哈對耶... 蛋被煎的很不耐煩... 所以一直發出『嘖!嘖!嘖!』的聲音...」
煎蛋中...
藝:「蛋在對我們說:『嘖!嘖!嘖!』」
我:「嗯?」(一時間沒意會過來...)
藝:「煎蛋的聲音,『嘖!嘖!嘖!』,好像很不耐煩。」
我:「哈對耶... 蛋被煎的很不耐煩... 所以一直發出『嘖!嘖!嘖!』的聲音...」
藝:「爸爸在公司是在做什麼的?」
我:「嗯... 做... 軟體開發的基礎建設...」(心裡努力想著要怎麼解釋 developer infrastructure 或是 CI/CD 之類的東西...)
藝:「所以你會幫忙鬆土嗎?」
我:「對耶... 好像可以這麼說?」
在想是不是該來做一集影片,把這件事情用孩子聽得懂的話稍微解釋一下...
睽違十年,終於再度下定決心,把個人網站做了一次大重寫,也把底層架構整個全部翻新。
讓人感到興奮的新版個人網站架構。
在 Yahoo 工作期間,第一次接觸到 Node.js 搭配 CI/CD 的開發流程,就深深被這套模式給吸引。那時就覺得,這才是網站開發應該有的樣子:網站可以在本機端運行起來,只要檔案一變動,馬上就反應在瀏覽器上,開發完成把程式碼推上 repo 之後,CI/CD 流程自動進行測試,然後自動部署到 staging 機器上,由 QA 進行最後的把關,最後再一鍵自動部署到 production 機器上。當時的個人網站還是以 Apache/PHP 運行的,光是要在本機端開發就不那麼直覺了。同時,當時公司的 CI/CD 是使用 Jenkins 的內部版本,如果要自己去架設維護這套系統,是還蠻殺雞用牛刀的。因此也就只能在公司裡好好享受這樣的開發環境了。
後來到了微軟,網站開發清一色都是圍繞在 .NET, C#, Visual Studio, Windows Server 等等的微軟方案,大概也只能在公司跟著用,難以套用在個人網站上。
再來到了 Google,雖然網站開發表面上用的是 Angular,是個蠻開源的東西,但底層還是奠基於許多很強大的公司內部的生態系統,也是個只能在工作當中好好享受的開發環境。
終於,到了 NVIDIA,第一個被指派的任務,就是把某個重要的內部工具網站整個翻修改寫。由於某個專門在搞網頁的部門推薦使用 Next.js,就硬著頭皮去接觸這個當初並不熟悉的 Node.js + React.js 的框架。而在開發完成後,也順帶把 GitLab 的 CI/CD 給串起來。配合 Ansible 和 Docker,使得運行環境的設定得以自動化和模組化,又讓整件事更加單純和可靠,不用再像以往,重新設定一台新機器都要手動安裝一堆有的沒的,還要擔心在機器裡面操作,一不小心就會把東西搞壞。如今機器壞了也沒差,再開一台,Ansible 一跑,Docker 一上,就都設定好了。甚至,因為有了 Docker 的關係,使得一台機器上同時跑 Apache/PHP 和 Next.js 成為可能,只要前面以 Nginx 來做分流,就有機會讓新舊網站同時並存。這才發現,這一整套唾手可得的方案,不就是自己夢想中網站開發應該有的樣子嗎?沒想到這是有可能以如此廉價、如此優雅的方式辦到的!既然如此,心動不如馬上行動,終於讓個人網站又更接近自己喜歡的樣子一步了!
這時候,再回頭看看 1997 年做的現在看起來很智障的第一代個人網站,有種說不出的感動。沒想到寫網頁可以一路寫到現在,還能靠著這門技術在各大公司之間走跳,一路體驗著各種不同的 web 技術,隨著 web 的技術演進學習成長,應該算是很幸運的人了吧。
出門走到半路才想起沒帶員工證,折返回家拿,導致尾牙遲到 3 分鐘沒辦法抽獎,但也值得了...
穿著 Microsoft 帽T 和 Yahoo 外套,與 NVIDIA CEO 自拍合照。
終於,在 2023 年的最後一天,把很厚重的塔雷伯的《反脆弱 (Antifragile)》給翻完了。這是一個以往從來沒被正式定義過的詞,所以相當抽象,讀起來也不是那麼容易去想像和理解。不過一旦了解它的概念,就會認同這是一個很重要、卻又嚴重被低估的概念。
作者在結語時,試圖給這個概念一個簡短的描述:「每一件事情都會從波動得到利益或承受損失。脆弱性是指因為波動和不確定而發生損失。」反脆弱,則是有度過波動和不確定的能力,甚至能因為波動和不確定而獲益。
在這個極度複雜的世界當中,反脆弱的概念,提醒我們,要從宏觀的角度來思考事情。大致來說,自然的、有機的、經過長時間淬練過的知識,或任何形式的架構、概念、制度、東西,都具有反脆弱性,都能經的起環境的變化,存在下去而不至於被毀滅。反之,人為干預則通常過度簡化問題,而帶來上檔利益有限,下檔損失無限,類似於選擇權,只是效益以等比級數的方式在擴大,最終將導致「負黑天鵝」的發生。
要達成反脆弱,作者提出一個還不錯的想法,是所謂的「否定法」。這個論點基於一個假設:我們對於一件抽象的事情,它「不是」什麼,比起它「是」什麼,往往來得肯定。例如我們很難以說出「神」是什麼,但如果要說出「神」不是什麼,就容易且肯定得多。只要我們處理好否定的部分,整體就會更趨近於肯定的部分。就像下棋高手靠著不輸棋而贏棋,一個人靠著不破產而致富。同理,準備考試所要想的,不是如何得分,而是如何不失分。唯有否定的部分,也就是所謂的波動和不確定性,都能好好應付的來,結果自然會往肯定的方向前進。
真的是很雜很難讀的一本書,我也自認為沒有完全讀懂書中所有概念,或許將來有機會再讀過一次,會有不同的見解吧。