[ELK] Elastic Stack (OpenSearch): Elasticsearch, Logstash, Kibana 指南

Intro Elasticsearch 是與名為 Logstash 的資料收集和紀錄檔解析引擎以及名為 Kibana 的分析和視覺化平台一起開發。這三個產品被設計成一個整合解決方案,稱為「Elastic Stack」(以前稱為「ELK stack」)。 Wiki – Elasticsearch ELK Stack: Elasticsearch, Logstash, Kibana | Elastic OpenSearch OpenSearch 包含了搜尋引擎與 OpenSearch Dashboards(此搜尋引擎的資料可視化儀錶板)。此軟體始於2021年,作為 Elasticsearch 與 Kibana 的分支,主要由AWS(亞馬遜雲端運算服務)開發。(Wikipedia) OpenSearch Github: OpenSearch Project opensearch-project/OpenSearch: 🔎 Open source distributed and RESTful search […]

[JWT] JSON Web Token 指南

Intro JWT (JSON Web Token) 是一種基於 JSON 的開放標準(RFC 7519),它定義了一種簡潔(compact)且自包含(self-contained)的方式,用於在雙方之間安全地將訊息作為 JSON 物件傳輸。而這個訊息是經過數位簽章(Digital Signature),因此可以被驗證及信任。可以使用 密碼(經過 HMAC 演算法) 或用一對 公鑰/私鑰(經過 RSA 或 ECDSA 演算法) 來對 JWT 進行簽章。 Wiki – JSON Web Token RFC 7515 – JSON Web Signature(JWS) JWT 的簽名標準,包括 Header、Payload 和 Signature,Header […]

[.NET][C#] Web 開發環境與語言架構指南

Intro .NET Framework 安裝 Visual Studio Community Download Visual Studio for Mac – IDE for macOS Quick Start 建議新專案.Template選擇Console Application預設C#,並選擇.NET Framework版本已建立專案。 進入專案IDE應將在Program.cs自動提供Hello World程式碼: using System; namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine(“Hello World!”); } } […]

[Golang] Go Web 開發環境與語言架構指南

Intro Golang官方網站 WikePedia – Go語言 安裝 至官方下載頁面依據OS環境下載並安裝Golang: https://golang.org/doc/install 檢查Golang版本: $ go version Quickstart Tutorial: Get started with Go 在任一專案目錄下建立./hello.go: package main import "fmt" func main() { fmt.Println("Hello, World!") } 使用run指令快速直譯執行程式碼: $ go run . Go Modules – Package套件管理 Tutorial: Create […]

[Node.js] Node.js Web 開發環境與語言架構指南

Intro Node.js Wiki Node.js 採用 Google 開發的 V8 引擎執行 JavaScript 代碼,通過事件驅動、非阻塞/非同步輸入輸出模型提應用效能,適用於併發需求。 與其他語言最大的不同之處: 傳統語言(如 PHP)使用阻塞 I/O 模型: 只有前一條命令執行完畢才會執行後面的命令 Node.js 使用非阻塞 I/O 模型: 任務可以發送後即繼續執行其他操作,多條命令可以同時被執行,通過回調函式如 Promise 得知任務完成狀態 總之,Node.js 承襲了 JavaScript 的 Event loop 的特性,在單一執行緒架構下可以輕易實現非阻塞 I/O 任務併發應用 Promise.all() 在 Event loop 中的概念可以對應 Multithreading 中的 […]

[Windows] 系統重灌安裝指南 (支援Windows10 1809之後版本)

Intro 依據PC不同的開機磁區標準疊代,截至目前整理為以下: MBR: 最高支援FAT32檔案格式,製作安裝碟需要工具軟體,如UltraISO。 UEFI: 目前最高支援FAT32檔案格式,可以直接透過FAT32檔案格式複製所以檔案至安裝碟。 UEFI FAT32限制 因為UEFI目前僅支援到FAT32檔案格式,當ISO內容檔案超過4GB則需要特別處理,如切割檔案或者使用兩個磁區分別作為FAT32啟動並讀取另一個檔案格式磁碟內容。 以下介紹Windows的問題以及軟體工具推薦。 Windows 10 1809 之後版本 (2018年) Windows 10在1809版本後單檔已經超過4GB,即會面臨到需要處理UEFI FAT32限制問題。 Rufus 解決方案 Rufus (Github) 非常方便的開放原始碼軟體工具,有效解決UEFI FAT32問題。 – 若選擇小於4G以上的ISO檔,則僅能選擇MBR+FAT32模式(支援UEFI-CSM)。 – 若選擇超過4G以上的ISO檔,則可以選擇MBR(支援UEFI-CSM)或UEFI,檔案系統僅可選擇NTFS,實現由FAT32作為UEFI開機磁區並引導讀取NTFS磁區檔案。 – 超過4G以上的方式會需要BIOS先disable Secure Boot。

[Java] Java / Spring Boot Web 開發環境與語言架構指南

安裝 | Quick Start | Package套件管理 | Logging | 開發工具 | Spring Boot Web | 部署 | Template Engine | Concurrency | Appendix Intro Java programming language JVM JVM (Java Virtual Machine – Java虛擬機),能夠執行Java位元組碼且以堆疊結構機器實做的虛擬機器。它有自己的硬體架構,如處理器、堆疊、暫存器等,還具有相應的指令系統。 JVM 封鎖了與具體作業系統平台相關的資訊,使得Java程式只需生成在 JVM 上執行的目的碼(位元組碼),就可以在多種平台上執行。通過對中央處理器(CPU)所執行的軟體實作,實現能執行編譯過的Java程式碼 (Applet與應用程式)。 (References: […]

[Linux][Swap] 虛擬記憶體分頁Swap指南

Intro Wiki – 分頁Swap 常見的應用情境如開發環境要做套件安裝如PHP Composer,則可以利用暫時設定檔案Swap的方式解決。 基本用法 查看Swap狀態: swapon -s 卸載Swap: # Partition swapoff /dev/hdb2 # File swapoff /swapfile 透過Partition分割 透過檔案增加 主要透過swapon與swapoff指令來操作設定分頁,利用實體所在硬碟分割區中的檔案提供Swap。 先建立一個想要配給Swap容量的檔案於硬碟分割區,可以透過fallocate指令: fallocate -l 2G /swapfile 格式化此檔案為Swap file: chmod 600 /swapfile mkswap /swapfile swapon /swapfile 確認查看或設定自動掛載 完成後可以使用swapon -s指令確認查看,另外如要自動掛載則可以於/etc/fstab加入設定: /swapfile […]