Weekly Issue 第 15 期:Go 語言從 1.25 支援 Flight Recorder

最近安排旅遊計畫,會到 Brisbane 居住三個月,突然跟熟悉的環境分開,用陌生眼光看待周圍一切,真是個特別的體驗。

世界依然在轉動,只是用了不同速度,反映在每週週報上,是項目變少了,可是內容變長了。


🗞️ 熱門新聞

Flight Recorder in Go 1.25

Go 1.25 開始支援 Flight Recorder。

以前要抓 trace,都是要等到事發後才能抓,有沒有可能事發前抓呢?有,原理很簡單,配置一塊記憶體存放臨時的 trace,如果符合條件,輸出持久化,否則丟棄,這就是 Flight Recorder。

官方給的範例很讚,像 slow request 這類例子,常常是處理 request 時遇到問題,在沒有 Flight Recorder 的情況下,要處理只能把該端點的 request 都抓起來,或者給定一段時間持續記錄。現在可以精準打擊了。


✨ 科技觀點

The rise of async programming

由 LLM 來寫程式,人類來審查,好像慢慢成為一種模式,但「唯有在無需手動測試每個邊緣案例的情況下驗證結果,非同步程式設計才能發揮作用。」

文中講的「自動化驗證」對我來說特別有意義,如果沒有測試保護,沒有基準驗證,沒有自動格式化,組織就還沒有進到 AI Ready 的狀態。

這跟 DevOps 同樣,為什麼 DevOps 常常從 CI/CD 談起?不是只有 CI/CD 才是 DevOps,而是連 CI/CD 都沒有的情況下,真的很難建立開發與維運協作的文化。

The Beauty of Programming

Linus Torvalds 談他眼中的 Programming。

「至今仍難以解釋,為何連續三天絞盡腦汁卻仍找不到更優雅、更漂亮的解決方法,這件事本身竟能如此令人著迷。但一旦你找到了那個方法,那將會是世界上最棒的感覺。」

這段讓我想起 Nabokov 談小說藝術:「這種舒暢一旦被感覺到,就會令人意識到,儘管生活中有各種各樣的跌跌撞撞和愚笨可笑的錯誤,生活內在的本質大概也同樣是靈感與精緻。」

有次跟朋友聊到,Programming 在生活中主要還是扮演創造收入的角色,但是,真正驅動我投入其中的,是偶爾在其中會看到的發光時刻。

Why we trust strangers’ open source more than our colleagues’

看到個有趣的問題:為什麼我們信任陌生人的開源專案勝過同事?

第一直覺是想「有嗎?」後來轉念想,如果不是以認識與否來判斷,我的標準是什麼?

通常會看專案是否持續更新、有沒有積極處理 issues、還有 contributor 的數量、以及這個專案是否夠成熟。如果這些點沒有滿足,用起來還是會怕,畢竟不知道是否哪天會 OOM 或洩漏我的資料。

Seeing like a software company

有段時間一直在糾結個問題:「如何衡量不同職能的貢獻呢?」

最簡單是看營收,例如業務成交量,你賺多少錢就是多少貢獻,但依照這觀點,客服或研發部門應該當成本單位嗎?如果真這樣想,通常公司也差不多了。

另個講法是用「目標導向」來衡量,只是實施中仍然容易有各種問題,最關鍵的是,當要衡量,就需要量化,需要具有 legibility。而 legibility 是資源管理的基礎,它跟對客戶的承諾結合在一起。

很喜歡這篇文章的觀點,與其說是管理,不如說是歷史。「可辨識的機制確實重要,它能讓組織完成原本不可能的事……但不可辨識的面向同樣關鍵,它能實現高效工作、為不合時宜的流程提供調節閥,並滿足人類天生對閒話交流與柔性共識的渴望。 」


📌 工程實務

Retrospective of September 25th go.opentelemetry.io incident

Otel 發表了一篇事故報告,跟 CAA Record 有關。

事故原因是 OpenTelemetry 根網域沒有 CAA Record,資安人員通知他們應該加上,但是呢,如果你加上了 CAA Record,沒在紀錄中的 CA 就不能簽發憑證(這就是加上的目的),所以憑證過期後,原本憑證無法更新,事故就發生了。

這篇很接近我理想中的報告,特別是 Lessons learned,點明「我們對於應用程式運行的平台知識有所不足,導致這次事件持續時間超出應有範圍 」,修改的人不知道影響範圍,也沒確認 AppEngine 的 CA,屬於 Domain Knowledge 問題。這是應該讓整個團隊都要學習的點。

Otel 處理方式也很俐落,他們將 AppEngine 遷移到 Netlify,統一使用的平台。前篇說到我不贊成完全讓團隊自行選型,原因就有維護問題,如果一開始全用 Netlify,應該能避免這個事故,即使發生了,處理起來也會更簡單。

