Recent posts
All postsvLLM + Gemma 4 + LoRA:我踩過的兩個坑
最近在部署 Gemma 4 E4B + LoRA adapter 時,我連踩了兩個坑。第一個是 vLLM 版本本身還沒支援 Gemma 4 的 runtime LoRA;第二個是 升版後又碰到 CUDA wheel 與環境不相容。這篇記錄下來,給之後的自己少走一點冤枉路。
MicroK8s 完整部署指南:從安裝到生產級應用
在最近專題開發的過程中,我反覆安裝與測試了多次 MicroK8s,期間踩了不少坑,也累積了許多實戰經驗。因此,我決定整理這篇 Blog,讓自己以後部署時可以有一份可直接複製使用的指令手冊,也幫助正在學習 Kubernetes 的朋友少走一些彎路。 本文是基於 MicroK8s 官方文件、Helm、Argo CD Image Updater 等官方說明整合的安裝流程,並修正...
Nuitka 與 Docker 打造高效能且安全的 Python 應用部署方案
前言 在現代軟體開發中,Python 應用的部署一直面臨著多重挑戰:程式碼安全性、執行效能、以及部署複雜度。傳統的解決方案如 PyInstaller 雖然廣泛使用,但在設定複雜度和效能方面仍有不足。 本文將深入探討 Nuitka 編譯器與 Docker 容器化技術的結合,這個創新方案不僅能有效保護程式碼,更能在容器環境中實現驚人的效能提升和部署優化。
資料結構-複雜度計算
前情提 在準備研究所面試與專題報告時,演算法分析 往往是必考重點。本文彙整了從最基礎的漸進符號定義($O,\,\Omega,\,\Theta,\,o,\,\omega$)到空間複雜度、遞迴關係、以及Master 定理與其擴展版本的精華內容,並搭配典型範例與 C/C++ 實作要點,助你快速掌握: 1. 各種 Asymptotic Notation 的嚴謹定義與相互關係 2....
使用 Git Worktree 提高開發效率與維持線性 Commit Log
使用 Git Worktree 提高開發效率與維持線性 Commit Log 最近在專案開發中,我發現自己經常遇到這些問題: 修 Bug 時要來回切換分支,結果 stash 來 stash 去,不小心還搞丟了一些變更。 切換分支之後還要等一堆 npm install 或是 docker-compose up,光是環境準備就花掉大半時間。 git log 變得又亂又複雜,充...
LazyVim 設定過程筆記
LazyVim 和 Oh My Tmux 設定過程 我嘗試了一些方式安裝 Neovim,大部分找到的都偏複雜, 後來我覺得直接用 LazyVim 安裝最快了,然後搭配 tmux 感覺就是工作效率翻倍, 但是我覺得還是要熟悉 Vim 才會有這樣的感覺,然後搭配著 Tmux 的功能讓頁面可以快速切換, 總體來說我覺得這樣的搭配也算好用。
作業系統-死結管理
前情提要 這篇文章主要探討了 死結管理(Deadlock Management) 的核心概念與解決方法。今天的內容涵蓋了死結的定義、發生條件,以及處理死結的不同方法,包括 預防(Prevention)、避免(Avoidance) 和 檢測與恢復(Detection and Recovery)。此外,還詳細介紹了 Banker’s Algorithm 和 資源分配圖(Res...
作業系統-競爭條件與同步
前情提要 這篇文章深入探討了 競爭條件(Race Condition) 與 同步(Synchronization) 在操作系統進程管理中的核心概念。從基本的臨界區問題(Critical-Section Problem)出發,逐步介紹了解決該問題的各種方法,包括硬體支持(如 Test-and-Set 和 Compare-and-Swap)、軟體解法(如 Peterson's...
ISO27001 第四至第六章 - 組織全景、領導與規劃
前情提要 這篇文章主要整理了 ISO 27001 標準中第四至第六章的內容,涵蓋了組織全景、領導與規劃三大主題。今天的重點包括如何了解內外部情境、關注方需求與期望,以及確定資訊安全管理系統(ISMS)的範圍;同時也深入探討了高層管理階層在資訊安全中的角色與承諾,並說明了風險評鑒與目標規劃的具體步驟,這些內容為組織建立有效的 ISMS 提供了全面的指引。
K8s 中的 Pod 是什麼
前情提要 這篇文章詳細介紹了 Kubernetes(K8s) 中的核心概念之一 —— Pod,包括它的定義、生命週期、資源管理與限制,以及相關操作指令。Pod 是 K8s 中創建和管理的最小單位,文章重點說明了 Pod 的組成、運行邏輯,以及如何在 K8s 中部署應用程式。同時還提供了配置 Pod 資源限制的範例 YAML 文件與實操步驟,並總結了一些常用的 kubect...
DOMjudge 安裝指南
簡介 DOMjudge 是一個開源的程式設計競賽管理系統,通常用於各類程式設計競賽,例如 ACM ICPC。本篇文章將介紹如何透過自動化 Shell 腳本來在 Ubuntu 系統上安裝 DOMjudge 競賽系統。我們會逐步解釋每個步驟,幫助讀者了解整個過程的每一個細節。
RESTful 和 API 關係介紹
前情提要 這篇文章主要介紹了 API 與 RESTful 架構 的概念,探討了 API 的基本原理、客戶端與資源的角色,以及如何利用 RESTful 架構設計高效且易於擴展的 API。文中詳細說明了 REST 的架構風格(如統一介面、無狀態、分層架構等),並且闡述了 RESTful API 的運作方式及其優勢,例如可擴展性、靈活性和獨立性。此外,文章還提供了 URI 設計...
Python 程式碼風格指南
前情提要 PEP8 是在撰寫 Python 中的一些寫作規範標準,也就是說不遵照也不會出錯誤,那我也很常在想到底怎麼樣寫才是對的,然後看書看一看然後想說我都沒有看過 Python PEP8 相關的規定,我就突然跑去官方網站開始看,因為我想說看了也會對之後要寫專案的時候比較有幫助,所以就順便寫下了這邊篇 Blog。
資料結構-Queue篇-1
前情提要 這篇文章是資料結構系列的第三篇,主要探討 Queue(佇列) 的定義、抽象資料型別(ADT)、以及不同的實作方式。今天的內容包括 線性隊列 的問題與解決方法、 環形隊列(Circular Queue) 的兩種實現,以及 鏈結串列實作的 Queue。文章還透過具體的範例程式碼展示了如何操作隊列中的新增(enqueue)和刪除(dequeue),幫助讀者更深入地理解...
Windows 10 L2TP VPN 連線錯誤
前情提要 今天在補習班的時候,突然有同事說 VPN 連線失敗,我想說慘了是不是真的掛掉了 Radius 還是 Cisco Router 上的設定有問題,然後我試了一下我的帳號可以,那麼我就開始排除錯誤,還好問題不大。
簡單認識 LDAP:讓網路認證更輕量
LDAP 的起源 你可能聽過 LDAP 這個詞,但它到底是什麼?讓我們從頭說起。LDAP 的前身是 X.500 Directory Service,這是一個在應用層運行的複雜協定。由於 X.500 的封包大小會隨著資料量的不同而變化,因此管理起來有些麻煩。為了解決這個問題,LDAP 應運而生,它是一個更輕量的版本,只有一個簡單的協定定義,因此在運作上更為靈活。
資料結構-Stack篇-1
前情提要 這篇文章是資料結構系列的第一篇,主要聚焦於 Stack 的基本概念、應用範圍以及其實現方式。透過深入介紹 Stack 的運作原理、應用場景以及程式實作,本篇內容適合初學者快速掌握 Stack 的核心知識,也為後續進階的資料結構學習奠定基礎。 文章中包含了 Stack 的定義與特性、應用範疇(如括號匹配、DFS、算術表達式轉換等)、以及用陣列與鏈結串列實作 Sta...
在 Windows 上正確設定 OpenSSH Server 和 Guacamole SFTP
前情提要 我最近有遇到一個問題就是我 Windows 10 要使用 share devices 然後給外包廠商上傳檔案在 Guacamole 那麼我知道 Guacamole 有 SFTP 的服務可以串接讓外包廠商上傳檔案,但是中間一直連線失敗有點弄到快爆氣哈哈哈...,但是後面發現滿蠢的哈哈哈哈,廢話不多說開始吧。
資料結構-二元樹篇-1
前情提要 這篇文章是資料結構系列的第二篇,主要討論 Binary Tree(二元樹) 的基礎概念與相關理論。今天整理了 Binary Tree 的定義、基本性質、常見類型,以及一些重要的數學性質與推導,像是節點數、樹的高度等。此外,也介紹了二元樹的實現方式(陣列與鏈結串列)和走訪方法,並分享了一些經典範例題的解法,希望幫助讀者快速掌握二元樹的核心知識。
資料結構-樹篇
Tree 討論 最近因為在補習班上資料結構,所以想說寫一下 blog 有參考幾本 bible 分別有 clrs、 horowitz 這兩本書來撰寫這篇 blog,內容可能跟 horowitz 的內容比較接近,因為 clrs 這本還是 algo 說的比較多哈哈哈。
Direct Image 的性質與應用
前言 在集合論中,直接像(Direct Image)是函數在兩個集合之間映射時所產生的一個重要概念。它描述了如何從一個集合 $A$ 的子集經過函數映射到另一個集合 $B$ 的子集中。本篇文章將探討直接像的定義與性質,並說明其在數學中的應用。
Uva 刷題紀錄 08/21
前情提要 這篇文章記錄了在 UVA Online Judge 刷題的過程,挑戰了兩個不同類型的題目,分別是 227 - Puzzle 與 1586 - Molar mass。 [227 - Puzzle] 這是一道模擬操作的題目,目標是在 5x5 的字串陣列中移動空白格,根據指令 (A 上移、B 下移、L 左移、R 右移) 更新陣列的配置。挑戰在於處理輸入格式和確保操作合...
virtual-judge 刷題紀錄 08/21
前情提要 這篇文章是關於 Virtual Judge 刷題的紀錄,主要記錄了解題的過程和心得。在 08/21 的刷題中,挑選了 P2249 這道題目,並使用了經典的 二分搜尋法 (Binary Search) 來解題。文章會分享解題的邏輯、程式碼,以及一些關於該題的細節,幫助讀者了解如何高效地透過二分搜尋法解決問題。 題目要求我們在一個排序的數列中,尋找某些目標數字的首次...
使用 Docker 部署 Django:結合 uWSGI 和 Nginx 提升效能
前情提要 在部署 Django 專案時,雖然可以使用 python manage.py runserver 指令來啟動伺服器,但這樣的做法在處理靜態檔案時效能不佳,尤其是在面對大量訪問時,效能瓶頸會更加明顯。實務上,我們常使用反向代理(reverse proxy)來提升效能,並避免直接使用 Django 的開發伺服器。Nginx 作為反向代理,不僅可以處理靜態檔案,還能分...
Uva 刷題紀錄 08/16
前情提要 這篇文章記錄了我今天在 UVA Online Judge 的刷題過程,挑戰了兩道題目,分別是與邏輯判斷相關的題目和簡單的輸入輸出處理題。透過這些題目,練習了模擬操作與字串處理的技巧,以下是解題紀錄與程式碼實現。 解題程式 題目連結 340 這題題目的意思就是我要到 0 就代表了要結束輸入,也就是程式要結束,然後如果 guess[0] 因為他有說範圍 19 所以 ...
利用 vscode profile 分開不同開發環境的 vscode extension
前情提要 因為有個困擾就是,我常常因為要切不同框架撰寫前後端,所以有時候用的 vscode extension 都會不同,這個問提困擾我很舊,因為每次打開 vscode 就很久,直到有天我發現可以使用 vscode profile 去切割不同的開發環境所需要的 extension,從此我的 vscode 開啟速比以前為管理前快多了...。 我的習慣是我 Default p...
codeforces 刷題紀錄 08/15
前情提要 這篇文章記錄了我今天在 Codeforces 上刷題的過程,挑戰了兩道不同類型的題目:一題與深度優先搜尋 (DFS) 有關,另一題是簡單的矩陣處理與輸出問題。在這兩題中,我練習了圖論遍歷的技巧以及對多維陣列的操作,希望藉由這些題目進一步提升解題的效率與思路!
virtual-judge 刷題紀錄 08/15
這篇文章紀錄了 Virtual Judge 在 08/15 的刷題心得,挑戰了題目 HDU-1232,並使用 深度優先搜尋 (DFS) 解決問題。本題的核心在於判斷一個圖是否為連通圖,並計算需要新增的邊數來使其變成完全連通的圖。 解題程式 題目連結 HDU-1232 我的想法是 dfs 走過的所有點的連通分量加總就可以知道是不是連通圖了,再減去 1 是為了題目所要的描述,...
刷題紀錄 leetcode-3106
解題程式 題目連結 我的想法是,既然他說,要有 cyclic 這個字眼了所以我當然需要判斷哪個距離比較小 minimum distance 題目也有說到,所以我就要把 abs(s[i] - newchar)、26 - abs(s[i] - newchar)兩個方向的距離都算出來,在判斷有沒有 小於等於,然後就把 k 每次更新就是把 k-=dist,並且把 t 也更新,最後...
快速上手 Vim 快捷鍵
使用 VIM 的好處 VIM 是一款非常強大的文本編輯器,特別受到開發者的喜愛。這篇文章將重點介紹 VIM 的快捷鍵及其優點: 效率高:VIM 的鍵盤操作設計,使得在不需要移動手指離開鍵盤的情況下,可以快速進行文本編輯,極大地提高了生產力。 個人習慣:我最近開始練習演算法,加上之前參加過技能競賽(資網職種),已經習慣使用 VIM。 功能強大:VIM 是一個輕量級的編輯器,...
快速使用 Hexo 搭配 Google Analytics (GA)
Google Analytics 簡介 Google Analytics (GA) 網路分析工具,主要用於追蹤和報告網站流量。透過詳細的資料和洞察力,GA 幫助網站擁有者優化網站性能和使用者體驗。以下是其主要功能: 1. 訪客追蹤:追蹤訪客來源、在站點的停留時間及瀏覽頁面。 2. 流量來源分析:報告顯示訪客來自何處,包括搜尋引擎、社交媒體平台或其他外部連結。 3. 行為洞...
快入使用 Hexo 建置自己的 Blog
關於 Hexo 的思考 我長時間以來一直在尋找適合我的文章編輯軟體,並嘗試了多種工具,包括: Notion:功能強大且多樣,但我感覺它更適合管理和協作,而非專注於純粹的寫作。 HackMD:針對 Markdown 編輯的工具,非常適合協作,但在個人寫作方面稍顯不足。 Jekyll:雖然強大且靈活,但需要一定的技術基礎,對於想要快速進行寫作的人來說,門檻較高。 近期,我發現...