2024年12月17日 星期二

📧E-Mail 研究:Outlook 字體設定

最近被 Outlook 弄的一個頭兩個大……( ̄┰ ̄*)

我知道 Outlook 之類的 E-Mail 軟體,對 CSS 、HTML 支援度不高,不過我沒想到 Outlook 光是字體就這麼複雜……

我的電腦有以下字體

字體 別名 備註
思源黑體 Source Han Sans TC 這是從 Adobe那下載下來的,所以 font name 不是 Noto Sans CJK TC 或是 Noto Sans TC
微軟正黑體 Microsoft Jheng Hei Windows 默認字體
Arial

2024年11月27日 星期三

📝 紀錄一下幾個不同 JDK

這邊記錄一下幾個常見的 JDK(Java Development Kit)與其差異

JDK與其下載頁 License 備註
Oracle JDK 有商用限制。
除此之外,JDK 8、11和之後的版本 License有所不同。
詳細請參見 Oracle 的說明
有 Open JDK 不包含的額外功能。
Oracle Open JDK GPLv2 + CPE
BellSoft Liberica JDK GPLv2 + CPE Spring 推薦使用
有提供
  1. Full version 
  2. Standard version 
  3. Lite version 
三種版本的 JDK 可供下載
Microsoft JDK GPLv2 + CPE
Eclipse Temurin™ Open JDK GPLv2 + CPE
OpenLogic Open JDK GPLv2 + CPE 由 Open Logic 所建置的 JDK
內部已經包含了 JavaFX 相關 libraries 了
IBM Semeru Runtime™ GPLv2 + CPE 有特別針對性能進行優化
RedHat GPLv2 + CPE
SAP Machine GPLv2 + CPE 與 Open JDK 的差異可參見官方 wiki

除了上述的幾種以外,其實還有其他像是毕昇 JDK(華為建的)、Dragonwell JDK (阿里巴巴建的)、Kona JDK(騰訊)……等等的,就不列舉了。


我看了一下,有很多公司會特別建 JDK 就是要用在自家公司的服務之中,例如微軟的 JDK 適合部屬在 Azure 上、Red Hat JDK 會和自家平台整合……等等。


2024年10月18日 星期五

📝紀錄:Go 語言一些我常需要用到的資訊

Go 各版本的 Windows 支援程度

參閱官方Wiki:《Go for Microsoft Windows

安裝多版本的 Go

參閱官方說明:«Download and install»

首先先執行以下指令

go install golang.org/dl/go{你要的版本}@latest

然後再執行

go{你要的版本}} download

列出所有支援操作系統及架構

指令:

go tool dist list
輸出結果
js/wasm
linux/386
linux/amd64
linux/arm
windows/386
windows/amd64
windows/arm
windows/arm64

可以在後面加上-json 以 JSON格式輸出

加上-json後的輸出結果
[
        {
                "GOOS": "linux",
                "GOARCH": "386",
                "CgoSupported": true,
                "FirstClass": true
        },
        {
                "GOOS": "linux",
                "GOARCH": "amd64",
                "CgoSupported": true,
                "FirstClass": true
        },
        {
                "GOOS": "linux",
                "GOARCH": "arm",
                "CgoSupported": true,
                "FirstClass": true
        },
        
        // 下略……
]

參考自:impluse:《go列出所有支持的系统平台及其架构》

2024年9月11日 星期三

做 Hibernate envers 設定時遇到的坑

這篇算是延續先前《SpringBoot 使用多個資料庫連線》的狀況

我今天想要使用Hibernate envers來處理資料的版控。

原先我是這樣處理的:

  1. pom.xml 加上library

    <dependency>
    	<groupId>org.hibernate</groupId>
    	<artifactId>hibernate-envers</artifactId>
    </dependency>
  2. application.properties 加上設定

    spring.jpa.properties.hibernate.envers.audit_table_suffix=_rev
    spring.jpa.properties.hibernate.envers.revision_field_name=rev
    spring.jpa.properties.hibernate.envers.revision_type_field_name=revtype
    
  3. Hibernate Entity 加上 @Audit
    import javax.persistence.Entity;
    import javax.persistence.Table;
    
    import org.hibernate.envers.Audited;
    
    @Entity
    @Audit
    @Table(name = "my_entity")
    class MyEntity{
    	// 中略
    }

然而,實際執行時,Hibernate 處理版控資料時,都想要存入 my_entity_AUD,即

insert into `my_entity_AUD` 
# 下略

2024年8月16日 星期五

以數字開頭的 class element

如果 HTML code 如下

<span>Hello</span>&nbsp;
<span class="123">John Smith</span>

而 CSS 寫成如下,是無法作用的

.123{
	font-weight: bold;
	color: CornflowerBlue;
}

2024年8月12日 星期一

Logback 設定

最近在調整自己開發的系統的 log。程式使用 Spring Boot,log 使用 logback。

我的目的是要讓其 log 到一定量就自動壓縮成 .gz檔、每天壓縮。

2024年7月19日 星期五

OAuth 2.0 的 PKCE 筆記

PKCE 詳細規格請參閱 RFC7636

我在撰寫 OAuth 2.0 的登入時,會遇到 code_verifiercode_challenge 一直對不起來的狀況。

舉例來說,我請求 token 的參數為

client_id=aaa&
client_secret=bbb&
code=thisisasimpletoken&
code_verifier=HelloWorld&
grant_type=authorization_code

按照規範,我取得 authorization code 的 request 應該是 

client_id=aaa&
response_type=code&
scope=User.Read.All&
response_mode=form_post&
code_challenge_method=S256&
code_challenge=<將“HelloWorld”以 S256 加密後的字串>