2008年5月5日 星期一

賣命工作還是享受人生?

最近PTT八卦版正熱烈討論一個新聞標題

[新聞]研究所畢業「三低族」 只想當總機

裡面大概是講到現在的年輕人愈來愈不喜歡辛苦的工作
寧願去當個沒啥前途的總機,也不想為公司加班賣命賺取更多的收入云云
這種討論最近真是愈來愈多,Tech_Job版也有很多人開始將自己的時薪與7-11的工讀生比較看看XD

我呢,我只想到國中時讀過的論語先進篇
子路、曾皙、冉有、公西華侍坐,子曰:「以吾一日長乎爾,毋吾以也。居則曰:﹃不吾知也。﹄如或知爾,則何以哉?」子路率爾而對曰:「千乘之國,攝乎大國 之間,加之以師旅,因之以饑饉,由也為之,比及三年,可使有勇,且知方也。」夫子哂之。「求!爾何如?」對曰:「方六七十,如五六十,求也為之,比及三 年,可使足民,如其禮樂,以俟君子。」「赤!爾何如?」對曰:「非曰能之,願學焉。宗廟之事,如會同,端章甫,願為小相焉。」「點!爾何如?」鼓瑟希,鏗爾,舍瑟而作,對曰:「異乎三子者之撰。」子曰:「何傷乎!亦各言其志也。」曰:「莫春者,春服既成,冠者五六人,童子六七人,浴乎沂,風乎舞雩,詠而歸。」夫子喟然歎曰:「吾與點也!」


吾與點也!!

2008年4月23日 星期三

最近很無聊

最近真的很無聊

工作就不用講了,只剩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年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真的是比較好找到需要的文件或解答, 所以我跳槽了= ="

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上掃毒的技術, 不就都綁手綁腳的嗎?

2008年2月21日 星期四

Wubi

Wubi - unofficial Ubuntu installer for Windows

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



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;
}


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可是會要人老命的。