在 FreeBSD 上產生 coredump 另外要注意的事項

寫這篇是要補 這篇沒提到的部份。

對於 setuid 或是 setgid 程式, 基於安全性原因是不會產生 core 的。如果有需要產生 core 需要修改 kern.sugid_coredump 的值:

# sysctl kern.sugid_coredump=1

這個在 的 mailing list 上遇過,無意間看到這個參數才發現的:

移除 Wikipedia 開頭的捐獻廣告

沒有登入 的情況下是沒辦法移除 Wikipedia 開頭的 Donation 廣告,即使登入後也只能縮起來,這讓人很煩。

套句 的標語:

Because it's your web.

+ 的使用者可以安裝 把廣告移除。

用 lighttpd 配 Squid 時的地雷

測試時遇到的地雷,寫下來讓以後的自己搜尋到... (愚蠢的 bug 總是會一而再再而三的犯下 XD)

因為 已經用的蠻久了,所以都會有一份制式的 lighttpd.conf (精簡到「會動」而已) 拿來用,今天拿這個版本丟檔案的時候想用 當 reverse proxy 放在前面,結果發現永遠都是 TCP_MISS,看 HTTP Header 後發現 lighttpd 沒送 Last-Modified 欄位,應該是這樣造成 Squid 不會存下來。

lighttpd 不送 Last-Modified 的原因後來查出是因為沒有指定 MIME Type。這是一個 feature,而不是 bug (所以不會修正),所以我除了把線上得版本加上以外,在公版的 lighttpd.conf 裡也把 mimetype.assign 加上,這樣就正常了。

繼續觀察看看到底可以省多少 :p

WordPress 2.3.2 (安全性更新)

上看到 的更新訊息:,看了一下發現是安全性更新,讓一般沒有權限的使用者取得尚未公開的內容。

ticket 在 這篇,而有人直接寫成實戰:

順便把系統升級到 trunk 最新版,發現後台版面的變化相當大,不過寬度開到 1920 時的 bug 也不少 XD

對了,推薦有用 WordPress 的人去訂閱 ,沒什麼廢話,每句都是重點 XD

Firefox Extension for Amazon EC2

上看到 這個好用的工具,在 上裝起來測試後發現相當好用,如果要拿來推廣相當棒,不用自己再用 操作半天...

PS:剛剛注意到 boto 的作者參與了 的 beta testing,在正式公開那天把 SimpleDB 的 library 加進去了,可以寫一些小玩意測試看看...

GPLv2 與 GPLv3 的相容性

前陣子跟許多人討論時發現,不少人認為 是相容的,其實不然:

某些使用 GPLv2 的軟體能夠與新的 GPLv3 相容的原因,是因為當初開發時以 "version 2 or later" 的方式宣告,這時候軟體本身可以採用 GPLv3 與其他的 GPLv3 程式碼相容。

對於新開發的軟體來說,只要小心檢查 Software license 就可以了。但對於舊的軟體,以及 package system 來說,是惡夢一場。

有兩套舊的軟體,一套是 GPLv2 only,另外一套是 GPLv2 or later,兩套都是有上百個人參與過的計畫,而且都用到一個 GPLv2 or later 的 library。現在這個 library 宣佈下一個版本開始變成 GPLv3,但因為沒有 API 改變,所以不打算增加 shared library 的 magic number。這時候 GPLv2 only 的軟體因為不相容而需要改寫 (或是把舊版的 library 放入 src 裡維護),package system 也因此不能產生 binary。

也因此很多人對 自稱的「自由」相當不以為然:他利用 "version 2 or later" 大力推廣而產生壟斷後,再利用優勢將他個人自認為的自由放入 GPLv3。相同的, 所使用的 "GFDL 1.2 or later" 轉成 的步驟也是相同的道理。

權力使人腐化,不管是在商業公司還是在 Open Source Community 都一樣讓人噁心。

Perl 5.10.0

上一堆 ports maintainer 要傷腦筋處理 5.8 與 Perl 5.10 之間的相容性問題了...

Perl 5.10.0 除了修正 bug 外,在效率上也做了許多改進,在 可以查到完整的內容,幾個我比較有興趣的:

  • 引入 // 運算子。以前寫 defined $a ? $a : $b,現在可以寫 $a // $b。同理,$a //= $b 等價於 $a = (defined $a ? $a : $b),表示 $a 沒有被定義時塞入 $b。另外,//|| 有相同的優先權。
  • 有了 switch-case-default 的架構,不過在 Perl 裡叫 given-when-default
  • 更快的 Regular Expression Engine,以及一些變動。
  • Perl 內建的 資料庫更新到 5.0.0。
  • 新增了一堆 module...
  • 一堆效能的改善...

反正用就是了 XD

對了,大力推薦 ,試圖在 Win32 平台上建立一個簡單而且強大的 Perl 環境,目前還是 Perl 5.8.8,等他正式推出 Perl 5.10.0 的版本...

如果要測試的人可以參考 這篇抓 Beta 2 版測試。

Update:除了上面所說的,另外還有 提到的 say (與 print + \n) 以及 ~~ (與 grep + eq) 的效能比較。

Update 5.10.0 正式出版了!

IE8 通過 Acid2

IE8 內部測試版本已經通過 ,一個很有名的 CSS 的測試了:,接下來是時間的問題了,離 IE6 與 IE7 消失還有很長一段時間,不過畢竟總是要有個頭。

3 會不會 delay 到成為最後一個支援 Acid2 的主流瀏覽器?(真的發生的話也不意外,只是會有很多人笑得很開心)

在美國,金鑰密碼受到第五修正案所保護

因為被告不需自證其罪 (美國憲法第五修正案),所以不需要交出 PGP key 的密碼:

以後會演變成,在逮捕前想辦法先安裝 keylogger,或是在房間裡放監視器材,蒐集到密碼後才會拘提並扣押證物?那個 小心點啊...

補充,如果有需要的人可以裝 ,免費而且是 Open Source。