2009年9月15日 星期二

C++ auto pointer

相信許多寫C/C++語言的人一定都用過指標
C/C++指標很強大很好用
但使用時必須很小心
因為動不動就忘了將指標回收而造成了memory leak
或是不小心回收了卻又去存取指標造成系統crash
我們舉幾個例子好了

1.Dangling pointer
MyObject *A = new MyObject();
MyObject *B = A;
A->callMethod();
delete A; // free memory
A = NULL; // pointer to NULL to prevent access wrong memory address
B->callMethod(); //dangling pointer , system may crash

B指標指向一個可能已經被系統回收的記憶體
一般程式設計師會用以下的code來判斷這個指標是否可以被使用
if ( B != NULL )
B->callMethod();
但很顯然的B指標非NULL
它只是指向一個垃圾位址而已
你無法保證程式這樣執行一定正確而且不會crash

2.Exception發生
MyObject *A = NULL;
try{
A = new MyObject();
A->callMethod(); // exception may happen
delete A;
}
catch(..)
{
//error handle
如果你沒在這裡明確delete a,那一定memory leak
// delete A;
}

用C++的auto pointer不用害怕memory leak和dangling pointer
你只需要負責new你的記憶體就好
不需要要delete它
系統會自動回收不用的記憶體
例如

auto_ptr A( new MyObject() );
auto_ptr B = A;
auto_ptr C = A;
A->callMethod();
B->callMethod();
C->callMethod();

如果A記憶體被回收了
那B,C一定會是NULL
所以不會有dangling pointer的問題
如果允許使用auto pointer的話就儘量使用
可以提高系統的穩定度以及可靠度
你不用在茫茫code海中找到底那段code造成memory leak了

2009年9月10日 星期四

Wii&NGC combo 模擬器

相信有在玩模擬器的朋友們都知道,最近最Hot的模擬器之一就是Dolphin。這個模擬器當初只為了模擬NGC,
現在卻連Wii也模擬了,而且執行的效率還不錯。Dolphin模擬自從原始作者Open Source之後吸引了許多開發者
的參與,更新速度簡直像是用飛的一樣,短短的幾個月,已經更新到的r4247版(意指Project被開啟到至今修改過
了4247次),目前的更新速度依然相當快速,而且也不乏許多高手加入此Project(例如1964的作者),他在Google
上的Project專區也是相當的熱鬧,有興趣的人可以去看看。
Dolphin Project

順便貼上幾個他執行的影片
Wii版薩爾達傳說-曙光公主


NGC-薩爾達傳說-風之律動


Wii-任天堂明星大亂鬥(用Xbox360手把)

NDS模擬器Desmume

NDS模擬器出來很久了,但是很多都停止開發了,當初最紅的NO$GBA作者都不知道跑那去了,
現在唯一還有更新的是這個Open Source Project。老實說Desmume初期真的不怎樣,
但現在他的相容性和速度都有一定的水準,是一個可以期待的模擬器,如果有人想試試的話
可以去他的官網下載(但不會是最新的)
Desmume Project

如果想要用最新的非官方Release
你可以去以下網站下載
Emu svn daily build

順便貼上0.9.4+版運行的結果


王國之心

2009年8月22日 星期六

最近出國好幾次

很久沒更新Blog了
前陣子出國很多次
去比利時,韓國
韓國人真是民族性強的人民
走在韓國街道
路上都是韓國車
韓國人都拿韓國手機
用韓國筆電
用韓國電視

2009年3月16日 星期一

100萬美金的Router ... Cisco uBR 10k

公司最近被Cisco坳要買一臺3千多萬的Router
最近到貨,好大一臺
這臺Router support docsis 1.0,1.1,2.0,3.0
每張line card有5ds,20us,可以插8張
最高可支援64000位user
很強
但很貴
外型可以參考Cisco uBR10k

2009年3月6日 星期五

運動有益身體健康

今天主管體諒部門辛勞
讓大家一起去運動
好久沒這樣運動了
很累....

2009年2月6日 星期五

RF的救星-Docsis 3.0 - 續(1)

今天先來談Docsis 3.0的速度到底能達多快
首先我們先了解一下Docsis 2.0能多快
Docsis 2.0在
1 Channel 256 QAM的狀態下
其頻寬下行可達42.88Mbit/s
而128 QAM
的上行可以達30Mbit/s
在Docsis 3.0的時候
支援了一個新的技術
Channel Bonding
可以同時使用數個RF Frequencies
一般DS/US的比例是8,4或4,4
也就是下行可以X8,上行X4
至少可以達到DS/US是340Mbit/s / 120Mbit/s
但這是在256QAM/128QaM的狀況下
其實只要RF tuner再進步
是可以到512QAM或是1024QAM的
而且Bonding的channel也可以再增加
事實上
Docsis 3.0是可以達到1Gbit/s以上的效率

今天到此為止
改天來談Docsis 3.0的Qos部份

2009年2月4日 星期三

RF的救星-Docsis 3.0

未來
無線網路4G將會達到Gbit/sec
而有線網路也有光纖虎視眈眈
傳統xDSL和Cable有何前途
xDSL我不知道
但Cable未來的Docsis 3.0規格
是一個速度上可媲美光纖網路的標準
它不需要換到整個網路骨幹
只需要更新用戶端和MSO端的設備即可
改天我再來繼續談Docsis 3.0

2009年1月30日 星期五

そよかぜのおくりもの

新海誠協力製作
畫質普普

はるのあしおと

一樣新海誠作品
蘿莉風
不一樣的風格
高畫質

Wind -a breath of heart

另一個新海誠制作的OP
畫質比較沒這麼好

BITTERSWEET FOOLS

新海誠作品
不一樣的風格
一樣是Game的OP
高畫質

2009年1月29日 星期四

Playstation 2模擬器

PS2模擬器這玩意從我高中時代就有聽說
但那時的模擬器都是虎爛的居多
還記得當年巴哈某位大師說PS2是難以被模擬的
我一直覺得是個笑話
PS2再神勇
VU0/VU1再無敵
它的calculation power一定是有限的
果然不出所以然
正牌的PS2模擬器已經出來了
而且效果不錯
有興趣的人可以下載試試
http://www.pcsx2.net/
...啥?
不會用
下次再教你們

ef - the latter tale. demo movie

一樣新海誠的作品
可是畫質沒上一個那麼高

Ef ~a fairy tale of the two (HQ)

新海誠制作
遊戲中才有的OP

NDS模擬器

這個模擬器目前開發的進度有趨緩的感覺
現在最好用的NDS模擬器是no$GBA
不過可惜的是作者很久沒有開發了
在下提供幾個我認為還可以用的NDS模擬器給大家
no$GBA
DeSmuMe

至於Rom的話就只好自己去找囉

Wii模擬器已經可以玩了

http://www.dolphin-emu.com/news.php
這個模擬器可不只模擬Wii而已
它的GameCube也模擬的相當好
以下是大陸玩家測試它模擬Wii的效果
Naturo EX3