在 FreeBSD ports 裡用 local patch 修正問題...

FastCGITrac,遇到 Trac 常常出現 MySQL server has gone away 的問題,官方看起來非常的 open source style:我沒遇到,不太想要處理這個問題... XD

Anyway,這個問題可以透過「#3645 (MySQL connections don't reconnect after idle timeout) – The Trac Project」的 comment:8 給 workaround 掉,但我不希望在升級後問題又跑出來,所以就用「Apache 2.2 worker MPM 與 mod_fastcgi 的問題」這邊的解法來解了:

www/trac: NO_CHECKSUM=yes | PATCH_SITES=http://freebsd-patches.s3.amazonaws.com/trac/ | PATCHFILES=patch-trac__db__mysql_backend.py

不過 NO_CHECKSUM=yes 有點討厭,來找看看有沒有辦法「增加 checksum」而非「忽略 checksum」...

把 screen 的 BIG5 換成 UAO (Unicode-At-On,Unicode 補完計畫) 版本...

目前 Ptt 上使用者用的編碼不是單純的 BIG5,而是 BIG5 加上 Unicode 補完計畫的版本 (拿了 BIG5 的造字區去對應某些常用的缺字)。

如果用 BIG5 去看假名就會變這樣:

所以在 Ubuntu (系統內建的 Terminal) 或是 Mac OS X (用 iTerm2) 上 Ptt (以及 Ptt2) 時都是用 BIG5-HKSCS 編碼,可以顯示日文假名:

不過還是可以看出來漢字不太行,所以還是去找了 UAO 的方案...

第一個想法是直接換掉系統的 BIG5,反正只剩下 BBS 用途要用了,就一次換掉。不過找了半天沒看到現成的工具,雖然在「Mozilla 系列與 Big5 中文字碼」有表可以轉,但還是懶的改...

另外一個是 GNU Screen patch,依照「Screen + Unicode-At-On」這篇的方式,可以生出一個 UTF-8 terminal + converter (GNU Screen),效果就是這樣:

可以看到漢字也出現了... 來找看看要怎麼把 patch 包進 FreeBSD ports 好了...

用 Unbound 跑處理 DNS Round Robin 服務的問題...

環境是內部有兩台互相做 HA 的 server (用 Heartbeat 或是用 CARP),然後給一個內部用的 domain 指到兩個 IP address,於是發現不太平均:「Unbound 回傳 RR Set 的順序問題」。

2010 年的時候就有人提過要這個功能,然後被打槍:「[Unbound-users] Round Robin DNS」,最主要的理由是「這應該是 client 要做的事情」。

2012 年三月有人決定自己來:「[Unbound-users] patch implementing round robin rrsets」,patch 本身蠻簡單的 (不過看起來不能保證 thread-safe),另外也有一些 RFC 隱性希望 DNS resolver 可以處理 round robin 的事情。

四月的時候有人把 patch 修過,解決了 thread-safe 問題:「[Unbound-users] patch: rrset-roundrobin/minimal-responses」。

看起來之後的版本有機會內建了...