這個系列也寫到第20篇了,我想應該可以算是一個小成就了吧(?

這個系列的設定本來就是紀錄自己工作上的成長、並且整理工作上遇到的困難、心境記錄起來。 期許這些成長能夠成為一種「感恩」,也避免自己再犯第二次的錯誤

重點是,要讓自己變得更好、更強。

近來,我發現將自己所學輸出真是最棒的方式,一種能夠證明自己有沒有學會的最佳方案。我想可能以後我會陸陸續續將我目前短短幾年累積的東西持續輸出,同時也將自己的部落格當作一種知識管理系統

如果你看不懂我寫的內容,很歡迎你在底下留言回應。因為這也是能夠再度驗證自己有沒有學會的關鍵之一

關於 Docker 的小技巧

在這一份新工作裡,我學到有關 docker 一些小技巧

  • docker import & docker export
  • docker load & docker save

這兩對指令是成雙成對互相對應的,也就是可以不用 dockerfile 的方案做 docker image 等等。應該算是本地化方案(?

筆記Docker的參數

  • -i:執行時持續開啟 STDIN 管道,可以讓host與vm互動
  • -t: pseudo-TTY,使用虛擬終端機
  • -d:放在背後執行,detach mode (卸離模式)
  • --rm:當容器停止運行時就會移除container

docker exec -it nginx bash docker run --name=nginx --rm -d -p 80:80 nginx:latest

參考來源:https://blog.miniasp.com/post/2022/11/22/docker-run-docker-exec-docker-attach-tty-and-stdin

salt-minon

我們這個軟體有用到這個神奇的東西,這好像是可以做遠端控制電腦的 lib。 是用Python撰寫。

參考資源:

建立開發環境的步驟與自動化時間

另外,我覺得每次換新工作或電腦都要重新建立開發環境、整理工作區實在有點麻煩, 所以建立了trello,來幫助自己釐清工作任務與內容。同時紀錄開發環境的checklist 如圖下:

這樣有點方便多了,不過希望未來走向自動化!

Python Print 的坑

另外在 trace code 的過程裡,我發現某個 log 為什麼總是沒有很及時地顯示出來、反而在重開時他又突然出現……

後來發現他在 log 的實現是使用print()的方式,然後赫然查到 python 神奇的 print 魔術

原來 print 有 buffer的機制

參考來源:

讓我們來做個實驗:

1
2
3
4
import time
for buffer in range(5):
    print(buffer,end=" ")
    time.sleep(10)

讓你猜猜,這個程式碼執行的結果會是 a)每10秒印出一個數字 b) 50秒後0-4都印出來?

答案是:b

這就是 buffer 的魔力、aka 緩衝區。

要解決它很簡單,就是下-u就好,或者在 print 裏面加入flush=True這個參數即可

參考資源: https://stackoverflow.com/questions/107705/disable-output-buffering

在 Devops Taiwan 看到的一篇內容

我喜歡參加一些社群、看看一些技術文章。尤其我蠻 focus 在如何讓軟體工程師更好、更 smart 的工作之類的,在 DevOps Taiwan 看到有人分享簡報。

覺得蠻被提醒的: 『導入 DevOps ,也相當於在導入敏捷,不可能在不導入敏捷的情況下導入 DevOps 。』

也許我再強調「DevOps」的過程中,也要想到公司或環境、文化有沒有「敏捷」…… 我覺得沒有敏捷的支持,DevOps大概很容易淪為工具或次文化吧

https://drive.google.com/file/d/1zlIVCQymHXz8WzQs2o0KqH0Rwgsfh6yb/view?fbclid=IwAR0aUr99joS6jyzdcJvWkAGi_9H_z37WNxsj2HeROfZ8qp8F93fReB5dxx8

Git 徹底搞懂

在Git合併分支有分兩種模式,底下有篇文章寫得蠻清楚的。這兩者的差別大概是在git commit 紀錄的部分。

  • git merge
  • git rebase

merge 在合併的時候會有 fast-forward,和衝突時用一個 commit 記錄合併變更的兩種情形。而 rebase 的整合方式非常有趣,依照關於 rebase 的另一段說明,它可以「把某個分支中所有 commit 的過程,以另一個分支的 commit 為基礎重播一輪」:

參考來源: https://backlog.com/git-tutorial/tw/stepup/stepup2_8.html 參考來源: https://medium.com/starbugs/git-%E6%88%91%E4%BB%A5%E7%82%BA%E7%9A%84-git-rebase-%E8%88%87%E5%92%8C-git-merge-%E5%81%9A%E5%90%88%E4%BD%B5%E5%88%86%E6%94%AF%E7%9A%84%E5%B7%AE%E7%95%B0-cacd3f45294d

小君曰:其實我還是比較喜歡Dockerfile的部分…