"Hands-On"
- JMeter 在本機跑負載測試的實測紀錄:Docker image、test plan 的元件、CSV Data Set、CLI mode 與 JTL、dashboard 與 statistics.json、JMeter 之外的門檻判定、remote testing 的 client 與 server
要在本機用 Docker 照一次實測跑 JMeter:建 image、寫 test plan、從 CSV 餵測試資料、用 CLI mode 跑出 JTL 與 dashboard、讀 statistics.json 判定門檻、開 client 與多台 server 做 remote testing 時讀;也用在 sample 失敗了 exit code 還是 0、CSV 裡某些值從來沒被請求到、-J 傳的屬性在 server 上沒有作用、-o 回報資料夾不是空的時候
- Locust 在本機跑負載測試的實測紀錄:受測服務、locustfile、headless 執行與 CSV、內建的 exit code、quitting 事件裡的門檻判定、--reset-stats 與 on_start、master 與 worker 的分散執行
要在本機用 Docker 照一次實測跑 Locust:寫 locustfile、headless 執行、讀終端機的統計表與 CSV、在 quitting 事件裡判定延遲門檻、開 master 與多個 worker 分散執行時讀;也用在受測服務變慢而 exit code 還是 0、加了 --reset-stats 之後登入請求還在統計裡、master 回報 worker failed to send heartbeat 的時候
- 多台主機維護清單的實作紀錄:在容器上安裝 ansible-core 與 Terraform、由 Terraform 產生 inventory、用 Ansible 的範本部署每台的清單、以 sudo 與 systemd-run 執行檢查腳本,以及清理
要照著部署多台主機的維護清單並執行檢查腳本,或要讀跨主機執行時 ansible 的 exit code 與每台的 rc、門檻造成的 WARN、清單格式錯與連不上的主機各自印出什麼時,或要確認 Terraform 寫出的 inventory 的檔案權限、`--check` 預覽與實際部署結果不同的情形時,查在可拋棄的容器上實際跑過的指令、輸出與遇到的錯誤
- GCP VM 的 SSH 與 RDP 改走 IAP 的實測紀錄:盤點、救援入口、IAP 規則與 IAM、停用舊規則驗證、OS Login 啟用與移除外部 IP
要把 GCP 專案裡對 0.0.0.0/0 開放 22 與 3389 port 的預設規則換成只放行 IAP,想照一次實跑過的順序做、看每一步沒做或換一種做法的結果時讀;也用在停用舊規則之後連不上、OS Login 啟用後有人登不進去,或拿掉外部 IP 之後要確認出站走了 Cloud NAT 的時候
- 源站防火牆只放行 Cloudflare 位址的實測紀錄:firewalld、Docker 發佈的連接埠、DOCKER-USER、nftables 表與出站 DNS
要在 Linux 主機上設定只放行 Cloudflare 位址的防火牆、確認 Docker 發佈的連接埠有沒有繞過 firewalld、在 DOCKER-USER、StrictForwardPorts 與 nftables 表之間選一種限制容器的來源、或限制出站 DNS 時,查 Oracle Linux 10 上實際跑過的指令、輸出,以及規則在重新載入、dockerd 重啟與重開機之後還在不在
- Case Study:customer support agent 從 task decomposition 到 eval
把模組四原理串成端到端案例:observe → decompose → design workflow → instrument trace → design eval → iterate。每段標出引用哪章。
- Hands-on Quickstart:clone repo 後跑通所有 demo
4 步驟跑通 RAG / MCP / permission demo 的 setup 跟驗證指令、整合 hands-on 系列所有章節的 prerequisite
- Hands-on:安裝 Ollama + 拉第一個 Gemma 模型
brew install ollama、launchd service、ollama pull、curl 驗證 OpenAI 相容 API
- ufw 主機上 Docker 發佈連接埠的實測紀錄:ufw 規則的效果、DOCKER-USER 規則的存續與 after.rules、IPv6 的 docker-proxy、compose 內建 DNS 的出站路徑
在 Ubuntu 的 ufw 主機上用 Docker 發佈連接埠、想只放行 Cloudflare 的位址、或想限制容器送出的 DNS 查詢時,查 ufw 規則對發佈連接埠的效果、DOCKER-USER 規則在 reload 與重開機之後還在不在、IPv6 那一份發佈由誰接收,以及 compose 容器的 DNS 封包從哪裡送出
- 只讀檢查腳本 host-check.py 的原始碼與逐段說明:選項的切分與各工具的白名單規則、清單的載入與驗證、指令的執行、各項檢查、路徑與時間的量測、結果檔與命令列,以及這一版的已知限制
要讀主機維護清單的只讀檢查腳本實際怎麼切分各工具的選項、怎麼驗證清單、怎麼判定 PASS、WARN 與 MANUAL、怎麼寫結果檔,或要照它的做法寫自己的檢查腳本時,查完整的 Python 原始碼與每一段這樣寫的理由
- GCP 上 MIG 與 GKE 管理存取的實測紀錄:instance template 與 canary 滾動更新、重建與主機金鑰、kubectl debug 的 namespace、node pool 設定與控制平面端點的切換
要把 IAP 的 tag、OS Login 與移除外部 IP 套到 MIG 或 GKE 上,想照一次實跑過的順序做、看每一步換一種做法的結果時讀;也用在 MIG 重建之後 SSH 出現 REMOTE HOST IDENTIFICATION HAS CHANGED、kubectl debug 停在等待,或關掉 GKE 控制平面的 IP 端點之前要確認每個人都改連的時候
- Case Study:Blog 語意搜尋從 pickle 到 production
為 CLI 或個人工具選 RAG storage backend、或原始選型理由被 benchmark 推翻但結論不變時,如何區分結論、理由與前提
- Hands-on:安裝 ComfyUI + SDXL base
git clone、venv、pip install requirements、SDXL safetensors 放哪、--listen 啟動 server、瀏覽器 workflow 驗證
- Podman 與 rootless Docker 發佈連接埠的實測紀錄:rootful Podman 在 ufw 與 firewalld 上的轉送路徑、rootless Docker 與 rootless Podman 由主機程式接收的連接埠與容器看到的來源位址
用 Podman 或 rootless 模式的 Docker 發佈連接埠、想知道 ufw 或 firewalld 的規則管不管得到、或想在容器裡拿到連線的真實來源位址時,查 rootful Podman 在 ufw 與 firewalld 上的不同結果、rootless 模式接收連線的路徑,以及容器看到的來源位址
- GCP 預算警示與停損開關的實測紀錄:建預算、Pub/Sub 主題、服務帳號、函式與觸發器、兩段驗收、心跳監看與停用後的恢復
要在 GCP 專案上建預算警示,或建一個花費超過預算就解除帳單連結的停損開關,想照一次實跑過的順序做、看每一步漏掉或換一種做法的結果時讀;也用在函式部署成功、狀態 ACTIVE 卻從沒解除過帳單連結,或專案因超支被停用之後要恢復的時候
- Hands-on:安裝 whisper.cpp 做語音轉文字
brew install whisper-cpp、下載 GGML model、Metal 加速、ffmpeg 餵 WAV、484ms 完成 7 秒音訊轉錄
- Cloudflare 回源的實測紀錄:Oracle Cloud NSG 只放行 Cloudflare 位址與規則數上限、回源的來源位址、Authenticated Origin Pulls、Worker 偽造 CF-Connecting-IP 與 Tunnel 的出站連接埠
源站要放在 Cloudflare 後面、想確認只放行 Cloudflare 位址的雲端防火牆放不放得下整份清單、回源實際用哪些位址、Authenticated Origin Pulls 怎麼驗證、Cloudflare Worker 能不能穿過這道防火牆並偽造 CF-Connecting-IP、或 Tunnel 要開哪些出站連接埠時,查 Oracle Cloud 與 Cloudflare 免費方案上實際跑過的指令與輸出
- Hands-on:安裝 Piper TTS 做文字轉語音
pip install piper-tts、ONNX voice model、stdin 餵文字、WAV 輸出、跟 Whisper 互為 round-trip 驗證
- Hands-on:用 blog content 當 corpus 跑 RAG
200 行 Python:embedding + cosine retrieval + Ollama chat、validating 4.0 RAG 原理
- Oracle Cloud 私有子網路 Ubuntu 主機的實測紀錄:套件來源的出站(NAT gateway、路由與 NSG)、序列主控台的連線,以及被回收之後的重建
要在 Oracle Cloud 沒有公開 IP 的私有子網路裡跑一台 Ubuntu 主機、讓它裝得到套件更新,或要經由序列主控台看主機的開機過程,或主機被閒置回收、停止或刪除之後要照原樣重建,或想知道 NAT gateway 要不要另外付費、開機磁碟扣掉多少區塊磁碟額度、合計超過 200 GB 時放不進額度的那一顆怎麼算、怎麼用 quota 擋下超額的建立、線上加大開機磁碟超過額度時怎麼算、空出額度之後付費磁碟多久轉成免費時,查實際跑過的指令、錯誤原文、重建腳本與每一步的讀法
- Hands-on:用 blog content 寫一個最小 MCP server
stdio JSON-RPC、stdlib-only Python、暴露 blog content 給 LLM 用、validating 4.3 應用層協議
- Oracle Cloud 主機的暫停與恢復上線實測紀錄:暫停前的基準、收窄入口、停止主機、停止期間的計費與 Cloudflare 的回應、恢復上線的每一步與耗時,以及收尾時 DNS 紀錄與主機的刪除順序
要讓 Oracle Cloud 上一台放在 Cloudflare 後面的主機停機一段時間再恢復上線、想知道停止之後公開 IP 留不留、停止期間 A1 與開機磁碟怎麼計費、Cloudflare 回什麼錯誤、恢復時每一步要多久,或服務要收掉時 DNS 紀錄與主機的刪除順序時,查實際跑過的指令、輸出與量到的時間
- Hands-on:Ollama 改檔案 / 寫程式碼的權限邊界在哪
四組對照實驗:Ollama 自己沒 FS / shell 權限、wrapper 才有;--dry-run / --confirm / --auto 三檔審查粒度的取捨
- Hands-on:用 QLoRA 在本機 fine-tune coding 模型
Apple Silicon Mac / PC 獨立 GPU 上跑 QLoRA fine-tune 的完整流程:環境、資料、訓練、evaluation、合併、部署到 Ollama
- Hands-on:跨資料夾風格 follow 任務的模型對比
1B / 4B / 8B / 跨代 4B 在「讀風格參考、follow 既有格式、寫新章節」任務上的 structural metrics 對比、揭示 model size 不是唯一因素
- Hands-on:LLM 運行中 + 結束的資源管理
RAM / 磁碟 / port 三個 dimension 的觀察跟釋放、Ollama keep_alive 跟 ComfyUI 兩種 lifecycle 對比、實測釋放數字
- Hands-on:用本地 LLM 跑 judge harness(最小可行版)
在 Ollama / LM Studio 上跑 local reasoning model 當 judge、對自己工作流案例做 eval、JSONL in / JSONL out 最小 harness
- Hands-on:RAG / MCP 的資源 footprint
RAG ingest / query / MCP server 三階段的 RAM / 磁碟 / process 實測、多模型並存的 RAM 衝突、本地 LLM 跑 RAG 跟單純 chat 的差異
- restic sidecar 容器的密碼操作:啟動腳本依 exit code 判斷、換密碼、外洩後搬到新 repository 與唯讀還原演練
restic 以 Docker Compose 的 sidecar 容器做自架備份、要換密碼或密碼可能外洩時:啟動腳本怎麼分辨 repository 不存在與密碼錯誤、只改 .env 為什麼讓備份停擺、容器還在跑時換密碼的步驟、外洩後建新 repository 並用 restic copy 搬快照,以及唯讀掛載時 restore 重試十幾分鐘才失敗的成因
- SQLite 換機搬遷演練:Litestream restore、UID 對齊與停用舊主機的複製
家用主機要換新機、SQLite 資料庫由 Litestream 持續備份時,從 replica 把資料還原到新主機的步驟、只複製資料庫主檔會少掉的資料、還原後容器寫入時出現 attempt to write a readonly database 的成因,以及舊主機的複製沒停掉時 replica 裡會少掉哪些寫入
- Firestore Distributed Counter Lab
在 emulator 上實作 distributed counter:建立 N 個 shard、隨機分片寫入、觀察 shard 分佈是否均勻、讀取彙總驗證總和正確,並說明 contention 本身是 emulator 不模擬的 production 特性
- Firestore Local Emulator Quickstart
用 Firebase CLI 啟動 Firestore emulator、寫 firestore.rules、用 admin SDK seed 資料、跑 query baseline 與 cleanup,建立後續 Security Rules 與 distributed counter lab 共用的本地環境
- Firestore Security Rules Test Lab
用 @firebase/rules-unit-testing 在 emulator 上把 Security Rules 寫成自動化測試:放行 / 越權拒絕 / 未登入拒絕 / 欄位竄改拒絕四類斷言、firebase emulators:exec 在 CI 跑、把規則測試接進 release gate
- MySQL Backup Restore Drill
MySQL logical dump、physical backup frame、binlog position、restore validation 與 RPO / RTO evidence
- MySQL Local Lab Quickstart
MySQL local lab 的 Docker Compose、schema seed、sample workload、basic metric 與 teardown
- MySQL Online Schema Change Lab
MySQL ALTER TABLE、metadata lock、gh-ost / pt-osc frame、cutover evidence 與 rollback note
- MySQL ProxySQL Routing Lab
MySQL ProxySQL hostgroup、read/write split、query rule、backend health 與 routing evidence
- MySQL Replication Failover Lab
MySQL source / replica、replication lag、promotion、client route、Orchestrator frame 與 validation evidence
- MySQL Vitess Sandbox Route
Vitess sandbox、keyspace、shard、VSchema、query routing、resharding preview 與 MySQL migration evidence
- PostgreSQL Connection Pool Lab
PostgreSQL application pool、PgBouncer、backend connection、pool exhaustion 與 failover reconnect 的操作說明
- PostgreSQL HA Failover Drill
PostgreSQL Patroni 或 managed failover 的 promotion、client reconnect、pooler behavior 與 incident timeline
- PostgreSQL Local Lab Quickstart
PostgreSQL local lab 的 Docker Compose、schema seed、sample workload、basic metric 與 teardown
- PostgreSQL PITR Restore Drill
PostgreSQL base backup、WAL archive、target time restore、validation query 與 RPO / RTO evidence 的操作說明
- PostgreSQL Schema Migration Evidence Lab
PostgreSQL expand / contract migration、validation query、rollback condition 與 release gate evidence 的操作說明
- SQLite Backup Restore Drill
SQLite .backup、VACUUM INTO、restore validation、sidecar file handling 與 RPO / RTO note 的操作說明
- SQLite D1 / Turso Preview Lab
SQLite local DB 匯出到 Cloudflare D1 或 Turso preview environment 的 compatibility、latency 與 rollback 操作說明
- SQLite Local File Quickstart
SQLite local .db file、schema、seed data、PRAGMA baseline、query sample 與 cleanup 的操作說明
- SQLite Migration Fixture Lab
SQLite user_version、table rebuild migration、fixture snapshot、rollback note 與 CI evidence 的操作說明
- SQLite WAL Busy Reproduction
SQLite long transaction、SQLITE_BUSY、busy_timeout、checkpoint growth 與 writer queue 的操作說明