Month: July 2008

套槽到oxim

Posted by – 2008-07-27

話說本來一直都是gcin的愛好者,但是不知道從哪一天開始就一直遇到一個問題(ubuntu&archlinux皆會)。在開機使用了一陣子之後,gcin詞音輸入法的畫面顯示會出問題,整個變得很難用。基本上是跟這個問題一樣,再沒有解決方法之前,只好先尋求替代方案了。因為對scim穩定度印象極差,所以目前是採用firefly開發的oxim,用起來還ok,除了選字框偶而跑掉外,沒有特別的問題。在gcin解決前就暫時先頂著吧。

2008-08-03更新:不知為何oxim+firefox 3在firefox關閉時會crash,所以又換回gcin了。真是一整個囧呀。套句hlb長輩說勸敗mac時的話:你看你都把生命花在XXX上… 。下次要是有錢乾脆買mac好了 Orz。

PHP Naive Bayesian Filter 文章自動分類

Posted by – 2008-07-06

今天來用php實作自動文章分類功能吧 :p
其實是無意中看到PHP Naive Bayesian Filter載下來測了一下。不支援中文,英文也怪怪的。
算了直接trace code動手改吧。直接就把UI改透過Google翻譯改成英文版,資料庫的table也確認是utf8,然後在補上簡陋的中文切詞功能。OK 這樣就可以work了。丟了快50篇文章進去,準確度還可以接受拉,不過如果中文切(分)詞有比較好的處理方式,準確度應該會更好才是,不過這就不是我一個人可以搞定的事情了 XD。
demo page http://tkalu.com/tmp/phpnaivebayesian-1.0/index.php
改過的 source code http://tkalu.com/tmp/phpnaivebayesian-1.0-cjk.tgz

MySQL Order by rand() 效能爆走大法

Posted by – 2008-07-02

gslin大神那邊看到一則MySQL 的 ORDER BY RAND() 的替代方案可以調整效能的方法。
話不多說,直接講要做的事情 & 實測結論

隨機從mysql資料image從3XX萬筆中挑出一條

直覺的作法
select * from image$ order by rand();
花 24秒左右 (迷之聲:2007年上半年就是這樣過去的………)

經過強者大腦的處理方式
SELECT * FROM image$ AS r1
JOIN (SELECT (RAND() * (SELECT MAX(img_id) FROM image$)) AS id) AS r2
WHERE r1.img_id >= r2.id ORDER BY r1.img_id ASC LIMIT 1;
只要0.025~0.0001秒

是的,你沒有看錯,我沒有打錯。這是真是令人想拍捉桌罵髒話的結果,隨便測都進步了1000倍!!!!!!!
細節與思考方式,請參考
http://blog.gslin.org/archives/2008/07/02/1535/
http://jan.kneschke.de/projects/mysql/order-by-rand