AdSense

網頁

2024/9/14

今日風情 20240914

2024年9月14日星期六。

2024/9/12

2024 IntelliJ IDEA Community 建立Spring Boot 2專案

2024年在IntelliJ IDEA Community建立Spring Boot 2 Web專案過程如下。

2024/9/11

今日風情 20240911

2024年9月11日星期三。

Windows Git Bash 複製/貼上 快速鍵

Windows在Git Bash使用複製貼上時,快速鍵非熟悉的Ctrl+C / Ctrl+V,而是Ctrl+Insert/Shift+Insert

2024/9/9

Windows 安裝Apache Ant

Windows安裝Apache Ant。

Java Hello Ant

建立一個簡單的Java專案並用Apache Ant執行。

Eclipse 匯入Ant專案

Eclipse匯入Ant專案的方式如下。

今日風情 20240909

2024年9月9日星期一。

2024/9/8

今日風情 20240908

2024年9月8日星期日。

2024/9/7

今日風情 20240907

2024年9月7日星期六。

2024/9/2

Java String 格式化浮點數無小數 format double float nubmer without decimal number

Java將浮點數double, float格式化為無小數的字串方式如下。

2024/9/1

今日風情 20240901

2024年9月1日星期日。

2024/8/30

今日風情 20240830

2024年8月30日星期五。

2024/8/25

今日風情 20240825

2024年8月25日星期日。

2024/8/24

今日風情 20240824

2024年8月24日星期六。

2024/8/21

AmazingTalker資深軟體工程師面試

前陣子收到獵頭邀請進行了AmazingTalker資深軟體工程師的面試作業,作答如下,未進入下一階段。

今日風情 20240821

2024年8月21日星期三。

Go轉Java感想

從寫了快3年的Go轉回去寫Java頭2天的感想是,「慢、複雜、囉嗦」。我連建個Rest API都建不起來,都忘光光了。

2024/8/20

Eclipse Enhanced Class Decompilor無作用

因為要看沒有source code的jar的class檔內容而在Marketplace裝了Enhanced Class Decompilor plugin,但開啟class檔時仍無法看到解編的原始碼。

Eclipse 關閉web.xml引發的An internal error occurred during: "Loading descriptor ..."錯誤

關閉Eclipse匯入dynamic web project時,一直跳出由web.xml引起的錯誤An internal error occurred during: "Loading descriptor ..."的方式如下。

IntelliJ IDEA 無法開啟既有檔案目錄為專案

IntelliJ IDEA無法開啟檔案目錄為專案。點選[Open]按鈕然後選擇該目錄時毫無反應。

今日風情 20240820

2024年8月20日星期二。

Java web.xml context-param contextConfigLocation用途

Java Web應用程式中web.xml內的<context-param>contextConfigLocation作用如下。

2024/8/19

2024/8/18

今日風情 20240818

2024年8月18日星期日。

2024/8/17

今日風情 20240817

2024年8月17日星期六。

2024/8/16

今日風情 20240816

2024年8月16日星期五。

2024/8/15

今日風情 20240815

2024年8月15日星期四。

2024/8/14

ASUS ExpertBook B9400CBA-0181A1255U開箱

為了新工作買了ASUS ExpertBook B9400CBA-0181A1255U 14吋商用筆電開箱。

今日風情 20240814 重機環島第三天

2024年8月14日星期四,重機環島旅行第三天。

2024/8/13

今日風情 20240813 重機環島第二天

2024年8月13日星期二,重機環島旅行第二天。

2024/8/12

今日風情 20240812 重機環島第一天

2024年8月12日星期一,重機環島旅行第一天。

2024/8/11

今日風情 20240811

2024年8月11日星期日。

2024/8/10

今日風情 20240810

2024年8月10日星期六。

2024/8/9

今日風情 20240809

2024年8月9日星期五。

2024/8/8

今日風情 20240808

2024年8月8日星期四。

