Firefox over SSH Tunnel

在北京上網時,有些網站會連不上,大多數的情況下可以透過 PuTTY 建 SSH Tunnel,把 HTTP 連線透過 PuTTY 加密就可以了。但是有時候是因為 domain 解出不同的 IP address 而造成連不上,像是 totorogo.dyndns.org。

這時候就要用 about:config 把 network.proxy.socks_remote_dns 改成 true,要求 Firefox 將查詢 DNS 的需求透過 PuTTY 所建出來的 Socks5 Tunnel 送出詢問,目前看起來還蠻正常的,暫時先這樣用看看...

使用 Firefox 新版 (地雷版) 時必要的武器

雖然 Firefox 3 很容易當掉,但我已經相當習慣他當掉了,所以我的四組電腦都是用地雷版 (家裡與公司的 Desktop、X31、R60)。

四台電腦有幾乎一樣的 addons,但很多 addons 都是 Firefox 2.0.0.x only,不過實際上在 Firefox 3 上跑其實很正常,所以需要動一些手腳讓 Firefox 可以用。

我發現很多人都是修改 addons 裡的 install.rdf,甚至教學文都是介紹這個方法,看起來 Nightly Tester Tools 這個可以關閉 addons 版本檢查的套件已經被遺忘很久了... 在這個套件安裝後,並不會馬上把 Plugins 版本檢查的功能關閉,需要設定一下,設定完以後就可以直接亂裝一堆軟體測試。

對於修改 install.rdf 感到疲倦的人請務必試用看看,相當好用啊...

Twitter

最近很少寫 Blog (程式沒寫幾行,倒是一堆行政上面的事情),不過 Twitter 上倒是常常念。

最近忙一些事情,像是寫不完的採購簽呈 (還好有一部分交給 slzzp 了),然後是開不完的會,如果要抽時間寫程式的話,就得在一般人下班後才有空了...

不管怎麼樣,最近看 jnlin 玩,以及我自己玩一些東西,有些有趣的想法,寫下來紀錄起來。

FreeBSD 7.0 的 SCHED_ULE 長期觀察下來 (超過兩個月) 算是相當穩定,這點在目前 PIXNET 的 Web Server 端可以看出來 (在 FreeBSD 跑 apache22 event 是使用 threading,配合 FastCGIPHP),但 gjournalZFS 在效率以及穩定度上都還不堪使用。(指 heavy I/O)

MyISAM 的讀取速度非常快,但不利於大量 Update (因為寫入的動作需要 table lock)。在國外的討論裡,一般都是推薦使用 InnoDB 解決這類 table 的情況,但實際上目前 InnoDB 的備份問題比起 MyISAM 麻煩 (經驗也是一個大問題),這點可能還要再考慮。

要解決 table lock 的問題,另外一種方式是透過拆 table,而且目前看起來拆 table 撐 performance 的方式似乎相當可行 (在概念上,這是一種 HyperDB 的變形),所以最近應該會對這個方向大量研究。不過就得做不少 Denormalize 的事情,還是得累積經驗...

如果有想到其他值得提的事情再寫好了...

Zend_Cache 與 Memcache Backend

Zend_Cache 是我一開始用 Zend Framework 的主因之一,除了包裝的不錯,使用 tag 的概念也讓我很在意:

Caching in Zend Framework is operated by frontends while cache records are stored through backend adapters (File, Sqlite, Memcache...) through a flexible system of IDs and tags. Using those, it is easy to delete specific types of records afterwards (for example: "delete all cache records marked with a given tag").

如果 cache 可以用 tag 處理的話,cache invalidate 的管理上會變得非常的容易。

用 File Backend 測了一下 tag 的功能發現沒什麼問題,但一直想不太出來在 Memcache 上面要怎麼實做 (而且要 atomic),後來實際拿 Memcache Backend 測了以後發現 tag 的功能在 Memcache Backend 上面不支援,翻了翻 source code 也確定了這件事情 XD

