FreeBSD ports 將從 CVS 轉移到 Subversion 上...

有陣子的新聞了:「[FreeBSD-Ports-Announce] [HEADS UP] Ports tree migration to Subversion」。

預定是 7/14 要轉換,轉換完成後仍然會有程式把 Subversion repository 的變更同步到 CVS 上,所以本來用 csupcvsup 的人仍然可以取得更新。

當初選 Subversion 的原因是什麼啊?又是 GPL license issue 嗎?

MySQL 的 Unicode 支援程度

MySQL 5.5 之前的版本只支援 Unicode 3.0 (1999 年 9 月發表),但自從 MySQL 5.5 版開始支援 Unicode 5.0 (2006 年 7 月發表),對於常用的 utf8 encoding 就有一些變化要注意...

參考維基百科上對 Unicode 版本的說明:「Unicode#Versions」,以及 MySQL 5.5 的文件:「MySQL :: MySQL 5.5 Reference Manual :: 10.1.10 Unicode Support」。

在 MySQL 5.5 之前,UTF-8 的設計最多吃 3bytes,因為 1byte 有 128 種組合 (7bits),2bytes 有 2048 種組合 (11bits),3bytes 有 65536 種組合 (16bits),共 67712 個空間可以用,但 Unicode 3.0 只用掉 49259 個。

而從 MySQL 5.5 開始支援的 Unicode 5.0 需要 99089 個空間,所以需要用到 4bytes 的版本,也就是增加 4bytes 的 2097152 種組合 (21bits),共 2164864 個空間。

但為了相容性,MySQL 5.5 的 utf8 encoding 還是使用 Unicode 3.0 版本。只有當特別指定 utf8mb4 encoding 時才會用到 Unicode 5.0 版本。使用 utf8mb4 encoding 時,要注意 client 端也要支援,不然會讀不到東西...

fPrivacy:在 Google Chrome 下調整 Facebook 應用程式可用權限

fPrivacy 的說明「Makes Facebook permissions optional.」把功能說明的很清楚,就是在授權 Facebook 權限的時候,把應用程式可用權限調低。

Plurk 為例,當 Plurk 需要 Facebook 權限時,提出需要這些權限:

你可以發現上方多了一條東西。這時候你可以把 publish_actions 勾勾拿掉 (看這個意思應該是「以我的名義貼文」的權限),按下 Update 按鈕後:

按下 Update 按鈕後,就把需求變少了。甚至你可以再拔掉 email 這組,再按 Update 按鈕:

就什麼權限都不給他了,這拿來對付過度要求權限的應用程式還蠻好用的...

寫 Online Judge 的題目...

早上又回頭跑去寫 UVa Online Judge 的題目,這應該是參加高中生與大學生在寫的?好久沒寫了...

這東西除了訓練資料結構與演算法外,另外還可以訓練「鑽牛角尖讀 spec」的能力:在題目裡沒保證的,就一定會炸給你看...

舉例來說,第一題的「100 - The 3n + 1 problem」上面只說要找 i 與 j 之間的範圍的最大值。於是很多人就寫了:

for (t = i; t <= j; t++) { ... }

文件上有提到保證 i <= j 嗎?沒有。

多練習這些題目後,除了資料結構與演算法外,對於實際工作的文件就會很自然而然避免過度解讀。

RSA SecurID 800 被破...

在「Scientists crack RSA SecurID 800 tokens, steal cryptographic keys」這篇報導裡提到了已經有辦法從 RSA SecurID 800 內取出 secret key,方法將會在 CRYPTO 2012 上發表...

RSA SecurID 800

(取自「RSA SecurID SID800 Authenticator Token」)

如果攻擊者可以碰觸到實體 token 並取出 secret key,他就可以準備一顆新的 token (HSM,Hardware security module) 把取出來的 secret key 灌進去,而原來的使用者不太容易會發現...

所以硬體式的 OTP 系統除了提供一次性密碼外,另外需要有能力阻擋從硬體取出 secret key 的能力。這次有能力在 13 分鐘就取出來,表示有不少辛苦事情要善後了...

AWS 可以開超小台 (t1.micro) 的 MySQL RDS 了...

今天看到 t1.micro 也可以開 MySQL RDS 了:「Amazon RDS MySQL Now Starting at Just $19 a Month」。

拿來堆資料應該還不賴?只要 24 小時可以塞完一天的份,而且不會影響到 t1.micro 的 EBS I/O 就可以用?:p

Bootstrap 2 的 CDN Hotlink

NetDNA 跳下去做 Bootstrap 2 的 CDN Hosting 了:「Bootstrap CDN - Twitter's Bootstrap hosted on NetDNA's Tier-1 Content Delivery Network」。

這項服務不包含亞洲區的 CDN PoP,從台灣 (HiNet) 或是日本 (Linode) 過去都是美西的點,不過至少有 CDN Hotlink 可以用了...