Monday, April 30, 2007
空間判斷小問題(一)
Wednesday, April 11, 2007
Google notebook
Thursday, March 22, 2007
AGG: Anti-Grain Geometry
反鋸齒的展示2D圖形在向量圖中的表現關係到整體感覺
AGG在這個方面表現的十分出色
AGG是一個用C++來實作的library,他用了大量的template來作泛型化設計
因此它的使用十分具有彈性
在跨平台上面他也是很棒
幾乎所有的code都是跨平台的
惟一與平台有關的是在OS event與drawing上面
因此他利用了一個類別稱為platform_support來處理與OS相關的
在platform_support裏面的platform_specific他只宣告它是一個類別
所有跟OS相關的資料結構妳可以宣告在這個類別中
因此將AGG放進目前不支援的drwaing library是非常簡單的
AGG目前有X11、SDL、Mac與win32的支援
我實作了DirectFB的支援,還挺容易的
AGG自己有一套control系統,現在已經有一些基本的control
譬如check box與slide-bar等等的控制元件
在字型顯示方面,他有提供freetype的支援
因此在文字顯示也不是問題
我試過utf-8的中文顯示很棒
但是在轉換unicode碼的部份妳要自己實作
不過這部份並不困難就是
結合AGG+DirectFB+SVG
或許可以有一些有趣的project可以玩玩歐
Wednesday, March 14, 2007
淺談OpenSER(三)
在整個openser.cfg中最重要的大概就是你怎麼處理route裏面的規則,這裡給你做一個簡單的示範。
通常一開始會先檢查SIP message是否是合法的,因此我們對SIP message的forward header與message長度作檢查.......繼續閱讀
Thursday, March 01, 2007
淺談OpenSER(二)
如果妳打開openser.cfg這個檔案,第1眼印象妳可能會以為它是一個script檔案,其實這樣說也沒有不對,但是之前說過這個script其實是lex的輸入文檔,因此妳必須滿足它的字彙規則,讓我們先簡單看一下這個檔案。
這個設定OpenSER的動作檔案簡單可以分成4個部份,分別如下......繼續閱讀
Tuesday, February 13, 2007
淺談OpenSER(一)
VoIP這種應用已經常識了很多年,卻似乎一直沒有太大的成果,當然這涉及到很多的問題,不過以SIP為基礎的原則也越來越確定(好啦,我知道妳用 Skype)。很多人對於VoIP總是感覺像是高不可攀的技術,但其實它並不如此的困難,尤其是有了自由軟體世界的努力,很多Project都可以讓妳輕 鬆的完成你的VoIP規劃。
當然VoIP是一個很廣泛的稱乎,舉凡用網路即時傳遞交換語音訊號其實都可以稱為Voice over Internet,但是VoIP還必須要涉入一些電信的領域,也就是signaling的動作。 就如同PSTN一般,VoIP也需要一個傳遞訊號的機制來建立通訊的兩端,SIP便負責了這件工作。一個SIP的register server可以讓妳每一個SIP client來交換訊息,當你要打電話給另一個朋友,在網路上妳必須要能先找到他,也就是對方的網路位置,但是當你的網路位置會改變的時候,一個可以記錄 你的網路位置的SIP register server便可以發揮功能.....繼續閱讀Friday, January 26, 2007
OpenSSL 0.9.8
OpenSSL 0.9.7版本的方式在0.9.8d並不能正常運作
後來發現是SSL_library_init()與OpenSSL_add_all_algorithms()的問題
不要在使用這兩個function,請使用
SSleay_add_ssl_algorithms()
來代替
換成OpenSSL0.9.8d後可以把我搞慘了呀....ㄏㄏ
Thursday, January 25, 2007
Gentoo 2006.1 stage 1
最近有了一台新的硬體
想說給他裝一下Gentoo
於是乎抓了2006.1的install CD image後
開始從stage1給他安裝
(好啦...我知道我很閒...時間多)
發現2006.1版本stage1有個問題
當我用bootstrap.sh完要emerge system後
發生perl的module有些問題
看到是ExtUtils:MakeMaker:Config.pm的問題
對於perl我是非常陌生的...
但是當我
emerge unmerge perl
emerge perl
一切就回到正常了
看來是stage1的tar ball裏面有些問題
不過....小問題....這個世界又多一台linux box了...ㄏㄏ
Wednesday, January 17, 2007
State Design Pattern
以前寫程式的時候大多數寫一些具有互動UI的程式,因此所有的程式動作都決定於某一個event的發生,不過在很多的情況知下卻需要程式自己決定下 一步的動作,這種需求在自動化的設備中更是重要。以前唸書時相信大家都唸過finite state machine這樣的觀念,自己那個時候還真的是有念.....還真的沒有懂.....因為不知道如何應用....ㄏㄏ。
慢慢在工作上遇到 一些要求後才開始體認state machine是很重要的,但是當你用條件判斷式去決定下一個動作來實作state machine的時候,你會面臨一個問題:上面的長官對於程式的行為很喜歡改來改去....ㄏㄏ。因此每每加上一個新的state的時候都會搞得人揚馬翻 的,每次遇到程式的彈性不夠的時候,就會想起C++的可愛。在之前看Design Pattern的書的時候,曾經看到一種design pattern的設計:State。這次就讓我來試試實做一下吧....繼續閱讀Saturday, January 06, 2007
Friday, January 05, 2007
用OpenSSL來保護你的資料
隨著網路安全的議題越來越受重視,現在的網路應用程式多少都要加上加密保護的機制,PKI這樣的機制也漸漸成為避免不了的東西。或許我們不是網路安 全的專家,不用去完全了解那些機制的原理,但是使用open source的library來將你的網路程式加上保護卻不是十分複雜的工作,OpenSSL便是一個十分出色的library,今天我們來談談PKI的 程式吧。
簡單來說PKI(public key infrastructure)就是通訊的雙方都有一份公鑰(public key)與私鑰(private key),公鑰只能用來加密,而私鑰只能用來解密,一個PKI的session就是一個交換公鑰的過程,這樣一來對方可以用你的公鑰加密而只有你的私鑰可 以解密,你用對方的公鑰來加密,相對的也只有對方的私鑰可以解密,這樣的機制免除了網路上傳遞密碼的問題。
讓我們來看看如何用OpenSSL來幫助你寫出PKI的程式吧.....繼續閱讀