|
11 17 |
|
這個是從同事那邊知道的好東西, Nunni FSM Generator,它能自動根據你輸入的設定檔產生狀態機的程式碼,詳細的資料請查閱軟體的使用說明,但我要講的重點在於它”自動產生的程式碼部份”,因為自動產生的code封裝得十分漂亮,所以我想對code做點介紹
以前寫狀態機的東西,不脫離if,else,case,switch…等這幾種語法搭配,可是寫出來的code”不大容易讀懂”,比如說我今天有個狀態機如下圖,假設有一張桌子,上面只能擺一個瓶子,我如果拿走了這個瓶子,那我就不能從桌子上再拿走瓶子了,如果桌子上已經擺了一個瓶子,那桌子上就再也不能多加瓶子上去
|
10 13 |
|
最近假日真多,連續破了好幾個遊戲,如”鬼屋魔影5”,”末日之戰-彈頭”…等,不過發現近視度數好像加深了,看東西都糊糊的,不過這樣也好,年紀大時老花眼不會這麼快來
話說這一陣子都在玩SIP的東東,也成功的把PJSIP porting在有DSP的板子上運作(板子上的DSP可以直接編解碼RTP,所以我修改PJSIP以便攔截RTP),而藉著PJSIP強大的函式庫,我的程式除了硬體控制的部份外,其它SIP控制的部份零零總總加起來可能連100行都不到,由此可見PJSIP封裝的能力,但難能可貴的是以下幾點
1.它實在很好移植-好像有網友已經把PJSIP擺在PSP上了
2.明確的程式架構-PJSIP的架構讓讀它的人很爽
3.詳細的說明文件-就是這點贏過oSIP,Sofia SIP…等
|
09 22 |
|
實在不曉得為什麼下這樣的標題,可能最近武俠小說看太多了,不過在講這個主題前,請大家一定要支持”海角七號”這部電影,真得很好看,令人好笑又感動,我打算有機會再安排個墾丁之旅,好好把當時的電影場景再逛一遍
回歸正題,LIST這個資料結構不難懂,只要把買電影票要排隊的那套邏輯拿來好好想一想,就知道LIST是做什麼用的,LIST可以說是QUEUE和STACK的原型,雖然只支援sequential access,但如果善用排序和搜尋,它存取資料的速度其實非常快,之前寫LIST的資料結構,都是用C++的STL,後來最近發現一個純C寫的Library “simclist”,它這支library使用上也蠻簡單的,支援類iterator的方式存取list,所以我把C++ STL和simclist拿出來比較看看,從記憶體,效能,和排序時間看看它們的優點
|
09 04 |
|
之前處理XML文件時,就是用這套工具橫行江湖,Expat提供細緻的函式讀寫xml文件,SCEW則是把Expat函式包裝成亮麗的界面供使用者更方便的存取xml,個人覺的,這兩套函式庫實在不輸給.net System.xml下的API
首先下載expat library和scew library,這兩套軟體的使用方式很簡單,執行configure,make,make install後,就可以使用它們的library,而我這邊的範例編譯時用static link,所以我都直接連接它們的.a函式庫檔
Makefile的範例如下
|
08 29 |
|
|
07 08 |
|
一般檢查memory leak的工具不外乎如electric fence, leak tracer…等,但大部份的工具在使用上都很麻煩,必需重編你的程式並連結這些debug工具的library,開什麼玩笑,為了這樣我還要改Makefile…!@#$神經病
最近發現了一個小巧且功能還不算太簡陋,又很適合懶人使用的memory leak工具,它就是valgrind.在詳細說明
|
06 09 |
|
Essential python: 大陸網友寫的python入門書,不是網路上的那本tutorial,裡面的內容我覺得跟tutorial不相上下,易學易懂
Python library reference:它把python library一一條列剖析,不管那個api,都可在這本書裡面找到,再加上有詳細易懂的範例,實是不可或缺的pyt
|
05 30 |
|
什麼是inotify
我截錄一段inotify創作人Rober Love在Linux Journal上所說的一段話
inotify is a file change notification system—a kernel feature that allows applications to request the monitoring of a set of files against a list of events. When the event occurs, the application is notified. To be useful, such a feature must be simple to use, lightweight with little overhead and flexible. It should be easy to add new watches and painless to receive notification of events.
上面那段話簡單的來說,inotify可以幫助你即時的觀測檔案的改變,並回送通知給你,而inotify把檔案狀態的變化分為以下十類