2024/8/7

今日風情 20240807

2024年8月7日星期三。

2024/8/6

今日風情 20240806

2024年8月6日星期二。

2024/8/5

今日風情 20240805

2024年8月5日星期一。

2024/8/4

今日風情 20240804

2024年8月4日星期日。

2024/8/3

今日風情 20240803

2024年8月3日星期六。

2024/8/2

今日風情 20240802

2024年8月2日星期五。

2024/8/1

2024/7/31

今日風情 20240731

2024年7月31日星期三。

2024/7/30

今日風情 20240730

2024年7月30日星期二。

2024/7/29

今日風情 20240729

2024年7月29日星期一。

2024/7/28

今日風情 20240728

2024年7月28日星期日。

2024/7/27

今日風情 20240727

2024年7月27日星期六。

2024/7/26

今日風情 20240726

2024年7月26日星期五。

2024/7/25

今日風情 20240725

2024年7月25日星期四。

2024/7/24

今日風情 20240724

2024年7月24日星期三。

2024/7/22

今日風情 20240722

2024年7月22日星期一。

2024/7/21

今日風情 20240721

2024年7月21日星期日。

2024/7/20

2024/7/19

今日風情 20240719

2024年7月19日星期五。

2024/7/18

Jenkins Docker build no space left on device error

Jenkins建置專案時出現錯誤no space left on device

Mac zsh: no matches found

在Mac終端機執行命令時出現zsh: no matches found錯誤,導致命令無法成功執行。

今日風情 20240718

2024年7月18日星期四。

2024/7/17

今日風情 20240717

2024年7月17日星期三。

2024/7/16

PostgreSQL 以主表ID同時刪除有外鍵依賴的子表和關聯表資料

例如現有四張表為school(學校)class(課)、student(學生)和enrollment(註冊),彼此關聯如下。

源氏木語電視櫃 Y83N03 開箱

2024年7月在「hoi好生活」網站購入的「源氏木語「柏林橡木滑門2.0M儲物實木電視櫃 Y83N03」開箱。

2024/7/15

英文 Thank you for the A2A意思

在Quora問答社群常會看到"Thank you for the A2A"。A2A是"Ask to Answer"的縮寫。

2024/7/14

今日風情 20240714 IKEA之旅

2024年7月14日星期日。

2024/7/13

今日風情 20240713

2024年7月13日星期六。

2024/7/12

今日風情 20240712

2024年7月12日星期五。

2024/7/11

今日風情 20240711

2024年7月11日星期四。

2024/7/10

今日風情 20240710

2024年7月10日星期三。

2024/7/8

今日風情 20240708

2024年7月8日星期一。

2024/7/7

今日風情 20240707

2024年7月7日星期日。

2024/7/6

今日風情 20240706

2024年7月6日星期六。

2024/7/5

2024/7/4

2024/7/3

今日風情 20240703

2024年7月3日星期三。

2024/7/2

今日風情 20240702

2024年7月2日星期二。

2024/7/1

2024/6/30

今日風情 20240630

2024年6月30日星期日。

2024/6/29

今日風情 20240629 搬家

2024年6月29日星期六。

2024/6/28

今日風情 20240628

2024年6月28日星期五。

2024/6/26

今日風情 20240626

2024年6月26日星期三。

2024/6/24

Golang 使用errgroup.Group取得goroutine錯誤

Go的goroutine是另一條執行緒所以無法將錯誤以return回傳到main goroutine,除了利用channel取得錯誤,也可利用errgroup.Group來將錯誤回傳到main goroutine。

2024/6/23

今日風情 20240623

2024年6月23日星期日。

2024/6/22

今日風情 20240622

2024年6月22日星期六。

2024/6/21

今日風情 20240621

2024年6月21日星期五。

2024/6/18

Golang 列出AWS Account Regions啟用狀態

