Posts by Tag

linux

設定你的 Remote VS Code Server

3 minute read     Posted on:

Preface 對於一個無時無刻都想寫 code 的工程師來說 如果能用手機,平板等等的設備開發,豈不美哉

Container 技術 - 最小化 Docker Image

2 minute read     Posted on:

Why Do we Need to Minimize Image Image 的大小對開發本身來說有很大的影響嗎? 考慮到要 deploy, pull image 這件事情來說,如果遇到網路速度慢的情況下 等個幾分鐘對於開發者來說真的會大幅度的拖慢進度 因此,如果 image 大小能維持在幾 MB, 是在好不過得...

單系統? 何不多系統

5 minute read     Posted on:

Multi System 多系統對於一般非資訊專業人士而言,基本上是一個不需要了解的知識 但是身為一個資訊專業人士,在某些情況下你可能會需要多開系統,比如說

Git 進階使用 - Git Reset

less than 1 minute read     Posted on:

Introduce to Git Reset 開發者最喜歡 Git 的其中一個很大的原因就是即使你做錯了 仍然可以重來 使用 git reset 可以幾乎拯救所有 “不小心的操作”(只要 .git 資料夾還存在的情況下)

Git 進階使用 - Git Rebase

3 minute read     Posted on:

Introduce to Git Rebase Rebase 顧名思義,即更改目前的 base(分支基礎) rebase 在很多地方都很有用,包含像是更改 commit message, re-order commits, squash commits 以及 pull base branch 的 changes

Container 技術 - 理解 Docker Container

3 minute read     Posted on:

Virtualization Docker 身為一個容器化技術的代表,與傳統 virtual machine 不同 Docker 擁有更快的啟動速度、對系統資源的極低要求以及輕量化的優點,既然同為 虛擬化技術,那麼他與傳統的 virtual machine 又有甚麼不一樣的地方呢?

Container 技術 - runC, containerd 傻傻分不清

1 minute read     Posted on:

容器化技術 隨著 microservice 的發展,容器化技術在近幾年受到了廣大的歡迎 相較於傳統的虛擬機器(virtual machine), container 擁有著輕量,快速等特性 隨即受到了開發者們的喜愛 而其中最廣為人知的便是 Docker 本文並不會贅述 Docker 工具的使用,我們將以其探討 c...

Git 進階使用 - Git Hook

1 minute read     Posted on:

What Is Git Hook 在開發過程當中,我們常常會遇到需要手動進行測試以及 format 程式碼等等的事情,那就會讓我思考 有沒有一種自動化的工具可以執行這些任務呢?

Back to top ↑

docker

DevOps - 整合測試 Integration Test

4 minute read     Posted on:

Introduction to Integration Test 光是擁有 unit test,其實是不夠的 因為 unit test 測試的範圍只有 function 本身 跨 function 之間的整合,是沒有涵蓋到的

Prisma + Webpack + Docker 踩坑筆記

4 minute read     Posted on:

Preface 前陣子為了其他系列的部落格文章的 lab,在練習一個簡單的 REST-ful API 的專案 途中遇到不少的困難,想說寫起來紀錄一下

Container 技術 - 最小化 Docker Image

2 minute read     Posted on:

Why Do we Need to Minimize Image Image 的大小對開發本身來說有很大的影響嗎? 考慮到要 deploy, pull image 這件事情來說,如果遇到網路速度慢的情況下 等個幾分鐘對於開發者來說真的會大幅度的拖慢進度 因此,如果 image 大小能維持在幾 MB, 是在好不過得...

Container 技術 - 理解 Docker Container

3 minute read     Posted on:

Virtualization Docker 身為一個容器化技術的代表,與傳統 virtual machine 不同 Docker 擁有更快的啟動速度、對系統資源的極低要求以及輕量化的優點,既然同為 虛擬化技術,那麼他與傳統的 virtual machine 又有甚麼不一樣的地方呢?

Container 技術 - runC, containerd 傻傻分不清

1 minute read     Posted on:

容器化技術 隨著 microservice 的發展,容器化技術在近幾年受到了廣大的歡迎 相較於傳統的虛擬機器(virtual machine), container 擁有著輕量,快速等特性 隨即受到了開發者們的喜愛 而其中最廣為人知的便是 Docker 本文並不會贅述 Docker 工具的使用,我們將以其探討 c...

Back to top ↑

blockchain

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

從 0 認識 Blockchain - Scaling Blockchain

4 minute read     Posted on:

Why do we need to Scale Blockchain Ethereum blockchain 仰賴著共識機制,同時也深受共識機制帶來的效能影響 由於要求所有 node 都執行計算 transaction 正確性,導致同一筆交易會被驗算數次 進而消耗整體網路資源

從 0 認識 Blockchain - 區塊鏈基礎

