最近真的很無聊
工作就不用講了,只剩268天,快結束了。最近的工作跟XML有關,但是在現今XML已經普遍到哪裡都看得到,甚至資料交換的方式已經不只有XML可以選擇的情景下,他們還要我提出XML跟memcpy()到底有哪裡不同,還真是非.常.無.聊。三年多了,真是一點長進也沒有。
最喜歡玩的WOW也慢慢淡出了,真的很好玩,但是佔用我太多時間了,所以只好忍痛縮短玩WOW的時間。Blizzard怎麼那麼厲害呢,做出來的遊戲都很好玩,而且不管是高階低階電腦都可以跑,也很少有BUG,這樣的軟體品質到底是怎麼做出來的呢ˊˋ?沒有WOW玩的空檔時間就玩玩Travian,但是這種遊戲就只是點來點去的,點久了也是會無聊......
無聊開的兩個project也變無聊了。第一個PPPoE Killer,功能就是把室友的pppoe撥接連線斷掉,當初是因為老妹的室友狂用foxy塞爆網路,跑來跟我求救,我好不容易想出來寫出這個東西,結果她們直接換光纖大家一起開foxy=口=,辛苦寫好的東西總不能放著不用,所以就把這東西丟到網路上公諸於世......但是我覺得像這種影響到網路使用權利的行為,還是透過溝通來解決比較恰當且有效,所以這個軟體我已經不太想理它了= =。第二個XRelayer,說穿了其實就是一個HTTP PROXY而已,只是我常自己加一些奇怪的功能,所以library dependency愈來愈重......不過是個HTTP PROXY而已,要準備的library那麼多誰會想自己compile啊......而且HTTP PROXY好像也沒啥特別的,我是不是該來接觸一下driver programming,這樣以後比較好找工作呢?
準備考TOEIC......念英文更無聊,買MP3 player是要拿來練英文聽力的,結果現在一開起來都是在聽歌......因為聽英文真的很無聊啊ˊˋ
接的case看起來也只是苦工,蠻無聊的。教會因為人的關係四分五裂,唉~~也變得無聊了,人果然是軟弱的。最近又開始下雨......無聊的氣氛又更添幾分了,無聊到寫不下去了,吃飯了。
2008年4月23日 星期三
2008年3月31日 星期一
2008年3月17日 星期一
CMake
CMake - Cross-Platform Make
它的makefile就是一個txt檔, 可以在不同平台上產生不同的makefile, 例如在VC8裡它就可以產生sln和vcproj, 在linux上就會產生unix-style的makefile (而且還有彩色的進度呈現......cool)
簡單易上手, 很多人在用(KDE也採用), 所以文件資源豐富, 跟我之前在用的Boost Build比起來, CMake真的是比較好找到需要的文件或解答, 所以我跳槽了= ="
它的makefile就是一個txt檔, 可以在不同平台上產生不同的makefile, 例如在VC8裡它就可以產生sln和vcproj, 在linux上就會產生unix-style的makefile (而且還有彩色的進度呈現......cool)
簡單易上手, 很多人在用(KDE也採用), 所以文件資源豐富, 跟我之前在用的Boost Build比起來, CMake真的是比較好找到需要的文件或解答, 所以我跳槽了= ="
2008年2月22日 星期五
ClamAV - open source的防毒軟體
ClamAV AntiVirus
Wow, 連防毒軟體都有open source的(其實也沒啥大驚小怪的, 整個OS都可以open source了不是嗎), 想知道防毒軟體怎麼運作的, 這是個很好學習的對象。不過這是專門用來在gateway上掃毒的, 所以可能跟一般個人用防毒軟體有點差距。
其實是因為最近open source社群有件事情, 才讓我注意到這個軟體, 請看Boycott Trend Micro。起因就是Barracuda Networks這家公司想要把他們產品內的掃毒引擎由趨勢的東西換成ClamAV, 乍看之下好像沒啥問題 - 我不想用你們的東西, 換個東西用應該沒犯法吧? 但是!! 重點就在於趨勢手上握有一項專利 - 在gateway上掃毒。所以趨勢要求Barraccda要付給他們patent fee, 就因為Barracuda在gateway上掃毒侵犯了他們的專利權= =
趨勢之前好像也靠這個專利告贏了幾家廠商, 沒辦法, 這就是法律。坦白講我自己覺得這是專利權危害軟體發展的最好例子, 在gateway上掃毒只是個概念而已吧? 又不是像光碟片有自己特殊的製造技術, 所以擁有這個製造技術的專利。趨勢這樣搞法, 以後大家想要實做一項在gateway上掃毒的技術, 不就都綁手綁腳的嗎?
Wow, 連防毒軟體都有open source的(其實也沒啥大驚小怪的, 整個OS都可以open source了不是嗎), 想知道防毒軟體怎麼運作的, 這是個很好學習的對象。不過這是專門用來在gateway上掃毒的, 所以可能跟一般個人用防毒軟體有點差距。
其實是因為最近open source社群有件事情, 才讓我注意到這個軟體, 請看Boycott Trend Micro。起因就是Barracuda Networks這家公司想要把他們產品內的掃毒引擎
趨勢之前好像也靠這個專利告贏了幾家廠商, 沒辦法, 這就是法律。坦白講我自己覺得這是專利權危害軟體發展的最好例子, 在gateway上掃毒只是個概念而已吧? 又不是像光碟片有自己特殊的製造技術, 所以擁有這個製造技術的專利。趨勢這樣搞法, 以後大家想要實做一項在gateway上掃毒的技術, 不就都綁手綁腳的嗎?
2008年2月21日 星期四
Wubi
Wubi - unofficial Ubuntu installer for Windows
1. 直接在Windows安裝, 不用燒安裝CD
2. 不用分割硬碟, 它把Ubuntu裝在一個資料夾裡, 所以反安裝也很簡單
3. 不用安裝bootloader, 安裝完直接重開機就可以選擇Windows或Ubuntu
4. 效能幾乎一樣, 差別只在硬碟存取可能比較慢, 這跟磁區的defragment有關
很無痛的玩法......
1. 直接在Windows安裝, 不用燒安裝CD
2. 不用分割硬碟, 它把Ubuntu裝在一個資料夾裡, 所以反安裝也很簡單
3. 不用安裝bootloader, 安裝完直接重開機就可以選擇Windows或Ubuntu
4. 效能幾乎一樣, 差別只在硬碟存取可能比較慢, 這跟磁區的defragment有關
很無痛的玩法......
2008年2月4日 星期一
dbgdel.cpp的錯誤......
code老是無預警當掉, 用VC的debug build來run, 卻總是出現以下訊息
_ASSERT(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
而且還是dbgdel.cpp的錯誤......
google了一下, 原來double free記憶體或是buffer overflow都是這樣子的exception, VC這樣寫還真的是看不懂啊
而且, VC的release build並不會馬上對double free做出反應, 而是在不定時間crash = ="
參考以下簡單的一段code
這樣的double free用VC 2005的release build來run沒有問題, gcc 4.1.1倒是會印出double free or corruption。不過, 寫作習慣比較好(這表示...偷懶的時候常常會省略)的coding方法應該要避免這種dangling pointer:
free前先檢查是不是null pointerThe ANSI standard ANSI X3.159-1989 "Programming Language C." specifies that free(NULL) is a no op. "free deallocates the space pointed to by p: it does nothing if p is NULL." Quoted from "The C Programming Language" second edition by Kernighan and Ritchie with the subtitle "ANSI C"., free完的pointer一律設為null pointer(free完就不理它的話, 就叫做dangling pointer啦) 很麻煩的寫法, 不過卻可以保命......抓這種bug可是會要人老命的。
_ASSERT(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
而且還是dbgdel.cpp的錯誤......
google了一下, 原來double free記憶體或是buffer overflow都是這樣子的exception, VC這樣寫還真的是看不懂啊
而且, VC的release build並不會馬上對double free做出反應, 而是在不定時間crash = ="
參考以下簡單的一段code
int main(void)
{
char *n = new char[32];
delete n;
delete n;
return 1;
}
這樣的double free用VC 2005的release build來run沒有問題, gcc 4.1.1倒是會印出double free or corruption。不過, 寫作習慣比較好(這表示...偷懶的時候常常會省略)的coding方法應該要避免這種dangling pointer:
int main(void)
{
char *n = new char[32];
delete n;
n = NULL;
delete n;
n = NULL;
return 1;
}
2008年1月29日 星期二
Floating Point Exception
參考文件
今天用FC6的機器compile了一隻程式, 丟到FC4的機器上跑, 想不到一開始就給了我一串令人挫折的訊息 - Floating Point Exception。原來FC6以後版本的gcc現在在link的時候會採用--hash-style=gnu這個hash方式, 據信可以提昇動態鍊結50%的效率。然而, 舊的glibc版本並不支援, 所以想要在舊的glibc版本上跑的話, link的時候記得加上 -Wl, --hash-style=sysv。
今天用FC6的機器compile了一隻程式, 丟到FC4的機器上跑, 想不到一開始就給了我一串令人挫折的訊息 - Floating Point Exception。原來FC6以後版本的gcc現在在link的時候會採用--hash-style=gnu這個hash方式, 據信可以提昇動態鍊結50%的效率。然而, 舊的glibc版本並不支援, 所以想要在舊的glibc版本上跑的話, link的時候記得加上 -Wl, --hash-style=sysv。
訂閱:
文章 (Atom)