Then Notes 隨筆

筆記

PoCL 編譯安裝並啟用 CUDA 支援

Portable Computing Language (PoCL) 是一個 OpenCL 標準的開源實作。本文將說明如何編譯 PoCL 並啟用 CUDA,並假設您已預先安裝好 Docker 環境、NVIDIA 的驅動程式與 NVIDIA Container Toolkit。

繼續閱讀
筆記

解決 Microsoft 帳戶無法登入遠端桌面

如果使用本機帳戶,通常要登入遠端桌面是沒有任何問題的,只要確定防火牆沒有擋掉 3389,且有做好轉發理論上都可以成功。但若使用的是 Microsoft 帳戶,則可能會發生明明輸入正確密碼仍然顯示錯誤的情形。

繼續閱讀
筆記 / 軟體 / 程式設計

CMake – 跨平台的自動化建置系統

CMake 是一個用於管理程式碼建置(Build)的工具。最初,CMake 的設計是用來產生不同的 Makefile,但發展至今 CMake 已經可以產生現代化的建置設定檔,例如 Visual Studio 與 Xcode 的專案檔。

繼續閱讀
軟體 / 教學

aria2 設定教學 – 強大又輕巧的下載工具,支援 BT、斷點續傳

aria2 是一款強大又輕巧的下載工具,5 MB 不到的大小支援了 HTTP、HTTPS、FTP、SFTP、BitTorrent (BT 種子) 和 Metalink 等通訊協定。aria2 的原理跟 IDM 相似,都是透過分割檔案、增加連線數進行下載,可以提升下載速度。

繼續閱讀
筆記

透過 update-alternatives 切換軟體版本 – 以 gcc/g++ 為例

在 Linux 系統中,為了軟體的相容性或編譯的需求,時常會需要切換使用不同的軟體版本。update-alternatives 是一個在 Debian 及其衍生發行版(例如 Ubuntu)中用來管理與切換軟體版本的工具;而紅帽 Red Hat 家族的 Fedora、RHEL 與 CentOS 對應的指令則為 alternatives。

繼續閱讀
程式設計

Good Taste in Code – Linus Torvalds 對於程式碼的品味

在 2016 年的 TED 演講 The mind behind Linux 中,Linus Torvalds 談到了程式碼的「品味」,並在投影片上以單向連結串列(singly linked list)的兩種實作方式來作說明。

繼續閱讀
筆記 / 資安

Diffie-Hellman 金鑰交換演算法

Diffie-Hellman 演算法是用來讓兩位使用者能夠安全地交換金鑰,以便之後在通訊中可以使用該金鑰作為對稱式加密之用。而 Diffie-Hellman 演算法的安全性設計是依賴於計算離散對數的困難性。

繼續閱讀
筆記 / 資安

RSA 加密演算法

RSA 加密演算法是一種非對稱加密(公開金鑰加密)演算法。RSA 的演算法是基於歐拉函數(Euler's totient function)與歐拉定理(Euler's theorem)而來。

繼續閱讀
筆記

Galois Field 有限體

數學中,有限體 (Finite Field) 或伽羅瓦體 (Galois Field),是指包含有限個元素的「體」(field 也有人譯為「域」)。在密碼學裡面,常常會出現基於有限體 GF(2^n) 觀念的計算。

繼續閱讀
CrackMe / 資安

CrackMe – Acid Burn 逆向

CrackMe 目的在測試我們逆向工程的能力,Acid Burn 是非常適合初學者練習的 CrackMe,它沒有什麼特別的演算法或加密方式,可以幫助我們很快地建立對逆向流程的概念。CrackMe 通常具有與專有軟體中的保護方案相似的演算法,透過學習如何逆向破解,有助於提升我們未來在設計軟體保護方案的思路。

繼續閱讀
資安

HTTP Security Header

HTTP Header 的安全性設定

繼續閱讀
素材

いらすとや Irasutoya 插畫素材,可商用免費圖庫

いらすとや (Irasutoya) 是來自日本的一個免費商用圖庫,其中的插畫素材品質很好,無論是製作簡報或是影片插圖皆是很好的選擇。

繼續閱讀
筆記

Nginx 設定筆記

Nginx 設定筆記

繼續閱讀
筆記

Bash 筆記

Bash 筆記

繼續閱讀
筆記

Vim 操作筆記

Vim 操作筆記

繼續閱讀
字型

思源黑體、思源宋體 – Google 與 Adobe 打造的免費中文字型

思源黑體、思源宋體系列字型是由 Google 與 Adobe 聯手打造的免費開源字型。

繼續閱讀
教學

GitHub Actions 基礎介紹

GitHub Actions 是由 GitHub 提供的服務,用於在 GitHub 建置、測試、封裝、發佈或部署任何專案。並可藉此建置端對端 (end-to-end) CI/CD 功能,即持續整合/持續交付 (微軟譯為持續傳遞) 服務。

繼續閱讀