技術宅 (Tech Geek)

使用 youtube-dl / yt-dlp 下載 Youtube 最佳畫質與音質的影片

使用 youtube-dl / yt-dlp 下載 Youtube 最佳畫質與音質的影片

youtube-dl 是一個開源可以下載 Youtube 影片的工具,但是因為版權問題,導致專案被刪除。還好有神人將專案 fork 出來繼續維護,並將新專案名稱改成 yt-dlp 來延續,因此接下來的介紹會以 yt-dlp 為主。

閱讀更多
如何在 macOS 上使用 VS Code 連入 OrbStack Linux

如何在 macOS 上使用 VS Code 連入 OrbStack Linux

最近需要在 Ubuntu 環境下做一些開發測試,但是又不想大費周章安裝雙系統或是開一台伺服器。所以就想找找看在 macOS 上有沒有類似 Windows 上的 WSL 這種可以快速安裝啟動 Linux 環境的工具。因此發現了 OrbStack,專門為 macOS 打造的 Docker 和 Linux VM 管理工具。

閱讀更多
用 Visual Studio Code (VS Code) 快速上手 C/C++ 程式設計

用 Visual Studio Code (VS Code) 快速上手 C/C++ 程式設計

雖然因為各類高階語言的出現,經常出現 C/C++ 已經過時的說法,但根據 TIOBE 編程語言排行榜,C 語言和 C++ 仍然穩居前五名,顯示了在當前軟體開發領域中,C/C++ 依然具有重要地位。C/C++ 以其高效能和靈活性,廣泛應用於系統軟體、遊戲開發、嵌入式系統等領域。

閱讀更多
uv - 開啟 Python 專案最好的方式

uv - 開啟 Python 專案最好的方式

Python 由於其語法簡潔易讀好上手,因此經常用於數據分析以及機器學習領域。然而其版本間相容性問題及套件管理依賴問題經常造成開發者的困擾。 當前有許多工具試圖解決這些問題,例如 pipenv、poetry、conda 等等,而 uv 則是其中我認為最好的選擇。

閱讀更多
使用 Xpra 執行遠端伺服器上的 GUI 應用程式

使用 Xpra 執行遠端伺服器上的 GUI 應用程式

雖然 VNC 或 RDP 可以用來遠端存取 GUI 應用程式,但它們通常需要完整的桌面環境,消耗大量系統資源與頻寬,容易出現延遲與畫質不佳的問題。相比之下,Xpra 是一個更輕量級的解決方案,能讓你在遠端伺服器上執行單一 GUI 應用程式,並將畫面顯示在本地機器或瀏覽器中,無需整個桌面環境。

閱讀更多
書籤工具 Pocket 停止服務,遷移到自架 (Self-Hosted) 的稍後閱讀書籤服務 Wallabag

書籤工具 Pocket 停止服務,遷移到自架 (Self-Hosted) 的稍後閱讀書籤服務 Wallabag

再見 Pocket!迎接自架稍後閱讀的時代 Mozilla 最近 宣佈了一項令人意外的消息:從 2025 年 7 月 8 日起,將正式停止提供「Pocket」這款廣受歡迎的稍後閱讀服務。

閱讀更多
如何重置遠端 VSCode Server 中安裝的 extension?

如何重置遠端 VSCode Server 中安裝的 extension?

最近我重新整理了一下 VSCode 的 extension,把一些不常用的或是有更好的替代的移除更換。 然而這些整理都只會同步到本地端的 extension 設定中,已經在遠端伺服器中安裝好的,就必須要一個一個比對重新移除或更換。 就想說找找看有沒有可以重置的方法,畢竟 VSCode 是有提供一鍵將本地擴充套件安裝到遠端伺服器的功能,因此只需要把遠端伺服器的擴充套件刪除重新安裝就可以了。

閱讀更多
誒!原來 Git 還能這樣用!?

誒!原來 Git 還能這樣用!?

Git 除了常見的 git init、git clone、git add、git commit、git push 等指令外,還有許多不常見但非常實用的指令可以使用。 本篇就來分享我在程式開發過程中,有使用過但不經常使用的指令。然而,一旦用到,就會希望有個字典可以翻。那麼,這裡就是那個字典!

閱讀更多
如何調整 Linux 系統時區

如何調整 Linux 系統時區

最近透過 docker 編譯程式後,發現時間對不上,原來是時區沒有設定的問題。 本來想說時區設定應該滿容易的,沒想到因為 docker 設定時不會互動,所以用一般在 Ubuntu 上使用 timedatectl 設定的方法就會有問題。 因此記錄一下在一般伺服器中以及 docker 中為 Ubuntu 系統設定時區的方法。

閱讀更多
如何在 Windows 使用 WSL2 建立 Linux 開發環境

如何在 Windows 使用 WSL2 建立 Linux 開發環境

隨著微軟提供 WSL2,越來越多工作環境都轉移到 WSL2 下使用 Linux 進行開發,因此記錄一下純指令在 Windows 上安裝 WSL2 並且建立 Linux 開發環境的流程。 並且附上我習慣的預設設定讓 WSL2 更加好用。