4 minute read     Posted on:

Introduction to Blockchain Blockchain 技術的概念,始於 2009 年 由 Satoshi Nakamoto 建立的 Bitcoin 根據 Bitcoin 白皮書 中所述 A purely peer-to-peer version of electronic cash w...

Back to top ↑

ethereum

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

從 0 認識 Blockchain - Scaling Blockchain

4 minute read     Posted on:

Why do we need to Scale Blockchain Ethereum blockchain 仰賴著共識機制,同時也深受共識機制帶來的效能影響 由於要求所有 node 都執行計算 transaction 正確性,導致同一筆交易會被驗算數次 進而消耗整體網路資源

從 0 認識 Blockchain - 區塊鏈基礎

4 minute read     Posted on:

Introduction to Blockchain Blockchain 技術的概念,始於 2009 年 由 Satoshi Nakamoto 建立的 Bitcoin 根據 Bitcoin 白皮書 中所述 A purely peer-to-peer version of electronic cash w...

Back to top ↑

version control

Git 進階使用 - Git Reset

less than 1 minute read     Posted on:

Introduce to Git Reset 開發者最喜歡 Git 的其中一個很大的原因就是即使你做錯了 仍然可以重來 使用 git reset 可以幾乎拯救所有 “不小心的操作”(只要 .git 資料夾還存在的情況下)

Git 進階使用 - Git Rebase

3 minute read     Posted on:

Introduce to Git Rebase Rebase 顧名思義,即更改目前的 base(分支基礎) rebase 在很多地方都很有用,包含像是更改 commit message, re-order commits, squash commits 以及 pull base branch 的 changes

Git 進階使用 - Git Hook

1 minute read     Posted on:

What Is Git Hook 在開發過程當中,我們常常會遇到需要手動進行測試以及 format 程式碼等等的事情,那就會讓我思考 有沒有一種自動化的工具可以執行這些任務呢?

Back to top ↑

database

資料庫 - Transaction 與 Isolation

9 minute read     Posted on:

Transaction 根據 google translate 的結果我們可以得知,transaction 就是交易 那麼 交易 本身需要有什麼樣的特性呢?

Back to top ↑

sql

資料庫 - 新手做 Data Migration 資料遷移

1 minute read     Posted on:

Preface 資料搬遷,在現代軟體服務當中屬於較為常見的一種需求 不論是單純的機器之間的搬資料抑或者是因應商業邏輯而需要做的資料搬遷 都是屬於 Data Migration

資料庫 - SQL N + 1 問題

2 minute read     Posted on:

Introduction to SQL N + 1 Problem 在使用 ORM 套件下,開發程式的過程中 你可能會不小心踩到所謂的 SQL N + 1 問題 假設你在開發一個社群網站 使用者可以發佈文章 現在你要實作一個功能 是要撈出所有符合條件的文章以及作者資訊(假設你想知道點讚數超過 10 的所有文章) ...

Back to top ↑

typescript

邁向 Angular 前端工程師之路 - Lifecycle Hooks

2 minute read     Posted on:

Why do we Need Lifecycle Hook Angular 在一開始初始化 component,他的生命週期就開始了 為了使 component 更人性化一點,舉例來說我們希望在特定的時間做特定的事情 當資料改變的時候,我們希望重新 render 畫面,這時候 lifecycle hook 就很好...

Back to top ↑

transaction

資料庫 - Transaction 與 Isolation

9 minute read     Posted on:

Transaction 根據 google translate 的結果我們可以得知,transaction 就是交易 那麼 交易 本身需要有什麼樣的特性呢?

資料庫 - Cache Strategies 與常見的 Solutions

6 minute read     Posted on:

Cache Cache 快取是在計算機當中最重要的概念 作為當今最有效加速的手段之一,其重要程度在作業系統、網頁伺服器以及資料庫當中都可以看到他的身影

Back to top ↑

golang

Goroutine 與 Channel 的共舞

11 minute read     Posted on:

Preface 在了解 Channel 之前,我們需要先了解一些基本的概念 如果你已經很熟悉這些概念,可以直接跳到 Introduction to Golang Channel 部分

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

9 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Goroutine 與 Golang Runtime Scheduler

14 minute read     Posted on:

Process, Thread and Coroutine Process Process 是跑起來的 Program, 它擁有自己的 memory space, system resources 以及 system state 在系統開機之初,init process(pid 1) 被建立之後,就可以透過 fo...

Back to top ↑

prisma

資料庫 - 新手做 Data Migration 資料遷移

1 minute read     Posted on:

Preface 資料搬遷,在現代軟體服務當中屬於較為常見的一種需求 不論是單純的機器之間的搬資料抑或者是因應商業邏輯而需要做的資料搬遷 都是屬於 Data Migration

Prisma + Webpack + Docker 踩坑筆記