Grafana, Loki, and Tempo will be relicensed to AGPLv3

看了看 Grafana 從 Apache 2.0 改為 AGPL v3 的說明,相對單純的營利組織,Grafana 的立場更傾向貢獻這端--你只要願意貢獻源碼,Grafana 不禁止用途。

在另一篇文中,立場表達更明確「當你使用的授權許可並未被 OSI 接受時,很難聲稱自己是一家開源公司。」Mongodb 在這點上就閃爍得多。

Read more

Weekly Issue 第 21 期:JetBrains 發表 2025 Go 生態系調查

最近在讀 Tony Fadell 的 "Build",作者曾經參與過 iPhone 的開發,各種經驗談讓人嘆為觀止,例如這段:「如果故事有某個部分銜接不上,那麼產品本身也會有某個地方行不通…這便是為什麼最後 iPhone 的表面是玻璃,而不是塑膠,以及為什麼 iPhone 沒有硬體鍵盤。」 好在哪呢?好在如果能掌握這個觀念,就能知道如何「閱讀」產品,看見一個產品,就像閱讀一則故事一樣,知道它的抑揚頓挫,知道它想表現的東西。我相信每個經歷過產品開發的人,看這本書都會很有感覺。   🗞️ 熱門新聞 The Go Ecosystem in 2025: Key Trends in Frameworks, Tools, and Developer Practices JetBrains 前陣子公布 Go 生態系的調查結果。

By Ken Chen

Weekly Issue 第 20 期:AI 泡沫的遺產

2000 年的 .com 泡沫雖然造成嚴重的經濟問題,但也給後續的網路世代留下豐富的遺產。我們現在使用的網路基礎建設,很多是因為泡沫的原因,才能一次性投資到位。而當下經歷的 AI 浪潮,在時間過去後,又會給我們留下什麼遺產呢? 🗞️ 熱門新聞 The Benefits of Bubbles 我看 Ben Thompson 的文章通常會有兩種感受,負面是他太囉唆了,把簡單的觀念講得太長(儘管容易懂),而正面是他的觀點一向很有創造性。 這篇也是,前陣子看到有篇談 AI 泡沫後,什麼都不會留下,因為 GPU 很快會隨著時間折舊掉。我持保留態度,我認為重點不僅是 GPU(正如我認為 .com 泡沫的重點不是 CPU),還有其他的東西,至於是什麼,我沒想到。 BT 認為是晶圓製造與電力,It's amazing,

By Ken Chen

Weekly Issue 第 19 期:Coursera 的預覽模式宣告 MOOC 終結

我有時會上課程網站買課,特別是國外的網站,有些課程內容品質高,而且還能無價體驗,我常常在想這在商業上怎麼行得通。Coursera 最近推出預覽功能,某方面來說,也是在宣告長期要往付費走。 網路最大的特點是開放,因為開放,我們看到不可思議的成長,也因為開放,我們有時會很惋惜理想的落幕。 🗞️ 熱門新聞 The Day MOOCs Truly Died: Coursera's Preview Mode Kills Free Learning 很有趣的一篇新聞:Coursera 的預覽模式給了 MOOC 最後一擊。 我對 Coursera 的商業模式不熟,看起來它之前是靠證書與服務營利。很難想像線上課程能用免費支撐這麼久,這幾乎是公益了,將內容鎖在付費牆後比較像可理解的商業行為。 讓我困惑的是,這些年 Coursera 是如何獲利?以及,當時投資人對它的想像是什麼? The PSF has withdrawn

By Ken Chen

Weekly Issue 第 18 期:OpenAI 發布 AI 瀏覽器 Atlas

OpenAI 最近發布 AI 瀏覽器,加上稍早的 Sora 2,在技術圈中引起一些討論。 我認為 OpenAI 嘗試將模型領域的優勢帶到應用面,但這也讓它顯得更像是一家營利公司,而非研究單位(雖然現在沒人會把 OpenAI 當成研究單位了)。 🗞️ 熱門新聞 Dane Stuckey (OpenAI CISO) on prompt injection risks for ChatGPT Atlas Simon Willison 聊了他對 OpenAI Altas 的看法,主要是資安方面。 幾個點:1) 提示詞注入問題依然存在,而且還沒有好解法;2) OpenAI 設計了登出模式與監視模式,讓使用者更容易意識到安全性。 在我看來第二點很重要,好設計應該要避免使用者犯錯,如果 AI 瀏覽器可以在登出狀態下執行,能避免掉很多麻煩的狀況,當然這意味著沒辦法自動購物。

By Ken Chen