閱讀更多
深入了解 C 語言的 printf 函數:格式化輸出技巧

深入了解 C 語言的 printf 函數:格式化輸出技巧

C 語言中的 printf 函數是一種非常強大的工具,用於在終端或其他輸出流中顯示格式化的文字。本文將詳細介紹如何使用 printf 進行高級格式化,特別是如何控制輸出的寬度和對齊。

閱讀更多
使用 OpenSSH 替沒有固定 IP 的本地主機 (WSL2) 建立反向 TCP 遠端通道 (Ngrok 免費替代)

使用 OpenSSH 替沒有固定 IP 的本地主機 (WSL2) 建立反向 TCP 遠端通道 (Ngrok 免費替代)

若我們希望將本地主機的服務,例如 ssh 伺服器供外部連線,但我們又沒有固定 IP 時,我們可以使用 OpenSSH 建立反向 TCP 遠端通道,讓外部主機可以透過這個通道連線到我們的本地主機。

閱讀更多
如何使用 pkg 將 Node.js 專案打包成可攜式執行檔

如何使用 pkg 將 Node.js 專案打包成可攜式執行檔

為了在沒有 Node.js 的環境中執行專案,我們可以使用 pkg 將專案打包成可攜式執行檔。 雖然 pkg 已經停止維護了,但是它仍然是一個很好用的工具,然而使用上有不少需要注意的地方,這篇文章將會介紹如何使用 pkg 將 Node.js 專案打包成可攜式執行檔。

閱讀更多
如何使用 Docker 在 Windows 上快速建立並還原自訂系統環境

如何使用 Docker 在 Windows 上快速建立並還原自訂系統環境

最近我遇到了一個需求,需要在 Windows 上安裝不同的軟體,之後又希望能迅速地將系統還原到原始狀態。雖然 Windows 內建的 Sandbox 功能能夠實現快速還原,但它無法讓我自訂那個“原始狀態”的具體內容。而傳統的虛擬機軟體如 VMWare 或 VirtualBox,雖然提供了客製化的靈活性,但還原過程卻相對耗時。這時,我想到了使用 Docker,因為 Docker 能夠讓我快速建立、刪除並還原到一個客製化的原始狀態。

閱讀更多
如何快速建置 Node.js 專案並使用 TypeScript 與 Visual Studio Code 進行開發

如何快速建置 Node.js 專案並使用 TypeScript 與 Visual Studio Code 進行開發

安裝 .NET CLI on Windows with Chocolatey choco install dotnetcore-sdk -y on macOS with Homebrew brew install dotnet-sdk on Ubuntu sudo apt-get install dotnet-sdk -y 使用 Will 保哥的專案範本建立一個新的 TypeScript 專案 安裝專案範本 dotnet new --install Duotify.Templates.DotNetNew 建立新的 TypeScript 專案 mkdir <project-folder> && cd <project-folder> dotnet new tsnode -c "<username>" npm install 啟動專案 按下 Ctrl+Shift+B 即可自動執行 npm start 命令

閱讀更多
如何在 Hugo 網站中加入 LikeCoin 讚賞鍵提升創作收入

如何在 Hugo 網站中加入 LikeCoin 讚賞鍵提升創作收入

因為我本身是 LikeCoin 支持者,也是推崇文章開源但內容有價的創作者。 因此希望即便從 WordPress 轉移至 Hugo,依然能夠使用 LikeCoin 作為連結我與讀者間的橋梁。 本文以 hugo v0.114.1 搭配 LoveIt 主題示範如何在文章中加入 LikeCoin 讚賞鍵。

閱讀更多
如何配置多個 git ssh keys 並依照專案動態切換 git config

如何配置多個 git ssh keys 並依照專案動態切換 git config

我有時候會在公司的電腦開發自己的專案,也會在家裡的電腦開發公司的專案,這時候就會遇到一個問題,就是公司的 Git 用的是公司的帳號,而自己的專案用的是自己的帳號,這時候就需要配置多個 Git SSH Key 並依照專案設置不同的 Git Config。

閱讀更多
使用 asdf 工具有效管理 Elixir、Erlang、Python 和 Node.js 等多種程式語言的版本

使用 asdf 工具有效管理 Elixir、Erlang、Python 和 Node.js 等多種程式語言的版本

在軟體開發領域中,維持團隊成員工具版本的一致性是非常關鍵的。這正是 asdf 版本管理工具發揮作用的時刻。 asdf 讓你能在一個文件( .tool-versions )裡面指定所有工具的版本,並且將該文件加入到 Git 倉庫中與團隊共享,這樣就能保證每個人都在使用相同版本的工具。

閱讀更多
為什麼 clone 下來的檔案不是正確的格式?認識 Git LFS

為什麼 clone 下來的檔案不是正確的格式?認識 Git LFS

最近遇到同事 git clone 一個專案,發現 clone 下來的壓縮檔居然是文字檔案!但我們在遠端看到的是壓縮檔,為什麼會這樣呢?原來是因為專案使用了 Git LFS,所以在 clone 時,只會 clone 下來指標檔案,而不是實際的大型檔案。這篇文章就來介紹一下 Git LFS。

