這題為一個設計題,給了一個 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

Helm 是 kubernetes 的包管理工具。 Helm 有一個公共 Repository ,裏面主要都是配置文件,會把 Kubernetes 服務中各種元件 yaml ,統一打包成一個叫做 Chart 的模組,然後透過 value.yaml,可用來統一管理與設定 Kubernetes ,幫助 developer 和系統管理員,更輕鬆地部署、管理和升級 Kubernetes 中的應用程式。

Continue reading

Author's picture

李昀陽 YunYang Lee

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

Software Engineer

Taiwan