dw's 小站

DS / CS / CH / 斜槓與轉職的人生

我是 dw / David Ye,是 Houzz 的軟體工程師。
化學系畢業,興趣是聽音樂看動漫追劇打遊戲,偶爾來這邊寫寫文章。

這個 Blog 主要紀錄:

  • 新技術學習或是應用
  • 喜歡的歌詞翻譯與心得

Google Domain 客製化 Email Address

在 Google Domain 買了網域之後,就覺得該多利用一下這個新的個人網域 dwye.dev。 最簡單的事情就是做一個 email address。 原本以為會需要配合 Google Workspace (原本的 G Suite,畢竟在 Google Domain 一直出現他的廣告…),後來才發現其實 Google Domain 可以直接免費設置轉信到現有信箱。 還可以 100 筆。 又是 100,跟之前 Blogger 的一個帳號最多 100 個 blog 一樣,100 是什麼 magic number 嗎? 正文 進入 Google Domain,選擇你的網域 在側邊欄選擇電子郵件 忽略 Google Workspace 的廣告,捲到底下有個「電子郵件轉寄」,直接給他新增一個電子郵件別名 然後…就沒了ˊˋ 用起來又是

GitHub Action 自動化部署 Hugo 網站

在今天之前,這個 blog 是用 Wercker 做自動化部署,當時對於 CI/CD 工具沒有太多比較,就直接使用了。

在 2018 年底,GitHub 公開了他們的自有 CI/CD 工具 GitHub Action,並於 2019 年底正式推出。這個工具經過了兩年多的發展,如今也有一定成熟度,社群有很多相關的工具發展起來,當然也不乏 Hugo 的自動化部署。如果 repo 使用 GitHub,那整合 GitHub 自家 CI/CD 當然是最方便的。

Python 實作 Disjoint Set 與 Union Find

使用情境 在 Leetcode 寫到一題: 1319. Number of Operations to Make Network Connected 現在有 n 台電腦以及一些 cables 將電腦點對點連接,問需要移動至少幾條 cable 才能讓在所有電腦連成單一網路。 以 graph 的角度來看,電腦就是 nodes,cables 就是 edges。 要將整張 graph 連接起來,至少需要 n-1 個 edges。若一個 graph 裡面有超過 n-1 個 edges,剩下的就是多出來的 edges,可以供我們拿來移動的 edges。 所以第一件事就是要檢查 edges 數量 >= n-1。 當檢查完畢之後,我們有至少 n-1 條 edges,一定可以用這些 edges 將所有 nodes 連接起來。 因為題目只問需要移動幾條 edges,我們可以假設我們