The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何使用 Google 的 OAuth 2.0 與 Gmail 的 REST API 發信

前陣子在企業授課 OAuth 2.0 的時候,我原本想現場示範走 Google 的 OAuth 2.0 流程,並且在取得 Access Token 之後怎樣透過原始的 REST API 發信。原本以為這是個很簡單的任務,誰知道膝蓋中了一箭,拿 Token 都很簡單,唯讀「發信」的困難度超出了我的想像,原因無他,就是 Google 的參考文件實在是寫太爛了。這篇文章我打算跟大家說個官方文件沒寫的資訊,教大家怎樣順利透過 Gmail API 發出郵件。

... 繼續閱讀 ...

《先整理一下?個人層面的軟體設計考量》讀後心得分享

最近看了一本書 Tidy First?: A Personal Exercise in Empirical Software Design,作者是令人景仰的 Kent Beck 大神,他是一位擁有 Wikipedia 頁面的人物,也是美國著名的軟體工程師和作家,在軟體工程領域有著深遠的影響力。這本書整理了 32 個「整理程式碼」的心法,他並不是一本強調 Clean Code 或 Refactoring 的技巧,而是一些更細微的、個人層面的軟體設計考量,這些技巧都是作者在多年軟體開發經驗中的心得,也是他在日常開發中的一些習慣,我真的越看越亢奮,因為很多內容其實也跟我二十多年的開發經驗相吻合,有種為什麼不早點看到這本書的感覺,我特別整理了這本書的讀後心得,希望大家可以從中獲益。這本書在台灣已有翻譯書,名為 先整理一下?|個人層面的軟體設計考量,大家有興趣也可以買來看看。

... 繼續閱讀 ...

ASP.NET Core MVC 的 Razor 語法對於 @ 符號的編碼陷阱

前幾天我們公司有個網站準備上一個新版,工程師發出 PR (Pull request) 之後請我進行程式碼審核(Code Review),結果我發現他本次的修正項目不太合理,他改了一個前端套件的資料夾名稱。我當下覺得不妙,一個已經測試數月,也準備上線的網站,怎麼還會在最後一刻修改資料夾名稱呢?我反問工程師為什麼要改這些地方時,卻得到一個我不是很滿意的回答,因此退件請他重改。這不是一個什麼嚴重的技術問題,改改資料夾名稱就正常了,但是卻又激起我追根究底的柯南精神,真相只有一個,我要找出來!🕵️‍♂️

... 繼續閱讀 ...

如何在 Windows 作業系統打造 Rust 開發環境

我最近的課程因為都開始改用 Discord 來當成學員之間的互動介面,為了實現自動審核加入課程的學員,我們用 Rust 撰寫了一支程式來處理這個審核作業,並將程式跑在容器中,部署到 Azure App Service 上面執行。效能好就不用說了,主要是啟動速度快,記憶體使用量也很低,但唯一的缺點就是「可讀性」真的很差,主要是一個相對陌生的程式語言,但我今天在改功能的時候,用 GitHub Copilot 輔助我瞭解程式語法與結構,也用它來幫我完成一些任務,想不到非常順利。今天這篇文章,我打算來介紹如何在 Windows 作業系統上打造 Rust 開發環境,並透過 Visual Studio Code 來開發 Rust 程式。

... 繼續閱讀 ...

當購買 Zoom Meetings 的 1,000 個與會者授權應該如何正確啟用

我今天舉辦了一場 最強大的 AI 搜尋引擎:Felo Search PRO 直播活動,由於報名人數超過 1,000 人,我還特別升級了我的 Zoom Meetings 方案到 1,000 個與會者授權,但是今天的 Zoom 會議室最多就只有 500 人能加入,那我不是白買了嗎?活動結束後我立刻 Contact Support 發了個支援請求,這才理解 Zoom 的授權架構。今天這邊文章我打算記錄一下這些細節,因為很難得有購買 1,000 個與會者授權的經驗。

... 繼續閱讀 ...

揭開職場溝通的真相:為什麼我們不敢承認自己不懂?

我們公司下個月有一場技術分享會,負責分享的同仁昨天下午來找我討論分享的內容,我們聊了一個小時左右,討論的過程中我也學到很多寶貴的知識,也跟他分享了許多技術分享的要點。但我這篇文章主要想談談我們在討論過程發生的一段小插曲,就是我問他:「為什麼當你被問到自己不太熟悉的知識時,不願意在第一時間承認你其實不太瞭解呢?」這是個相當有趣的主題,讓我們繼續看下去。

... 繼續閱讀 ...

臉書帳號被盜怎麼辦?分享我的 16 小時帳號復原經驗!

昨天 (2023/11/20) 晚上 8:19 我經歷了一場歷時 16 小時的驚魂記,因為我的臉書 (Facebook) 帳號被盜了!我之前已經將 Facebook 所有的安全保護機制全部都啟用且設定過,二階段驗證也有啟用,但帳號是還是被盜了,這還是讓我覺得不可思議。還好就在剛剛我經成功把帳號救回來了,所以我想分享一下我這 16 小時的親身經歷,希望能幫助到有遇到同樣問題的人。

... 繼續閱讀 ...

批次將所有 Java 原始碼檔案快速轉成 UTF-8 編碼的方法

最近公司接到一個老舊 Java 專案的升級改版案,由於原始碼全部都採用 Big5 編碼,導致在 Visual Studio Code 裡面無法成功編譯,雖然看了 Troubleshooting Guide for Encoding Issues 文件,也成功研究出維持 Big5 編碼也能持續開發的解決方案,但其實最好的解決方法,還是把所有 Java 原始碼變更為 UTF-8 才是王道。今天我就來分享幾個不同的方法,幫助你快速將專案的所有原始碼從 Big5 轉換成 UTF-8 字集編碼!

... 繼續閱讀 ...

如何做好一份優質的技術分享會簡報 (使用 PowerPoint 製作)

我們公司經常在內部舉辦技術分享會,讓同仁之間有個技術交流的空間,把日常工作學習到的知識進行一些整理,可以幫助其他人更快的學會一門技術,或是掌握一個不容易輕鬆掌握的觀念。每位同仁所製作的簡報,我幾乎都會從頭到尾看過,而且都會對簡報內容進行回饋或修改,我發現許多人在做簡報的時候經常會忽略掉一些細節,導致簡報品質低落。這篇文章我打算好好的來整理一下製作技術簡報該注意的兩三事。

... 繼續閱讀 ...