Homebrew 是一個廣泛使用在 MAC 上的套件管理工具,可以安裝一些 Mac App Store 上沒有的軟體,其操作十分方便,可以簡化軟體安裝的過程,是個很有名的非官方工具,由 Max Howell 以 Git 和 Ruby 為基底寫成,並通過 GitHub 維護,為 2012 年 GitHub 上擁有最多新貢獻者的專案。對於其作者也有個有趣的軼事:Max Howell 曾應聘過 Google 的職位,面試失敗之後在 Twitter 上發文章 :

  • Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so f*** off.

因此在網上引發了面試白板題的討論。

Continue reading

OpenTelemetry ,也稱為 OTel,是 Cloud Native Computing Foundation(CNCF) 下的一個開源專案,為一供應商中立(vendor-neutral)的可觀測性框架,目的是提供一個標準化Observability 的 pluggable 框架,解決 telemetry data 的模型定義、檢測、採集、處理、輸出等一致性問題。

借助 OpenTelemetry ,可以從各種來源收集 telemetry data ,但對於資料的存儲和可視化是留給其他工具的,本身並不提供儲存,只能將其發送到其他的服務來存儲,如 Prometheus、或其他雲端廠商服務。

Continue reading

Regular Expression 是一種強大的字串匹配字串查找等操作工具,常簡寫爲 regex 、regexp 或 RE。這概念最初由 Unix 的 sed、grep 操作而普及開,它定義一系列符號來描述搜索的規則。 但在不同的 coding language 或者是不同 OS 中, 常發現 regex 都會有些差異,主要原因是演進過程中,出現 POSIXPCRE 兩種 :

  • POSIX : 可以說是原初版本,主要用於 UNIX 系統的文本處理,grep 、sed 、awk 等都屬之

  • PCRE : 現代 coding language如 Python、Ruby、 C、C++、Java 都屬於 PCRE 派系。

Continue reading

Fluent Bit 基礎介紹

Fluent Bit 是一款使用 C 語言編寫的開源的資料收集器,為 Fluentd 的輕量化版本,也是 Cloud Native Computing Foundation(雲原生運算基金會) 下的一個子項目。可以從多種不同來源【如 Log file、kafka 等等】,收集 Logs、Metrics、 Traces 資料,然後輸出至多種不同的服務 【如 Loki、Fluentd、Elasticsearch、DataDog、Kafka 以及各式雲端服務】。

Continue reading

現今應用程式發展迅速, app 的更新也變得越來越頻繁,在微服務、DevOps、Cloud-native 的迭代過程中,最終都需要上線。上線就需要部署;需要部署就意味著有修改;修改則意味著有風險,要如何在盡量不影響 user 的前提下,讓 app 升版呢 ? 這時就有一些部屬策略可以考慮。對於 Deployment Strategies 有一些基本的專有名詞和觀念,例如 :

  • Recreate
  • Rolling
  • Blue-Green
  • Canary

對於應該使用哪種 Deployment Strategy 、它們的工作原理、優缺點等等,以下會做些基本介紹。

Continue reading

cloc 全名是 Count Lines of Code , 為一個計算 code 和設定檔行數的 CLI 工具,是使用 Perl 語言開發的開源統計工具。cloc 支援非常多程式語言、平台、格式的統計,可以快速地計算一個 project 中所有文件的行數、空行、註釋行等等。有時候在寫一些報告會用到,可以幫助整理資料。

Continue reading

Author's picture

李昀陽 YunYang Lee

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

Software Engineer

Taiwan