標籤: 工具

共 5 篇

Dagger 1.0 和 GitHub Actions:第三代 CI 換掉了什麼

2026年10月25日

Dagger 1.0 beta 的釋出博文說自己是繼 Jenkins、GitHub Actions 之後的第三代 CI,還說一條 dagger cloud checks on 就能替掉 GitHub Actions。兩者是同一類東西嗎?順著問題往下追:兩邊的配置各自描述了什麼;誰在執行、快取放在哪;改一行程式碼各自重算了什麼;整合測試要的資料庫誰來起;測試掛了以後看到的是什麼;本地能不能跑同一套;最後是 Cloud Checks 和按用量計費到底替掉了哪一層。全部場景用同一個 Go 小專案,在 GitHub 的 ubuntu-latest 機器上實測。

用 Go 寫 Mac 桌面程式:原生視窗和選單欄圖示

2026年10月24日

Go 寫的小工具,最省事的介面是起一個 http server 再開啟瀏覽器。如果想要的是 Mac 上那種雙擊就開、右上角選單欄常駐一個圖示、點一下彈出面板的程式,該怎麼做?順著問題往下追:視窗歸 AppKit 管,Go 怎麼調到它;為什麼介面程式碼必須鎖在主執行緒上;選單欄圖示、彈出面板和不進 Dock 是怎麼做到的;Fyne、Gio、Wails、systray 等十幾個現成的庫,視窗裡的內容各是誰畫的,哪些裡面其實是網頁;兩個庫各管視窗和圖示時為什麼打架;最後怎麼打成 .app、簽名和公證,發給別人也能開啟。全部方案在同一臺 macOS 15 上實測。

CEL 表示式語言:為什麼出現,和同類語言比怎麼樣,該怎麼用

2026年10月22日

Kubernetes 的 CRD 裡有一行 self.minReplicas <= self.replicas,Google Cloud 的 IAM 條件、Envoy 的 RBAC 裡也是同一種寫法。它叫 CEL。我們從一個普通需求出發:讓使用者在平臺裡自己寫放行規則。嵌入指令碼語言會碰到能呼叫什麼、會不會停、寫錯了何時知道、每次多慢四個問題;CEL 用非圖靈完備、型別檢查和成本估算回答它們。再把 CEL 和 expr、Rego、Cedar、JsonLogic、Starlark、Lua、SpEL 等 22 個同類實現放進同一組場景實測,最後整理出在 Go 裡用好 CEL 的做法。

SSAR 與同類工具對比:一次 30 秒的 load 尖峰,事後還能看清嗎

2026年10月21日

一臺 4 核機器在 22:31 抖了半分鐘,幾分鐘後登入上去,load average 已經回落,一切正常。為了弄清剛才發生了什麼,我們把龍蜥社群的 SSAR 和 sar、atop、below、PCP、collectl、nmon、tsar 裝在同一臺機器上,用同一個尖峰去考它們:預設取樣點有沒有落進去,load1 為什麼總是慢半拍,SSAR 的 load5s 怎麼從 /proc/loadavg 反推出每 5 秒的真實執行緒數,卡在 D 狀態的是哪個程序、哪個執行緒、卡在核心哪一行,事後才想到的指標還能不能查,以及這些記錄各要花多少 CPU 和磁碟。

tmux 入門與配置指南

2026年3月22日

按實際使用中依次遇到的問題,一步步把 tmux 用起來:客戶端 / 服務端架構如何讓程式長時間執行,Session、Window、Pane 如何組織多工,字首鍵為什麼要改、改了又會遇到什麼,最後給出一份相容 tmux 2.9+ 的完整配置。