Go以AWS提供的SDK aws-sdk-go-v2列出Account的全部Regino啟用狀態。

2024/6/17

Golang 建立AWS Account API client

Go以AWS提供的SDK aws-sdk-go-v2來取得操作Account資源的API client。

AWS CLI 列出帳號所有區域的啟用狀態

使用AWS CLI列出帳號(Account)所有區域(Region)與啟用狀態。

2024/6/16

Indian Scout Bobber

最近看到Indian Scout Bobber這台美式重機,造型線條超美,目前售價約80萬,評估自己可能5年後,約2029年會購入,看到時會不會成真。

今日風情 20240616

2024年6月16日星期日。

2024/6/15

今日風情 20240615

2024年6月15日星期六。

2024/6/10

今日風情 20240610

2024年6月10日星期一,端午節連假第三天。

2024/6/9

今日風情 20240609

2024年6月9日星期日,端午節連假第二天。

2024/6/8

今日風情 20240608

2024年6月8日星期六。

2024/6/6

今日風情 20240606

2024年6月6日星期四。

2024/6/5

Golang 取得月份的開始時間與結束時間

Go取得月份的開始和結束時間的方式如下。

2024/6/2

2024/5/29

2024 室內裝修 冷氣空調工程

冷氣空調工程紀錄。

Mac 如何將HEIC圖片轉為JPG

HEIC為iPhone的照片格式。在Mac上使用[預覽程式]開啟HEIC圖片,點選最上方功能列的[檔案] > [輸出...],[格式]欄位選擇[JPG]即可。

2024/5/27

2024 室內整修 採買項目

即將遷入的房子需要整修和採買的項目。

2024/5/26

今日風情 20240526

2024年5月26日星期日。

2024/5/24

2024/5/18

今日風情 20240518

2024年5月18日星期六。

2024/5/17

今日風情 20240517

2024年5月17日星期五。

2024/5/14

2024/5/12

今日風情 20240512

2024年5月12日星期日。

2024/5/11

今日風情 20240511

2024年5月11日星期六。

2024/5/8

2024/5/7

Redis 交易的樂觀鎖 transaction optimistic locking

Redis的Transaction(交易/事務)可將多個命令視為一個動作執行,並透過check-and-set(CAS)來實現樂觀鎖(optimistic locking)。

2024/5/6

GCP Cloud Storage bucket mount to Linux

將GCP Cloud Storage bucket掛載為Linux檔案系統磁碟的方式如下。

2024/5/5

PRG(Post/Redirect/Get) pattern

Post/Redirect/Get (PRG) pattern是一種用來避免表單重送的網頁設計模式。

今日風情 20240505

2024年5月5日星期日。

2024/5/4

今日風情 20240504

2024年5月4日星期六。

2024/5/3

Golang Redis 令牌桶限流器 token bucket rate limiter

Go利用Redis實作簡單的「令牌桶限流器(Token bucket rate limiter)」。

2024/5/2

Redis Hashs基本命令操作

Redis Hashs是key-value字串類型的儲存結構,基本操作如下。

2024/5/1

DDoS 攻擊防護手段與策略

減輕或避免DDoS(分散式阻斷服務攻擊)的防護方法簡單整理。

今日風情 20240501 桃園忠烈祠暨神社文化園區

2024年5月1日星期三,勞動節放假。

2024/4/30

Golang Redis 固定窗口限流器 fixed window rate limiter

Go利用Redis實作簡單的「固定窗口限流器(Fixed window rate limiter)」。

Golang 簡單的Redis Queue實作

Go實作簡單的Redis Queue

2024/4/29

Redis Lists基本命令操作

Redis Lists是linked list(鏈結串列)結構,Redis Queue是基於Lists來實現。基本操作如下。

Redis Strings基本命令操作

Strings是Redis最簡單的資料型態,基本操作如下。

AWS 限制S3 bucket掛載到特定機器

限制AWS S3 bucket只能掛載到特定機器的方式如下。