4 minute read     Posted on:

Preface 前陣子為了其他系列的部落格文章的 lab,在練習一個簡單的 REST-ful API 的專案 途中遇到不少的困難,想說寫起來紀錄一下

Back to top ↑

operating system

CS:APP - Representing and Manipulating Information

7 minute read     Posted on:

Information Storage 相較於直接操作 bits,使用 bytes(8 bits) 會顯得方便得多。以 machine-level 來看待記憶體就會是一連串的 byte 陣列,每個 bytes 都有一個獨立的 id(address),對於所有可能的 address 稱之為 virtual addr...

Back to top ↑

c

CS:APP - Representing and Manipulating Information

7 minute read     Posted on:

Information Storage 相較於直接操作 bits,使用 bytes(8 bits) 會顯得方便得多。以 machine-level 來看待記憶體就會是一連串的 byte 陣列,每個 bytes 都有一個獨立的 id(address),對於所有可能的 address 稱之為 virtual addr...

Back to top ↑

container

Kubernetes 深入淺出 (1) - Overview

1 minute read     Posted on:

Introduction to Kubernetes 現今網頁服務由於 container 的興起,大幅度的改變了整個 web 的生態系,一切都圍繞著 container 雖然說 container 改變了開發者的工作流程,使得大部分得以簡化,但是仍有一些問題依然存在

Back to top ↑

python

設計模式 101 - Decorator Pattern

2 minute read     Posted on:

