Recent posts
All posts0/1 背包問題
My vault 演算法筆記:0/1 背包問題。
AVL 樹:平衡條件與旋轉
My vault 資料結構筆記:AVL 樹:平衡條件與旋轉。
Graph Connectivity
My vault 演算法筆記:Graph Connectivity。
Hashing
My vault 資料結構筆記:Hashing。
K-means Clustering
My vault 演算法筆記:K-means Clustering。
LCS vs. Minimum Edit Distance
My vault 演算法筆記:LCS vs. Minimum Edit Distance。
Linear Search and Binary Search
My vault 資料結構筆記:Linear Search and Binary Search。
Matrix-chain Multiplication
My vault 演算法筆記:Matrix-chain Multiplication。
OBST (Optimal Binary Search Tree)
My vault 演算法筆記:OBST (Optimal Binary Search Tree)。
Proving NP-Completeness
My vault 演算法筆記:Proving NP-Completeness。
Red-Black tree
My vault 資料結構筆記:Red-Black tree。
Reduction & Problem Types
My vault 演算法筆記:Reduction & Problem Types。
Selection Problem
My vault 演算法筆記:Selection Problem。
Spanning Tree
My vault 演算法筆記:Spanning Tree。
Splay Trees
My vault 資料結構筆記:Splay Trees。
二元搜尋樹 (Binary Search Tree)
My vault 資料結構筆記:二元搜尋樹 (Binary Search Tree)。
二項樹、二項堆與費波那契堆
My vault 資料結構筆記:二項樹、二項堆與費波那契堆。
互斥集合 (Disjoint Sets)
My vault 資料結構筆記:互斥集合 (Disjoint Sets)。
單一起點最短路徑
My vault 演算法筆記:單一起點最短路徑。
圖論基礎:DFS 與 BFS
My vault 資料結構筆記:圖論基礎:DFS 與 BFS。
堆積 (Heap)
My vault 資料結構筆記:堆積 (Heap)。
多路搜尋樹與 B-Tree
My vault 資料結構筆記:多路搜尋樹與 B-Tree。
對稱最小最大堆積 (Symmetric Min-Max Heap,SMMH)
My vault 資料結構筆記:對稱最小最大堆積 (Symmetric Min-Max Heap,SMMH)。
左偏堆(Leftist Heap)
My vault 資料結構筆記:左偏堆(Leftist Heap)。
常見 NP 完全問題
My vault 演算法筆記:常見 NP 完全問題。
延伸二元樹 (Extended Binary Tree)
My vault 資料結構筆記:延伸二元樹 (Extended Binary Tree)。
引線二元樹 (Threaded Binary Tree)
My vault 資料結構筆記:引線二元樹 (Threaded Binary Tree)。
所有點對最短路徑
My vault 演算法筆記:所有點對最短路徑。
排序演算法
My vault 資料結構筆記:排序演算法。
最小最大堆積 (Min-Max Heap)
My vault 資料結構筆記:最小最大堆積 (Min-Max Heap)。
活動網路(Activity Network)
My vault 資料結構筆記:活動網路(Activity Network)。
線性時間排序演算法
My vault 資料結構筆記:線性時間排序演算法。
複雜度類別:P 與 NP
My vault 演算法筆記:複雜度類別:P 與 NP。
鏈結串列(Linked List)
My vault 資料結構筆記:鏈結串列(Linked List)。
陣列記憶體位址計算
My vault 資料結構筆記:陣列記憶體位址計算。
雙端堆或是雙端優先隊列 (Double-ended Heap OR double-ended priority queue,DEPQ)
My vault 資料結構筆記:雙端堆或是雙端優先隊列 (Double-ended Heap OR double-ended priority queue,DEPQ)。
vLLM + 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 容器化技術的結合,這個創新方案不僅能有效保護程式碼,更能在容器環境中實現驚人的效能提升和部署優化。
複雜度計算
My vault 資料結構筆記:複雜度計算。
使用 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)
My vault 資料結構筆記:堆疊 (Stack)。
在 Windows 上正確設定 OpenSSH Server 和 Guacamole SFTP
前情提要 我最近有遇到一個問題就是我 Windows 10 要使用 share devices 然後給外包廠商上傳檔案在 Guacamole 那麼我知道 Guacamole 有 SFTP 的服務可以串接讓外包廠商上傳檔案,但是中間一直連線失敗有點弄到快爆氣哈哈哈...,但是後面發現滿蠢的哈哈哈哈,廢話不多說開始吧。
二元樹 (Binary Tree)
My vault 資料結構筆記:二元樹 (Binary Tree)。
樹(Tree)
My vault 資料結構筆記:樹(Tree)。
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:雖然強大且靈活,但需要一定的技術基礎,對於想要快速進行寫作的人來說,門檻較高。 近期,我發現...