AWS IAM identity policy for mounting S3 bucket

將AWS S3 bucket掛載為檔案系統磁碟需要的IAM identity policy如下。

2024/4/28

今日風情 20240428

2024年4月28日星期日。

2024/4/27

今日風情 20240427

2024年4月27日星期六。

2024/4/25

AWS EC2 Amazon Linux 2023 mount S3 bucket

將AWS S3 bucket掛載為EC2 (Amazon Linux 2023)檔案系統磁碟的方式如下。

AWS EC2使用User Data啟動自動安裝Nginx

AWS EC2建立時可設定user data來執行一些任務,例如安裝nginx。

Golang 取得map中不包含keys的元素

例如有一slice和map,取得map中key不為slice中的key的元素。

2024/4/24

Golang 取得兩個slice之間不同的元素

Golang 找出兩個slice中的不同元素。

React Recharts繪製折線圖範例二

React Recharts繪製折線圖範例二。

2024/4/22

Git 刪除本地在遠端倉庫已不存在的tag

Git刪除本地倉庫(local respository)連結的遠端倉庫(remote repository)已不存在的tag的方式如下。

2024/4/19

Golang 一天期間時間長度 One day duration

Go time.Time計算時間時,一天的時間長度可以用time.Hour * 24表示,即24小時。

2024/4/18

Visual Studio Code 無法執行debug 錯誤xcrun: error: invalid active developer path

VS Code執行debug時無法運行,出現xcrun: error: invalid active developer path錯誤。

2024/4/17

2024 新青安房貸(青年安心成家貸款)申請

2024年4月向台灣銀行申請「青年安心成家貸款」,簡稱「新青安貸款」所準備的文件。

2024/4/16

React 啟動出現ERR_OSSL_EVP_UNSUPPORTED錯誤

React啟動時出現ERR_OSSL_EVP_UNSUPPORTED錯誤無法啟動。

2024/4/15

Golang 取得字串中指定字串後的子字串

Go取得一個字串中特定字串(含)後的子字串的方式如下。

2024/4/11

2024/4/10

Golang 利用channel限制goroutine數量

使用goroutine併發處理工作時,使用channel限制goroutine數量上限。

2024/4/9

Golang chan struct{}用途

網路上一些Go goroutine數量限制的範例中,常看到宣告Channel的型態為空struct chan struct{}的原因。

2024/4/8

Jenkins Pipeline 設定環境變數

Jenkins Pipeline設定環境變數的方式如下。

2024/4/7

Golang JWT HMAC-SHA256範例

Go使用jwt-go以HMAC-SHA256建立及驗證JWT Token範例。

2024/3/31

2024/3/30

今日風情 20240330

2024年3月30日星期六。

2024/3/27

Git cherry-pick 特定檔案

Git cherry pick特定檔案方式如下。

Jenkins Pipeline checkout/clone GitLab repo

Jenkins Pipeline將GitLab repo程式碼抓取下來的設定方式如下。

Jenkins 2.4 Node Monitors設定位置

Jenkins 2.4的Node Monitors設定位置在Dashboard > Manage Jenkins > Nodes > Configure Node Monitors

2024/3/26

Jenkins Pipeline工作無法執行 Disk space is below threshold

Jenkins裝好後無法執行pipeline工作(即使是簡單的hello world pipeline)。點擊pipeline的[Build Now],只顯示"Build scheduled",但[Build History]沒有出現任何運行紀錄。

2024/3/25

AWS EC2 Linux AMI 安裝Jenkins

AWS EC2 Amazon Linux 2023 AMI安裝Jenkins。

Mac 安裝java openjdk@21 by Homebrew

Mac使用Homebrew安裝Java OpenJDK 21 (Formulea openjdk@21)的方式如下。

2024/3/24

Golang struct slice排序

Go對包含struct元素的slice的排序方式如下。

今日風情 20240324

