手機優先的資料庫管理工具 Quero
半夜資料庫出事,人多半不在電腦前。手機開得動瀏覽器,但打得開的工具沒幾個——桌面版的資料庫管理軟體幾乎都假設你坐在自己的電腦前,用的是自己機器上存好的那組帳密。要嘛裝一套用得很委屈的手機 App,要嘛請同事幫忙開 VPN,要嘛乾脆等回到電腦前再處理。 還有一件事更麻煩:那組帳密存在誰的筆電上。工程師一多,正式環境的資料…
實作紀錄、疑難排解與架構筆記——寫給未來的自己,也寫給正在踩同一個雷的你。
半夜資料庫出事,人多半不在電腦前。手機開得動瀏覽器,但打得開的工具沒幾個——桌面版的資料庫管理軟體幾乎都假設你坐在自己的電腦前,用的是自己機器上存好的那組帳密。要嘛裝一套用得很委屈的手機 App,要嘛請同事幫忙開 VPN,要嘛乾脆等回到電腦前再處理。 還有一件事更麻煩:那組帳密存在誰的筆電上。工程師一多,正式環境的資料…
上次在這台 Mac 上跑 Z-Image,用的是 mlx-swift,整個過程沒碰到 Python,當時就覺得夠乾淨了。後來看到 antirez 的 iris.c,發現還可以更極端:整個推論引擎就是一份 C 程式,Flux 2 和 Z-Image 的權重直接讀,沒有框架。 h3.c 是同一套路數搬到影片上,跑的是 Mi…
macOS 內建注音、倉頡和速成等中文輸入法,但沒有大易。要在 Mac 上繼續使用熟悉的大易鍵位,可以安裝開源的 OpenVanilla;新版套件已經內建大易,不必另外下載字根表。 這篇從「怎麼打開下載網站」開始,一路做到在選單列切換大易。就算平常很少碰電腦,只要照著畫面逐步操作即可。文中提到的「點一下」是按一次觸控式…
有時候 MacBook Pro 不能在工作跑到一半睡著,例如下載大檔案、備份、轉檔、編譯專案,或把電腦暫時當成測試伺服器。macOS 可以從系統設定調整,也能用內建的 caffeinate 指令暫時保持喚醒。 先釐清一件事:關閉顯示器和讓 Mac 進入睡眠是兩回事。比較實用的做法通常是讓螢幕照常關閉,但 Mac 在接上…
最近在 Mac 上跑通義的文字生圖模型 Z-Image,用的是 Z-Image.swift——一個用原生 Swift 包起來的版本,底層跑 mlx-swift,直接吃 Apple GPU,不用另外裝 Python、PyTorch 或一堆 CUDA 相關套件。 會想試這條路線,理由跟之前在本機跑 LLM 差不多:東西留在…
硬碟滿了,「關於本機」告訴你用了幾百 GB,但不會告訴你這幾百 GB 躺在哪裡。要嘛買套付費工具,要嘛打開終端機下 du,等它慢慢爬完整棵目錄樹。 DiskAnalyzer 是一套原生 SwiftUI 打造的 macOS 磁碟空間分析工具,掃描完直接用 Sunburst 和 Treemap 畫出來,哪個資料夾佔最多空間…
同一個人維護好幾個靜態部落格,難的通常不是寫文章,是發佈。每個站各自一套建置流程,改一次版面就得重新搞懂一次:輸出目錄在哪、圖片要不要先壓、上次到底是怎麼傳上去的。現成的靜態網站產生器也不好用,要嘛設定檔要學一堆,要嘛想換個版面得先搞懂它那套樣板規則。 Velo 是一套 macOS App,只做一件事:選一個 Mark…
AI 寫程式,誰來把關?SPEX-SDD 方法全紀錄 SPEX-SDD 是一個安裝在 ~/.claude/skills/ 底下的 Claude skill,用途是幫軟體系統產生一套「可實作、可驗證、也能被機器把關」的技術文件:統一編號的規格骨幹(backbone)、七份正式文件、工程品質關卡(Harness)、AI 可…
SPEX-SDD 使用指南:各種情境的操作手冊 適用版本:spex-sdd 最後更新:2026 年 8 月 這份指南怎麼讀 你的狀況 直接跳到 第一次接觸這個方法 〈核心設計〉 手上有既有專案想導入 〈情境 1〉 要開新專案 〈情境 2〉 想知道某個 FAIL 代碼是什麼意思 〈validator 錯誤代碼表〉 只想抄…
Dashboard 規劃設計指南 Dashboard 不是把所有圖表放在同一頁,也不是把報表做得更漂亮。好的 dashboard 應該幫助特定角色在特定情境下快速判斷狀態、定位問題,並採取下一步行動。 先定義 Dashboard 的任務 規劃 dashboard 前,先回答三個問題: 使用者打開這個畫面時,最想知道什麼…
軟體測試基本觀念與有效測試實作 「測試到底有沒有用」這個問題,答案不在於有沒有寫測試,而在於寫的測試是不是有效。覆蓋率 95% 但全部測在 happy path 上、案例跑 5 分鐘卻抓不到上線的 bug、寫了一堆但下次需求一改就得整批重寫——這些情況,測試都寫了,但沒有用。 軟體測試到底在做什麼 軟體測試常見有 3 …
管理一台正式環境的伺服器,日常大概是這樣:SSH 進去,top 看一下 CPU,systemctl status 挑幾個服務確認,df -h 看磁碟,ss -tunap 看連線,docker ps 看容器,再開幾個分頁 tail -f 服務的紀錄檔。哪個服務掉了、哪顆磁碟快滿了,答案分散在七八個指令裡,沒有人會把這些指…
講到接 LLM,大家第一個想到的通常是 OpenAI 或 Gemini 的 API,第二個想到的是「所以要用 Python 吧」。 這兩件事其實都不一定。模型可以跑在自己的電腦上,語言也可以是 C#。 在本機跑有幾個很實際的好處:使用者打的句子不會送到別人家的伺服器(做企業內部系統時這點常常是關鍵)、沒有用量帳單、也不…
「只有一個實作,幹嘛寫介面?」這句話我聽過很多次,自己也講過。 平心而論它不是沒道理。YAGNI 講的就是這件事:不要為了想像中的需求先做設計。如果你寫的是一個一次性的小腳本,跑完就丟,那多開一個檔案放介面確實只是增加負擔。 但工作上碰到的多半不是那種東西。維護個幾年的系統,我後來的答案是:還是會寫。而且理由跟「以後可…
做企業系統最累的不是功能難寫,是規則一直改。 獎金公式、風險評分、簽核條件,這些東西幾乎每季都會動一次。如果它們是寫死在程式裡的 if/else,那每次業務調一個係數,你就得改程式、寫測試、重新編譯、跑一次發版流程。改的內容可能只有一個數字,流程卻要走兩個禮拜。久了 IT 就變成業務推不動事情的原因。 業務規則本來就會…
Embedding 是把文字(字、詞、句子)轉成一串數字(向量),語意相近的內容,在向量空間裡的距離也會比較近。這份筆記整理幾個常見的 embedding 模型,從早期的靜態詞向量,到後來能理解上下文的 Transformer 系列。 架構與訓練方式 模型 架構 訓練方式 上下文理解 Word2Vec 淺層神經網路(C…
把一整篇文件直接丟給 embedding 模型通常行不通:模型能吃的長度有限(早期小模型甚至只有 512 tokens),就算硬塞得下,效果也差——問題如果只跟文件裡一小段有關,卻要模型把整篇的意思壓成一個向量,關鍵細節很容易被稀釋掉。 做法是先把長文字切成一小段一小段,每一段叫一個 chunk,各自轉成向量存起來。使…
[TOC] 白箱測試 白箱測試看得到程式碼內部結構,設計案例的依據不是輸入輸出,是「程式碼有沒有被跑到」。跑到的程度分成好幾個層級,由鬆到嚴依序是語句、分支、條件、路徑,中間還有判斷/條件涵蓋率和 MC/DC 這兩個進階變體。層級越嚴,案例數通常也跟著變多,這篇按照嚴格程度一層一層往上疊。 覆蓋率的迷思 先看一個容易被…
「案例要怎麼設計」是寫測試時最常卡住的地方:全部的輸入組合測不完,隨便挑幾個又怕漏掉真正會出包的情況。等價類劃分、邊界值、決策表這幾個技巧,在〈軟體測試基本觀念〉已經整理過,這篇接著講另外兩組常用的設計方法:白箱測試的覆蓋率技巧,還有黑箱測試的狀態轉換測試法。 白箱測試:用覆蓋率設計案例 先看一個容易被覆蓋率數字誤導的…
[TOC] 黑箱測試 黑箱測試不看程式碼內部,只看「輸入什麼、輸出什麼」來設計案例。常用的技巧有好幾種,適用的情境不太一樣:等價類劃分和邊界值處理單一欄位的合法範圍,決策表和決策樹處理多個欄位互相影響的規則,狀態轉換測試處理跟操作順序有關的行為,正交法處理參數一多、組合爆炸的情況。 等價類劃分與邊界值 把「行為相同的輸…
Sprint 收尾那幾天,PR 排隊排到五、六個,每個都要在開會前看完。PR #123 改了六個檔案、380 行,20 分鐘後要開會,只能快速掃過去。那段限制檢查的邏輯看起來沒問題,留了 LGTM。上線兩週後才發現,外部 API 回呼還沒結束前,判斷式就先放行了——那個 race condition 藏在第三個檔案,掃…
排到一個 PR 要 review,改動是一段限制檢查的邏輯。網頁上的 diff 看起來沒問題,三行判斷式,邏輯很直覺。但這段判斷牽涉到一個外部 API 的非同步呼叫,光看文字很難確定判斷式擺的位置對不對——會不會在回呼還沒結束前就先放行了。 想在本機跑起來測,才發現 Node 版本跟手上的不一樣、.env 沒有、資料庫…
退款功能還在 feature/order-refund 上開發到一半,畫面開著 dev server,資料庫接的是測試用的假資料,還有一堆檔案沒 commit。這時候 PM 敲你:main 上結帳頁的稅額算錯了,要你馬上看一下。 以前遇到這種事,標準流程是 git stash,切到 main,看完、修完,再切回來,gi…
我們團隊有個習慣:功能分支開發到一半,每天早上第一件事是把 main merge 回自己的分支,避免落後太多、之後衝突太痛苦。立意是好的。 但這個習慣用了幾個月之後,佈版前看歷史紀錄變成一場災難。git log --graph 拉出來的圖,混了一堆「Merge branch ‘main’ into feature/xx…
主機資訊 請先準備三台主機,來源和鏡像主機需使用 Windows 2012,監控主機使用 Windows 10/11 即可。 名稱 作業系統 資料庫 IP 主機名稱 來源主機 Windows 2012 Standard R2 SQL Server 2012 Standard 192.168.xxx.xxx SQLA 鏡…