[Android][Webview] Intent Handle 指南 – ERR_UNKNOWN_URL_SCHEME

Intro Andriod App 使用內建瀏覽器開啟 intent:// 若出現錯誤: Web page not available The web page at intent://…. could not be loaded because: net::ERR_UNKNOWN_URL_SCHEME 則表示在 Application 的 WebView 沒有處理 Intent,做法詳見 Android Intents with Chrome – Chrome Developers。 可以透過定義 shouldOverrideUrlLoading 方法,判斷連結若符合intent://開頭,則解析 intent 內容並最終利用 startActivity() […]

[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 開發環境與語言架構指南

安裝 | NPM | Cluster 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() 在 […]

[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。