w3m 用 socks proxy

前幾天為了要在 command line 下面看某個網頁,可是那個網頁要看的時候又要透過某台特別的 socks proxy 才能看,然後,我平常用的 w3m 又沒有支援 socks。後來找了一下資料,發現可以用 dante (一個 socks proxy 的軟體) 裡面的 socksify 這個指令,他會 preload socks library 去蓋掉 connect(2),因此就可以讓原本不支援 socks 的軟體用 socks 了 :D

安裝好 dante 後,照個 socks.conf 裡面的範例改一下,就可以快樂的使用了。

NFS locking in kernel

一陣子之前,dfr@ 改寫了 NFS locking server 端的部份,從原本的 userland 搬進 kernel 處理了,kernel conf 裡面要加上 NFSLOCKD,預設 GENERIC 是打開的。數小時前,這部份整個也已經進了 7-STABLE,而 6-STABLE 可能過陣子才會進去。總之,這真是個好消息 :D

用 tailor 幫你轉換 cvs 跟 svn

一般轉換 cvs 跟 svn 的工具都會需要能直接存取 CVSROOT,之前曾經看過 tailor 這套神秘的工具,支援各種 VCS 互相轉換的功能。今天剛好有機會拿來用,發現還滿容易的,而且如果你能設定 svn 的 hooks 的話,也可以幫你把 commit 的日期跟作者改成原本的狀況。

基本上我是看他的 README 的範例的第二點:Bootstrap a new product, fetching its whole CVS repository and storing under SVN,就照抄他的指令就可以動了。不過轉出來的結果跟我原本有一點落差,我叫它把東西丟去 trunk/ 可是它把檔案塞到 / 去了,不知道是不是我 config 沒寫好還是有什麼神秘的事情。

不過呢,tailor 除了轉一次的功能外,它也支援一直轉的模式,也就是說人家可能用 cvs 用得很弄苦,你可以透過 tailor 讓你用 svn 用得很快樂 :D

FreeBSD 7.0 跟 DragonFlyBSD 1.12

剛看到 kris@ 做的 mysql 跟其他的 subsystem 的比較:

http://leaf.dragonflybsd.org/mailarchive/users/2008-03/msg00025.html

不過後面有篇回應說得也很對,就是當初分家是因為不同的路,計畫要改的東西也不是兩三年就可以改完的(不過已經四年多了…),再說 DragonFlyBSD 似乎人還是沒有很多,重要的東西還是 Matt 一個人在搞。反過來看 FreeBSD 5.x 那一段時間,真是相當的苦命啊…

FreeBSD 6.3-RELEASE

今天清晨的時候,6.3-RELEASE 正式推出了,跟上一版差了足足一年,主要原因是中間要準備 7.0-RELEASE 的緣故(大概二月初就會出現了)。剛翻了一下 FreeBSD 6.3 Release Notes,底下列了幾個比較值得一提的東西。

Kernel 部份:

  • acpi 支援 HPET
  • MSI support
  • coretemp(4) 可以看 Intel Core cpu 溫度
  • acpi_dock(4)
  • 音效卡: hda, envy24/envy24ht, spicds
  • 網路卡: cxgb (10G, Chelsio T3/T3B), edsc (discard), em upgrade msk (Mar
    vell/SysKonnect Yukon II), mxge (10G, Myricom Myri10GE)
  • 802.11: support 900Mhz, quarter- 跟 half-channel for 802.11a
  • lagg(4): link aggregation, failover, fault tolerence
  • mpt(4) 支援更多 RAID features: RAID volume, member state/settings report, volume re-synchronization status reporting, sysctl vars for re-sync rate, volume member write cache status, volume transcation queue depth 然後也支援了 SAS HBA (部份), 64-bit PCI, large data transfer
  • 支援 scsi_sg 模擬 Linux SCSI SG passthrough device API, 可以多跑些 Linux 裡面的程式
  • 新的 unionfs implementation