Benchmark Time Elapsed 讓我們先從簡單的一個例子看起 ```python import grpc import time from proto import echo_pb2 from proto import echo_pb2_grpc

Back to top ↑

parallelism

Goroutine 與 Golang Runtime Scheduler

14 minute read     Posted on:

Process, Thread and Coroutine Process Process 是跑起來的 Program, 它擁有自己的 memory space, system resources 以及 system state 在系統開機之初,init process(pid 1) 被建立之後,就可以透過 fo...

Back to top ↑

concurrency

Goroutine 與 Golang Runtime Scheduler

14 minute read     Posted on:

Process, Thread and Coroutine Process Process 是跑起來的 Program, 它擁有自己的 memory space, system resources 以及 system state 在系統開機之初,init process(pid 1) 被建立之後,就可以透過 fo...

Back to top ↑

api

網頁程式設計三兩事 - gRPC 與 JSON-RPC

9 minute read     Posted on:

RPC RPC(Remote Procedure Call) 是一種通信協定, 它能夠 允許本機電腦程式呼叫遠端電腦程式 聽起來好像還好? 重點是它能夠以 類似於呼叫本地 function 般輕鬆(稱為 location transparency)

網頁程式設計三兩事 - RESTful API

1 minute read     Posted on:

What is API API - Application Programming Interface 是一種 介面,他高度抽象化了背後的實作原理 使得呼叫端可以透過簡單的呼叫達成一件相對複雜的事情

Back to top ↑

ssh

設定你的 Remote VS Code Server

3 minute read     Posted on:

Preface 對於一個無時無刻都想寫 code 的工程師來說 如果能用手機,平板等等的設備開發,豈不美哉

GPG 與 YubiKey 的相遇之旅

18 minute read     Posted on:

PGP, OpenPGP and GPG - What’s The Difference Pretty Good Privacy - PGP 是 Philip R. Zimmermann 在 1991 年創造的對稱式加密法,其目的正是為了能夠在 BBS 上安全的儲存訊息以及檔案所創造的 之後在 1997 年,IE...

Back to top ↑

cache

資料庫 - Cache Strategies 與常見的 Solutions

6 minute read     Posted on:

Cache Cache 快取是在計算機當中最重要的概念 作為當今最有效加速的手段之一,其重要程度在作業系統、網頁伺服器以及資料庫當中都可以看到他的身影

重新認識網路 - HTTP1 與他的小夥伴們

14 minute read     Posted on:

Introduction 在 1989 年,Tim Berners-Lee 提出了跨網路交換超文本資料的初始架構 它包含了以下 超文本資料: HTML 傳輸協議: HTTP Client 以及 Server 直到 1990, 以上規範大致上都完成了 1991 年世界上第一台 server 正式開始啟...

Back to top ↑

nginx

重新認識網路 - HTTP1 與他的小夥伴們

14 minute read     Posted on:

Introduction 在 1989 年,Tim Berners-Lee 提出了跨網路交換超文本資料的初始架構 它包含了以下 超文本資料: HTML 傳輸協議: HTTP Client 以及 Server 直到 1990, 以上規範大致上都完成了 1991 年世界上第一台 server 正式開始啟...

Back to top ↑

mock

DevOps - 整合測試 Integration Test

4 minute read     Posted on:

Introduction to Integration Test 光是擁有 unit test,其實是不夠的 因為 unit test 測試的範圍只有 function 本身 跨 function 之間的整合,是沒有涵蓋到的

DevOps - 單元測試 Unit Test

6 minute read     Posted on:

Introduction to Testing 在軟體開發的過程當中,QA 測試其實是很重要的一個環節 有了 QA 驗證,可以確保程式不會因為不當的輸入而產生不如預期的結果

Back to top ↑

index

Back to top ↑

coroutine

Goroutine 與 Channel 的共舞

11 minute read     Posted on:

Preface 在了解 Channel 之前,我們需要先了解一些基本的概念 如果你已經很熟悉這些概念,可以直接跳到 Introduction to Golang Channel 部分

Goroutine 與 Golang Runtime Scheduler

14 minute read     Posted on:

Process, Thread and Coroutine Process Process 是跑起來的 Program, 它擁有自己的 memory space, system resources 以及 system state 在系統開機之初,init process(pid 1) 被建立之後,就可以透過 fo...

Back to top ↑

algorithm

神奇的演算法 - Binary Indexed Tree

2 minute read     Posted on:

Binary Indexed Tree 又名 Fenwick Tree, 是一種特殊資料結構,適用於需要大範圍的紀錄更新資料 像是下圖,假設我想要知道,達到 20% 採購率有哪些國家,達到 50% 的又有哪些 一般的作法是我可能開一個 map 去紀錄對吧 看起來會像以下這樣

Back to top ↑

webpack

Prisma + Webpack + Docker 踩坑筆記

4 minute read     Posted on:

Preface 前陣子為了其他系列的部落格文章的 lab,在練習一個簡單的 REST-ful API 的專案 途中遇到不少的困難,想說寫起來紀錄一下

Back to top ↑

publisher

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

設計模式 101 - Observer Pattern

2 minute read     Posted on:

Observer Pattern 程式設計中,時常會需要處理到所謂的 “事件” 這些的事件的出現是 隨機的, 亦即你沒辦法判定何時何地會突然有一個事件送進來

Back to top ↑

subscriber

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

設計模式 101 - Observer Pattern

2 minute read     Posted on:

Observer Pattern 程式設計中,時常會需要處理到所謂的 “事件” 這些的事件的出現是 隨機的, 亦即你沒辦法判定何時何地會突然有一個事件送進來

Back to top ↑

distributed

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

cluster

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

postgresql

Back to top ↑

github

Back to top ↑

blog

Back to top ↑

kubernetes

Container 技術 - runC, containerd 傻傻分不清

1 minute read     Posted on:

容器化技術 隨著 microservice 的發展,容器化技術在近幾年受到了廣大的歡迎 相較於傳統的虛擬機器(virtual machine), container 擁有著輕量,快速等特性 隨即受到了開發者們的喜愛 而其中最廣為人知的便是 Docker 本文並不會贅述 Docker 工具的使用,我們將以其探討 c...

Back to top ↑

cgroups

Back to top ↑

clock

Linux Kernel - Clock

3 minute read     Posted on:

Hardware and System Clock Linux 的世界裡,有兩種時鐘,他們分別為

Back to top ↑

namespaces

Linux Kernel - namespaces

2 minute read     Posted on:

Introduce to namespaces namespaces 是 linux kernel 的一種資源隔離機制,用以防止不同 process 看到不同資源

Back to top ↑

gil

Back to top ↑

atomic operation

Back to top ↑

race condition

Back to top ↑

grpc

網頁程式設計三兩事 - gRPC 與 JSON-RPC

9 minute read     Posted on:

RPC RPC(Remote Procedure Call) 是一種通信協定, 它能夠 允許本機電腦程式呼叫遠端電腦程式 聽起來好像還好? 重點是它能夠以 類似於呼叫本地 function 般輕鬆(稱為 location transparency)

Back to top ↑

rpc

網頁程式設計三兩事 - gRPC 與 JSON-RPC

9 minute read     Posted on:

RPC RPC(Remote Procedure Call) 是一種通信協定, 它能夠 允許本機電腦程式呼叫遠端電腦程式 聽起來好像還好? 重點是它能夠以 類似於呼叫本地 function 般輕鬆(稱為 location transparency)

Back to top ↑

json-rpc

網頁程式設計三兩事 - gRPC 與 JSON-RPC

9 minute read     Posted on:

RPC RPC(Remote Procedure Call) 是一種通信協定, 它能夠 允許本機電腦程式呼叫遠端電腦程式 聽起來好像還好? 重點是它能夠以 類似於呼叫本地 function 般輕鬆(稱為 location transparency)

Back to top ↑

design pattern

網頁程式設計三兩事 - gRPC 與 JSON-RPC

9 minute read     Posted on:

RPC RPC(Remote Procedure Call) 是一種通信協定, 它能夠 允許本機電腦程式呼叫遠端電腦程式 聽起來好像還好? 重點是它能夠以 類似於呼叫本地 function 般輕鬆(稱為 location transparency)

Back to top ↑

protobuf

網頁程式設計三兩事 - gRPC 與 JSON-RPC

9 minute read     Posted on:

RPC RPC(Remote Procedure Call) 是一種通信協定, 它能夠 允許本機電腦程式呼叫遠端電腦程式 聽起來好像還好? 重點是它能夠以 類似於呼叫本地 function 般輕鬆(稱為 location transparency)

Back to top ↑

github action

DevOps - 從 GitHub Actions 初探 CI/CD

9 minute read     Posted on:

CI/CD Continuous Integration - CI 是現今軟體開發流程當中的一種 best practice 開發的過程當中,我們有可能在實作中不小心改壞了一個東西,又剛好 QA 沒有測出來直上 production 這時候出問題就比較麻煩了對吧?

Back to top ↑

ci

DevOps - 從 GitHub Actions 初探 CI/CD

9 minute read     Posted on:

CI/CD Continuous Integration - CI 是現今軟體開發流程當中的一種 best practice 開發的過程當中,我們有可能在實作中不小心改壞了一個東西,又剛好 QA 沒有測出來直上 production 這時候出問題就比較麻煩了對吧?

Back to top ↑

cd

DevOps - 從 GitHub Actions 初探 CI/CD

9 minute read     Posted on:

CI/CD Continuous Integration - CI 是現今軟體開發流程當中的一種 best practice 開發的過程當中,我們有可能在實作中不小心改壞了一個東西,又剛好 QA 沒有測出來直上 production 這時候出問題就比較麻煩了對吧?

Back to top ↑

gpg

GPG 與 YubiKey 的相遇之旅

18 minute read     Posted on:

PGP, OpenPGP and GPG - What’s The Difference Pretty Good Privacy - PGP 是 Philip R. Zimmermann 在 1991 年創造的對稱式加密法,其目的正是為了能夠在 BBS 上安全的儲存訊息以及檔案所創造的 之後在 1997 年,IE...

Back to top ↑

yubikey

GPG 與 YubiKey 的相遇之旅

18 minute read     Posted on:

PGP, OpenPGP and GPG - What’s The Difference Pretty Good Privacy - PGP 是 Philip R. Zimmermann 在 1991 年創造的對稱式加密法,其目的正是為了能夠在 BBS 上安全的儲存訊息以及檔案所創造的 之後在 1997 年,IE...

Back to top ↑

osi

重新認識網路 - OSI 七層模型

5 minute read     Posted on:

Introduction OSI 七層模型是由 國際電信聯盟電信標準化部門 - ITU-T 與 國際標準組織 - ISO 於 1989 年制定的 開放式系統互聯模型 標準的部份目前我有看到兩個版本 ISO/IEC 7498 - 1989 第一版 ISO/IEC 7498 - 1994 第二版

Back to top ↑

rfc

重新認識網路 - OSI 七層模型

5 minute read     Posted on:

Introduction OSI 七層模型是由 國際電信聯盟電信標準化部門 - ITU-T 與 國際標準組織 - ISO 於 1989 年制定的 開放式系統互聯模型 標準的部份目前我有看到兩個版本 ISO/IEC 7498 - 1989 第一版 ISO/IEC 7498 - 1994 第二版

Back to top ↑

endian

重新認識網路 - OSI 七層模型

5 minute read     Posted on:

Introduction OSI 七層模型是由 國際電信聯盟電信標準化部門 - ITU-T 與 國際標準組織 - ISO 於 1989 年制定的 開放式系統互聯模型 標準的部份目前我有看到兩個版本 ISO/IEC 7498 - 1989 第一版 ISO/IEC 7498 - 1994 第二版

Back to top ↑

http0.9

重新認識網路 - HTTP1 與他的小夥伴們

14 minute read     Posted on:

Introduction 在 1989 年,Tim Berners-Lee 提出了跨網路交換超文本資料的初始架構 它包含了以下 超文本資料: HTML 傳輸協議: HTTP Client 以及 Server 直到 1990, 以上規範大致上都完成了 1991 年世界上第一台 server 正式開始啟...

Back to top ↑

http1.0

重新認識網路 - HTTP1 與他的小夥伴們

14 minute read     Posted on:

Introduction 在 1989 年,Tim Berners-Lee 提出了跨網路交換超文本資料的初始架構 它包含了以下 超文本資料: HTML 傳輸協議: HTTP Client 以及 Server 直到 1990, 以上規範大致上都完成了 1991 年世界上第一台 server 正式開始啟...

Back to top ↑

http1.1

重新認識網路 - HTTP1 與他的小夥伴們

14 minute read     Posted on:

Introduction 在 1989 年,Tim Berners-Lee 提出了跨網路交換超文本資料的初始架構 它包含了以下 超文本資料: HTML 傳輸協議: HTTP Client 以及 Server 直到 1990, 以上規範大致上都完成了 1991 年世界上第一台 server 正式開始啟...

Back to top ↑

etag

重新認識網路 - HTTP1 與他的小夥伴們

14 minute read     Posted on:

Introduction 在 1989 年,Tim Berners-Lee 提出了跨網路交換超文本資料的初始架構 它包含了以下 超文本資料: HTML 傳輸協議: HTTP Client 以及 Server 直到 1990, 以上規範大致上都完成了 1991 年世界上第一台 server 正式開始啟...

Back to top ↑

unit test

DevOps - 單元測試 Unit Test

6 minute read     Posted on:

Introduction to Testing 在軟體開發的過程當中,QA 測試其實是很重要的一個環節 有了 QA 驗證,可以確保程式不會因為不當的輸入而產生不如預期的結果

Back to top ↑

TDD

DevOps - 單元測試 Unit Test

6 minute read     Posted on:

Introduction to Testing 在軟體開發的過程當中,QA 測試其實是很重要的一個環節 有了 QA 驗證,可以確保程式不會因為不當的輸入而產生不如預期的結果

Back to top ↑

dependency injection

DevOps - 單元測試 Unit Test

6 minute read     Posted on:

Introduction to Testing 在軟體開發的過程當中,QA 測試其實是很重要的一個環節 有了 QA 驗證,可以確保程式不會因為不當的輸入而產生不如預期的結果

Back to top ↑

dual boot

單系統? 何不多系統

5 minute read     Posted on:

Multi System 多系統對於一般非資訊專業人士而言,基本上是一個不需要了解的知識 但是身為一個資訊專業人士,在某些情況下你可能會需要多開系統,比如說

Back to top ↑

redis

資料庫 - Cache Strategies 與常見的 Solutions

6 minute read     Posted on:

Cache Cache 快取是在計算機當中最重要的概念 作為當今最有效加速的手段之一,其重要程度在作業系統、網頁伺服器以及資料庫當中都可以看到他的身影

Back to top ↑

isolation level

資料庫 - Transaction 與 Isolation

9 minute read     Posted on:

Transaction 根據 google translate 的結果我們可以得知,transaction 就是交易 那麼 交易 本身需要有什麼樣的特性呢?

Back to top ↑

orm

資料庫 - SQL N + 1 問題

2 minute read     Posted on:

Introduction to SQL N + 1 Problem 在使用 ORM 套件下,開發程式的過程中 你可能會不小心踩到所謂的 SQL N + 1 問題 假設你在開發一個社群網站 使用者可以發佈文章 現在你要實作一個功能 是要撈出所有符合條件的文章以及作者資訊(假設你想知道點讚數超過 10 的所有文章) ...

Back to top ↑

n+1

資料庫 - SQL N + 1 問題

2 minute read     Posted on:

Introduction to SQL N + 1 Problem 在使用 ORM 套件下,開發程式的過程中 你可能會不小心踩到所謂的 SQL N + 1 問題 假設你在開發一個社群網站 使用者可以發佈文章 現在你要實作一個功能 是要撈出所有符合條件的文章以及作者資訊(假設你想知道點讚數超過 10 的所有文章) ...

Back to top ↑

temp table

資料庫 - SQL N + 1 問題

2 minute read     Posted on:

Introduction to SQL N + 1 Problem 在使用 ORM 套件下,開發程式的過程中 你可能會不小心踩到所謂的 SQL N + 1 問題 假設你在開發一個社群網站 使用者可以發佈文章 現在你要實作一個功能 是要撈出所有符合條件的文章以及作者資訊(假設你想知道點讚數超過 10 的所有文章) ...

Back to top ↑

temporary table

資料庫 - SQL N + 1 問題

2 minute read     Posted on:

Introduction to SQL N + 1 Problem 在使用 ORM 套件下,開發程式的過程中 你可能會不小心踩到所謂的 SQL N + 1 問題 假設你在開發一個社群網站 使用者可以發佈文章 現在你要實作一個功能 是要撈出所有符合條件的文章以及作者資訊(假設你想知道點讚數超過 10 的所有文章) ...

Back to top ↑

histogram

Back to top ↑

thread

Goroutine 與 Golang Runtime Scheduler

14 minute read     Posted on:

Process, Thread and Coroutine Process Process 是跑起來的 Program, 它擁有自己的 memory space, system resources 以及 system state 在系統開機之初,init process(pid 1) 被建立之後,就可以透過 fo...

Back to top ↑

scheduler

Goroutine 與 Golang Runtime Scheduler

14 minute read     Posted on:

Process, Thread and Coroutine Process Process 是跑起來的 Program, 它擁有自己的 memory space, system resources 以及 system state 在系統開機之初,init process(pid 1) 被建立之後,就可以透過 fo...

Back to top ↑

jwt

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

9 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Back to top ↑

session

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

9 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Back to top ↑

jws

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

9 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Back to top ↑

jwe

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

9 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Back to top ↑

jwk

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

9 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Back to top ↑

oauth

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

9 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Back to top ↑

realm

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

9 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Back to top ↑

cors

網頁程式設計三兩事 - 萬惡的 Same Origin 與 CORS

4 minute read     Posted on:

Preface 我最初遇到 CORS 的問題是在我的個人部落格上面,因為我引用了其他網站的圖片 某一天我突然發現圖片跑不出來了? 思來想去我應該也沒有改到程式碼才對 後來看了一下發現好像是 CORS 的問題 所以今天要來講講 CORS

Back to top ↑

website

網頁程式設計三兩事 - 萬惡的 Same Origin 與 CORS

4 minute read     Posted on:

Preface 我最初遇到 CORS 的問題是在我的個人部落格上面,因為我引用了其他網站的圖片 某一天我突然發現圖片跑不出來了? 思來想去我應該也沒有改到程式碼才對 後來看了一下發現好像是 CORS 的問題 所以今天要來講講 CORS

Back to top ↑

hooks

邁向 Angular 前端工程師之路 - Lifecycle Hooks

2 minute read     Posted on:

Why do we Need Lifecycle Hook Angular 在一開始初始化 component,他的生命週期就開始了 為了使 component 更人性化一點,舉例來說我們希望在特定的時間做特定的事情 當資料改變的時候,我們希望重新 render 畫面,這時候 lifecycle hook 就很好...

Back to top ↑

obfuscation

Back to top ↑

hardhat

Back to top ↑

block

Back to top ↑

observer

設計模式 101 - Observer Pattern

2 minute read     Posted on:

Observer Pattern 程式設計中,時常會需要處理到所謂的 “事件” 這些的事件的出現是 隨機的, 亦即你沒辦法判定何時何地會突然有一個事件送進來

Back to top ↑

observable

設計模式 101 - Observer Pattern

2 minute read     Posted on:

Observer Pattern 程式設計中,時常會需要處理到所謂的 “事件” 這些的事件的出現是 隨機的, 亦即你沒辦法判定何時何地會突然有一個事件送進來

Back to top ↑

subject

設計模式 101 - Observer Pattern

2 minute read     Posted on:

Observer Pattern 程式設計中,時常會需要處理到所謂的 “事件” 這些的事件的出現是 隨機的, 亦即你沒辦法判定何時何地會突然有一個事件送進來

Back to top ↑

topic

設計模式 101 - Observer Pattern

2 minute read     Posted on:

Observer Pattern 程式設計中,時常會需要處理到所謂的 “事件” 這些的事件的出現是 隨機的, 亦即你沒辦法判定何時何地會突然有一個事件送進來

Back to top ↑

vscode

設定你的 Remote VS Code Server

3 minute read     Posted on:

Preface 對於一個無時無刻都想寫 code 的工程師來說 如果能用手機,平板等等的設備開發,豈不美哉

Back to top ↑

decorator

設計模式 101 - Decorator Pattern

2 minute read     Posted on:

Benchmark Time Elapsed 讓我們先從簡單的一個例子看起 ```python import grpc import time from proto import echo_pb2 from proto import echo_pb2_grpc

