如何在 github 建立 ansible role

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

20 August 2022 · 2 min · nyo

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

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

31 July 2022 · 3 min · nyo

Docker 的容器重啟政策

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

28 July 2022 · 1 min · nyo

Vim 更新後缺少 Python 套件 pynvim neovim

久違的更新一下 vim 1 $ brew upgrade vim 打開 vim 馬上出現一堆錯誤訊息 1 2 3 [vim-hug-neovim-rpc] failed executing: pythonx import [pynvim|neovim] [vim-hug-neovim-rpc] Vim(pythonx):ModuleNotFoundError: No module named 'neovim' E605: Exception not caught: [vim-hug-neovim-rpc] requires one of `:pythonx import [pynvim|neovim]` command to work 這些錯誤好熟悉,似乎是 vim 又找不到 python 的套件了 ...

08 June 2022 · 1 min · nyo

團隊的估點(Story Point)經歷

我目前的團隊從正式開始使用 Story Point 到現在,有超過一年的時間了。平常工作時偶然的發現團隊內有一些不一樣的地方,於是想要寫篇文章來記錄一下。 其實大概半年前就想要寫的,拖著拖著居然又過了半年,拖延症真是個可怕的傢伙。 ...

31 May 2022 · 6 min · nyo

升級 go.mod 裡的 go version

1.18 都 release 才想要看看怎麼把 go version 改到 1.17 修改 go.mod 使用 go mod edit 修改 go.mod 檔案的 go version 1 $ go mod edit -go=1.17 go 1.17 的 go mod tidy 增加了 -go 參數,可以直接修改 go.mod 檔案中的 go version 1 $ go mod tidy -go=1.17 升級依賴套件 升級依賴套件 + 更新 go.mod ...

09 April 2022 · 1 min · nyo

Event Storming 的便利貼

Event Stroming 是一個可以用來讓團隊了解商業邏輯並設計軟體的工具,最終用大量的便利貼來呈現結果 The picture that explains everything (from Alberto Brandolini’s “Introducing Event Storming”) 這篇整理一下便利貼的用途說明 ...

07 April 2022 · 1 min · nyo

玩看看 go 的泛型函數 (Generics Function)

在 2022-03-22 這天 Go 正式發佈 1.18 版了! 這個版本其中一大特色就是增加了社群討論許久的泛型(Generics) 今天來玩看看 go 的泛型函數(Generics Function) 沒有泛型 我們來寫一個尋找 slice 資料索引的 function ...

29 March 2022 · 2 min · nyo

拿筆電安裝 Debian server

把以前的舊筆電翻了出來,發現還可以正常運作,所以打算重灌來拿當做測試用 Server,這篇簡單的記錄一下這次重灌做了什麼事 筆電:ThinkPad t420s ...

25 March 2022 · 1 min · nyo

在 Linux 終端機上查看電池狀態

在 /sys/class/power_supply/BAT0/ 資料夾裡,有一系列的檔案存放著電池的資訊 1 2 3 4 5 6 7 8 9 10 $ ls /sys/class/power_supply/BAT0/ alarm charge_stop_threshold serial_number capacity current_now status capacity_level cycle_count subsystem charge_control_end_threshold device technology charge_control_start_threshold hwmon1 type charge_full manufacturer uevent charge_full_design model_name voltage_min_design charge_now power voltage_now charge_start_threshold present 只要是檔案類型的,都可以直接 cat 查看資料 ...

22 March 2022 · 1 min · nyo

使用 brew 切換不同的 go 版本

使用 brew 安裝 go 可以很容易在不同的版本中切換。 Brew 目前我工作環境安裝的 brew 版本是 3.4.1,只要使用 link/unlink 指令就可以切換。 1 2 3 4 $ brew -v Homebrew 3.4.1-52-gf0f1eb6 Homebrew/homebrew-core (git revision 0192df1b390; last commit 2022-03-14) Homebrew/homebrew-cask (git revision 96b4f7dabd; last commit 2022-03-14) 安裝 go 安裝 go 最新版 (1.17) 跟 go 1.16 版 ...

15 March 2022 · 1 min · nyo

