terraform archive 是一個 HashiCorp 公司提供的一個 Provider,可以讓使用者在 Terraform 中,將指定的目錄或檔案打包(例如 zip )。

雲端上運行的無伺服器計算服務非常熱門,著名的如 AWS Lambda 、 Azure Functions、GCP Cloud Functions,也常使用 terraform 工具來進行部屬。這時再使用 terraform archive ,方便地把例如 python code 打包成 zip,簡便地部署到服務上。

Continue reading

tar是 Unix 和類 Unix 系統上常用的壓縮工具,名字來自於 tape archive 的縮寫, tar 可以將多個文件或目錄打包成一個檔案。單純 .tar 檔案是沒有壓縮資料的,只是把好多目錄與資料夾打包起來變成一個大檔案而已;如果要有壓縮資料的功能,要使用 .tar.gz 壓縮檔案,是最常見的壓縮檔案格式。

Continue reading

這題是要求 Binary Tree 的 diameter ,要注意一下 diameter 的定義並不等於深度 ! 根據題目中的例子,可了解所謂 diameter 的定義,是兩點之間的最遠距離。雖然 Binary Tree 的 diameter 並不等於深度,但是和深度有非常大的關係,所以解法用 DFS 是比較直觀的想法。(雖然題目難度說是 easy,但我個人覺得應該算初階 medium…)

Continue reading

deep copy 是程式初新手常會有疑問的地方,這邊剛好可以藉由解題來複習指標的概念。另外這題有很巧妙的解法,就是利用 HashMap 來建立原 node 和拷貝 node 之間的映射 ! 也可以使用遞迴的解法,寫起來相當的簡潔。

Continue reading

RUN、CMD 和 ENTRYPOINT 指令都可以用來執行具體的命令。RUN 指令是在 Docker 鏡像構建時把執行結果會記錄到鏡像中;而 CMD 和 ENTYPOINT 指令是在容器啟動時自動執行。

ENTRYPOINT 和 CMD 的區別在於使用 ENTRYPOINT 時, CMD 指令會被作為其默認參數,也可以在啟動容器時通過覆蓋 CMD 指令來輸入參數。

Continue reading

這題為一個設計題,給了一個 Data Stream,希望設計一個 class 能夠支援連續的 operation,並找出該 Stream 目前的中位數。注意 Data Stream 中的 Data 是無序的且可以為負數,所以我們要做的第一件事是讓每一次 data 輸入進來,都要讓其有序。這裡介紹的解法十分巧妙,使用 maxHeap 和 minHeap 來解決問題,這樣中位數的計算便只要看 maxHeap 的最大值和 minHeap 的最小值來判斷。

Continue reading

Dockerfile 讓我們可以透過設定指令的方式,快速地更新和建構 Image 。由於 Dockerfile 中可以清楚的知道 Image 建構的過程和引用的 package 組成,因此在安全性上會有所提升;也因為是純文字檔,所以 size 很小、易於分享。Dockerfile 裡面有一些指令蠻容易混淆的,這次重點介紹:

  • RUN
  • CMD
  • ENTRYPOINT

這三個指令都可以用來執行具體的命令,但其中又有些差異,以下做一些說明和整理。

Continue reading

這題給了我們一個無環有向圖 (directed acyclic graph)(DAG) 。有 N 個 node ,要找出所有可能的從 node 0node N-1 的路徑。像這種需要走到終點,且在每一次新的遞迴時,都要把當前路徑記錄下來,其本質都是深度遍歷 graph ,再加上 backtrack 回溯狀態。是經典的 dfs 的題目。

Continue reading

在 Cloud Firestore 中,存儲單位是 document 。document 是一個 lightweight record ,可包含 data 欄位 (稱: fields),也可以嵌套另一個 collection。 因為 terraform 的 google_firestore_document,要求 fields 的 format 要是 json string ,比想像中的難寫,在這邊簡單紀錄一下範例。

Continue reading

Linux 有多種流通版本,例如常見的 Ubuntu、Debian、CentOS、Fedora、Red Hat 等等,其中裡面預設的包管理系統也不太一樣。包管理系統可以安裝 package更新 package 、確保使用的 package 是經過審查的。 接下來淺淺的分析 apt 、 yum 、 apk 之間的差別。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan