Archive for the 'Computer' Category

Subversion UTF-8 commit log

用 commit-email.pl 或是 的人,在 commit 時裡輸入 UTF-8 commit log (這邊指非純英文,在我自己的環境裡是中文),寄出的信會產生亂碼。

在網路上搜尋或是自己追蹤後,會發現是 svnlook 輸出的問題。網路上很多方法都是改 commit-email.pl,修正 svnlook 的輸出結果,但這個方法我不太喜歡。我覺得 svnlook 應該有設定可以調整,可以讓他輸出正確的 commit log,第一次跑 svnlook 就發現在我的 console 可以正確顯示,測過幾次後發現是因為 svnlook 依照 locale(1) 設定而產生亂碼。

知道問題後就很簡單了,由於 svnlook 會看 locale(1) 的設定,所以在 post-commit 裡先用 export LANG="en_US.UTF-8" (sh/bash) 或是 setenv LANG en_US.UTF-8 (csh/tcsh) 將 locale 設為 UTF-8,再使用 commit-email.pl 送信就沒問題了。

在 Ubuntu 上雙螢幕輸出

Notebook 是 R60,螢幕大小是 1024×768,家裡的 SyncMaster 245B 是 1920×1200,其中 DVI 介面接 Desktop,而 VGA 介面以前用 Windows 時拿來接 R60 雙螢幕。

上想要雙螢幕輸出,但一直卡在解析度上:都是 1024×768 或都是 1920×1200 (Notebook 上會用模擬的),後來找到這篇「」,看起來有點舊,不過還是可以用。

裡面提到的 HSync 與 VRefresh 我都沒設定,另外補上了 Option "Mode1" "1024x768",這樣就正常了,目前這樣使用還蠻正常的。

在 Ubuntu 上用 3G 上網

這邊講的是,在 下透過手機的 USB 線上網,主要是參考 這篇文章找到資料的。

把手機 (Nokia 6210) 接上 USB 傳輸線後,Ubuntu 上可以看到 /dev/ttyACM0 (dmesg 的訊息),這時候先跑 wvdialconf 讓他自動偵測,將設定檔寫入 /etc/wvdial.conf 後,再修改 /etc/wvdial.conf 裡的 Phone/Username/Password。電話號碼我是用 *99#,Username/Password 都是用 internet (隨便設)。

但我沒看到 APN 在哪裡設定,會故意把 Username/Password 都設定成與 APN 一樣也是因為想猜看看,但說不定下個月的帳單還是很精彩 XD

Zend_Form 的一些紀錄

如果是自己搞網站 (程式美術都自己來),用 設定完後,透過 render() 將 HTML code 呈現的確不錯,畢竟強迫你要用 CSS 去處理頁面呈現。不過,如果是請別人先做好美術版面,產生 HTML 後才要轉成 Zend_Form 生出來的話,就會用到很多 manual 裡不會教的「壞方法」XD

目前用到的方法是在 view 裡面 (我用 ) 直接顯示 Element,像是這樣:

<?= $this->post_form->post_title ?>

但只用上面的方法會產生一堆 dt + dd 之類的東西,這是因為 Element 預設的 Decorator 太多,所以需要重設只用 ViewHelper:

$element->setDecorators(array('ViewHelper'));

其他的在原來的 tutorial 都有寫。

另外有點很重要,因為 Zend_Form 在 1.5 版才納入,所以文件並不一定能夠涵蓋所有的方法,看 source code 瞭解用法的能力很重要…

使用 Unicode 的網頁所佔的比例

今年四月四日正式發佈的 (), 也在五月宣佈正式支援這些新的字元:

Google 除了宣佈支援 Unicode 5.1.0 以外,也分析了目前網頁編碼的比例。UTF-8 編碼網頁所佔的比例超越了 ASCII & ISO8859-1,而且還不斷在成長…

PIXNET 徵正職 PHP 工程師

幫我們公司徵人 :p

要徵熟悉 ,以及 的正職 coder 兩名,工作地點在台北市民生東路二段這邊,有興趣的人請將履歷寄到 104@pixnet.tw,標題請寫上「應徵 PIXNET 程式設計師」。

這份工作主要的內容是寫 PHP,如果熟悉 (目前我們用這個開發) 或其他 Framework 更好。

有問題除了可以在 comment 問以外,也可以直接寫信到 gslin at pixnet.tw 問我。

很多地雷的 Zend_Form…

本來要寫「一些 地雷」,結果整理起來還不少,還是改成「很多地雷」比較合理。

第一個地雷是 select 元素:

$el = $this->createElement('select', 'siteshow');
$el->setLabel('是否顯示下一頁');
$el->addMultiOption('1', '顯示');
$el->addMultiOption('0', '不顯示');
$this->addElement($el);

對這個元素設定值時,要記得用 intval() 轉成數字,像這樣:

$f->siteshow->setValue(intval($dbval['siteshow']));

第二個地雷是 setRequired() 的處理,假設你這樣寫:

$el = $this->createElement('text', 'article_title');
$el->setLabel('文章標題');
$el->setRequired(TRUE);
$this->addElement($el);

因為 setRequired 是使用 判斷,所以標題取 “0″ 時就會過不去。目前的解法是用 指定最小與最大長度:

$el->addValidator('stringLength', FALSE, array(1, 255));
$el->addValidator('stringLength', FALSE, array(1)); # 沒有最大長度限制

第三個… 忘記了,想到再寫 Q_Q

PHP 的 array_merge

在「」這篇的 comments 看到 裡兩個 array 相加的處理,實際寫了一些小程式玩過後發現一些以前不知道的東西 :p

associated array 用 $a + $b 時,如果有重複的 key 會優先取前者 ($a),要優先取 $b 就用 $b + $a

遊戲基地與巴哈姆特

說 ok,所以…

是同一個集團,而與大頭們都相當熟識。我本來星期一請假,下午三點把事情處理完回到家準備要睡一下,四點就接到急 call 電話,弄到隔天凌晨四點才回家…

攻擊的模式是大量 IP 用發出大量 HTTP 連線,所以暫時性的解法朝著壓低連線限制,而且要儘快,最好是有現成的設備直接做,不要自己用軟體調整參數調半天。

Gamebase 有將近一打的 Web server,是 Alteon AD3 撐不住所以掛掉,(中間有一堆測試的過程就不講了),最後是在前端放一台 ASA 5520,然後用 換掉 AD3。但 ASA 5520 不夠力,目前還是請 ISP 先做一些處理。

巴哈姆特因為架構比較單純,所以前端放了 Cisco PIX (型號忘了…) 擋著,放上去後站方也是請 幫他們先做一些處理。

其實我並沒有幫到什麼忙,主要還是 SI 願意賣面子先借硬體設備處理。我只是大概知道要朝哪個方向,聯絡哪些單位而已。

第一次加班加到早上…

本來今天是請假的,結果下午四點被急 call 處理事情,這加班的內容… 一整個冏啊… (抱頭)

Ref:

Update:兩個網站的消息都出來了: