參考:Thread benchmarks,因為 MySQL 被廣泛應用,所以大家都拿他當作 Thread/Lock/... 的實際效率測試指標。
這個測試結果顯示 FreeBSD 輸了一屁股,一定會讓 src committer (大光頭與 Jeffrey Roberson?) 測試 NetBSD 在 AMD64 上跑 MySQL 的效率,這陣子應該可以在 FreeBSD 的 mailing list 上看到相關的討論...
幹壞事是進步最大的原動力
MySQL InnoDB 的 auto-increment 會造成 INSERT 時使用 table-level lock 的 bug 終於修正 (從 2006 年一月就進 MySQL 回報系統的 bug),下個 5.1 的版本 (預定是 5.1.22) 就會包括在裡面:InnoDB auto-inc scalability fixed。
這個 bug fix 目前介紹了新的變數:innodb_autoinc_lock_mode
,目前有三個數值可以用:
無論無何,這是一個重大修正,在大量 INSERT 卻不能 bulk 時會造成的問題終於解決了。雖然最近我都用 PostgreSQL 開發... XD
在 Official Google Blog 上公佈了 Google Trends 將每日更新的消息。
舊版的 Google Trends 約一個月更新一次,主要是查詢「歷史走向」。新版改為每日更新後,總算是可以看到比較即時的資料了。暫時沒想到要怎麼用...
把 latest-trunk (也就是 Firefox 3.0a9pre) 裝了起來,雖然還是有些 bug,不過穩定性比起六月時用的 3.0a6 好太多了,目前還沒有出現過「本程式作業無效,即將關閉」的畫面,而且中文顯示、輸入也都正常,大多數的 Extensions 也都可以透過 Nightly Tester Tools 強制在 3.0a9pre 上跑。
因為通過了 Acid2 的關係,很多亂寫 CSS,用 Safari、Opera 看會爛掉的網站,用 Firefox 3 看也會爛掉,這些站台在 Firefox 3 出來以後應該會修正。
我已經不知道現在在發展什麼了... 感覺跟 Microsoft 每隔幾年就出個 Windows XX 差不多:WordPress 2.3 公告文。
這是第一個對 Atom 1.0 完整支援的版本 (其實所有的離線寫作程式都用其他方式支援了...),另外改用新版 jQuery,號稱快 800% (問題在於,就算是快了 800%,還是得用得很多才會有感覺)。另外一個重點是新的 WYSIWYG (呃,我到現在還是用舊的 HTML code 介面)。
不過看在這次修掉 351 個 bug 份上,還是鼓勵大家更新好了,說不定可以解決各種靈異現象之類的...
Becoming PHP 6 Compatible 這篇裡面提到的五個技巧,現在遵循這些習慣,等到 PHP6 正式推出的時候程式碼才不會改太多:
register_globals
:register_globals
將 $_GET
、$_POST
、$_COOKIE
這三個的變數內容直接對應到全域變數。這在目前的 PHP4 與 PHP5 預設都是關閉的,但還是有文件書籍會「建議」你打開。在 PHP6 中,這個功能將直接消失。不過,還是可以透過 extract() 達到一樣的效果。magic_quotes
:這個功能在目前的 PHP4 與 PHP5 預設是開啟的,但在 PHP6 將會消失 (而非改為關閉),所以,在開發軟體時最好以 magic_quotes
關閉的情況下開發。$HTTP_POST_VARS
或 $HTTP_GET_VAR
,改用 $_POST
及 $_GET
。這點可以用編輯器的字串代換很快的換完。就算真的是很多的程式碼,也可以一次換一些。preg_*
,而不要再用 ereg_*
。現在就用 preg_*
是因為執行速度比 ereg_*
快,另外在 PHP6 將會廢掉 ereg_*
。不過應該會有人寫出 PECL extensions 放回來。$a = & new object(); // Do not do
$a = new object(); // Do this as of PHP 6
上面所提到的改變,會強迫使用者不能再用壞習慣寫程式,對於 PHP 的發展會是相當好的事情。
在 Slashdot 上看到 Facebook 開始提供 Beta 版的 Storage Solution API 介面:Facebook Quietly Offers Storage to Developers,一路連到 Facebook 的 Data Store API documentation 看,卻看不出來要怎麼寫入資料... (不知道真正的 data 要放到哪個欄位)
也許再等一陣子看看。
jQuery 1.2.1 釋出,修正了 這些 bug,官方 Blog 上的公告在這:jQuery 1.2.1: Quick Fixes for 1.2。
另外一個 1.2.1 很重要的「修正」就是把 1.2 裡拿掉的 .eq(n)
放回來了,寫成 .slice(n, n+1)
太脫褲子放屁 (你可以在看到 Source for "Wretch Album Expander" 裡看到我在選擇第四個 table 時用 slice(3,4)
的寫法),結果就是在一陣抱怨聲後把 .eq()
補回來了... XD
另外一個消息是 jQuery UI:jQuery UI: Interactions and Widgets。
這代表 jQuery 也開始做 UI 的部份了,在 ericsk 的「jQuery UI 問世」這篇有提到一些,另外在網站上也有一些 sample html 可以玩。
在 #bsdchat 上看到 mjhsieh 貼了這個 link:BSD Licensed PCC Compiler Imported,OpenBSD 的人把 Portable C Compiler (BSD license) 放到 CVS repository 了。
當 GCC 決定要走向 GPLv3 後,就可以預測到下面這幾件事情一定會有一件發生:
前者在 GCC 決定轉為 GPLv3 的時候就有人說要做,但是一直沒看到進一步的消息。後者則是 Anders Magnusson (NetBSD maintainer) 決定拿 Portable C Compiler 改,結果 Otto Moerbeek 把這份 code 塞進 OpenBSD 的 CVS repository 裡。
看 CVS log 的檔案列表似乎支援不少平台,但據說目前 PCC 只能夠在 i386 平台上跑,而且還有 bug。不過當有人先做了第一步,造成新聞後 (這是重點),接下來的事情就好辦很多了...
另外幾個有趣的事情拿來對照 OpenBSD 的動作還蠻有趣的:OpenBSD 大魔頭 Theo de Raadt 對於 Linux community 處理 GPLv2/BSD license 雙重授權時的砲轟,以及 GCC 預定在 9/18 釋出 4.2.2 的計畫。
紀錄一下 OpenLDAP 在 FreeBSD 上的安裝及設定流程。
先透過 FreeBSD 的 ports 安裝 openldap23-server:
# cd /usr/ports/net/openldap23-server
# make clean install clean
裝完後設定 /usr/local/etc/openldap/slapd.conf
,主要要改的幾個部份是:
include
部份:預設只有 /usr/local/etc/openldap/schema/core.schema
,如果需要其他的 objectClass
則需要把 cosine.schema
與 inetorgperson.schema
也寫進去。suffix
與 rootdn
,以及 rootpw
。其中 rootpw
可以用 slappasswd
產生密碼。改完後要設定開機時跑起 slapd
,這個部份要在 /etc/rc.conf
裡新增:
slapd_enable="YES"
接下來用 /usr/local/etc/rc.d/slapd start
將 slapd
跑起來。用 ps -U ldap
應該可以看到 slapd
process 在跑:
25290 ?? Is 0:00.04 /usr/local/libexec/slapd -u ldap -g ldap
以上就是 server 的架設。
接下來講 client 的部份。先是修改 /usr/local/etc/openldap/ldap.conf
:
BASE dc=example,dc=org
URI ldap://ldap.example.org/
用 Google 找文件的時候會發現大家都是建議用 domain name 當作 BASE
,但其實並沒有強迫要用 domain name,只是 domain name 剛好是全世界獨一無二的 (這是粗略的說法),所以用 domain name 是慣例,以後接手的人也會比較容易上手。
將 server 跑起來,並且將 client 改完後,直接打 ldapsearch
應該就會看到沒有任何結果 (最後一行應該是 #numEntries: 0
),這代表 server 應該沒什麼問題,接下來就是亂塞一些資料進去,這部份網路上大多數的文件都有提到 ldapadd
、ldapdelete
、ldapmodify
的用法以及 ldif 的寫法,這些不太會因為在 FreeBSD 上就有不同的格式,可以看其他提到 OpenLDAP 2.3 的網頁。