AugustusHsu

AugustusHsu

VS Code Note 02
VSCode-Note

VS Code Note 02

用VSCode開發C++ 在現代軟體開發中,跨平台開發的重要性日益增長,尤其在 C++ 領域,由於其高效能和靈活性,使其成為許多應用程式的首選語言。在這樣的背景下,Visual Studio Code憑藉其輕量、跨平台、功能強大的特點,成為越來越多開發者的首選開發環境。VSCode不僅支援多種語言,還能夠透過擴充套件實現如 IDE 般的開發體驗,並提供與 Git 整合、遠端開發等功能,使開發者能更高效地管理跨平台專案。 在實際開發中,根據專案需求,開發者可能需要編譯出對應不同作業系統的動態連結庫 (DLL)。對於Windows系統,可以透過MinGW (Minimalist GNU for Windows) 來編譯DLL,而對於Linux系統,則可以利用WSL結合GCC來生成適用於Linux的動態庫。這樣的架構使得開發者能夠在同一個環境中同時開發並測試針對不同平台的程式碼,從而提高了工作效率並減少了環境切換所帶來的麻煩。 安裝編譯器 安裝方式可以按照VSCode的文檔說明來安裝,文檔上在Windows上有分別介紹使用MinGW、WSL和Microsoft Visual
15 min read
Python Note 05
Python-Note

Python Note 05

Python 日誌利器- Loguru 在開發程式時,記錄日誌是至關重要的工作,尤其在錯誤排查、效能優化、以及應用程式監控等方面。然而標準的Python logging有時會顯得過於繁瑣,需要寫許多配置才能滿足需求。 為了簡化這些工作,Loguru 提供了豐富的功能,如格式化日誌、自動輪替檔案、日誌等級控制等,這些功能對於日常開發和運維都十分實用。 開箱即用Loguru 可以直接透過pip安裝Loguru : pip install loguru 安裝完後就可以直接使用Loguru,無需額外的設定即可開始記錄日誌,一行代碼即可記錄日誌,Loguru預設會將日誌輸出到Terminal: from loguru import logger logger.info('This is info information') 並自帶格式化顯示: 2024-09-27 20:49:19.961 | INFO | __main__::3 - This is info
12 min read
unRAID Server Note 03
Unraid-Server-Note

unRAID Server Note 03

unRAID - Flexible & Powerful Home Server Plugins篇 (下) 在上一篇文章中,我們介紹了幾款必備的unRAID插件,提升了系統的性能和管理效率。接下來,讓我們繼續探索更多實用的工具,如Compose Manager、Disk Location、FolderView等,這些插件能進一步強化您的unRAID系統,讓日常管理變得更加輕鬆和高效。 Docker Compose Manager Docker Compose Manager能讓使用者能夠方便地管理和運行基於Docker Compose的應用程式,可以配置docker-compose.yml和對應的.env檔。這個Plugin提供了圖形化的管理界面,可以輕鬆查看、運行和停止Docker Compose定義的應用程式,除此之外,也支持自動重啟和更新應用程式,確保您的多容器應用始終處於最佳狀態,還可以通過該Plugin直接查看每個Docker容器的運行日誌,方便快速診斷問題 安裝完後可以在「SETTINGS」>「Compose」中設定: 在「SETTINGS」>「C
9 min read
unRAID Server Note 02
Unraid-Server-Note

unRAID Server Note 02

unRAID - Flexible & Powerful Home Server Plugins篇 (上) unRAID擁有豐富的插件生態,以下是我認為必備的插件,它們大大提升了系統的功能和使用體驗。 Community Applications 在 6.10.x 及以上版本中要安裝 CA,可以前往 unRAID介面中已存在的「APPS」標籤,系統會提示您自動安裝。 對於較舊版本的 unRAID,請將以下 URL 貼入 「PLUGINS」 > 「Install Plugin」 中: https://raw.githubusercontent.com/Squidly271/community.applications/master/plugins/community.applications.plg 關於Community Applications的說明可以在官方的論壇中看到。 Language 語言的部分需要在「APPS」
11 min read
unRAID Server Note 01
Unraid-Server-Note

unRAID Server Note 01

