Amo Chen

howler.js 現代 Web 音訊/音源播放函式庫

要在網頁上放一段音樂可以透過 <audio> 標籤做到,不過要更進階的功能時, <audio> 標籤就顯得不足,例如 <audio> 不支援透過 XHR 的方式取得音訊,你得自己實作這項功能才行,

Posted on  Sep 20, 2023  by  Amo Chen  ‐ 1 min read

資訊安全心法 — 最小權限原則

2023 年 6 月,微軟發生 1 起資安事故,造成 38TB 的資料暴露在網路上,這 38TB 的資料中還包含 2 位前員工的硬碟備份,其中含有密鑰、密碼、3 萬則通訊軟體(Tea

Posted on  Sep 19, 2023  by  Amo Chen  ‐ 2 min read

Python 套件推薦 - rustimport 給你的 Python 一對翅膀

不可否認 Python 以其優異的生態系與社群資源為開發帶來速度優勢。

不過每個應用都有效率極限, Python 當然也不例外,而且 Python 天生比起 JavaScript, Java 等語言更容易遇到效能瓶頸,這時候通常有 3 種選擇:

  1. 改用效率較好的寫法或套件
  2. 部分功能/元件改用別的語言實作
  3. 全部用別的語言實作

選項 1 是最簡單的,只要能夠找到更快的寫法或者更好的套件,就能夠緩解問題,再撐一陣子;選項 3 則是最困難的,要有足夠的時間以及負責人的支持之下,才有可能進行,畢竟所有的功能都必須改寫之外,測試也是需要全部重新來過,更何況通常公司專案都有時程壓力,選項 3 通常都是難以說服高層的選項;至於選項 2 則是折衷選項,建議選項 1 已經無法解決問題時採用,目前很多 Python 套件為了效率也都會採用選項 2 的做法,例如 orjson 就是以 Rust 語言實作的 JSON parser 。

目前 Python 與 Rust 的介接主要靠 PyO3 , 不過步驟稍微複雜一些,本文將介紹如何透過 rustimport 套件,極度簡化介接 Python 與 Rust 的方法,讓開發 Python 擴充套件可以更快樂、簡便!

Posted on  Sep 18, 2023  in  Python 模組/套件推薦 , Python 程式設計 - 高階  by  Amo Chen  ‐ 4 min read

Search as a Service 搜尋即服務 - curiosity

不知道你有沒有這種困擾,經常要找 1 份資料時,只記得關鍵字,卻不知道它存在哪個地方,到底是 Slack? 還是 Google Workspace? 還是在 Gmail ? 這個痛點被 curiosity 給發現,並且提出解決

Posted on  Sep 16, 2023  by  Amo Chen  ‐ 1 min read

pgJQ - 讓你在 PostgreSQL 中使用 jq

pgJQ 是 1 個很有趣的開源專案,它實作了 1 個 PostgreSQL 的外掛(plugin),可以用 SQL 操作 jq 指令,例如: SELECT jq('[{"bar": "baz", "balance": 7.77, "active":false}]'::jsonb, '.[0].bar'); 會產生以下結果: jq ------- "baz" pgJQ 蠻適合應用在

Posted on  Sep 15, 2023  by  Amo Chen  ‐ 1 min read

電腦視覺(Computer Vision) Pipeline 架構教學

近年來很多電腦視覺處理的技術落地開枝散葉,例如手機的人臉辨識、自動駕駛都是電腦視覺處理領域的應用,但我想絕大多數的人應該工作都跟電腦視覺處理

Posted on  Sep 14, 2023  by  Amo Chen  ‐ 1 min read

Hatch - Python Project Manager 的新勢力

正當我以為 Poetry 會稱霸 Python Package Manager 的時候,才發現有 1 個 Package Manager 殺出重圍,那就是 Hatch ! 而且 Hatch 還不少專案、公司使用,這之中包含 FastAPI, Pydantic, Spark, tox, Uvicorn 等開源專案,以及 Anaconda, Databricks, Elastic, Google,

Posted on  Sep 13, 2023  by  Amo Chen  ‐ 1 min read