Back to top ↑

query

Back to top ↑

pagination

Back to top ↑

CAP

Back to top ↑

swagger

Back to top ↑

openapi

Back to top ↑

nodejs

Back to top ↑

mysql

Back to top ↑

sql standard

Back to top ↑

array

Back to top ↑

stack

Back to top ↑

monotonic

Back to top ↑

gin

Back to top ↑

gist

Back to top ↑

pg_trgm

Back to top ↑

integration test

DevOps - 整合測試 Integration Test

4 minute read     Posted on:

Introduction to Integration Test 光是擁有 unit test,其實是不夠的 因為 unit test 測試的範圍只有 function 本身 跨 function 之間的整合,是沒有涵蓋到的

Back to top ↑

e2e test

DevOps - 整合測試 Integration Test

4 minute read     Posted on:

Introduction to Integration Test 光是擁有 unit test,其實是不夠的 因為 unit test 測試的範圍只有 function 本身 跨 function 之間的整合,是沒有涵蓋到的

Back to top ↑

backtracking

神奇的演算法 - Backtracking 與 Divide and Conquer

1 minute read     Posted on:

Algorithm Brainstorming 直接看題目比較快,LeetCode 93. Restore IP Addresses 根據題目要求,給定一個只有數字的字串,找出所有合法的 ip address 的組合

