Posted by
tka – 2008-10-25
基本上這邊的方法是參考在 UTF8 編碼下的網頁簡繁互轉 跟 新同文堂 兩者後進行整合得到的,一支程式可以同時在big5, gbk ,utf8 三種編碼下使用(其實是所有的編碼都可以,但是中文常見的是這三種),並且可擁有詞庫對應功能,在簡繁並存的網頁上會有比較好的效果(基本上就跟新同文堂轉出來的效果一樣),瀏覽器測過FF3 跟 IE6&7都沒問題。
效果如下
簡繁體並存 切換成全繁體 切換成全簡體
程式碼放在
javascript程式(需搭配jquery)
簡繁體字詞對應資料(資料由新同文堂中取出,已獲得 softcup自由取用的許可)
Posted by
tka – 2008-10-12
目前我是用vim + flex sdk來做flex的開發,跟server端則是透過remoteObject 與amfphp做溝通。但是這常遇到一個討厭的狀況,就是當我透過fcsh把swf檔編譯出來後,要上傳到server端才能夠正常的run跟debug。使得每次編譯完都要做一次rsync的動作。後來想到架一個proxy來把遠端的url指到本機上的檔案不就好了。一開始是用squid+apache來做這件事情,後來想起來apache自己就有mod_proxy可用呀,於是乎就在local裝上 apache,然後把下面的設定貼在config裏面就好了。
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Proxy>
RewriteEngine On
RewriteRule http://aaa.com/bbb/ccc.swf.* http://127.0.0.1/ccc.swf [P]
如此一來, 再把apache Doucment Root下建立ccc.swf的link,並且設定firefox連線時透過127.0.0.1:80的proxy,這樣子firefox再開啟http://aaa.com/bbb/ccc.swf時就會去載入剛剛透過fcsh編譯好的東西了。省下一天到晚rsync的動作
Posted by
tka – 2008-10-08
最近想把肉 膚色的圖片找出來,於是就Google了一下,最後發現使用HSV值去做判斷是比較好的方法。於是就用php硬幹了一個做測試,使用(((0<=$h && $h <=1.10)||$h>5.18 )&& 0.1<=$s && $s <= 0.63 && 0.35<=$v && $v <=1)當條件,效果還可以接受,原始碼如下
function rgb2hsv
( $r , $g , $b ) {
$r = $r / 255 ;
$g = $g / 255 ;
$b = $b / 255 ;
$max = max ( $r , $g , $b ) ;
$min = min ( $r , $g , $b ) ;
$v = $max ;
if ( $max - $min == 0
) {
return array ( 0
, 0
, $v ) ;
}
$s = ( $max - $min ) / $max ;
if ( $max == $r ) {
$h = ( 6
+ ( $g - $b ) / ( $max - $min ) ) ;
} elseif ( $max == $g ) {
$h = ( 2
+ ( $b - $r ) / ( $max - $min ) ) ;
} elseif ( $max == $b ) {
$h = ( 4
+ ( $r - $g ) / ( $max - $min ) ) ;
}
$h = ( ( $h * 60
) % 360
) * ( 2
* pi ( ) / 360
) ;
return array ( $h , $s , $v ) ;
}
$img = imagecreatefromjpeg ( "./1.jpg" ) ;
$img2 = imagecreatetruecolor ( ImageSX ( $img ) , ImageSY ( $img ) ) ;
for ( $y = 0 ; $y & lt
; ImageSY
( $img ) ; $y ++ ) {
for ( $x = 0 ; $x & lt
; ImageSX
( $img ) ; $x ++ ) {
$rgb = imagecolorat ( $img , $x , $y ) ;
$r = ( $rgb & gt
;& gt
; 16
) & amp
; 0xFF ;
$g = ( $rgb & gt
;& gt
; 8
) & amp
; 0xFF ;
$b = $rgb & amp
; 0xFF ;
//print_r(rgb2hsv($r,$g,$b));
//die();
list ( $h , $s , $v ) = rgb2hsv
( $r , $g , $b ) ;
if ( ( ( 0
& lt
;= $h & amp
;& amp
; $h & lt
;= 1
. 10
) || $h & gt
; 5
. 18
) & amp
;& amp
; 0
. 1
& lt
;= $s & amp
;& amp
; $s & lt
;= 0
. 63
& amp
;& amp
; 0
. 35
& lt
;= $v & amp
;& amp
; $v & lt
;= 1 ) {
//if(0<=$h && $h <=1.388 && 0.23<=$s && $s <= 0.63 && 0.25<=$v && $v <=1){
imagesetpixel ( $img2 , $x , $y , $rgb ) ;
//echo "==$x,$y==\n";
//var_dump($r, $g, $b);
//var_dump($h, $s, $v);
} else {
imagesetpixel ( $img2 , $x , $y , 0
) ;
}
}
//die();
}
imagepng ( $img2 , "2.png" , 9
, PNG_ALL_FILTERS
) ;
Posted by
tka – 2008-09-28
因為有需要在flex的程式中使用到不同的字型
但是中文字型整個包進去又大的嚇人 所以就想用動態載入的方式來解決
於是就很暴力的server端利用 flex3 sdk 即時編譯actionscript3的原始碼
來產生內含字型描述的SWF檔,並透過cache機制,讓他只有在第1次載入時需要編譯
基本上功能大致都達到了,但是目前還有兩個問題尚未解決
1.部份字型參考調整後仍嵌入
2.mxmlc編譯速度緩慢,但若改用swfmill的話,還不知道如何使用其中的嵌入字型
實作Demo 與原始碼
http://www.tkalu.com/tmp/embedFontText/
更新:
剛剛找到加速編譯的方法了
透過 haxe 把 swfill編出來的檔案再包一層就可以了
速度上達到十分滿意的效果 20個字以內幾乎沒有感覺
http://tw.news.yahoo.com/article/url/d/a/080928/2/16pnq.html
這篇文章丟進去抓字型編譯只需要 2-3秒鐘
實作Demo 與原始碼請參考
http://www.tkalu.com/tmp/embedFontText2
Posted by
tka – 2008-08-30
TraceMonkey最近還蠻紅的,今天下載了nightly的Firefox 3.1a2測了一下的確可以感受到比較快。不過得要把下面兩個about:config中的設定改成enable如此才能啟動TraceMonkey。再此特別筆記一下。
javascript.options.jit.chrome
javascript.options.jit.content
Posted by
tka – 2008-08-03
目前的環境是用一台turion64 ML-30+1Gb Ram的機器當做server,因為太高級了(其實是用量太少 XD),所以什麼服務都丟給他做,所以今天就順手幫他加個layer7的qos。基本上按照layer7 Kernel How to 去做,然後用google找一下qos的設定方式就可以搞定了。這邊遇到的問題是
l7 filter抓不出 telnet
l7 filter抓不出 bittorrent
第1點:l7的比對字串看來只能抓到telnet這支程式的連線,比較好用的pcmanx就抓不到了 Orz,但是因為現在telnet也只有連ptt.cc比較常用,所以乾脆就把所有對ptt.cc的連線優先權調高,這樣就解決了。
第2點:這邊採用解決方是先建立白名單把要調高權限的列出來,然後把剩下l7 filter unknown的連線,權限全部調低,寧可錯殺不可放過 :p。
調完之後,ftp跟p2p不限速都不會干擾到一般的使用了,網路就是一整個順暢呀。
Posted by
tka – 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。
Posted by
tka – 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
Posted by
tka – 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