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

2008年1月28日 星期一

C++ STL - Iterator的erase



std::vector<int> v;
v.push_back(0);
std::vector<int>::iterator vi = v.begin();
while(vi != v.end())
{
if(*vi == 0)
{
v.erase(vi++);
continue;
}
++vi;
}


以上這段code在VC2003上run是正常的, 用gcc 3.2.2的話會造成segmentation fault。

很明顯的, vi++這個iterator的運算在兩個平台上有不同的implementation, gcc是先erase才做++的動作, 因為erase後iterator會指向無法預測的地方, 所以才會產生seg-fault。而VC2003則是先++才把原iterator傳進去, 所以沒有問題。

正確的寫法應該是 vi = v.erase(vi);

2008年1月16日 星期三

破冬感言

破冬是軍中術語, 指的是役期只剩下一年了, 所以我也可以使用破冬這個詞了
感想很多, 當然都是不好的, 我只想講一個對後進比較有用的結論
那就是剛出社會的年輕人不要一開始就綁死自己, 像我一開始就必須要留在同一個地方四年
如果這個地方是好的, 那四年或許還可以持續的學習與成長, 甚至累積財富
如果是不好的, 那真的很浪費, 因為年輕人的時間很寶貴, 這段時間的頭腦還很清楚, 體力也比較充沛
應該要好好的利用, 畢竟人生中這段精華的時間不會再有了

剩下一年的時間, 我打算把還沒學到的部份都學一學看一看, 作一個我可以引以自豪的東西
開會臨時硬湊出來的神奇idea, 居然就成為以後產品的主軸, 讓人覺得不知所措
整天寫super-specialized demo code去搶案子, 真的讓人很沒成就感
人家說工作的動力是來自成就感和金錢, 兩者都沒有的情況下, 真的會覺得很沮喪

聽說接下來這裡又接了很多案子, 但是我可以保證, 這一切一定又只有一個結果 - 失敗
失敗之前的掙扎想必又是一陣腥風血雨, 但是沒關係, 這一切都還有個望得到的盡頭
羅馬書上面寫著『忍耐生老練,老練生盼望』, 聖經上寫的過程居然和我這三年不謀而合
沒錯!! 開始擺老之後接下來就是盼望了, 姆哈哈

2007年12月19日 星期三

Yet another GUI framework - FLTK

FLTK stands for Fast Light Toolkit

一樣是C++ cross-platform(最近寫code都會想要同時能在各種平台上跑, 因為我覺得porting實在是浪費生命的行為), 聽說真的很簡單容易上手......改天來玩玩

2007年12月8日 星期六

一行HTML就讓你的IE當掉

一個日本人發現的, 只要網頁有下列一行HTML, 就會讓IE crash, 我測試過目前IE6的確會crash

<style>*{position:relative}</style><table><input></table>

測試網址 - http://immike.net/scripts/ie_crash.html
資料來源 - http://immike.net/blog/2007/08/06/single-line-of-html-crashes-ie-6/
我的AntiVir防毒可以偵測到, 卡巴也可以偵測到, 看來這幾家防毒軟體反應還蠻快的, 倒是目前微軟還沒發佈修正檔呢

2007年11月19日 星期一

Boost asio related - Pion Network Library

Pion Network Library

open source, Boost Software License, 主要實做HTTP(S)相關的功能
底層是用Boost和asio, 這表示asio已經可以用在production上囉
想要reliable and portable的networking library? 選asio準沒錯!!

2007年11月15日 星期四

Blog文章加密

有時候想在blog上發一些牢騷, 可是又不想讓無關的人看到, 所以呢, 就想要自己寫個軟體來加解密之類的。但是!! 這個世界已經是開放自由的世界, 所以這種東西一定有人已經做過了, google一下馬上就發現啦 - JavaScrypt

顧名思義, 這是利用Javascript來做加解密, 演算法是AES-256。Javascript雖然不快, 但是有一個非常大的好處, 就是可以在browser上面跑。所以啦, 我可以用Javascript跳出一個密碼視窗讓人家輸入密碼, 然後利用動態網頁技術直接將解密後的原文印出來, 這是不是比copy-paste到軟體裡面做加解密方便多了呢!?

不僅如此, 還有熱心的人連跳出密碼視窗這些javascript都幫我們寫好了, 請看Encryted blog posts。他寫好的javascript放在http://www.psi.toronto.edu/~vincent/blog/blogjscrypt.js, 想要在blog裡面用的人直接include進來就可以了, 有安全疑慮的人, 可以把js檔copy回去放在可信任的地方或是直接貼在HTML裡。另外, 他還提供了線上加解密的工具 - Javascript Encryption and Decryption, 可以讓我們輕鬆產生加密文。

有了這東西, 以後就可以盡情的講八卦了(咦?), 現在就來說個八卦, 密碼是我現任公司的協理的(暱稱)加(姓), 共7個小寫英文字母(很明顯 , 這個八卦只有少數人能夠知道......)


VF6+OLxpi/E7shYyCSetOKgYcy+UTpMjUaXohalzznu/ThTJ
YyDcLk3PwWBTbF4qFGWrVhksiHxpEPgFeGurXhfByeg6cjm9
zvfYVPo6FajiRgCSM2/RDi4NBDn0B7BY1Ux9frQH2xg+um8o
tKsLtg==

按這裡解密