Back to top ↑

divide-and-conquer

神奇的演算法 - Backtracking 與 Divide and Conquer

1 minute read     Posted on:

Algorithm Brainstorming 直接看題目比較快,LeetCode 93. Restore IP Addresses 根據題目要求,給定一個只有數字的字串,找出所有合法的 ip address 的組合

Back to top ↑

recursion

神奇的演算法 - Backtracking 與 Divide and Conquer

1 minute read     Posted on:

Algorithm Brainstorming 直接看題目比較快,LeetCode 93. Restore IP Addresses 根據題目要求,給定一個只有數字的字串,找出所有合法的 ip address 的組合

Back to top ↑

fixed point

Back to top ↑

ieee754

Back to top ↑

floating point

Back to top ↑

binary

Back to top ↑

overflow

Back to top ↑

underflow

Back to top ↑

message queue

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

consumer

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

producer

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

event

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

kafka

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

amqp

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

mqtt

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

jms

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

rabbitmq

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

dlq

資料庫 - 從 Apache Kafka 認識 Message Queue

9 minute read     Posted on:

Preface message queue 顧名思義他是一個 queue,用來存放 message 的 你可以用 Inter-Process Communication 的概念去思考它 基本上就是提供一個空間或是,讓兩個 process 進行通訊

Back to top ↑