2024年3月24日星期日。

2024/3/23

2024/3/20

Golang Gin BindJSON ShoudBindJSON 差別

Gin可用gin.Context.BindJSONgin.Context.ShouldBindJSON將請求payload轉為struct,兩者差別如下。

Golang WaitGroup用法

Go的sync.WaitGroup可用來等待所有的goroutine都執行結束。

Golang 併發處理訊息練習

Go使用goroutine搭配channel併發處理大量訊息練習。

2024/3/18

Golang 避免index out of range錯誤

Go以index(索引)從slice取值時,避免panic: runtime error: index out of range [x] with length [y]錯誤。

Golang Swag 查詢字串參數範例 @Param example

Go swagger API文件的查詢字串(query string)參數值的範例設定方式如下。

Golang 取得GCP Monitoring Instance Disk寫入大小統計

Go以Google Cloud Client Libraries for Go來取得GCP Monitoring的instance [Disk write bytes]指標的時間序列資料。

2024/3/16

2024/3/10

Prometheus PromQL資料類型

Prometheus的PromQL語言的敘述結果分為以下資料類型。

GCP Monitoring Metric名稱與PromQL對照

由於PromQL語法只支援:_特殊字元,因此GCP Monitoring Metric(指標)名稱,例如compute.googleapis.com/instance/cpu/utilization中的./必須進行替換以便在PromQL中使用。

Prometheus PromQL是什麼?

PromQL全名為Prometheus Query Language,是由Prometheus發展的查詢語言。

2024/3/9

2024/3/8

英文 Artifact 翻譯

Artifacts字典解釋為「手工藝品」、「製品」、「人造物品」、「加工品」等。

Golang 取得GCP Monitoring Metric time series data

Go以Google Cloud Client Libraries for Go來取得GCP Cloud Monitoring的metric time series data

Golang 取得GCP Monitoring Metric descriptor

Go以Google Cloud Client Libraries for Go來取得GCP Cloud Monitoring的metric descriptor。

2024/3/7

GCP Monitoring Metric type

GCP Monitoring的metric type用來描述一個指標,包括指標名稱、測量的資源、類型、對象、資料型態、取樣間隔等;例如instance的CPU使用率、磁碟讀取bytes大小皆是一種metric type。

GCP Monitoring Metric kind種類

GCP Cloud Monitoring的metric測量值(time series)中都會包含MetricKind(指標類型),用來說明測量值的衡量方式,分為以下三種:

Golang 建立GCP Monitoring Metric Client

Go以Google Cloud Client Libraries for Go來建立存取GCP Cloud Monitoring API的Monitoring Metric Client。

GCP Cloud Monitoring metric model簡介

GCP Cloud Monitoring的metric model(指標模型)用來定義要收集哪些測量資料,由以下三個部分組成:

2024/3/5

AWS CLI 取得CloudWatch metrics統計資料

使用AWS CLI取得CloudWatch metrics統計資料。

AWS CLI修改目前設定的Region

修改AWS CLI目前設定的region的方式如下。

AWS CloudWatch Dashboard新增widget

在AWS CloudWatch的dashboard新增widget。

Golang 建立AWS CloudWatch Dashboard

Go以Google API Client Libraries來建立CloudWatch dashboard。

AWS CloudWatch 建立Dashboard

AWS建立CloudWatch dashboard。

2024/3/3

Golang map與struct轉換

Go map與struct轉換的方法如下。

今日風情 20240303

2024年3月3日星期日。

2024/3/2

今日風情 20240302

2024年3月2日星期六。

2024/2/29

2024/2/25

Linux 要在哪安裝應用程式?

在Linux安裝應用程式一般會放在/usr/local目錄。

2024/2/24

今日風情 20240224

2024年2月24日星期六。

2024/2/23

Jenkins Freestyle project整合SonarQube

Jenkins Freestyle project整合SonarQube的過程如下。

