跳至主要内容

自架 NAS 經驗分享

· 閱讀時間約 6 分鐘
Ivan Tsai
Backend engineer

前言

最近我的群暉 NAS DS218+ 一直出現硬碟斷電的錯誤,我猜可能是 SATA 背板的問題,剛好找到藉口把用了 8 年的 NAS 換掉,組一台小型伺服器當作 NAS 兼 Homelab,這篇文章來分享我自組 NAS 的過程,包括硬體選擇和軟體的部署。

AI Agent 爭議:Cloudflare vs. Perplexity

· 閱讀時間約 4 分鐘
Ivan Tsai
Backend engineer

前言

在 8 月 4 日,Cloudflare 發表文章譴責 Perplexity「stealth, undeclared crawlers to evade website no-crawl directives」。同一天,Perplexity 也發表了回應,指出 Cloudflare 誤解了 AI 代理的運作方式。這場爭議不僅是兩家公司之間的衝突,也凸顯了 AI 服務提供商與內容創作者之間日益增加的緊張關係。

將 OpenStreetMap 資料載入 PostGIS 中

· 閱讀時間約 5 分鐘
Ivan Tsai
Backend engineer

這篇文章會把 OpenStreetMap 的圖資資料載入 Postgres 資料庫中,以利我們後續建立 Tile Server 使用。

OpenStreetMap 資料

OpenStreetMap(OSM) 是開放授權的開源圖資,像 Wikipedia 一樣,任何人都可以編輯貢獻資料。只要在您的服務中標明資料來源,OSM 的資料是基於 ODbL 免費使用的。

OSM 的資料包含 nodes (建築、出入口等等)、ways (路線、區域等等)以及 relations。例如下面這是中山南路的其中一段資料,他表明了路線經過的點(nodes),以及這段路線的名稱,路線種類等等。

線上地圖是如何運作的

· 閱讀時間約 4 分鐘
Ivan Tsai
Backend engineer

最近開了個新坑,因為想要用自己的資料來製作線上地圖,Google Maps 等服務能自訂的項目並沒有很多,這個系列的文章會在沒有依賴外部服務的狀態下(當然圖資還是得由供應商取得),建立自己的地圖,包含後端的圖資料庫以及前端的渲染。

如何手動讀取 TypeScript SourceMap

· 閱讀時間約 2 分鐘
Ivan Tsai
Backend engineer

TypeScript SourceMap

我們可以在 TypeScript 的 tsconfig.json 設定 comilerOptions.sourceMap = true 來產生 Source Map 檔案,這個檔案可以讓 VS CodeChrome debugger 等工具把編譯後的 JS 檔案對應回去原始碼 (TS)。

不過如果收到 Production 上回應的 Error Stacks,想要找到對應在 TS 的程式位置,有沒有辦法快速的找到呢?

AWS instance identity documents

· 閱讀時間約 3 分鐘
Ivan Tsai
Backend engineer

Instance Metadata Service

Instance metadata 是 AWS 對你的 EC2 提供的資訊,包含 Host Name, Public IP ... 等等的資訊都可以從 Metadata Service 獲取。每個 EC2 中都能存取到位於 169.254.169.254 的 API,這個位址是 Link-local address,只有從 EC2 內部才可以存取的到。例如,我們可以由下面這個 API 獲得目前的 Public IP:

curl http://169.254.169.254/latest/meta-data/public-ipv4