想要保持系統的穩定又能有新奇的玩意兒可以測試,那麼 linux-vserver 似乎是最佳的選擇了。
vserver 是一種強化的 chroot 環境,透過內容切換的方式實作出與 host OS 完全獨立的 Linux 環境。由於 Un*x 是一種檔案導向的作業系統,以 chroot 進行的檔案系統分離就已經具有相當程度的獨立性,而 linux-vserver 則進一步在 Linux 核心上動手腳,讓各個 vserver 環境能完全地獨立出來,就好像真的是不同的伺服器一樣。
linux-vserver 計畫說:「你可能會想,虛擬伺服器看起來很酷,但大概不是對所有人都有用吧。錯!」vserver 真的很有用,對一般 (Debian 的) 使用者來說,它至少可以讓系統更加強固穩定:安裝 host OS 作 container,再使用 vserver 進行日常工作。至於眾多亂搞系統的愛好者,更是容易理解 vserver 的好處。
有了 vserver,我們就可以採取以下的系統管理模式:
- 安裝基本的 stable:用穩定版的 Debain,處理基本的磁碟、網路等等管理作業;避免系統因為上游套件的一點問題而無法使用 (或不方便使用)。
- 在 stable 上安裝 linux-vserver。
- 在 vserver 裡工作:
- vserver 裡面安裝的軟體,不會影響 host OS。
- 儘量測試新東西;怎麼玩,系統都不會壞。
- 用 vserver 提供網路服務;即使被 hacked-in,也只是隨時可以清除重來的 vserver 出問題。
非常好用。因此我寫了這篇文章,介紹如何在 Debian 下使用 vserver。大家都應該花點時間來了解一下這個棒技術,你不會後悔的。
» continue reading
Encoding Problem in gslin.org 讓 gslin.org 在我的 bloglines.com 裡跑出一堆問號。
我還沒有在 ZODB 裡遇過這種問題,萬幸萬幸。
Posted by yungyuc
at
21:41,
0 comment,
0 trackback.
Java支持者BEA放眼替代語言 (original: Java devotee BEA eyes scripting languages)。
以 IDE 來說, eric3 還不錯用,highlighting, folding 等功能都有;只是我不太慣。寫些小程式還是 vim 最好用。
IDE 環境對網路應用程式的開發人員來說可能最重要了。BEA 和微軟開始投資在 Jython 和 IronPython 上,相形之下 Zope 似乎就很可憐;但 Zope 這個一體成形的應用程式伺服器才是真正方便好用的平台呀。
準備要搬家了。
這幾天一直在打包、整理。清出了許多物件,也很高興地把久未使用的雜物放進藍色的塑膠袋裡。
不過,原本漂亮的客廳、書房、走廊,現在統統堆滿了一箱箱一袋袋的東西,回到家除了打包,就是螞蟻搬家。什麼事也不能作,各種有趣的工作也都停擺了。雖然我喜歡整理東西,不過這種不方便的狀態還是相當地困擾。
最重要的是,因為電話要移機,也會有幾天可以 不必上網路 了。會停多久不得而知,總之這邊會有一段時間不能更新。基於我的無規律更新狀態,如果中華電信動作快的話,說不定沒人會有感覺吧。
Posted by yungyuc
at
12:13,
0 comment,
0 trackback.
在 Linux 上跑 Zope 的時候,時區設定是個麻煩的問題。在 Linux 上的 GMT 時區偏移中的負號代表超前 GMT;正號代表落後 GMT。不過就一般的 ISO-8601 和 RFC-2822 日期時間格式來說,負號代表落後 GMT;正號代表超前 GMT。舉個例子來看:
$ TZ=GMT-8 date --iso-8601=seconds
2005-08-03T15:11:13+0800
$ TZ=GMT-8 date --rfc-2822
Wed, 03 Aug 2005 15:11:19 +0800
$ TZ=GMT-7 date --iso-8601=seconds
2005-08-03T14:11:21+0700
$ TZ=GMT-7 date --rfc-2822
Wed, 03 Aug 2005 14:11:26 +0700
Zope 的 DateTime 模組取用的設定習慣是後者,也就是與 ISO-8601 和 RFC-2822 一致,這就和 Linux 時區設定相反了。而且, DateTime 不接受 TZ 那種 CST-8 的設法;更有甚者,在把 TZ 設為 GMT+/-n 的格式時, DateTime 會認定目前的時區為 GMT 。如果我們用 GMT-8 或 GMT+2 這一類的 TZ 字串來設定時區,在 Zope 裡面都會不正常。
Note
把 TZ 設為 CST-8 這種格式時,Linux 會認定 CST 為時區的名稱,而與 GMT 偏移 -8 ,即超前 8 小時。我們可以用這種寫法來自訂時區的名稱,例如 Taipei-8 。
我們在調整 Zope 時區設定的時候,通常會在 $instance/bin/runzope 指令稿裡加上
export TZ="Hongkong"
獨立進行設定,不直接繼承環境的設定。因為 DateTime 與 Linux 時區的語法不一致,所以我們儘可能得用 DateTime 與 Linux 兩方都接受的代名。以台灣和大陸來說,就是 Hongkong 。
不過... 事實上世界沒有如此美好。有些舊的系統 (Linux) 沒有 "Hongkong" 這個時區。怎麼辦呢?用 TZ="Hongkong-8" 讓 Linux 知道自己的時區 (超前 8 小時);同時讓 DateTime 取得到 Hongkong 字樣。
在設定時區的時候還發現了有趣的現象, DateTime() 出來的東西有時會和 Plone skin 裡 toLocalizedDate.py 的傳回值不一樣;這是因為 toLocalizedDate.py 呼叫的 CMFPlone.PloneUtilities.localized_time() 裡面有一行
return DateTime(str(time)).strftime(format)
用到了 DateTime().strftime() ,而這個函式就是 Python 的 time.strftime() 。它可以取到外部 Linux 系統正確時區下的時間值。
Posted by yungyuc
at
18:34,
0 comment,
0 trackback.
頭昏了 @_@
以前用 TZ="Hongkong" 就可以讓 Plone/COREBlog 跑在台灣時區。現在在 COREBlog 的 instance 裡要設 TZ="CST-8",在 Plone 的 instance 裡要設 TZ="GMT-4"。
這怎麼回事 @_@ 真的太不正常了。
Posted by yungyuc
at
12:57,
0 comment,
0 trackback.
POD = Plain Old Document, SDF = Simple Document Format。POD 同時也是 SDF 的一種輸出格式,不過我們可以用 SDF 來把 POD 檔轉成 HTML, PDF 等其它的格式,方便閱讀。
安裝 SDF:
$ apt-get install sdf
我的主要目的是看 openssl 的 POD 文件,所以:
$ cd /usr/share/doc/openssl/doc
$ find . -name *.pod.gz -exec gunzip {} \;
$ cd /usr/share/doc/openssl/doc/apps
$ find . -name *.pod -exec sdf -2html {} \;
$ cd /usr/share/doc/openssl/doc/cypto
$ find . -name *.pod -exec sdf -2html {} \;
$ cd /usr/share/doc/openssl/doc/ssl
$ find . -name *.pod -exec sdf -2html {} \;
把所有的 POD 都轉成 HTML。如果在 /usr/share/doc/openssl/doc 裡直接 find -exec 會發生不好的事;sdf 把所有 HTML 都產生到執行目錄了。
Posted by yungyuc
at
22:37,
0 comment,
0 trackback.