簡易的多語系版sIFR

2009年1月2日

記得在去年的HDM4上說道想要把flex3 即時載入中文字型測試v2做成中文版的sIFR。過了一年目前終於有點進展了。

主要就是寫了jQuery的plugin來處理要被取代的元素 跟 as3版的flash用來載入字型與繪製文字的。至於在HDM4上面提到的問題統統都還沒有解決 ,如果今年會有時間的話再來用硬派的方法來處理掉他 XD。Demo。

如果有人想要自己測試看看的話,請複製下面語法到自己的網頁裡面就可以了,他會把 具有class=”df”的元素取代成flash的文字,不過目前只實做了少部份的的功能,所以應該會有不少奇怪的問題,特別是在IE上面  :p。

<script type="text/javascript" src="http://www.tkalu.com/tmp/demo/rgbcolor.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript" src="http://www.tkalu.com/tmp/demo/jquery.df.js"></script>
<script>
</script>
<script type="text/javascript">
$(document).ready(function(){
$('.df').df(fontFamily); //fontFamily目前提供0-4,一共5種字型
}
);
</script>

tka Flex&AIR, html

rubymsn 主動發訊息

2008年12月14日

最近有點忙,過著白天寫php+html,晚上寫ruby+gtk的日子。

剛好玩到rubymsn需要主動去發訊息。被動的處理訊息,範例裏面寫的還滿清楚的。主動的部份,倒是讓我第一眼沒有意會到那是主動發訊息的方法(其實教學範例的最後一段就有實作了 XD)。

節錄實作方法

msnsock.start_chat(識別標籤,對方email);
msnsock.chatsessions[識別標籤].say(訊息)

這樣子就可以了,害我研究半天 XD

tka ruby

圓角框終極版之JQuery plugin scale9grid

2008年11月19日

無意中看到的 JQuery plugin
scale9grid
JQuery Plugin for Scaling Background Images Using a Grid

可以透過 javascript 指定一張圖片跟他上下左右的邊界
自動幫你,縮放成某個html元素的背景,感覺就是一整個好用
但是細節用講的有點難了解,所以就直接看範例的效果吧
http://hempton.com/examples/scale9grid

官方網站
http://code.google.com/p/scale9grid/

ps.有網友形容就像是 西索 伸縮自在的愛那招,十分貼切呀 XD

tka Firefox, html

用Javascript實現網站簡繁體轉換

2008年10月25日

基本上這邊的方法是參考在 UTF8 編碼下的網頁簡繁互轉新同文堂兩者後進行整合得到的,一支程式可以同時在big5, gbk ,utf8 三種編碼下使用(其實是所有的編碼都可以,但是中文常見的是這三種),並且可擁有詞庫對應功能,在簡繁並存的網頁上會有比較好的效果(基本上就跟新同文堂轉出來的效果一樣),瀏覽器測過FF3 跟 IE6&7都沒問題。
效果如下


程式碼放在
javascript程式(需搭配jquery)
簡繁體字詞對應資料(資料由新同文堂中取出,已獲得 softcup自由取用的許可)

tka Firefox, html

flex sdk + amfphp 開發時 swf測試發佈技巧

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的動作

tka Firefox, Flex&AIR, Linux

圖片中使用HSV值進行膚色偵測

2008年10月8日

最近想把膚色的圖片找出來,於是就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<ImageSY($img);$y++){
for($x=0;$x<ImageSX($img);$x++){
$rgb = imagecolorat($img, $x, $y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8 ) & 0xFF;
$b = $rgb & 0xFF;
//print_r(rgb2hsv($r,$g,$b));
//die();
list($h,$s,$v)=rgb2hsv($r,$g,$b);
if(((0<=$h && $h <=1.10)||$h>5.18 )&& 0.1<=$s && $s <= 0.63 && 0.35<=$v && $v <=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);
?>

tka 未分類

即時flash嵌入中文字型

2008年9月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

tka Flex&AIR, php

Solr

2008年9月11日

tka Linux, php

Firefox 3.1a2 + TraceMonkey

2008年8月30日

TraceMonkey最近還蠻紅的,今天下載了nightly的Firefox 3.1a2測了一下的確可以感受到比較快。不過得要把下面兩個about:config中的設定改成enable如此才能啟動TraceMonkey。再此特別筆記一下。

javascript.options.jit.chrome

javascript.options.jit.content

tka Firefox

layer7 filter + qos 調降 ftp&p2p 優先權

2008年8月3日

目前的環境是用一台turion64 ML-30+1Gb Ram的機器當做server,因為太高級了(其實是用量太少 XD),所以什麼服務都丟給他做,所以今天就順手幫他加個layer7的qos。基本上按照layer7 Kernel How to去做,然後用google找一下qos的設定方式就可以搞定了。這邊遇到的問題是

  1. l7 filter抓不出 telnet
  2. l7 filter抓不出 bittorrent

第1點:l7的比對字串看來只能抓到telnet這支程式的連線,比較好用的pcmanx就抓不到了 Orz,但是因為現在telnet也只有連ptt.cc比較常用,所以乾脆就把所有對ptt.cc的連線優先權調高,這樣就解決了。
第2點:這邊採用解決方是先建立白名單把要調高權限的列出來,然後把剩下l7 filter unknown的連線,權限全部調低,寧可錯殺不可放過 :p。

調完之後,ftp跟p2p不限速都不會干擾到一般的使用了,網路就是一整個順暢呀。

tka Linux