如何寫 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

如何在編譯 Go 時加入程式版本資訊

這裡有一段程式,執行時加上 -v 的參數就可以秀出程式的版號 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package main import ( "flag" "fmt" ) const Version = "v0.1.0" func main() { var flagVersion bool flag.BoolVar(&flagVersion, "v", false, "version") flag.Parse()...

10 April 2023 · 2 min · nyo

將 Git 預設分支從 Master 改成 Main

歷史 2020 年 6 月 git 發佈了一篇聲明,說明了 git 預設的分支 master 是有具有歧視性的單字,接下來會加入一些機制允許使用者設定預設分支名稱,。之後 git 在 2.28.0 加入了 init.defaultBranch...

19 March 2023 · 1 min · nyo

Git diff 強化工具: delta

git diff 的視覺效果不是那麼的友善 網路上可以找到許多 git diff 的強化工具 最近看到 delta 這個工具,似乎可以看得更清楚,馬上把之前用的 diff so fancy 換掉。 以下留幾個截圖...

06 March 2023 · 1 min · nyo

在 Gitlab CI 排程執行 OSV-Scanner

Google Online Security Blog: Announcing OSV-Scanner: Vulnerability Scanner for Open Source Google 在 2022 年 12 月發佈 OSV-Scanner 這個漏洞掃描工具,可以檢查你的專案所使用的依賴開源套件是否有漏洞。支援 npm, go mod, composer, yarn 等相當多的套件管理工...

02 February 2023 · 1 min · nyo

使用 Github Actions 測試 Go

Github Actions 是 Github 推出的 CI/CD 工具,釋出有一陣子了,平常工作上不常用 Github,所以一直沒有機會試試看。 最近回頭更新放在 Github 上的 Golang 程式,就順手的放上 Github Actions 幫...

30 January 2023 · 2 min · nyo

我目前的 Joplin 設定情況

目前的筆記軟體是 Joplin。 Joplin 是一套開源的筆記軟體,會選擇使用他的主要是因為: 使用 Markdown 語法 筆記可以加密 Web Clipper 支援多種作業系統 最近有調整一些 Joplin 的...

26 November 2022 · 1 min · nyo

使用 Ansible Vault 加密敏感資料

ansible vault 可以將資料加密,保護敏感資料。 可以參考官方: Encrypting content with Ansible Vault — Ansible Documentation 或是中文可以參考 Vault — ansible中文權威指南 1.0.1 documentation ansible vault 的指令集如下 1 2 3 4 5...

20 November 2022 · 2 min · nyo

使用標準的 HTTP 狀態碼(status code)做為 REST API 回應結果

REST API 回應結果設計 設計 REST API 時,要好好的處理錯誤狀況並回應清楚的結果可以是一門很深的學問。 基於 HTTP 設計的 REST API,想要 API 使用者掌握狀況,那正確的使...

06 November 2022 · 3 min · nyo

Gitlab CI 推送 docker image 到 ECR 私有儲存庫

最近在尋找適合放 docker image 的私有 registry,因為平常有在用 AWS,所以就來試一下 AWS 的 registry 服務 ECR gitlab 版本: gitlab 15.3 gitlab runner 運作模式: Docker 準備動作 先確定 aws 帳號...

29 October 2022 · 1 min · nyo

如何使用 CI/CD 減少部署成本

認識部署 「部署」是程式開發中相當重要的一項工作,甚至說是最重要的也不為過。完成「部署」,使用者才有辦法使用。可以使用的程式,才是一份有價值的...

22 October 2022 · 5 min · nyo

在 Debian 11 上執行多個 MySQL 實例

測試環境: 使用 vagrant 開 vm 來測試 vagrant box debian/bullseye64 安裝 MySQL 更新 APT 這個版本的 apt 沒有 MySQL server,所以我們要先更新 apt 套件庫。下載 mysql 官方提供的 mysql-apt-config 來安裝即可。 1 2 3 4...

22 September 2022 · 2 min · nyo

為什麼 101 會是入門的代號

什麼是 101 常常看到「某某 101」的書本或是文章標題。 這些標題底下的內容通常是一些入門程度的基礎知識,又或是可以讓你對主題可以有快速又簡單的認識...

20 September 2022 · 1 min · nyo

如何在 github 建立 ansible role

什麼是 ansible role ansible 的 role 讓我們可以封裝許多的 task 跟 handlers 等等 playbook 的工作。 怎麼開始寫 role 這次我們來寫一個 hello world ansible 有提供 ansible-galaxy 的指令,用來管理 role。可以使用這個指令...

20 August 2022 · 2 min · nyo

開發 web service 的 main.go 需要寫什麼

想要用 go 開發一個 web service 很簡單,網路上有一大堆的範例, 但是通常你不太可能直接拿著範例就上戰場打仗。要應用在現實中的場景,通常還需要加一些程式。 這...

31 July 2022 · 3 min · nyo

Docker 的容器重啟政策

docker 本身有提供重啟政策(restart policy)讓你可以控制容器是否要自動重啟。 使用方式 在 docker run 加上 --restart flag 1 $ docker run -d --restart unless-stopped nginx 在 docker-co...

28 July 2022 · 1 min · nyo