polling

Back to top ↑

long polling

Back to top ↑

webhook

Back to top ↑

webrtc

Back to top ↑

websocket

Back to top ↑

tcp

Back to top ↑

file descriptor

Back to top ↑

socket

Back to top ↑

data migration

資料庫 - 新手做 Data Migration 資料遷移

1 minute read     Posted on:

Preface 資料搬遷,在現代軟體服務當中屬於較為常見的一種需求 不論是單純的機器之間的搬資料抑或者是因應商業邏輯而需要做的資料搬遷 都是屬於 Data Migration

Back to top ↑

k8s

Back to top ↑

scale

Back to top ↑

proxy

Back to top ↑

load balance

Back to top ↑

fault tolerance

Back to top ↑

reverse proxy

Back to top ↑

docker swarm

Back to top ↑

greedy

神奇的演算法 - Greedy Algorithm

2 minute read     Posted on:

Preface 還記得之前上演算法的時候,最看不懂的東西就是貪婪法了 不過其實他的核心概念很簡單,寫起來也簡單 趁著還記得細節的時候,把它紀錄起來

Back to top ↑

infrastructure as code

DevOps - 成就完美的自動化 IaC 與 CaC

1 minute read     Posted on:

Infrastructure 當軟體開發完成之後,Infra 對於整體運作來說是很重要的 沒有基礎設施,如網路,電腦以及儲存空間,我們將沒辦法提供服務

