Zend Framework 1.6 Release

之前用了一陣子的 RC 版,今天終於正式Release了,這個 1.6 版的 ZF 比 1.5 版多了不少有趣的東西啊(不過選在跟新聞炒很大的google chrome同一天出來,鋒頭多少被蓋去了一點點)

  • Dojo Integration
  • SOAP
  • Preview of Tooling Project in Laboratory (see /laboratory folder)
  • Unit Testing Harness for Controllers
  • Lucene 2.3 Index File Format Support
  • Zend_Session save handler for Database Tables
  • Paginator Component
  • Text/Figlet Support
  • ReCaptcha Service
  • Captcha Form Element
  • Zend_Config_Xml Attribute Support
  • Zend_File_Transfer Component
  • File Upload Form Element
  • Zend_Wildfire Component with FireBug Log Writer
  • Media View Helpers (Flash, Quicktime, Object, and Page)
  • Support in Zend_Translate for INI File Format

對我工作上比較大的影響是跟 Dojo 的整合(我還是比較喜歡 jQuery),這裡有篇文章有寫到 1.6 版新增的一些功能介紹。

另外,分頁、表單認證碼及檔案上傳功能…這些在做網站時常用的功能,之前都是自己拼裝出來用的,結果在 1.6 也都加進來了 :) 。我試著直接把 1.5 版昇級為 1.6 版,目前手邊的案子看起來都還滿正常的。

下載連結: http://framework.zend.com/download/current/

科學人 - 通往專家心智之路

我一直就很喜歡科學人月科,不過因為沒有定期訂閱,所以常常是到書店有看到才想到翻一翻。

九月份的「通往專家心智之路」專題很吸引我,其中提到一段對專家的定義:

在專業的領域中,我們可以看到有些人對於領域的問題,解決得特別快;對問題的掌握,能夠針對當時的情境,很快的連結上問題的解答,這些人對於領域中的知識非常豐富,能夠掌握理論與事實的來龍去脈,快速解決問題。

另外有幾段句子看了也很有感覺:

西洋棋大師高過生手之處,就在於最初幾秒鐘的思考過程。

「..真正重要的不是經驗,而是”潛心鑽研”的工夫,代表著持續接受超越個人能力的挑戰。這就是為什麼熱心的愛好者可以花數萬小時下西洋棋、打高爾夫球、玩樂器,卻永遠無法超越業餘水準,而訓練有素的學生卻可以在短期內就超越他們的緣故..」

「目前的心理學證據指出:專家是後天造就,而非天生」

「現在的補習培育了很多”績優生”,而不是”資優生”,逼迫一個小孩走了一條他沒有興趣的路,這當然是不好的,但如果照一般對專家的定義,培養一個人在專業領域上具有專業知識,能夠很快理解並解決問題,我想這是非常好的事」

CentOS

RedHat 宣布不再推出個人免費版本,並把原先 RedHat9 的相關技術,移至 Fedora 計劃,目前已推出到 Fedora Core3;同時也針對高階伺服器市場推出 Red Hat Enterprise Linux(RHEL)。RHEL 有 AS、ES 及 WS 三種版本,AS 是最高階的企業級伺服器,最多可以支援到 16 個 CPU 及 64G 的記憶體,WS 則是桌面 工作站,ES 則適用於一般中小型企業的社群級伺服器版本。當然,這個 RHEL 就是要收錢的(軟體費用及技術支援費用),可以參考一下這個網站或是 RedHat 官方網站的價錢。

CentOS : Community ENTerprise Operating System

有個叫做 CentOS 的 Linux 版本,便是以 RHEL 為架構發展出來的,一樣秉持著 Linux 的自由精神,可免費下載使用。CentOS2、3 聲稱與 RHEL2、3 完全 100%相容,日前 CentOS 已經推出第 4 個版本,本著 RHEL 的穩定性、支援高階伺服器硬體及低廉的軟體成本,以中、小型企業來 說,CentOS 成為架設 Linux 伺服器的不錯的選擇之一。

當然,軟體免費,不等於 Linux 就是免費,技術服務不是免費的,所以企業在引進這樣的系統時,也得考量這方面成本。

國內 ISO 下載:ISO image Mirror Site

CentOS Official Website: http://www.centos.org/

參考資料:

http://linux.tnc.edu.tw/techdoc/eltoyou/eltoyou.html

Postfix 的 Relay Control

Postfix 的 Relay 控制,是在 /etc/postfix/main.cf 裡面做設定,主要有四個部份:

  1. inet_interfaces
  2. mynetworks_style
  3. mynetworks
  4. relay_domains

inet_interfaces:

預設值是all,如果你的機器有多張網路卡,但又不想要全部都開放 relay,就可以指定只開放給某張網路卡。

mynetworks_style:

有三種型態:classsubnethost,預設值是 subnet。

  • class 是可以指定開放給 A/B/C class 的來源,這種設定方式滿冒險。
  • subnet 代表你的機器的 IP 所在網域的任何一個 IP 都可以接受 relay。(如果同一個 subnet 裡的機器多,要小心可能被當成垃圾信跳板)
  • host 表示只會設定 localhost 為信任的網域而已。

mynetworks:

這可以設定成檔案的方式或是直接以 IP/netmask 來做設定。例如:

mynetworks=192.168.1.0/24, 127.0.0.0/8

而如果要用檔案方式:

mynetworks = 127.0.0.0/8, hash:/etc/postfix/access

