在 tmux 裡使用 claude code
平常使用 terminal 習慣一打開就是先開啟 tmux,再開始處理要做的事情。現在 Claude Code 入列常用的工具之一的情況下,跟 tmux 一起使用是很舒適的體驗。 使用 Claude Code 時,常常會變成多工的狀態。Claude Code 還在執行中,就先翻翻資料,或是開啟多個 Claude Code 分別處理不同的任務。 ...
平常使用 terminal 習慣一打開就是先開啟 tmux,再開始處理要做的事情。現在 Claude Code 入列常用的工具之一的情況下,跟 tmux 一起使用是很舒適的體驗。 使用 Claude Code 時,常常會變成多工的狀態。Claude Code 還在執行中,就先翻翻資料,或是開啟多個 Claude Code 分別處理不同的任務。 ...
在 Dockerfile 裡 build golang 程式總是要花個幾分鐘,雖然不多,但是反覆的測試跟修改程式下,往往也花掉了不少時間。 目前使用的 Dockerfile 大概如下,在舊筆電 build 一次大概要 2 分鐘多 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 FROM golang:1.24-alpine AS builder ARG VERSION=v0.0.0 ARG COMMIT=unknown WORKDIR /src ADD . /src RUN CGO_ENABLED=0 go build \ -ldflags "-X github.com/nyorc/go-ver.Version=${VERSION} \ -X github.com/nyorc/go-ver.BuildTime=$(date +%Y/%m/%dT%H:%M:%S) \ -X github.com/nyorc/go-ver.Commit=${COMMIT}" \ -o app FROM alpine:latest COPY --from=builder /src/app /bin/app ENTRYPOINT [ "/bin/app" ] 筆電環境 ...
想要在 Vim 直接看到 git 異動,有兩個 plugin 可以搞定 vim-gitgutter fugitive.vim vim-gitgutter 安裝後要有兩個設定值要注意 updatetime 更新時間設定成 100ms 效果會比較好,預設是 4000ms 查看 :set updatetime 設定 :set updatetime=100 signcolumn 不要是 off 就好,預設是 auto ...
最近越來越常需要自己打字輸入正在編輯中的檔案路徑,但是打字很累,於是又到了調校 vim 的時間。 基本上就是找到拿到檔案路徑的辦法,然後設定成快捷鍵,就可以開心工作了。 ...
為什麼要做這個網站? 為了提升工作時的專注度,我試著使用番茄鐘工作法,因此開始四處試用別人製作的番茄鐘。 測試過幾個番茄鐘發現一些狀況: 需要登入才能使用 跟其他服務整合的一些額外的功能,反而變成執行番茄鐘工作法的阻礙 UI 設計的很華麗,但也消秏比較多的資源 如果選擇手機上的 APP 則是增加了接觸手機而分心的機會 UI 風格我不喜歡 搞到後來就決定,要花時間試用別人做的工具然後在那邊挑毛病,不如自己做一個工具來用,反正番茄鐘的複雜度不高。 ...
Vim 開啟檔案時會將檔案載入 buffer 中,預設不會去同步硬碟中的檔案異動。 在一些使用情境下例如 git 切換分支時,或是 AI Agent 幫你修改過檔案時,buffer 沒有一起更新,會讓工作變得有點不順手。 ...
最近 github 推的 spec-kit 很熱門,感覺只要是軟體工程師一定要用看看,所以我也小試了一下。 Spec-kit 是什麼 spec-kit 把 SDD (Spec-Driven Development) 跟 AI Agent 結合,開發者可以請 AI Agent 幫忙從寫 spec 文件開始逐步做到實作程式碼。 ...
Gemini CLI 是 Google 於 2025 年 6 月 發佈 出的 AI Agent 工具,有發一篇文章介紹: https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/ 在這時間點的前幾個月有出現 Claude Code,Google 也很快的跟上這一波 CLI 的腳步,跟 Claude Code 一樣的,Gemini CLI 把 AI Agent 帶進 terminal,對一些常用 terminal 工作的開發者,可以說是非常的實用。 ...
你有遇過鬼打牆的對話過程嗎? 明明是在同一場會議中,但是卻一直覺得別人不懂你的想法,或是你一直不懂別人在想什麼,彼此的想法就好像是個平行世界一般沒有交集。 人類思考的過程並不是那麼簡單,只要聽完對方說的話就可以理解對方的想法。 「ORID 焦點討論法」是個可以改善這種狀況的其中一種解決方案。 ...
原本手上有台筆電是安裝 ubuntu 的,但是最近一些問題不想繼續使用 預設的應用程式,強制改用 snap 安裝 會看到 ubuntu pro 的廣告 OS 版本更新雖然快,但是不穩定 效能有點差 所以我打算回到 Debian,自己掌握自己的筆電,選擇最小安裝,只安裝有需要的軟體,以最小化需要的硬碟空間跟記憶體 ...
之前的 試用 Copilot + Vim,可以在 Vim 上使用 Copilot 最近發現 plugin 可以在 vim 上使用 Copilot Chat Plugin: https://github.com/DanBradbury/copilot-chat.vim 安裝與設定 Copilot Chat 以下為 vim-plug 的安裝方式 編輯 .vimrc,加入以下設定 1 2 3 call plug#begin() Plug 'DanBradbury/copilot-chat.vim' call plug#end() 執行 :PlugInstall 安裝 plugin 設定 copilot chat ...
記錄一下在 GCP 上開一台有桌面環境的 VM 的過程 開一台 VM 到 GCP 的 compute engine,建立一台 VM,以下是這次測試選用的設定 e2-medium (2 vCPU, 4 GB) Spot 等待 VM 建立完成 從 VM 列表上點 SSH 連線,會開啟一個 SSH 的 web terminal 登入 VM 安裝 Chrome Remote Desktop 在 SSH 視窗,輸入以下指令,安裝 Chrome Remote Desktop 1 2 3 4 5 6 7 curl https://dl.google.com/linux/linux_signing_key.pub \ | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/chrome-remote-desktop.gpg echo "deb [arch=amd64] https://dl.google.com/linux/chrome-remote-desktop/deb stable main" \ | sudo tee /etc/apt/sources.list.d/chrome-remote-desktop.list sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive \ apt-get install --assume-yes chrome-remote-desktop 安裝 X Window 這次測試選擇安裝 Xfce (輕量級的桌面系統) 1 2 sudo DEBIAN_FRONTEND=noninteractive \ apt install --assume-yes xfce4 desktop-base dbus-x11 xscreensaver 設定 Chrome Remote Desktop 預設使用 Xfce 1 sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session' 設定 Chrome Remote Desktop 服務 打開 https://remotedesktop.google.com/headless ,並確定你有登入任一個你要使用的 google 帳號 點開會出現「設定其他電腦」畫面 點擊「開始」,出現「透過下列網址在遠端電腦下載並安裝 Chrome 遠端桌面」畫面 點擊「繼續」,出現「授權 Chrome 遠端桌面設定新電腦。」畫面 點擊「授權」,出現設定指令 複製 Linux 用的指令,貼到 SSH 的視窗執行 1 DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="4/0ATx3LY71DU2nq2CmTa0uorP4VgjKPKqv9oCvMybpDLyaBXAQqGdqVals3lsLjlmfidEpIg" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=$(hostname) 依提示「Enter a PIN of at least six digits」輸入 PIN 碼 檢查 Chrome Remote Desktop 服務是否運作 1 sudo systemctl status chrome-remote-desktop@$USER 有順利運作的話,可以看到 running 的狀態 1 2 3 ● chrome-remote-desktop@user.service - Chrome Remote Desktop instance for user Loaded: loaded (/lib/systemd/system/chrome-remote-desktop@.service; enabled; preset: enabled) Active: active (running) since Fri 2024-06-00 00:00:00 UTC; 1min 10s ago 登入 Desktop 打開 https://remotedesktop.google.com/ 在「遠端存取」的畫面,可以看到 VM 出現了 點擊 VM,輸入 PIN 碼,點擊前進按扭 成功登入 Linux 桌面了 可以開始在桌面環境工作了 Reference https://cloud.google.com/architecture/chrome-desktop-remote-on-compute-engine
在調效 zsh 環境時 (使用 Prezto 取代 Oh-My-Zsh),找到一個算是簡單上手的效能測試工具 zsh-bench (https://github.com/romkatv/zsh-bench),在設定 prezto 時就是用它來比較各種設定下的 zsh 啟動速度。 執行 zsh-bench git clone 該 repo 1 git clone https://github.com/romkatv/zsh-bench 執行 zsh-bench ...
我的 terminal 環境目前是 oh-my-zsh,使用上常常會在開啟或是輸入指令有明顯的 lag,oh-my-zsh 雖然有大量的 plugin 可以使用,但是實際上我會用到的 plugin 也就少數的特定幾個而已。是時候該讓 omz 退休,換上其他更有效率的 framework。 ...
最近發現了一個有趣的東西,名為「Catppuccin」的色彩主題 (themes)。 https://github.com/catppuccin/catppuccin Catppuccin 的配色看起來十分柔和,提供了一個亮色跟三個暗色共四種配色: Latte Frappé Macchiato Mocha 比較誇張的是這個色彩主題支援的包山包海的應用程式跟網站。 我這次打算換成次暗的 Macchiato,以下記錄我這次安裝的設定。 ...
什麼是 Redis Sentinel redis sentinel 讓 redis 擁有高可用性 (high availability)。 sentinel 會監控 redis 服務,在主節點 (master) 異常時啟動容錯移轉 (failover),將複製節點 (replica) 提升成主節點,並告知跟 sentinel 建立連線的客戶端。 要實測一個最簡單的 redis sentinel 服務,我們需要 3 個 redis + 3 個 sentinel 的架構。使用 docker compose 可以直接在一台電腦上建出這樣的環境。 ...
現在寫程式常常都會有大量的 API 溝通,現實世界常會遇到像是網路不穩定等等的情況,這時有再試策略 (retry strategy) 就很重要了。 retry-go 是一個可以讓我們自定再試策略 (retry strategy) 的套件。 ...
我在移動 Mac 檔到其他系統時,都會出現 ._ 開頭的檔案。一開始只是隨手刪除,但是每次都會產生這些垃圾檔案,實在是有點惱人。 為什麼會有 ._ 開頭的檔案? Mac 會存一些附加資訊到檔案裡,當移動檔案到非 Mac 的檔案系統時,就會產生 ._ 檔案來存放附加資訊 ...
Elasticsearch 是目前很熱門的分散式搜尋引擎,為了讓自己有個環境方便研究 ,所以整理了一份可以在自己電腦上快速啟動 Elasticsearch 的 docker-compose.yml Elasticsearch 本身提供 RESTful API 做為使用介面,如果想要視覺化的介面,需要再加上 Kibana。 ...
來更新 vim 設定,在寫 yaml 時可以舒服一點。 目前版本是 Vim 9.0 設定縮排 我習慣的 yaml 縮排是兩個空白,在 vim 就針對 yaml 檔設定: 1 autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab 語法 原本有裝 stephpy/vim-yaml 這個 plugin,這次就刪掉了 ...