記得發現這東西的時候是剛把自己對 UML 的認識從 1.x upgrade 到 2.0 的時候,
除了讀讀相關的書籍之外,
也在實作過程中翻閱 UML 規格書來確認 classifiers 之間是否可以存在關聯,
當時在查閱 UML Superstructure specification 時,
特別注意到了它在 Interactions 一章中的某兩個範例,
是手邊的書中都沒有提過的。
用 IE8 去看 Qt 的網頁文件
不開相容性檢視的話排版會散掉: 開起來的話就正常 (Firefox 顯示出來也是類似這樣): 不知道是 Qt ...
用 Boost.Spirit 搭 std::string 使用時容易遇到的問題
這個問題太多人問了,
所以還是先寫下來當成 FAQ 用;
官方文件的 quick start 這一章是類似下面這樣教:
1 |
parse("ffff 1234 abcde", +hex_p, space_p); |
加上 The Scanner and Parsing 那一小節也提到 pharse-level parsing 有兩種版本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
template <typename IteratorT, typename ParserT, typename SkipT> parse_info<IteratorT> parse ( IteratorT const& first, IteratorT const& last, parser<ParserT> const& p, parser<SkipT> const& skip ); template <typename CharT, typename ParserT, typename SkipT> parse_info<CharT const*> parse ( CharT const* str, parser<ParserT> const& p, parser<SkipT> const& skip ); |
導致有人寫出這種 code 來結果編不過在那邊哭:
1 2 3 4 |
rule<> r = +hex_p; string str("ffff 1234 abcde"); parse(str.begin(), str.end(), r, space_p); |
把舊的 RAM 換下來了
現在家裡這台 PC 是在 2007 年末買的 (QX9650 + P5E3 Dexlue),
當時 DDR3 又貴又難買到速度高的,
就先挑了新竹 NOVA 拿得到的 Kingston DDR-1066 (型號懶得翻盒子找了),
前幾天發現 DDR3 價錢跌了很多,
而且 G.SKILL 的 F3-12800CL7D-4GBPI-B (DDR3-1600 2G x 2,時序 7-7-7-18) 只要 6000 出頭:
當然就用力給它買了下去跟過渡期的 DDR3-1066 說 bye bye。
Google 抓狂了
大概是半個小時前搜尋的時候看見的:
不錯的 LDAP 輔助工具集: ldapscripts
研究 LDAP 的便利工具也有一段時日了,
偏好使用純文字介面的我當然不太可能選擇 GUI client,
所以一開始是先挑了功能不太齊全的 ldapsh,
它提供了一個類似 shell 的介面讓人能編輯或刪除 LDAP 裡的資料,
不過似乎找不到新增資料的方式,
至於會啟動什麼編輯器則是看 EDITOR 這個環境變數決定;
最後相中的是 ldapscripts 這個 ports,
安裝完之後只要做一些簡單的設定就行了,
不過唯一的缺陷似乎是沒支援 starttls,
這樣可能會強迫我開 ldaps 協定吧,
不過目前我只把這個裝在 LDAP server 所在的機器上,
所以其實還算可接受的範圍內。
在 MRTG 沿用舊的設定檔會出現 Unknown SNMP var xxx
以往有用 MRTG 透過 SNMPv2 或 SNMPv3 抓 CPU、MEM 和 Disk 使用量的, 可能會 ...
讓 SSL 憑證申請書包含多個 Common Name
以往用 openssl 的互動式介面來填寫憑證申請書時, 只有一次填寫 CN 的機會, 如果想填多個 CN 可 ...
從 uw-imap 換到 courier-imap
應該很多人知道 uw-imap 因為漏洞太多又沒更新已經 bye bye 了,
FreeBSD 的 ports 裡先是把它設為 FORBIDDEN 之後直接砍了它,
對於這種幾乎不能 config 的 imap/pop3 client 我一直就很不爽,
偏偏大家又很愛裝它,
造成我前陣子也面臨了不得不將它換掉的狀況。
把 FreeBSD 7.1 直接安裝在 2TB 以上的硬碟裡
應該很多人都知道 FreeBSD 裝大於 2TB 的硬碟一直都是一個問題,
一般想要裝 2TB 以上硬碟的人都難免會來到 FreeBSD 官網的這個頁面:
http://www.freebsd.org/projects/bigdisk/index.html
它的主要問題是因為大部分跟硬碟相關的程式有這樣的特徵:
- 以 32-bit 整數表示容量相關的資料。
- 單位是 sector,一個 sector 是 512 bytes。
- 32-bit 只能表示 4T sectors,也就是 2TB。
跟硬碟相關的程式以及它們的特徵大致可以這樣歸納:
- 以前的 UFS 檔案系統只能支援到 2TB,2003 年起的 UFS2 則以 64-bit 整數來表示相關資料,使得檔案系統本身可支援到 2TB 以上。
- MBR、fdisk、bsdlabel 仍是以 32-bit 整數設計的,因此即使下層的檔案系統支援 2TB 以上的容量也沒有用。
- 以 GPT 代替 MBR 的話,可以解決問題,但 FreeBSD 7.1 之前並不支援 boot 在 GPT 分割區的功能。
- FreeBSD 目前為止 (7.1-RELEASE) 的 sysinstall 並不支援 GPT,所以安裝系統時無法分割 2TB 以上的硬碟。
再看看這個網頁下方的各種表格後還能發現,
目前 FreeBSD 相關的支援並不十分完善,
且有些功能已經拖了相當多年了。