Interface 與 Type 在 TypeScript 中的差異

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

讓按鈕在移動設備上更大一些

Tailwind CSS 的作者 Adam Wathan 在 Build UIs that don't suck 系列中又分享了一個很實用的小技巧。作者提到網頁中的一些按鈕設計,在桌面設備上可能會小一點以求美觀與符合頁面設計,對於可以精準點擊的滑鼠游標...

在 Laravel 中實作密碼金鑰登入

這篇文章接續我的上一篇文章 — 實作密碼金鑰登入的筆記。建議先閱讀完上一篇文章了解密碼金鑰的基本概念與專有名詞後,再來閱讀本篇文章,相信你會更好的理解文章中的實作內容 😊。接下來會一步一步的說明如何在 Lar...

實作密碼金鑰登入的筆記

前陣子為了幫自己的部落格加入密碼金鑰登入的功能,花了一些時間去了解密碼金鑰背後的運作原理。趁著自己還記憶猶新的時候,我想寫一篇文章記錄一下這次學到的密碼金鑰概念,主要是針對專有名詞與驗證流程進行說明。...

在 Tailwind CSS 中使用 CSS 變數來設定邊框圓角

Tailwind CSS 的作者 Adam Wathan 最近宣布要製作一系列短影片 - Build UIs that don't suck,來分享一些使用 Tailwind CSS 的小技巧。他提到這些技巧他已經使用了許多年,在開發許多 UI 組件時也很常利用這些...

在 Docker 中掛載單一檔案所遇到的問題

前幾天前輩來找我討論一個奇怪的問題,他說他在 Docker 容器中掛載單一檔案時,會遇到檔案同步效果時有時無的情況。他嘗試在啟動容器時掛載單一檔案,然後發現在主機上修改檔案的內容後,有時候修改的內容並不會同步...

使用 TypeScript 開發自己的套件

最近用 TypeScript 寫了一個簡單的前端套件並發佈到 NPM 上,套件功能是幫 highlight.js 加上對 Laravel Blade 樣板語法的支援。雖然這個功能已經有人幫忙寫了套件,但是我發現這些套件在部分語法上都有缺失,也長年...

期待已久的新功能,簡單介紹 Svelte 的 Class Attributes

如果你跟我一樣是 Tailwind CSS 的愛好者,或是喜歡使用 Utility First 的 CSS 框架,那麼 Svelte 5.16 的新功能「Class Attributes」一定會讓你感到興奮。透過這個新功能,我們能更輕鬆的根據不同條件來動態調整樣...

在 AWS Lambda 中使用 SQLite 資料庫

前陣子讀到一篇很有意思的文章。文章大意是說,你完全可以考慮在個人網站上使用 SQLite 當做資料庫。其實 SQLite 官方網站有提到,對於中小型網站來說,以 SQLite 當做資料庫絕對是綽綽有餘的。這讓我不禁開始思考,...

找出 Linux 上佔用大量硬碟空間的檔案

前幾天我們在 Grafana 上發現某台 VM (Virtual Machine) 的硬碟使用率在短時間內迅速飆高。為了找出原因,我們分別使用 df 與 du 指令,成功在 VM 中找到是什麼檔案佔據了大量的硬碟空間。雖然找出原因的過程並不困...