記得 postmap 一下這個 access 檔。

注意:

  1. 如果沒有設定 mynetworks 的話,記得把 mynetworks_style 改成 host,不然同一個子網域的 IP 都可以透過你的機器 relay 信件(當然如果所有子網域的使用者你都認識的話倒還 ok)
  2. 如果有設定 mynetworks_style 以及 mynetwork 時,mynetworks 的設定會取代掉 mynetworks_style。

relay_domains:

可以一次指定一個 domain 來開放 relay。例如:

relay_domains = eddie.com.tw

這樣的設定是代表所有由 eddie.com.tw 這個 domain 來的信件都會被當做可信任的,postfix 會幫忙 relay。但要注意的是,由「任何地方」來的信件,並且要寄往 eddie.com.tw 網域的信件,postfix 也會幫忙 Relay。

詳細設定在 /etc/postfix/main.cf 裡有說明。

Hinet 廣告信跳板測試: http://lcss.hinet.net/antispam/or_check.pl

MPlayer 的字幕問題

最近透過非合法的手段,找到了某部正在上映的院線片來看,但在 Red Hat 9 上用 mplayer 播放時,中文字幕會變成亂碼。翻了一下網路上其它人的解決方法,我也有正常的中文字幕看了 :)

Step 1. 開啟 mplayer,修改 preferences

Step 2. 選擇 Subtitle&OSD 標籤:

將 subtitle 裡 encoding 選項裡的編碼改成Traditional Chinese Carset(Big5)

Step 3. 選擇 Font 標籤,選擇中文字形:

我是用 /usr/share/fonts/zh_TW/TrueType/bsmi001p.ttf(當然也可以選用其它像 firefly 之類漂亮的字型),Encoding 選Unicode

Step 4. 其它例如字幕大小、透明度…等,都可以在這裡調整。

這樣一來,我的 Mplayer 也有漂亮的中文字幕啦 :)

取消 Vim 裡的高亮度(highlight)

在使用 Vi(m) 的時候,在文件中要搜尋某個字,會用 /somewords 來找,找到之後會把符合的字串標出顏色,這個功能有時挺方便,但有時看久了眼睛會花,不是挺舒服。

原來可以把這個方便的功能「暫時」關閉,

:nohlsearch

但下次找字串時又會出現高亮度。如果希望往後找字串都不會表示亮度,就是:

:set nohlsearch

希望每次啟動 vi 都要關閉高亮度表示,把設定寫到 ~/.vimrc 中。

有個更方便的做法,把下面這個寫到 ~/.vimrc 中:

map <F8> :set hls!<BAR>set hls?<CR>

以後按 F8 鍵,就會切換有/無高亮度了。

註:感謝 kenduest.bbs@bbs.sayya.orgBlueshine.bbs@ptt.cc 兩位大大的指導。

Postfix + Vm-pop3d

一般架設 mail server,通常是在 server 上開立一個帳號(ex: useradd eddie),就差不多可以讓使用者來收發信件了。但一部電腦只設定一組 domain name 的 mail,是有些浪費。但如果在同一台機器上要設定兩個以上不同 domain name 的 email,上面這個方式就行不通了,但透過 postfix 的 virtual alias table,還是可以做到這個功能的。

中文字處理的問題

最近在用 sed 處理中文資料的時候,發現經過處理後,有少數字會變成亂碼,後來才知道原來是 locale 沒設定好。

$ echo '65,3,"1111","謝婷雯","xxx@yahoo.com.tw'| sed 's/@/","/g'

結果得到:

65,3,"1111","謝?,"雯","xxx","yahoo.com.tw

我在自己帳號下的 .bash_profile 裡面加上 LC_ALL=zh_TW.Big5 之後:

$ echo '65,3,"1111","謝婷雯","xxx@yahoo.com.tw'| sed 's/@/","/g'

結果就是

65,3,"1111","謝婷雯","xxx","yahoo.com.tw

說明:

locale 的環境變數設定有下列幾個:

  1. LC_CTYPE: 字元分類及處理方式。
  2. LC_COLLATE: 字元順序與字串比較。
  3. LC_MESSAGES: 程式中用何種語言來顯示訊息。
  4. LC_MONETARY: 貨幣顯式格式。
  5. LC_NUMERIC: 數字顯式格式。
  6. LC_TIME: 日期與時間的顯式格式。
  7. LC_ALL: 此類別可以一次設定以上所有的類別。
  8. LANG: 作用類似 LC_ALL,也可用來一次設定所有的 locale 環境。

使用 locale 這個程式可以看到目前 locale 的設定情形:

> locale
LANG=en_US.UTF-8
LC_CTYPE=”zh_TW.Big5″
LC_NUMERIC=”zh_TW.Big5″
LC_TIME=”zh_TW.Big5″
LC_COLLATE=”zh_TW.Big5″
LC_MONETARY=”zh_TW.Big5″
LC_MESSAGES=”zh_TW.Big5″
LC_PAPER=”zh_TW.Big5″
LC_NAME=”zh_TW.Big5″
LC_ADDRESS=”zh_TW.Big5″
LC_TELEPHONE=”zh_TW.Big5″
LC_MEASUREMENT=”zh_TW.Big5″
LC_IDENTIFICATION=”zh_TW.Big5″
LC_ALL=zh_TW.Big5

參考資料:

http://xcin.linux.org.tw/i18n/pc2000/p2/node4.html