使用 retry-go 制定再試策略

現在寫程式常常都會有大量的 API 溝通,現實世界常會遇到像是網路不穩定等等的情況,這時有再試策略 (retry strategy) 就很重要了。 retry-go 是一個可以讓我們自定再試策略 (retry strategy)...

23 March 2024 · 3 min · nyo

Mac 產生的 ._ 檔案

我在移動 Mac 檔到其他系統時,都會出現 ._ 開頭的檔案。一開始只是隨手刪除,但是每次都會產生這些垃圾檔案,實在是有點惱人。 為什麼會有 ._ 開頭的檔案? Mac...

10 March 2024 · 1 min · nyo

自架簡單的 Elasticsearch 服務

Elasticsearch 是目前很熱門的分散式搜尋引擎,為了讓自己有個環境方便研究 ,所以整理了一份可以在自己電腦上快速啟動 Elasticsearch 的 docker-compose.yml Elasticsearch 本身提供 RESTful API 做為使用介面,如果想要...

09 February 2024 · 2 min · nyo

讓 Vim 支援 YAML 檔

來更新 vim 設定,在寫 yaml 時可以舒服一點。 目前版本是 Vim 9.0 設定縮排 我習慣的 yaml 縮排是兩個空白,在 vim 就針對 yaml 檔設定: 1 autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab 語法 原本有裝 stephpy/vim-yaml 這個...

20 January 2024 · 1 min · nyo

什麼是 VO2 Max

入手 Garmin 運動錶有一陣子了,有工具輔助追蹤跟記錄運動的狀況也讓我維持了一定程度的運動習慣 Garmin 記錄的數值非常多,一般的跑步時間、心率、步數等,可以一...

06 January 2024 · 1 min · nyo

2023 年度回顧

回顧 blog 成果 沒有辦法達到每月至少發一篇的標準 篇數有踩在平均一個月一篇的最低標準 文章還是以測試工具或是小功能的實作為主,深度的經驗分享的部份還是...

02 January 2024 · 1 min · nyo

使用 gomock 寫測試

gomock 原本是 golang 官方維護的套件,不過因為有一段時間沒有在維護了,在 2023 年 6 月時就改由 uber 團隊接手維護了。 停止維護: https://github.com/golang/mock 目前有在維護: https://github.com/uber-go/mock 安裝工具 安裝 mockgen 工具...

31 December 2023 · 2 min · nyo

試用 Copilot + Vim

Github Copilot 是 Github 推出的 AI 程式開發工具,只要你先設計好程式要怎麼運作,剩下的 Copilot 就會幫你完成了。 要使用 Copilot 首先要在 Github 訂閱 Copilot,再來要在 IDE 裝好套件...

05 December 2023 · 1 min · nyo

什麼是估點

在 團隊的估點(Story Point)經歷 | Nyo’s Study Book 這篇分享過一些估點的經驗,今天回頭過來介紹什麼是估點 軟體開發往往會遇到評估開發時程的難題,直...

04 December 2023 · 2 min · nyo

Windows 上的套件管理工具

平常工作使用 Linux 或是 Mac 都有很完善的套件管理工具可以使用。 自己的 Windows 桌機雖然是休閒用途,但是前前後後也裝了不少的程式,照顧上有點小麻煩。 所以在 Windows 上...

11 November 2023 · 2 min · nyo

使用 Cobra 製作有多層指令的應用程式 (Nested Subcommands)

Cobra 是一個很方便 cli 函式庫,有許多的 project 都是用他來寫 cli 應用程式,我自己也是很常使用的。 不同於 kubectl, hugo 這類的專案,自己寫的 cli 應用程式,常常會混著主要的應...

17 September 2023 · 2 min · nyo

使用 Helm 部署 Gitlab Runner 到 Kubernetes

準備工作 在開始部署前,需要準備好以下環境: 建立 Kubernetes cluster 安裝 kubectl,並設定好可以操作 Kubernetes cluster 安裝 Helm 本次測試版本 kubernetes: v1.27.3-gke.100 kubectl: v1.27.3 helm: v3.12.2 設定 values.yml 在使用 helm 部署之...

09 September 2023 · 2 min · nyo

將 AppImage 加入 Gnome 的 Application 清單

AppImage 是目前 Linux 上很常見的應用程式格式,不需要安裝,可以相容於各大 Linux 發行版。 下載 AppImage 檔後,要執行它的方法很簡單 (以下用 Hepta-0.369.1.AppImage) 先讓檔案可以執行 1 $ chmod +x Hepta-0.369.1.AppImage 接...

28 August 2023 · 1 min · nyo

修正 tmux 無法正常顯示 24-bit True color

在設定 Git diff 強化工具: delta 時,發現我的 terminal 顯示的顏色不正常。 我的 terminal 環境用 Alacritty + Tmux,網路上馬上找到跟我遇到一樣問題的同學: 24 bit/True color not working in tmux 2.3 · Issue #696...

05 August 2023 · 1 min · nyo

使用 Colima 取代 Docker Desktop

Colima (https://github.com/abiosoft/colima) 是一個目標成為在 MacOS 上最簡單的 container 環境工具,可以視為 Docker Desktop 的替代方案。 基於 Lima 這個 VM 上 本身只有簡單的 CLI,沒有 GUI 支援 Docker 跟 Containerd 還有 Kubernetes 移除 Docker Desktop 如果你...

20 July 2023 · 2 min · nyo

如何寫 Go 的效能測試(Benchmark)

go 的測試工具 go test 有 benchmark 工具可以使用。 不用自己寫工具就可以很輕鬆的測試程式碼效能。 開始寫 benchmark 測試 建立 _test.go 結尾的檔案 function 要以 Benchmark 開頭 使用 b *testing.B 參數 將要測試的...

15 July 2023 · 2 min · nyo

在 Linux 監控 Wifi 訊號強度

平常都習慣使用圖形介面設定 wifi,臨時要用 command line 完全不知道要從哪邊下手。以下是我找到的方法。 查看 Wifi 訊號強度 執行以下指令查看 /proc/net/wireless 檔案就可以知道目...

08 July 2023 · 1 min · nyo

使用 Github Actions 自動部署 Hugo 到 Github Pages

上次的 blog 大改造應該是在 用 Hugo 發佈部落格 這時做的,也經過了快 5 年了。 原本我的 nyogjtrc.github.io 發佈方式是另開了一個 repository 存放 markdown,再把 hugo 產生的靜態檔案指...

02 July 2023 · 2 min · nyo

將 Debian 11(Bullseye) 升級到 12(Bookworm)

Debian 在 2023-06-10 釋出 12 代號 bookworm。 我手邊的 server 安裝的是 Debian 11,剛好就找個時間升級一下,順便寫一下筆記 升級前準備 先將系統升級到 11 (bullseye) 的最新版,並移...

01 July 2023 · 1 min · nyo

「選擇無聊的技術」那些做選擇的重要觀念

最近出現一篇「選擇無聊的技術」中文版文章,我覺得是一篇很棒的文章。 選擇無聊的技術 - Northern Wind 選擇無聊的技術 身為軟體工程師的每次接到任務都要選擇用什...

23 April 2023 · 1 min · nyo