Grafana Loki 收集 Log

Grafana Loki 是一個輕量的 log 收集服務。 Loki 的標語 Like Prometheus,But For Logs 說明著這個服務靈感來自 Prometheus。跟其他的 log 收集服務比較下,Loki 有以下特性: 不對 log 進行全文索引。介由存儲壓縮的非結構化 log 和僅索引 metadata,Loki 操作更簡易而且執行成本更低 使用的相同於 Prometheus 的標籤對 logs 進行索引和分組,讓您能夠用相同標籤在 metrics 和 logs 之間無縫切換 有 Grafana 原生支援 Loki 的運作結構 ...

21 December 2021 · 2 min · nyo

Nyo 版本,懶人的每月記帳法

開始工作之後,總是會在意自己到底是不是所謂的「月光族」。 常見的工具像是各種的 APP、應用程式、試算表等,都有試過,但也都無法持續的使用。 在多次的放棄都重試之後,總算是找到比較適合自己的方法:「每月記帳」。 ...

26 November 2021 · 2 min · nyo

tcp_tw_recycle and tcp_tw_reuse

如果你遇過 linux server 上有著大量 TIME_WAIT 你一定在 google 上看過把 net.ipv4.tcp_tw_recycle 跟 net.ipv4.tcp_tw_reuse 設定為 1 的優化方法,想要介此來減少 TIME_WAIT 或是增加 server 可以處理的連線數量 但是這些做法可能是無效的,甚至是「有風險在」的 ...

08 August 2021 · 2 min · nyo

什麼是快速失敗 (Fail Fast)

身為一個軟體工程師,我們通常希望程式正常運作不要有問題,但是在開發過程中一定少不了 debug 跟設計錯誤處理的流程,這時候決定處理錯誤策略,就是一件很重要的事情了。 ...

22 July 2021 · 2 min · nyo

優雅的關機 (Graceful Shutdown) Goroutine

Graceful shutdown 直接翻譯是 「優雅的關機」 這種做法是在收到程式終止的指令時,先處理好執行中的動作才結束程式。 使用這個機制可以正確的關閉連線,完成處理到一半的任務。能夠保障工作跟資料的完整性,避免突然的中止程式造成一些奇怪的問題。 ...

06 July 2021 · 2 min · nyo

怎樣的 PBI 寫法比較好

PBL: Product Backlog,產品的工作項目清單 PBI: Product Backlog Item,產品的工作項目 身為 Scrum 團隊的一員,每個 Sprint 的重要任務之一,就是搞懂 PBL (Product Backlog) 上的項目,想辦法實現它。 ...

04 July 2021 · 3 min · nyo

近期的線上會議回顧

台灣依舊在三級防疫警戒的今天,在家上班的時日不知不覺也差不多有一個月了 回顧這段時間,不知道為什麼最近的會議量滿到一個不行 而這些會議都很容易就超過一個小時甚至到半天,收到的會議效果卻可能很小,或跟本是零 ...

21 June 2021 · 3 min · nyo

Blog Git Log Gource

gource 是一個可以把版本控制記錄製作成動畫的視覺化工具 看到別人 perl 開發歷史紀錄之視覺化 在玩這工具 就也想來玩看看 不知道要找哪個專案來試,就拿來跑看看 blog 的資料囉 ...

05 June 2021 · 1 min · nyo

Exa: 更棒的 ls 指令

exa 是 ls 指令的另一個選擇,使用 rust 開發的 github: https://github.com/ogham/exa exa 的特色 幫檔案跟一些屬性都上色,甚至加上 icons,更容易閱覽 可以用樹狀圖顯示,tree 的另一個選擇 可以支援 git status 以及一些額外的檔案資訊 執行效能跟 ls 差不多 安裝方式 1 $ sudo apt install exa 1 $ brew install exa 設定 alias 取代 ls 1 2 3 4 5 6 7 alias ls='exa' alias la='exa -a' alias ll='exa -lh' alias ls='exa' alias ll='exa -lh' alias la='exa -lah' alias lr='exa -lR' 實際使用截圖 ...

27 March 2021 · 1 min · nyo