Userland 部份:

  • ftpd 支援 RFC 2389 (FEAT) 跟 RFC 2640 (UTF8), UTF8 的部份要加上 -8 打開
  • rpc.lockd 跟 rpc.statd 可以指定 port (-p)
  • pw 可以指定新開 user home 目錄的權限
  • top 可以用 -j 看 jail ID (感謝爽大 :D )
  • touch 可以用 -A 指定時間調整 atime/mtime
  • 新增 wpa_passphrase
  • /etc/rc.d/nfslocking 被移掉, 換成 lockd 跟 statd

Contributed Software 部份:

  • awk 更新到 2007.05.01
  • bind 更新到 9.3.4-p1
  • bzip2 更新到 1.0.4
  • diffutils 更新到 2.8.7
  • gzip 換成 BSD-licensed gzip (from NetBSD)
  • ipfilter 更新到 4.1.28
  • less 更新到 416
  • ncurses 更新到 5.6-20061217, 多了 wide character 支援
  • netcat 更新到 OpenBSD 4.1 用的了
  • readline 更新到 5.0 patch 2
  • sendmail 更新到 8.14.2
  • timezone 更新到 2007k
  • OpenBSM 更新到 1.0

把 local ports 丟出來

早上去 COSCUP 2007 講 ports,結果遭到 DK 大指控說我都沒把東西放出來,剛趁吃飽的時候,把東西稍微整理一下,丟到 OpenSVN 上去了。有興趣的人可以去 這裡觀賞使用。

FreeBSD 7.0 與 SMPng 回顧

上星期,kris@ 不知道在哪裡講 Introducing FreeBSD 7.0,裡面提到了很多 7.0 會有的新東西(主要是 kernel 部份)以及在 performance 上的改善。去年六月的時候,kris@ 宣佈了持續六年多的 SMPng 計畫算是劃下一個句點,而一年後的現在,我們看到的是 7.0 在 performance 上的改善。改善。

最令人興奮的應該算是重寫過的 ULE(以前那個版本 bug 很多而且不太穩定),以及 threading 的改善與 kernel locking 的改進,這幾個讓 MySQL 跟 PostgreSQL benchmark 起來相當的讚。

從 SMPng 開始到現在花了七年,不知道未來的 FreeBSD 的使用率會不會持續進步呢… :p

Horde UTF-8 裡面處理 Big5 的問題

兩年多前,我還在維護計中 webmail 的時候,曾經評估了 Horde/IMP 跑 UTF-8 模式會碰到的問題。當時有一個很大的問題就是很多信的標題都是直接放沒編碼過的 Big5 字,導致顯示不正常。那時候在 Horde 的 MIME::decode 做了一個很噁心的事情:把所有沒編碼的東西都當 Big5 轉一次到 UTF-8,之後測試的時候,一直注意到中文的副檔名不太正確,後來就沒繼續維護後,也一直沒有機會去看為甚麼。

剛才,因為某些緣故,跑去看了另外一套 Horde 的安裝,花了不到十分鐘,發現問題是我自己製造出來的。因為 MIME::decode() 傳進來的字串有可能是已經處理過的,所以已經變成 UTF-8,而我又轉了一次… XD 現在的作法是先 UTF-8 到 UTF-8 轉一次,如果不一樣的話,才當 Big5 處理。目前看起來狀況還不錯,再觀察看看。

OpenBSD 的 sensor framework

剛剛 netchild 把今年 Summer of Code 的成果丟進 8.0-CURRENT 了,詳細的 log 可以看這邊。我的感覺是不會出現在 7.0-RELEASE,應該會有機會出現在 7.1 才對 :D

UPDATE: 在 phk@ 的要求下(整個架構設計), 這個被 back-out 了

sort 的 -S

剛剛無意中發現,sort 有一個參數叫做 -S 可以指定用多少記憶體當 sorting 時候的 buffer(單位是 KB)。現在記憶體這麼大,當然是多多益善囉 :D