Jasonmel Online

Jasonmel Blog - Page 13

個人網站砍掉重練

2024/02/09 (Fri.)

睽違十年,終於再度下定決心,把個人網站做了一次大重寫,也把底層架構整個全部翻新。

讓人感到興奮的新版個人網站架構。讓人感到興奮的新版個人網站架構。

在 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 的技術演進學習成長,應該算是很幸運的人了吧。

尾牙

2024/01/25 (Thu.)

出門走到半路才想起沒帶員工證,折返回家拿,導致尾牙遲到 3 分鐘沒辦法抽獎,但也值得了...

穿著 Microsoft 帽T 和 Yahoo 外套,與 NVIDIA CEO 自拍合照。穿著 Microsoft 帽T 和 Yahoo 外套,與 NVIDIA CEO 自拍合照。

反脆弱 (Antifragile)

2023/12/31 (Sun.)

終於,在 2023 年的最後一天,把很厚重的塔雷伯的《反脆弱 (Antifragile)》給翻完了。這是一個以往從來沒被正式定義過的詞,所以相當抽象,讀起來也不是那麼容易去想像和理解。不過一旦了解它的概念,就會認同這是一個很重要、卻又嚴重被低估的概念。

作者在結語時,試圖給這個概念一個簡短的描述:「每一件事情都會從波動得到利益或承受損失。脆弱性是指因為波動和不確定而發生損失。」反脆弱,則是有度過波動和不確定的能力,甚至能因為波動和不確定而獲益。

在這個極度複雜的世界當中,反脆弱的概念,提醒我們,要從宏觀的角度來思考事情。大致來說,自然的、有機的、經過長時間淬練過的知識,或任何形式的架構、概念、制度、東西,都具有反脆弱性,都能經的起環境的變化,存在下去而不至於被毀滅。反之,人為干預則通常過度簡化問題,而帶來上檔利益有限,下檔損失無限,類似於選擇權,只是效益以等比級數的方式在擴大,最終將導致「負黑天鵝」的發生。

要達成反脆弱,作者提出一個還不錯的想法,是所謂的「否定法」。這個論點基於一個假設:我們對於一件抽象的事情,它「不是」什麼,比起它「是」什麼,往往來得肯定。例如我們很難以說出「神」是什麼,但如果要說出「神」不是什麼,就容易且肯定得多。只要我們處理好否定的部分,整體就會更趨近於肯定的部分。就像下棋高手靠著不輸棋而贏棋,一個人靠著不破產而致富。同理,準備考試所要想的,不是如何得分,而是如何不失分。唯有否定的部分,也就是所謂的波動和不確定性,都能好好應付的來,結果自然會往肯定的方向前進。

真的是很雜很難讀的一本書,我也自認為沒有完全讀懂書中所有概念,或許將來有機會再讀過一次,會有不同的見解吧。

鵝角格山-銀河洞-待老坑山-茶路古道

2023/12/26 (Tue.)

第三次參加 Eatgather 團,選了一個「鵝角格山-銀河洞-待老坑山-茶路古道」的團。根據過往經驗,貓空那一帶的步道應該都蠻輕鬆的,沒想到走還不到 1/4 路程,就感覺到我好像誤會了什麼。

軌跡圖。軌跡圖。

到頭來,這是一趟為時六小時、總里程 13 公里、總爬升 650 公尺的行程,已經很久沒有走到腳會酸的感覺。原本還在猶豫要不要帶登山杖,只因為主揪有特別提醒要帶,所以才勉強帶個一支,沒想到走到後來,還蠻後悔沒帶第二支出來的。另一大失策是沒帶行動電源,最後 1/4 路程手機電量就剩不到 20%,只好切換飛航模式硬撐。除了這兩大失策外,大致是很讚的旅程。天氣超好,其中有很大一段路徑是第一次走,也很自然的山路。在探訪優人神鼓的路程中,為了探索新路線,還誤闖了人家的茶園。就連去過好幾次的銀河洞也有很多水,還有彩虹,沿路可說是驚喜不斷。同時團員也都好聊,有電視台的製作人,也有很會用 AI 剪輯的玩家,聽聽大家各自的生活也蠻有趣的。結束後,大家一起到「渣男」餐廳晚餐後,各自解散回程。

鵝角格山。鵝角格山。

有彩虹的銀河洞瀑布。有彩虹的銀河洞瀑布。

待老坑山。待老坑山。

優人神鼓入口,裡面有人在練習。優人神鼓入口,裡面有人在練習。

誤入茶園。誤入茶園。

天氣大好的台北市景。天氣大好的台北市景。

二十四分鐘略懂 (不健康的) 婚姻

2023/12/21 (Thu.)

新片上映:《二十四分鐘略懂 (不健康的) 婚姻》。

離開 Google 前,和大學同學也是同事的 mobo 小聊了一下,聊到自己的感情狀況,以下稍微憑記憶還原當時對話。

mobo:「未來有沒有打算再認識人?」
我:「就順其自然吧。」
mobo:「你的生活圈也沒辦法認識人,是要怎麼順其自然?」
我:「對耶哈哈。」(毫無反駁能力...)

感謝 mobo 當時給我這一記當頭棒喝,讓我好好的思考了這個問題。於是,就有了開始整理自己的婚姻觀和感情觀的念頭,也就催生出這支影片。希望透過這樣的整理,除了讓自己對於婚姻和感情的想法更清晰,也能對大家都有點幫助囉。