The Will Will Web

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

理解 Symbolic Link、Hard Link 與 Directory Junction 的差異之處

我經常利用不同的連結(Link)來管理檔案和目錄,以確保系統的設定隨時可以透過雲端硬碟同步與備份,相當便利。在 Windows 系統中有三種不同的連結方式,分別是 符號連結(Symbolic Link)、硬連結(Hard Link)和目錄聯接(Directory Junction)。這三種連結方式各有其特性用途,所以我打算針對這三種連結方式進行比較,幫助大家更好地理解它們之間的差異。

... 繼續閱讀 ...

如何讓 Python 程式正確的處理 UTF-8 字元編碼

最近在嘗試微軟最近推出的 MarkItDown 工具,它使用 Python 開發,可用於將各種文件檔案轉換為 Markdown 格式,支援的文件格式也非常多,這在 AI 盛行的時代是非常有用的。因為文件換為 Markdown 格式之後,可以讓大語言模型進行分析。不過我在 PowerShell 底下使用的時候,沒有意外的又出意外了,因為它無法正確的處理 UTF-8 字元的輸入輸出,所以只要遇到中文就掛掉,真的很煩,這種問題都不知道處理幾次了。這篇文章我打算來介紹如何讓 Python 程式正確的處理 UTF-8 字元。

... 繼續閱讀 ...

GitHub Copilot 錦囊妙計:定義 Git 提交訊息產生的自訂指令

在 VS Code 的「原始碼控制」窗格中,不僅僅可以用來做 Git 版控,你還能利用 GitHub Copilot 來產生即將 Commit 的程式碼變更的提交訊息,透過 AI 幫你自動撰寫 Git 的 Log 內容。事實上,在新版的 GitHub Copilot 中,你可以透過定義「自訂指令」(Custom instructions) 來「提示」GitHub Copilot 要如何產生 Log 訊息內容,你可以自己定義擁有團隊共識或大家希望的 Commit Log 風格,例如可以套用 Conventional Commits 風格等等。這篇文章我就來說說怎麼做!👍

... 繼續閱讀 ...

如何變更 SQL Server 的系統資料庫定序以避免暫存資料庫的定序衝突

我們上周公司啟動了一個新專案,我們工程師拿到客戶的資料庫之後,發現客戶提供的預存程序無法順利執行,發生了資料庫定序 (collation) 的衝突問題。我們負責的工程師由於是第一次遇到這個狀況,所以鬼打牆了一段時間,因為我上周都在備課,所以我跟他講:「你直接移除重裝 SQL Server 並明確指定定序會比較快,我現在沒時間跟你講太多技術細節。」今天這篇文章我打算來說說這個問題背後的技術細節。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

聰明的使用 ChatGPT 搜尋功能幫助你解決每日大小事

我們都知道 ChatGPT 在問答的過程中,不時會有「幻覺」的問題,也就是當 ChatGPT 在回答問題的時候,經常表現的自己很懂,但又常常被發現他其實是在胡說八道的狀況。最近 ChatGPT 正式推出了「搜尋」功能,我們終於可以讓 ChatGPT 基於「搜尋結果」來回答問題,如此一來不但可以避免 ChatGPT 的幻覺問題,也可以讓 ChatGPT 回答的更加準確。今天這篇文章,我打算來分享幾個使用 ChatGPT Search 的應用技巧,這也是我在 ChatGPT 錦囊妙計:掌握九大應用場景的創意用法 課程中跟學員分享的其中一個技巧。

... 繼續閱讀 ...

如何利用 Google AI Studio 整理 Whisper 生成的字幕與修正大量錯字

因為我所開辦的課程都會全程錄影,好讓學員可以複習課程內容,最近幾次的課程我還開始幫影片上字幕,讓大家在複習的時候,更能夠理解我在課程中提到的一些偏技術的「專有名詞」。有些不住在臺灣的學員,也有可能會聽不懂臺灣這邊經常聽到的時事口頭禪,我時常會在課程中講一些「時事梗」來活絡氣氛,但是有些學員可能會聽不太懂,這些字幕就是為了讓大家更容易理解課程內容與笑點。我幾乎都是利用超大上下文視窗(context window)的 Google AI Studio 來幫我校正 Whisper 產生的字幕,這篇文章我就來教大家這個技巧。

... 繼續閱讀 ...

如何在 Docker 執行 Playwright 自動化測試腳本

上周微軟的 Playwright 團隊推出了 v1.48 版本,我的 實戰 E2E 測試:使用 Playwright 測試框架 課程有位學員在我們的 Discord 課程專屬頻道中反應,說他沒辦法成功執行 Playwright 腳本,請我幫忙看看。因為要執行學員的程式,而我通常不喜歡在本機執行程式 (安全考量),所以我就藉此玩了一下 Playwright 新版的 Docker 容器,順手寫了份筆記給大家參考。

... 繼續閱讀 ...

如何用 Docker 搭配 NVIDIA CUDA 執行 OpenAI Whisper 的最新 turbo 模型

前幾天 OpenAI 悄悄的發佈了 Whisper 的最新 turbo 模型,這是一個多國語言的模型 (Multilingual model),而且這個 turbo 模型是 large-v3 模型的優化版本,提供更快的轉錄速度,但準確性卻只有輕微下降,整體參數數量只比 medium 模型稍微大一點點而已。我特別為此打造了一個可以利用 NVIDIA 的 CUDA 加速執行的 Docker 映像檔,讓大家可以輕鬆的在自己的電腦上執行這個模型。

... 繼續閱讀 ...