使用 GROUP BY 優化 AWS Athena 查詢

分享一個最近使用 AWS Athena 進行大型資料集查詢時所用到的 SQL 查詢優化小技巧。AWS Athena 是一個無伺服器的互動式查詢服務,讓使用者可以透過標準 SQL 語法直接分析儲存在 Amazon S3 中的資料,無需預先配置或管...

使用 Fluent Bit 將 Docker 日誌傳送至 S3 上儲存

我們公司內部有些服務是使用 Docker 容器運行的。前陣子我們想要把容器運行的日誌(Log)上傳到雲端中儲存,所以我開始尋找有哪些方式可以達到這個目的。幸好 Docker 本身就支援多種日誌驅動程式,所以要將日誌上傳...

使用 PHP 來寫瀏覽器測試吧!

熱門測試框架 Pest 的作者 Nuno 大大,在今年的 Laracon US 上正式發表了 Pest 4。這次的大版本更新同樣帶來了許多亮點,其中最受矚目的就是整合了流行的 e2e(End-to-End)測試框架 Playwright。所以!現在你也能直...

提交一個 PR 到 Inertia.js

最近開始在惡補過去的年度目標,也就是用 Inertia.js 搭配 Svelte 與 Laravel 來寫個 SPA 網站。不得不說不用寫 API,而且前端與後端都能使用自己喜歡的技術,在開發上真的是一件很讓人愉快的事情,。來說說前幾週向...

在 Inertia.js 中防止用戶登出後返回敏感頁面

最近開始在用 Inertia.js 搭配 Laravel 與 Svelte 寫網頁。不用不知道,一用嚇一跳,有了 Inertia.js 當做前後端的粘合劑,我除了不用寫 API 以外,還可以在前後端都使用自己喜歡具工具,開發起來真的非常舒服。不過...

Revert 合併後的修改提交

在工作上與別人合作寫程式的時候,基於保險與禮貌,我們不能隨隨便便 Reset 別人的提交,而是應該使用 Revert 產生一個新的提交來撤銷原本的修改。Revert 的指令相單簡單,不過如果你是想要 Revert 一個已經合併後的...

使用 HTML Sanitizer 來過濾不安全的 HTML 內容

只要網站有能讓使用者輸入文字的地方,例如常見的所見即所得(WYSIWYG)編輯器,就需要設定一個機制來過濾掉不安全的 HTML 內容以避免 XSS(Cross-site scripting)攻擊。因為我的部落格一開始是以面向所有人的論壇...

觸發互動視窗的 CSS 轉場動畫

之前因為好玩,還有想在部落格上看程式碼可以舒服點,所以自己寫了一個簡單的互動視窗(Modal),用來放大文章中的程式碼區塊。雖然功能一切正常,但我還是會嘗試去改善互動視窗的程式碼。前幾天改了一個版本,讓互...

分享前輩的 Terraform Debug 小技巧

前幾天 Azure 又害我加班了,一怒之下,我決定寫一篇文章宣洩情緒外加紀錄這次前輩教我的 Terraform Debug 小技巧。事情是這樣的,我使用 Terraform 部署一個 Azure 的 Role Assignment 資源時:# 假範例一枚 resour...

Interface 與 Type 在 TypeScript 中的差異

在 TypeScript 中,你可以用 interface 和 type 這兩個關鍵字,來定義一個自己的類別。interface Person { name: string; age: number; } const person: Person = { name: "John", age: 30, };有趣的是,除...