2007年8月24日 星期五

MMovie

MMovie = MMO + Movie, 多人網路線上遊戲的動畫作成電影, 這次VOIG公司要推出以WOW的遊戲為主題的電影耶。以WOW的遊戲畫面來做電影的手法還蠻常見的, 我最印象深刻的就是那一部號稱史詩的電影和南方四劍客......(Mom!! Bathroom!! Bathroom!!)

這次VOIG推出兩分多鐘的預告片, 而且不久以後將推出正式的電影......要進電影院看的=.=。我很好奇會有幾個人去看啦......不過全世界WOW的玩家這麼多, 票房說不定還不錯哩, 不過我是不會花錢跑去看的啦, 哈哈哈, 我只要玩就好了, 電影嘛......總是有機會可以看到的嘛......

以下為預告片內容



KUSO點詳解, 轉載自PTT WOW版

0:02-鬥陣俱樂部
0:21-畢業生
0:30-星際大戰
0:36-古墓奇兵
0:41-拿破崙炸藥
0:48-公主新娘
0:52-魔戒
0:58-鐵達尼號
1:06-魔鬼終結者(原文最後是要摩托車)
1:20-三百壯士
1:29-法櫃奇兵
1:36-當哈利遇見了莎莉
1:58-綠野仙蹤
2:03-ID4(但是ID4有兩個人,而且是男的,相當不確定)

2007年8月10日 星期五

牛獅大戰


感想:團結力量大......

2007年8月9日 星期四

Boost lexical_cast

http://www.boost.org/libs/conversion/lexical_cast.htm

屬於Boost Conversion Library下的一支,很平常的功能,卻有莫大的幫助。

我想很多C++ programmer遇到要把一個字串轉成整數的情況時,還是會不由自主的使用C時代的atoi。但是atoi有一個很嚴重的問題,就是轉換失敗時一律回傳0,這樣就不知道到底真的是0還是轉換失敗了。

C++的IOstream本身就提供了很好用的類別 - stringstream。

stringstream s("12345");
int d;
s >> d;

可以呼叫fail()來測試轉換是否成功,比atoi好了一點,但是卻比較囉唆,為了轉換一個字串還要在stack裡多產生一個stringstream的object,讓人有點擔心效率。於是,Boost lexical_cast就誕生了:

int d = boost::lexical_cast<int>("12345");

很簡潔的寫法,轉換錯誤的話會丟出bad_lexical_cast這個exception。

那整數要轉成string呢?古早時代有人會用itoa這種非標準的函式來做,現在大部分的programmer可能都懂得要用sprintf這個比較general的function來做:

char s[32];
int d = 12345;
sprintf(s, "%d", d);

而lexical_cast的作法還是一樣:

int d = 12345;
string s = boost::lexical_cast<string>(d);


所以,把atoi丟掉吧,C++時代不用再遷就C的老舊函式了。

2007年8月1日 星期三

Distributed Web Crawler - Grub

http://www.grub.org/

這東西很妙...類似SETI@home那樣,電腦閒閒沒事做的人可以下載Grub的client回家裝,這樣就可以幫忙去"爬"網路上的網頁,然後做一些index的處理,再送回Grub的資料庫存起來。理論上這是集眾人之力來索引整個Internet的終極方法。

今天有一個新聞,Wikia的創辦人Jimmy Wales買下了Grub,打算用來挑戰Google或Yahoo這些強大的search engine,靠的就是Grub背後這個資料庫。

不過,這樣不就變成大家幫他們找資料,錢都是他們賺嗎?我自己也寫過web crawler,最棘手的問題就是頻寬不夠或是機器不夠......,Grub這一招讓這些難題都迎刃而解。當然也有很多人質疑說為什麼他們可以拿大家爬來的資料來賺錢,Grub是說open source不等於免費啦,還有可以優先爬自己的網站增加自己網站的曝光率等等,當然他們也有提供interface可以讓任何人使用這個資料庫啦......不過資料庫還是在他們那裡就是了。

Grub這樣的賺錢手法我個人認為還好,有名大站不也是靠大家貼照片和寫blog來賺錢嗎?Web 2.0時代嘛......內容提供者由以前的網站變成使用者自己,想賺錢的就看誰能夠吸引最多人來提供內容囉。對我來說,我對那個可以索引網頁的interface比較感興趣......