2022年12月31日星期六。
網頁
2022/12/31
2022/12/30
2022/12/29
2022/12/26
Git 無法刪除遠端分支 unable to delete remote branch
Git使用git push origin --delete <branch_name>
刪除遠端分支時發生error: unable to delete '<branch_name>': remote ref does not exist
而無法成功刪除。
2022/12/25
2022/12/24
2022/12/23
2022/12/22
2022/12/21
2022/12/20
2022/12/19
Golang 產生nil pointer dereference
Go產生panic: runtime error: invalid memory address or nil pointer dereference
的方式如下。
2022/12/18
2022/12/17
2022/12/15
2022/12/14
Golang push RabbitMQ message to WebSocket client decouple 練習
本篇修改於「Golang 接收RabbitMQ訊息並推送到WebSocket client」,試著把RabbitMQ接收訊息與把訊息由WebSocket發送至WebSocket client的邏輯進行解耦的練習。
2022/12/13
2022/12/12
Golang WebSocket read: websocket: close 1006 (abnormal closure): unexpected EOF
今天在測試Go的WebSocket連線時,剛開始client都可收到訊息,但過一陣子卻發生收不到訊息的狀況,檢查log看到read: websocket: close 1006 (abnormal closure): unexpected EOF
的訊息。
2022/12/11
Golang HTTP Server.Shutdown graceful shutdown
Go 1.8開始提供的http.Server.Shutdown
可優雅地關閉server,稱為graceful shutdown。
2022/12/10
2022/12/9
2022/12/8
2022/12/7
Visual Studio Code 顯示編輯器的全部頁籤 show all editor tabs
VS Code編輯器開啟多個檔案會在上方以頁籤(tab)表示,當tab數量超出視窗範圍則預設移動水平捲軸來瀏覽不太方便,版本1.53後可設定workbench.editor.wrapTabs
為true直接顯示全部的tab。
Golang 使用Channel取得goroutine的錯誤 to get goroutine error by channel
Go的goroutine函式因為是另個thread所以無法將錯誤以return
回傳到main goroutine,因此可利用Channel來將錯誤(或其他結果)回傳到main goroutine。
2022/12/6
2022/12/5
Mac 更新macOS後執行git出現xcrun: error錯誤
今天更新macOS Ventura版本到13.0.1後執行git命命出現錯誤 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
。
2022/12/4
2022/12/3
2022/12/2
2022/12/1
PostgreSQL timestamp with time zone與timestamptz差別
PostgreSQL欄位資料型態的timestamp with time zone
與timestamptz
是一樣的,表示包含時區資訊的時間戳記。
PostgreSQL character、char、bpchar差別
PostgreSQL欄位資料型態的character
、char
、bpchar
是一樣的,表示長度固定、空白填充(fixed-length, blank padded)的字元儲存型態。
2022/11/30
2022/11/29
2022/11/28
Golang GCP Client Libraries的種類
在Go程式中要對GCP資源進行操作時可透過client libraries對Google Cloud APIs進行操作。而目前有兩種client libraries。
2022/11/27
2022/11/26
2022/11/25
2022/11/23
2022/11/22
Golang 離開goroutine infinit loop by cancel context
Go經常利用goroutine中的infinit loop(無窮迴圈)去接收channel送來的訊息,而透過Context
離開goroutine無窮迴圈的方式如下。
2022/11/20
2022/11/19
2022/11/17
2022/11/16
2022/11/15
GCP Go SDK Idempotent request error
Go以Google API Client Libraries for Go對VM instance取下磁碟操作時出現錯誤googleapi: Error 400: Idempotent request error: The type of existing operation is detachDisk, while the operation type of the request is delete., idempotentRequestError
。
2022/11/14
2022/11/13
2022/11/12
2022/11/10
2022/11/9
2022/11/8
2022/11/7
2022/11/6
GCP Compute Engine 執行個體硬碟的最大容量 VM Instance maximum disk size
GCP Compute Engine VM instance執行個體硬碟的最大容量如下。
2022/11/5
2022/11/4
2022/11/3
2022/11/1
2022/10/31
2022/10/30
2022/10/29
2022/10/28
2022/10/27
GitHub 使用Personal access tokens推送remote repo
Git使用GitHub的Personal access tokens(PAT)存取GitHub repository。
Visual Studio Code Go extension執行Go專案環境變數
在Visual Studio Code(VS Code)以Go Extension執行Go專案除錯時的環境變數設定。
2022/10/26
2022/10/23
2022/10/22
DDD 什麼是Ubiquitous Language
DDD的Ubiquitous Language(共通語言)是指領域專家(domain experts)與開發人員(developers)在情境限界(bounded context)內基於領域模型(domain model)所使用的一套嚴謹且一致的術語。
2022/10/21
2022/10/19
2022/10/17
2022/10/16
2022/10/9
2022/10/7
2022/10/6
2022/10/5
2022/10/4
2022/10/2
2022/10/1
2022/9/28
2022/9/27
2022/9/26
2022/9/24
2022/9/23
2022/9/20
2022/9/18
2022/9/17
2022/9/15
2022/9/14
2022/9/13
2022/9/12
ISOFIX兒童安全汽座安裝
女兒一歲八個月前都是坐提籃式的汽座(YODA 嬰兒提籃式安全座椅),但最近長大已經坐不下了,所以老婆在營養銀行用奶粉點數換了一個Jolly 360 ISOFIX旋轉汽座(市價要八千多!!。當初跟老婆還為了奶粉錢吵架,堅持喝什麼能恩全護啥的一罐好像要一千五,當下才體會到什麼叫賺奶粉錢,現在心裡比較平衡一點😬),本篇紀錄安裝方式。
2022/9/10
2022/9/9
2022/9/7
LeetCode 1. Two sum
Two sum是LeetCode easy經典題(因為是problem 1),但不幸地我是看過「How to: Work at Google - Example Coding/Engineering interview」才來解這題,所以已經知道怎麼解了。
2022/9/6
2022/9/5
2022/9/1
2022/8/31
2022/8/30
2022/8/29
2022 9/10木柵動物園一日遊 行前規劃
計畫2022/9/10星期六第一次帶妹妹去台北市立動物園(木柵動物園)🐘的行前規劃。自己也很久很久沒去過動物園了,而這次要開車帶老婆和女兒去,要先做點功課讓過程順利一些。
2022/8/28
2022/8/27
JWT JOSE Header
JWT 的Header部分又稱為JOSE Header(JSON Object Signing and Encryption)即「JSON物件簽章即加密標頭」,用來描述JWT的簽章及加密資訊。
2022/8/25
JWT 註冊聲明 registered claims
JWT claims(JWT聲明)為JWT payload的成員,而registered claims為在IANA JSON Web Token Claims Registry註冊的聲明如下:
2022/8/24
2022/8/23
2022/8/22
2022/8/21
2022/8/20
2022/8/19
2022/8/18
C++ 多態 polymorphism
C++的多態(polymorphism)為繼承類別間的特性,即衍生類別(derived class)的指標型態可相容於基底類別(base class)的指標型態。
2022/8/17
2022/8/16
2022/8/15
2022/8/14
2022/8/13
2022/8/12
2022/8/11
2022/8/9
2022/8/7
2022/8/6
2022/8/5
2022/8/4
2022/8/3
2022/8/2
2022/7/31
2022/7/30
2022/7/29
2022/7/28
2022/7/27
2022/7/26
2022/7/25
2022/7/24
2022/7/23
2022/7/21
2022/7/20
2022/7/19
2022/7/17
2022/7/16
2022/7/15
2022/7/14
2022/7/13
2022/7/12
2022/7/11
2022/7/10
2022/7/9
2022/7/3
2022/7/2
Golang Web middleware 取得response內容
Go middleware取得handler回應內容如HTTP狀態碼(HTTP Status Code)、回應頭(Response Header)、回應主體(Response Body)的方式如下。
2022/7/1
Golang http.Handle與http.HandleFunc區別
Go處理HTTP請求時可利用http.Handle
或http.HandleFunc
設定對應的URL pattern和請求處理邏輯,兩者用途相同且內部皆透過DefaultServeMux
處理請求,但有以下差別。
2022/6/30
2022/6/29
2022/6/28
2022/6/26
2022/6/25
2022/6/24
2022/6/22
2022/6/18
2022/6/17
2022/6/15
2022/6/14
AWS DynamoDB partition key是什麼?
簡單說partition key作用同關聯資料庫的primary key(主鍵)。當作為單一主鍵時其值必須是唯一。DynamoDB依partition key搜尋及存放items。
2022/6/13
2022/6/12
2022/6/11
2022/6/10
2022/6/9
2022/6/8
2022/6/6
2022/6/5
2022/6/3
2022/6/1
Golang http Client context請求失敗
Go http.Client
發送附帶context的請求時若得到回應前發生context超時、context取消或超過client時間限制會導致請求失敗。
2022/5/31
2022/5/30
2022/5/29
Golang 如何知道struct是否實作介面 how to know struct implments interface
Go的介面特色為隱式介面(implicit interfaces),也就是說type實作介面的全部方法即實作了該介面,而非已明確宣告的方式,所以無法一眼從程式碼或API文件判斷一個type是否實作了某介面(去核對介面的每個方法簽章是否相同是很痛苦的事),可利用下面方法來確認。
2022/5/28
2022/5/26
2022/5/25
2022/5/24
2022/5/23
2022/5/22
2022/5/21
2022/5/20
Golang go-playground/validator bool required驗證失敗
Go 使用go-playground/validator
驗證struct的bool欄位required
時,設定值false時驗證失敗。
2022/5/19
2022/5/18
Golang 執行時出現函式undefined錯誤
在命令列輸入go run main.go
運行程式時,出現undefined: <Func>
錯誤,<Func>
為main.go
中調用在另一go檔的函式名稱。
2022/5/14
2022/5/13
2022/5/12
2022/5/11
2022/5/9
2022/5/8
2022/5/7
2022/5/6
2022/5/5
Golang 從本機讀取AWS S3 bucket object檔案內容
在locahost的Go應用程式中以AWS提供的SDK aws-sdk-go-v2
讀取S3 bucket中的object內容。
2022/5/4
2022/5/3
2022/5/2
2022/5/1
2022/4/29
2022/4/28
2022/4/27
2022/4/26
2022/4/25
2022/4/24
2022/4/23
2022/4/22
IntelliJ IDEA Spring Boot pom.xml spring-boot-starter-parent not found錯誤解決
開啟久沒用的IntelliJ IDEA更新Spring Boot專案的pom.xml
的spring-boot-starter-parent
出現not found錯誤。
2022/4/21
2022/4/20
2022/4/19
2022/4/18
2022/4/17
2022/4/16
2022/4/15
2022/4/14
2022/4/13
2022/4/12
2022/4/11
2022/4/10
2022/4/9
2022/4/7
2022/4/6
2022/4/5
2022/4/4
2022/4/2
2022/4/1
2022 Stackoverflow 愚人節濾鏡主題 April Fools filters themes
今天查Stackoverflow發現怎麼多個Top Secert的戳印,查了一下原來是愚人節的濾鏡主題。
2022/3/31
AWS SQS Standard queue與FIFO queue區別
Amazon SQS(Simple Queue Service)有兩種佇列分別為Standard queue(標準佇列)與FIFO queue(先進先出佇列),兩者差異如下。
2022/3/30
2022/3/29
2022/3/28
2022/3/27
2022/3/26
2022/3/25
2022/3/24
2022/3/22
2022/3/21
2022/3/20
2022/3/18
PostgreSQL 日期時間欄位新增預設現在時間 datetime field default current time
PostgreSQL新增/插入資料時日期時間型態(e.g. date
, time
, timestamp
)欄位預設使用目前時間的方式如下。
2022/3/17
2022/3/15
2022/3/14
Golang goroutine send record to Kinesis Data Firehose
本範例在go web以HTTP POST新增資料時用goroutine發送已新增的資料到AWS Kinesis Data Firehose。
2022/3/13
2022/3/12
Golang 本機發送資料到Kinesis Data Firehose
本範例在locahost的Go應用程式以AWS的SDK aws-sdk-go-v2
發送資料到Kinesis Data Firehose。
2022/3/11
2022/3/10
Golang 可取址運算元 addressable operands
Go的&
為address operators(取址運算子)可用來取得其後運算元(operand)的記憶體位置又稱為pointer(指標/指針),但注意運算元必須是可取址的(addressable)否則無法通過編譯。
2022/3/8
2022/3/6
2022/3/5
2022/3/4
2022/3/3
Golang custom text encoding
2022/3/2
2022/3/1
2022/2/28
2022/2/27
2022/2/26
2022/2/25
2022/2/24
2022/2/22
2022/2/21
2022/2/20
2022/2/19
PostgreSQL jsonb_path_query()
查詢JSON範例
PostgreSQL的jsonb_path_query(target jsonb, path jsonpath)
函式透過輸入jsonpath
篩選jsonb
的資料。