unRAID - Flexible & Powerful Home Server 設定篇 unRAID是一款專為家庭和小型辦公室設計的NAS作業系統,它基於Linux核心,提供了一個靈活且易於擴充的儲存解決方案。與傳統的RAID系統不同,unRAID允許你使用不同容量和品牌的硬碟,組成一個彈性的儲存池,並通過奇偶校驗(Parity)機制提供數據保護,這對於家中有多顆不同硬碟的使用者特別友善。 除了強大的儲存功能,unRAID還支援虛擬化和Docker容器,這意味著你可以在同一台機器上運行多個虛擬機或應用程式,滿足各種需求。無論是搭建媒體伺服器、開發環境,還是其他服務,都能輕鬆實現。 本文主要在記錄unRAID上安裝了什麼實用的工具和加上了哪些設定,這些都是我在使用過程中覺得非常有幫助的,在初次安裝unRAID後,有一些重要的設定,可以提升系統的功能、穩定性和安全性。 網路與安全設定 為了方便管理和連接,可以為unRAID伺服器設定了一個固定的IP地址,避免每次重新啟動路由器或伺服器時,IP地址改變帶來的不便。可以在unRAID的「SETTINGS」>「Networ
6 min read
Python Note 04
Python-Note

Python Note 04

Python的Debug神器 在日常除錯過程中,我們經常會使用 print()函數查看變數內容,以確認程式執行的結果是否如預期。然而,這樣做往往需要花費大量時間去逐一檢查輸出的正確性。在 Python 中,有一個內建函數叫做 breakpoint(),專門用於啟動偵錯器。當執行到 breakpoint() 時,程序會暫停,並進入一個互動式的調試環境。透過這個功能,你可以查看變數的值、逐步執行程式碼,以及有效地進行問題調試。 breakpoint()的主要功能: 1. 暫停程序執行:當程式執行到breakpoint()時,程式會暫停,進入偵錯器。 2. 進入互動式調試環境:你可以查看目前的變數、執行下一步操作、檢查堆疊幀等。 3. 調試程式碼:你可以使用偵錯器的命令(例如n進入下一步、c繼續運行、q退出調試器等)來逐步執行程式碼,幫助你發現問題。 breakpoint()在Python 3.7 版本中被引入,它會調用sys.
6 min read
VS Code Note 01
VSCode-Note

VS Code Note 01

VS Code套件安裝記錄 VS Code對於開發者來說是一件非常好用的IDE,可以根據不同的開發環境安裝各種擴充套件,自己本身是寫深度學習的專案,不過這裡介紹的套件應該也可以套用到多數開發環境,具體的可能需要自行測試才會知道合不合適,目前安裝的套件有以下這幾種: * Git相關的VS Code套件 * GitLab Workflow * GitLens * Git Graph * 輔助開發的VS Code套件 * Settings Sync * Project Manager * Metarial Icon Theme * TODO Tree * autoDocstring * Rainbow Fart * Python相關的VS Code套件 * Python * Pylance * Python Indent * Python Environment Manager Git相關的VS Code套件 軟體開發的流程總是離不開版本控制,VS
11 min read
CI/CD Server Note 04
CI/CD-Server-Note

CI/CD Server Note 04

pre-commit程式碼風格檢查 在多人協作開發軟體的情境下,程式碼品質是一個需要重視的議題,要確保程式碼的一致性、可讀性和可維護性,除了程式碼重構,還有一個極為實用的工具,那就是pre-commit。 這個工具可以在程式碼提交之前自動執行程式碼格式化、語法檢查等等,確保在程式碼進入版本控制系統之前符合一定的品質標準和規範,有助於防止不良程式碼進入版本控制系統,減少在後續的CI/CD pipeline過程發生錯誤而需要做code review的次數,從而提升整個團隊的效率和程式碼的品質和效率。 Hooks pre-commit是透過Git的Git Hooks來實現的,當某些操作git的動作發生時,會觸發自定義的script,而pre-commit如同字面上的意思,是在commit的時候會先觸發定義的script對程式碼進行檢查或是其他操作,再進行commit的動作。 Hooks大致上可分成pre-跟post-兩種,除了這兩種以外常用的還有commit-msg跟update: * pre- : 代表在Git操作執行之前所要進行的動作,可以用來做執行代碼風格檢
10 min read