最近有人在 mailing list 上提到 memcached-tag 這個子計畫,看起來是有關係的 :p

放假

兩件雜事...

因為這個禮拜以及上個禮拜都在衝簽呈的進度,星期二總算是告一段落,星期四利用十六個小時的睡眠暫時舒緩了一些疲勞...

另外一件事情是 Layeredtech 有特價,而且還可以再用 payment 打折:$99/month 的 P4-2.8GHz + 2GB/RAM + 500GB/HD + 100Mbps Uplink + 1500GB/Bandwidth$115 的 P4-3.4GHz + 與前面一樣的條件。信件裡提到了很多,有需要的人我再 forward...

#bsdchat 搬到 freenode 上,換 UTF-8 編碼

紀錄一下情況:(2/24)

12:12 <@chinsan_> http://doxory.com/choice/1813 #bsdchat 要不要從 IRCNET 改搬到 freenode?
12:12 <@chinsan_> 要表決看看嗎?
12:13 <@mjhsieh> 順便改成 utf8? # 推廣 utf8...
12:14 <@chinsan_> hmmm...
12:14 <@in2> 果真這種服務完全沒有忠誠度可言 XD
12:17 < PipperL> 忠誠度又沒有專屬頻寬 XD
12:18 <@chinsan_> 忠誠度又沒有專屬小島 XD
12:37 <@yinjieh> 搬吧 不過到時候就不能這樣 OP 狂發了 (?)
12:39 <@gslin_cs> yinjieh: 沒什麼不可以的啊 XD
12:43 <@yinjieh> gslin_cs: 報告是!XD
12:43 <@yinjieh> 那就馬上搬 (?)
12:45 <@yinjieh> 只有我投票啊?XD
12:45 <@yinjieh> 話說有人已經搬過去了嗎
12:45 <@hcchien> 那我也要
12:45 <@gslin_cs> 我剛剛加進去發現有人註冊過了?
12:45 <@gslin_cs> UTF-8 對吧
12:46 <@gslin_cs> 搬過去順便換
12:46 <@hcchien> 投搬家 + utf 一票
12:46 <@sharity> gogogomoving
12:46 * sharity (CS-ing)

Zend Framework 中,Zend_Controller 測試時遇到的問題

我有三天的時間卡在 Zend_Controller 的使用問題,不管怎麼用都會丟出 500 Internal Server Error。後來不斷的測試,發現他根本就會動,只是我測試的方法有問題。

先講一下 Zend_Controller 的用法,在引入 Zend_Controller_Front class 後 (方法請參考官方網站的說明):

  • 先用 $ctrl = Zend_Controller_Front::getInstance(); 取得 controller。(跟 I HAVE CONTROL 無關... 看不懂笑點的請參考 CLANNAD 00)
  • $ctrl->setParam('noViewRenderer', TRUE); 將預設啟用的 Renderer Helper 閹掉。
  • 然後用 $ctrl->addControllerDirectory('目錄位置'); 設定 Controller 目錄。
  • 最後用 $ctrl->dispatch(); 開始跑。

然後 controller 的目錄下放 IndexController.php 就會對應 http://host/index 以及 http://host/ (因為 index 是特殊的存在),放 TestController.php 就會對應 http://host/test,這些在官方文件裡都有還算清楚的範例。

我的錯誤是在,我錯誤的使用 GET 的 proxy 模擬 HTTP Request。簡單的說,以下的 HTTP Request 會造成 500:

GET http://test.host.domain/test HTTP/1.1
Host: test.host.domain

但這個不會:

GET /test HTTP/1.1
Host: test.host.domain

而我用 libwww-perl 內附的 GET 這個「指令」測試:

GET -SUe -p http://test.host.domain:80/ http://test.host.domain/test

這個指令會送出第一類 HTTP Request,於是就噴了... 就只是這樣的問題而已。