Back to top ↑

configuration as code

DevOps - 成就完美的自動化 IaC 與 CaC

1 minute read     Posted on:

Infrastructure 當軟體開發完成之後,Infra 對於整體運作來說是很重要的 沒有基礎設施,如網路,電腦以及儲存空間,我們將沒辦法提供服務

Back to top ↑

iac

DevOps - 成就完美的自動化 IaC 與 CaC

1 minute read     Posted on:

Infrastructure 當軟體開發完成之後,Infra 對於整體運作來說是很重要的 沒有基礎設施,如網路,電腦以及儲存空間,我們將沒辦法提供服務

Back to top ↑

cac

DevOps - 成就完美的自動化 IaC 與 CaC

1 minute read     Posted on:

Infrastructure 當軟體開發完成之後,Infra 對於整體運作來說是很重要的 沒有基礎設施,如網路,電腦以及儲存空間,我們將沒辦法提供服務

Back to top ↑

pm2

DevOps - 成就完美的自動化 IaC 與 CaC

1 minute read     Posted on:

Infrastructure 當軟體開發完成之後,Infra 對於整體運作來說是很重要的 沒有基礎設施,如網路,電腦以及儲存空間,我們將沒辦法提供服務

Back to top ↑

logging

Back to top ↑

contextual logging

Back to top ↑

slack

Back to top ↑

sentry

Back to top ↑

integration

Back to top ↑

archive

Back to top ↑

log rotation

Back to top ↑

logrotate

Back to top ↑

log4j

Back to top ↑

wallet

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑

seed

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑

hash

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑

mnemonic

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑

wordlist

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑

bitcoin

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑

master key

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑

hierarchical deterministic wallet

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑

deterministic wallet

從 0 認識 Blockchain - 錢包基礎原理

1 minute read     Posted on:

Preface 加密貨幣涉及了很多密碼學相關的知識 其中錢包這裡佔了滿多部份的 這篇文章會盡量的用簡單的方式來說明 跟我一起看看吧

Back to top ↑