2024/2/21

SonarQube SonarScanner掃描專案時讀不到專案設定檔

使用SonarScanner掃描本地專案時讀不到專案設定檔sonar-project.properties

Jenkins 解除安裝Plugin卡在Uninstallation pending狀態

解決Jenkins解除安裝Plugin時狀態一直卡在Uninstallation pending狀態的問題。

Jenkins 重新啟動

重新啟動Jenkins的方式如下

Rocky Linux 安裝Node.js

參考Node.js官方文件即可。

2024/2/20

Linux 修改目錄的ACL使用者權限

Linux修改目錄的特定使用者的ACL(Access Control List)權限的方式如下。

Linux 安裝SonarScanner CLI

在Linux安裝SonarScanner CLI。

Linux Docker安裝SonarQube

在Linux的Docker安裝SonarQube。

2024/2/19

GitLab 查看版本資訊

查看GitLab版本的方式如下。

SonarQube 運作元件組成 working components

SonarQube由以下各元件來實現程式碼品質分析。

Golang 字串格式化boolean值

Go使用fmt.Printf印出格式化字串或fmt.Sprintf產生格式化字串時可使用%t符號代表boolean值。

Mac 安裝Go版本管理工具gvm

Mac安裝Go語言的版本管理工具gvm(Go Version Manager)的方式如下。

2024/2/17

今日風情 20240217

2024年2月17日星期六。

2024/2/16

今日風情 20240216

2024年2月16日星期五。

Docker 安裝SonarQube Community Edition

Docker安裝SonarQube Community Edition(社群版/免費版)的方式如下。

2024/2/14

今日風情 20240214 三民運動公園

2024年2月14日星期三,春節最後一天放假。

2024/2/13

今日風情 20240213 大有梯田公園

2024年2月13日星期二,春節初四。

2024/2/12

今日風情 20240212 富岡老街

2024年2月12日星期一,春節初三。

2024/2/10

今日風情 20240210

2024年2月10日星期六。

2024/2/9

今日風情 20240209 除夕

2024年2月9日星期五。

2024/2/8

今日風情 20240208

2024年2月8日星期四。

2024/2/7

今日風情 20240207

2024年2月7日星期三。

2024/2/6

Golang template range取得parent pipeline的值

Go template在range中取得parent pipeline的值的方式如下。

今日風情 20240206

2024年2月6日星期二。

2024/2/4

今日風情 20240204

2024年2月4日星期日。

2024/2/3

2024/2/1

Git 解決cherry-pick --abort失敗無法復原

Git 解決cherry-pick --abort失敗無法復原的方式如下。

PostgreSQL timestamp日期增減

PostgreSQL timestamp欄位日期增減的方式如下。

2024/1/29

今日風情 20240129

2024年1月29日星期一。

2024/1/27

今日風情 20240127

2024年1月27日星期六。

2024/1/23

2024/1/22

2024/1/21

2024 賣房注意事項

最近請房仲賣房子,因為第一次賣房子(還一次兩間),沒經驗導致沒注意到細節,在這記錄一下。

2024/1/19

2024/1/14

2024/1/13

今日風情 20240113

2024年1月13日星期六。

2024/1/11

Nginx 設定WebSocket proxy

Nginx設定反向代理WebSocket server的方式如下。

Mac Homebrew 安裝Nginx

在Mac以Homebrew安裝Nginx。

Golang WebSocket Ping Pong範例

WebSocket Ping Pong中文通常又稱為心跳(heartbeat),是指WebSocket協議的控制碼(opcode),代表Control frame(控制幀/控制框)的Ping frame與Pong frame,用以偵測客戶端和伺服器間的連線是否存在,以實現長連線(Keep-Alive)的機制。參考RFC6455

2024/1/7

今日風情 20240107

2024年1月7日星期日。

2024/1/1

今日風情 20240101

2024年1月1日星期一,元旦。

AdSense