這裡記錄一下在 SQL Server 上,如何使用 JSON
2026-07-15
2026-06-15
git 查找 branch 合併狀況
記錄自己常用的 git 小技巧。
假設我 git 紀錄如下
* 5a5a7de6e1dd21123ef8348e81fb60e0651629f9 (HEAD -> master) Merge branch 'feature/foo'
|\
| * 1183a01ad3f246801b978cad341958ae61c014db (feature/foo) add file
* | eed52969748a01082308d922c5500281a3d24abb ...
* | 1b4089b3fc6fd79cebeb7569e56156c65e68e309 Merge branch 'feature/bar'
|\ \
| |/
|/|
| * 6ed0449194220f2bd1d0e73881075f74ddf921a0 (feature/bar) .
|/
| * 5c65ffa567b1e52f61df6dbbef797c074884e70e (feature/example) add file
|/
* 2e6b164aa6a8042bfa4b11cf4c4ab4fefb7fc66c Init
哪些 branch 包含指定 branch / commit
要知道「那些 branch 有指定 branch / commit」的話,使用git branch --contains
git branch --contains feature/bar
feature/bar
* master
git branch --contains feature/foo
feature/foo
* master
從中可知,feature/bar、feature/foo都已經合併至 master
指定 branch / commit有包含哪些 branch
如果要知道,「有哪些 branch 合併至指定 branch」,則
git branch --merged master
feature/bar
feature/foo
* master
git branch --merged eed52969748a01082308d922c5500281a3d24abb
feature/bar
eed52969748a01082308d922c5500281a3d24abb 雖然是 master 的 commit,但因為現在 master 的版本更新,所以沒有把 master 列入
2026-05-28
golang 要如何使用 json v2
最近嘗試一下 go1.25 新增的 json v2。不過沒想到一下子就卡關了
我程式如下
package main
import (
json "encoding/json/v2"
"log"
)
func main() {
out, err := json.Marshal(
struct {
N string
ID string
}{N: "John"},
)
if err != nil {
log.Fatal(err)
}
log.Printf("%s", out)
}
然而,執行 go run {這個 go 檔案}時,卻出現以下錯誤
imports encoding/json/v2: build constraints exclude all Go files in %USERPROFILE%\AppData\Local\go\src\encoding\json\v2
這主要原因是因為 json v2 是個實驗性 package,不在 golang v1 的相容性保證中。
所以需要特殊處理。
2026-05-27
2026-05-25
2026-05-05
2026-03-12
JavaFX 編譯成可執行程式
以前有寫過接手 JavaFX 專案的筆記。這篇則是從 0 建置 JavaFX 後的筆記紀錄。
我這次使用以下面的指令建立 javaFX 專案(windows 的話要把\改成^):
mvn archetype:generate \
-DarchetypeGroupId=org.openjfx \
-DarchetypeArtifactId=javafx-archetype-simple \
-DarchetypeVersion=0.0.6 \
-DgroupId=com.example \
-DartifactId=jfxsample \
-Dversion=0.0.0-SNAPSHOT \
-Djavafx-version=17.0.14
生出來的專案架構如下:
│ pom.xml
│
└─src
└─main
└─java
│ module-info.java
│
└─com
└─example
App.java
SystemInfo.java
如果我執行 mvn javafx:run,可以啟動專案。
但是 mvn package的話,執行
java -jar target/jfxsample-0.0.0-SNAPSHOT.jar會出現以下錯誤訊息
Error: Unable to access jarfile target/jfxsample-0.0.0-SNAPSHOT.jar
如果你的 jre 是中文版,錯誤訊息則會是
target/jfxsample-0.0.0-SNAPSHOT.jar 中沒有主要資訊清單屬性
2026-02-23
更新 maven 專案版本
可以直接使用指令來更新版本
mvn versions:set -DnewVersion={ 版本號 }
例如我原本是
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.foo</groupId>
<artifactId>bar-app</artifactId>
<version>1.0-SNAPSHOT</version>
<name>bar-app</name>
<!-- 中略 -->
</project>
執行
mvn versions:set -DnewVersion=1.0.3-SNAPSHOT,就會變成
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.foo</groupId>
<artifactId>bar-app</artifactId>
<version>1.0.3-SNAPSHOT</version> <!-- 這邊更新了 -->
<name>bar-app</name>
<!-- 中略 -->
</project>
2026-02-10
2026-01-22
2026-01-09
2026-01-08
ERR_UNSAFE_PORT
先前我在開發軟體時,我設定讓他以 localhost:6000 開啟,結果出現 ERR_UNSAFE_PORT 錯誤,然而用 cURL 卻又一切正常。
經查詢,這是因為 6000 在瀏覽器中被列為 unsafe port。
這個 port 是 linux X11 桌面系統所用的,所以瀏覽器將之限制了。
2025-12-23
Mage 筆記:Data Integration pipeline 轉換欄位名稱
紀錄一下如何在 Data Integration pipeline 中,使用 Transform 轉換欄位名稱。
例如這是我原始 Table
| UU01 | UU02 | UU03 |
|---|---|---|
| 51982064-26f7-435c-a935-bf522ebda29d | 王曉明 | 1 |
| 91d49f51-495d-4d98-833e-a1e090475195 | 張阿榮 | 0 |
| 251e5455-c061-4836-b2d7-ee40b7da4f54 | 陳曉嵐 | 1 |
| 0295db65-b2e3-40ac-b2ec-24798703df1b | 陳大華 | 2 |
而我想轉成:
| id | name | status |
|---|---|---|
| 51982064-26f7-435c-a935-bf522ebda29d | 王曉明 | 1 |
| 91d49f51-495d-4d98-833e-a1e090475195 | 張阿榮 | 0 |
| 251e5455-c061-4836-b2d7-ee40b7da4f54 | 陳曉嵐 | 1 |
| 0295db65-b2e3-40ac-b2ec-24798703df1b | 陳大華 | 2 |
Transform
要進行以下修改,要使用 transform
code 如下
from mage_ai.data_cleaner.transformer_actions.base import BaseAction
from mage_ai.data_cleaner.transformer_actions.constants import ActionType, Axis
from mage_ai.data_cleaner.transformer_actions.utils import build_transformer_action
from pandas import DataFrame
if 'transformer' not in globals():
from mage_ai.data_preparation.decorators import transformer
if 'test' not in globals():
from mage_ai.data_preparation.decorators import test
@transformer
def transform(df: DataFrame, *args, **kwargs) -> DataFrame:
"""
欄位轉換,這段程式會根據 mapping 變數的 key / value 轉換匯出的欄位
"""
mapping = {
"UU01": "id",
"UU02": "name",
"UU03": "status"
}
# 實際執行 rename;不存在的欄位會被忽略
df_renamed = df.rename(columns=mapping)
return df_renamed
@test
def test_output(output, *args) -> None:
"""
Template code for testing the output of the block.
"""
assert output is not None, 'The output is undefined'
執行完畢後,就會匯出欄位名稱是 id / name / status
2025-12-22
Mage 筆記:Data Integration pipeline 轉換欄位值
紀錄一下如何在 Data Integration pipeline 中,使用 Transform 轉換欄位值。
例如現在我有 Table 紀錄員工狀態(1:在職;0:離職;2:留職停薪)
| id | name | status |
|---|---|---|
| 51982064-26f7-435c-a935-bf522ebda29d | 王曉明 | 1 |
| 91d49f51-495d-4d98-833e-a1e090475195 | 張阿榮 | 0 |
| 251e5455-c061-4836-b2d7-ee40b7da4f54 | 陳曉嵐 | 1 |
| 0295db65-b2e3-40ac-b2ec-24798703df1b | 陳大華 | 2 |
想讓匯出的 table 的 status 變成「在職/離職/留職停薪」
2025-12-18
Tauri Plugin Bug: Uncaught TypeError: Failed to resolve module specifier
這是我在開發 Tauri APP 時遇到的問題。以下是我的錯誤訊息:
Uncaught TypeError: Failed to resolve module specifier "@tauri-apps/plugin-store". Relative references must start with either "/", "./", or "../".