閱讀更多
如何使用 GitHub Actions 自動建立並推送 Docker Image

如何使用 GitHub Actions 自動建立並推送 Docker Image

在我們先前的文章 中,我們學習了如何使用 buildx 來建立能在多平台運行的 Docker Image。然而,這種方法仍需要手動操作。為了讓我們能在 Hugo 有新版本更新時自動建立對應的 Docker Image,我們可以利用 GitHub Actions 來實現這個目標。

閱讀更多
使用 Docker buildx 建立多平台 Docker Image

使用 Docker buildx 建立多平台 Docker Image

最近我在建設我的網站時選擇了 Hugo 這款靜態網站生成器,並選用了 Blowfish 主題。然而,我面臨了一個挑戰:Blowfish 主題要求 Hugo 的版本至少為 v0.115.0,但官方在 Docker Hub 上推薦的版本僅更新到了 v0.111.3。經過一番搜索,未能找到合適的 Docker Image,於是我決定自行創建一個。

閱讀更多
Powershell 環境變數設定:自動化您的 Windows 設定

Powershell 環境變數設定:自動化您的 Windows 設定

在 Windows 中,手動設定環境變數通常需要通過系統的進階系統設定來進行,這個過程可能比較繁瑣。幸運的是,我們可以利用 Powershell 來實現自動化的環境變數設定。在本篇文章中,我將指導您如何使用 Powershell 來高效地設定和管理 Windows 的環境變數,從而簡化整個過程。這不僅節省時間,而且也提高了配置工作的效率。

閱讀更多
Sublime Text 3/4 高階設定與快捷鍵技巧

Sublime Text 3/4 高階設定與快捷鍵技巧

Sublime Text 3/4 是一款輕巧且功能強大的文本編輯器,專為多語言程式設計打造,提供豐富的語法高亮和易於安裝的插件。其設定檔案採用 JSON 格式,便於用戶進行個性化調整。在這篇文章中,我將詳細介紹 Sublime Text 3/4 的核心設定和實用指令,幫助您提升編碼效率。

閱讀更多
使用 Chocolatey 快速安裝和管理 Windows 軟體

使用 Chocolatey 快速安裝和管理 Windows 軟體

作為一名熟悉 Linux 或 MacOS 的用戶,我們習慣於使用命令列工具來管理軟體。長久以來,Windows 缺少了這樣的工具,直到 Chocolatey 的出現。Chocolatey 為 Windows 帶來了類似 Linux 中的 apt-get、yum、dnf 或 MacOS 的 homebrew 的命令列軟體管理功能。它的出現極大地簡化了軟體安裝過程。以往,重裝系統後需要逐一在 Google 上搜尋、下載和安裝所需軟體,但現在,只需一個腳本文件,就能自動完成所有軟體的安裝。這樣的轉變,不僅節省了時間,也大大提升了使用者體驗,讓軟體管理變得前所未有的簡單與高效。

閱讀更多
ImageMagick:圖片處理的神奇工具

ImageMagick:圖片處理的神奇工具

ImageMagick 是一款開源的圖片處理工具,提供了豐富的功能來處理圖片大小、格式和色彩等。此外,它還配備了命令列工具,方便用戶進行批次處理圖片。本篇文章將記錄一些在日常工作中常用的圖片處理指令。

閱讀更多
壓縮大師:使用 7-Zip 輕鬆個別壓縮多個資料夾

壓縮大師:使用 7-Zip 輕鬆個別壓縮多個資料夾

7-Zip 是一款開源的壓縮軟件,支持包括 7z、XZ、BZIP2、GZIP、TAR、ZIP、WIM 等多種壓縮格式。它提供了圖形用戶界面和右鍵選單,但並未直接提供將多個資料夾分別壓縮成各自檔案的功能。在本篇文章中,我將介紹如何利用批次檔來實現將多個資料夾個別壓縮成對應的壓縮檔案的方法。

閱讀更多
高效影音處理:用 FFmpeg 輕鬆轉換、合併及提取影片

高效影音處理:用 FFmpeg 輕鬆轉換、合併及提取影片

FFmpeg 是一款功能強大的開源影音處理工具,廣泛用於影片格式轉換、擷取影片中的聲音檔、添加字幕、擷取特定片段,以及進行批次處理等。考慮到其多功能性,我將經常使用的指令和用法記錄下來,以便於日後查詢和使用。

閱讀更多
如何解決 git ssh key permission denied (publickey) 的錯誤

如何解決 git ssh key permission denied (publickey) 的錯誤

最近在設定 git ssh-key 時發生了 Permission denied (publickey) 的問題。雖然網路上有很多相關的解決方案,但是都沒有解決我的問題。因此在這邊紀錄一下我遇到的問題及解決方案。 已經確認 .ssh 資料夾裡面已經有 key 了,也在 GitHub 上正確設定了,在其他電腦運作都沒問題。但是在這台電腦上卻一直出現 Permission denied (publickey) 的錯誤。

閱讀更多