2009年9月29日 星期二

新庄剛志 (Shinjo Tsuyoshi)

趁著棒球版熱鬧的時候,來寫一篇跟棒球有關的網誌。
上次介紹了一朗傳說,不過真要提起橫跨美日職棒界,娛樂度最高的,莫過於現在要介紹的新庄了。新庄剛志可以說是日職的超級巨星,在美國雖然表現不像日本那麼出色,但以出色的守備,在短暫的大聯盟生涯,留下了一點成績,詳情可參考台灣棒球維基館

不過除了棒球之外,新庄很有娛樂天份,因此在退役之後,朝娛樂圈發展。除了一朗傳說之外,還有新庄傳說
以下是從大聯盟回到日職之後,留下來的幾個惡搞畫面。

 

一些紀錄影片︰真是天生英雄命

再見滿貫Homerun

引退影片

2009年9月28日 星期一

正義紅師很好很強大啊!



最近咱們的國軍人才招募中心搞了一個 Transformers rip off 的宣傳短片,一下子引起不少話題。
不過怎麼比得上老共強大的技術力呢?



看看這玩意!你能想像這是之前只抄一趴抄襲《秒速五公厘》的老共所做出來的動畫作品嗎?

雖然歌曲有點鳥。
雖然我好像看到好男人。
雖然老共要打的是英克雷不知名的敵人。
雖然坦克埃了兩發飛彈毫髮無傷很扯。
雖然 APC 可以甩尾也挨很多發飛彈也很扯。
雖然那個直升機駕駛可以把直升機當做噴射機開最扯。

但是!這玩意實在太令人訝異了!而且這影片是在一個月前左右上傳的,比我們國軍還早了一個月!

我說國軍到底在搞什麼啊……

2009年9月23日 星期三

「好書推薦時間」:我是御宅上班族

More about 我是御宅上班族

這是關於一個平凡上班族的偉大故事(誤)~

雖然這本書已經出了有一段時間了,
但是呢,我相信他的笑點就跟程式設計師的格言一樣,
都是能夠被我們這群科科業的宅宅所理解的。


本文結束~
(重點:皇冠趕快出第二卷啦)

SilverLight處理XML資料

在之前的文章中,有介紹過如何在SilverLight上處理JSON資料。事實上,除了 JSON,XML也是另一個常用的資料格式。雖然比起JSON,XML的格式很囉嗦,傳輸所佔的頻寬也比較大,但XML出現的較早,很多地方還是會用得到。而這篇文章將會介紹如何在SilverLight上處理XML。







首先,新增一個名為SilverlightApplicatioUseXML專案。

2009-09-22_204724

 

將專案裡的Page.xaml改為下列內容,等會會用來顯示XML的內容。

2009-09-22_213203

 

接下來新增一個XML檔,命名為data.xml。

2009-09-22_213300

 

2009-09-23_150648

 

新增參考System.Xml.Linq。

2009-09-22_214629

 

原始碼新增下列兩個命名空間。

2009-09-22_214702

在程式啟動後就開始下載data.xml,之後再呼叫client_OpenReadCompleted函式來處理資料。

2009-09-23_150723

下列程式碼主要是處理XML,使用Xelement物件讀取,之後再透過foreach迴圈取出每一筆Person資料。

2009-09-23_150736

 

執行結果。

2009-09-23_150805

 

範例下載:

2009年9月21日 星期一

Memory Pool

第一次寫類似的玩意,紀念一下。
原理很簡單,就是用過的Memory不立刻釋放,下一次如果有人使用,就不必再向作業系統索取記憶體。
這裡的作法簡化了很多東西,不保證Thread-Safe。

Header File

#ifndef _MemPool_H_
#define _MemPool_H_

#ifdef __cplusplus
extern "C"
{
#endif

typedef struct memblock
{
void *data;
struct memblock *next;
struct memblock *createnext;
} memblock_t;

typedef struct mempool
{
int datasize;
memblock_t *free_linkhead;
memblock_t *create_linkhead;
} mempool_t;

mempool_t *mempool_init(int initial, int datasize);
void mempool_dealloc(mempool_t *);
memblock_t *mempool_get(mempool_t *);
void mempool_release(mempool_t *, memblock_t *);

#ifdef __cplusplus
}
#endif

#endif


Implementation



#include <stdlib.h>
#include "mempool.h"

static memblock_t* mempool_create(mempool_t *pool)
{
memblock_t *block = malloc(sizeof(memblock_t));
block->data = malloc(pool->datasize);
block->next = NULL;
block->createnext = pool->create_linkhead;
pool->create_linkhead = block;
return block;
}

mempool_t *mempool_init(int initial, int datasize)
{
int i;
mempool_t *pool =malloc(sizeof(mempool_t));
pool->datasize = datasize;
pool->free_linkhead = pool->create_linkhead = NULL;
for (i = 0; i < initial; i++) {
memblock_t *block = mempool_create(pool);
mempool_release(pool, block);
}
return pool;
}

void mempool_dealloc(mempool_t *pool)
{
memblock_t *block = pool->create_linkhead;
while (pool->create_linkhead)
{
block = pool->create_linkhead;
pool->create_linkhead = block->createnext;
free(block->data);
free(block);
}
free(pool);
}

memblock_t *mempool_get(mempool_t * pool)
{
memblock_t *block = NULL;
if (pool->free_linkhead)
{
block = pool->free_linkhead;
pool->free_linkhead = pool->free_linkhead->next;
block->next = NULL;
}
else
{
block = mempool_create(pool);
}
return block;
}

void mempool_release(mempool_t *pool, memblock_t *block)
{
block->next = pool->free_linkhead;
pool->free_linkhead = block;
}


至於Memory Pool的原理可以參考 維基上面的解釋

2009年9月20日 星期日

一朗傳說

自從野茂英雄投身美國職棒大聯盟之後,並且繳出亮麗的成績單後,就成為日本職棒的領頭羊,帶動諸多日本球星挑戰最高殿堂的野心,不過由於日職投手水準比打擊高出許多,投手的成績在大聯盟也是比打者亮麗許多。不過在這裡也有兩個日職打擊好手,鈴木一朗跟松井秀喜,硬是在美國職棒用棒子打出了一片天,在此來簡單介紹一下Ichiro,當然,這是唬爛版的,跟鄉民認真你就輸了。

。3打數5安打是基本,有時候甚至3打數8安打
。多次第一棒就打出滿壘全壘打
。對一朗而言全壘打只是不小心沒打出內野安打
。第一棒完全打擊也是家常便飯
。挖地瓜球也輕鬆打成安打
。揮棒時旁人看起來有三支球棒
。特技是短打全壘打
。才站上打席投手就哭著向他道歉
。打出自己不滿意的全壘打時不踩三壘就跑回來了
。因為打擊率太高了,牽制球也算成好球
。接著牽制球也被打成安打
。只是瞪了一下投手,球就飛到了二遊間
。沒比賽的移動日也有2安打
。有空手打出安打的紀錄
。場內全壘打只算小CASE,有時還跑兩圈
。才剛判一壘出局一朗已經坐回板凳上了
。還在預備擊球區就擊出安打
。一邊跟場外的韓國觀眾用流利的韓語爭論一邊背面接球
。右外野到三壘線附近都是他的處理範圍
。能站上自己打出的球飛到觀眾席跟觀眾握手
。有從一壘盜到本壘的紀錄
。光是一朗走到街上物價就會上漲
。不少投手根本沒發現被一朗盜了壘
。一朗不小心打出全壘打便會失落地躲進廁所
。兩打席連續全壘打是「今天晚上想吃咖哩」的暗號
。一朗曾經買棒球手套送給每天站在櫥窗前想買小喇叭的少年
。某些比賽乾脆讓他一開始就站在一壘
。被保送時可以衝到三壘
。觀眾接到一朗的全壘打球發現上面已經簽好名了
。跟投手投球同時起跑,追過150km的球成功盜回本壘
。觸身球命中一朗會反彈飛到場外
。2006美國十大新聞第一名「一朗被三振」
。一朗本人最不拿手的運動是棒球
。曾經跟患了絕症的小孩約定打出內野安打
。一朗的球衣全身加起來重80kg
。高中時才站上打席裁判就判定call game
。傳說中一朗到大聯盟時是游泳過去的
。高興地擺出勝利姿勢就得了大約5分

。讓球看起來像靜止一樣是家常便飯,可以看見球的分子運動。
狀況好的時候還能讓時間停止。
。向空氣揮擊三次,水手隊就得到三分是有名事蹟。
。以為順利把他刺殺在一壘,其實那是殘像,本尊早就跑回本壘了。
。球季中打擊率一直維持在百分之二百,但最後一場比賽狀況差到極點,
僅五打數五安打,最後打擊率以1.998作收。
。只要投手能夠讓一朗揮空三振,登板一場就可以直接選為季賽MVP。
。能夠三振一朗就有資格進入名人堂。
。受到一朗自打球的衝擊,捕手和裁判被震飛了五公尺遠。
。輪到一朗打擊壘上有人時會造成跑者很大困擾,
萬一一朗打出滾地球自己跑太慢會害一朗的場內全壘打消失。
。一朗在一壘時,常在投手投出球瞬間盜回本壘得分。
。投手用超快速球牽制在一壘的一朗時,發現他已經盜回本壘了。
。如果能牽制在壘上的一朗出局的話就自動獲勝的特別規則,
到目前為止沒有任何一隊辦到。
。投手受傷的時候接手投球,從中外野開始投。
。有將對方打者擊出的球全都吸到右外野直接接殺的「一朗區」密招。
。教科書記載若一朗守備發生失誤,隔年就會發生世界大恐慌。
。讀賣巨人提出以一軍登錄選手全員與一朗交換的交易案。
。一朗受傷的話MLB季賽就中止了。
。東條英機在戰敗時說「如果一朗在的話就會打贏了…」流下了不甘願的淚水,
當時一朗正在進行宇宙探險中。
。高中時期打壞了全校所有建築物,被禁止在校內練球。
。高中時向棒球社提出入社申請後,隔天甲子園的優勝旗就寄到棒球社了。
。高中上學時一向乘坐自己投出去的球棒去學校上課。
。算數學時都是用球棒當筆來計算的。
。體育祭一個人參加了所有項目,完成三年連續制霸。

女王之刃:逢魔の女王 アルドラ

啊啊,原本只是去台北買衣服跟書,但還是不小心就手滑買了隻PVC,買的剛好就是前陣子很多人討論的女王之刃XD。







人物的介紹請看下列網址。

人物介紹:黃昏女王 奧德拉

0000134866

圖片出處

接下來就來個很隨便的開箱文吧~

盒子外觀。

P1040425

話說在拆零件的時候,竟然被鞋子部份的裝飾給刺傷手….

P1040426

其它的零件。

P1040427

P1040428P1040430

全身照。

P1040429

非常特別的武器…

P1040431

打開石化邪眼。

P1040433

把披風(?)裝上去後。

P1040434

可是從正面看好像沒差…

P1040435

最後,來個最經典的姿勢XD

P1040437

2009年9月17日 星期四

簡單的SilverLight動畫效果

許多人都會將把SilverLight跟Flash做比較,雖然微軟官方一直強調這兩者是不同方向的產品,各有優勢,但我個人是把它們當成一樣的東西。用Flash可以輕易的做出動畫效果,那SilverLigth自然也有一樣的功能。








所謂的動畫效果,其實就是動態的改變某些變數的數值,例如下面這個轉動的方塊。

這個方塊之所以會旋轉,其實就是在週期內改變方塊的角度所產生的效果,有了這個觀念,就可以輕易的利用SilverLight做出簡單的效果。本篇文章要示範的動畫效果如下:

上面的SilverLight程式其實是兩張重疊的圖,其中一張圖會隨時間慢慢透明化,完全透明之後又會隨時間提高透明度。待會程式會用到的圖如下,檔名分別為1.jpg、2.jpg。

2 1

新增SilverLight專案,專案名稱為AnimationDemoSilverlightApplication。

2009-09-17_164523

修改介面如下:

2009-09-17_165334

XAML碼

2009-09-17_165514

基本上就是將2.jpg疊在1.jpg上。

接下來打開cs檔,在Page類別裡新增兩個Storyboard。Storyboard就像是一個計數器,會在固定時間內執行所要求的動畫效果。

2009-09-17_165745

下列的程式碼是在整個頁面讀取完之後執行,而程式碼內容主要是宣告動畫所需的物件,然後加到Storyboard裡。obj與obj2兩個物件做的是差不多的事情:

  • 設定動畫長度
  • 設定要改變的物件
  • 設定要更動物件的哪個屬性

最後再設定動畫結束後的Completed事件,告訴Storyboard執行完動畫後該做什麼事。

2009-09-17_170036

下面這兩個函式要加到Storyboard的Completed事件裡,當timer1執行完畢後就啟動timer2,timer2結束後再重新啟動timer1,就這樣一直重覆下去。

2009-09-17_170048

最後,其實動畫效果不是非得靠程式,將前面的Storyboard刪掉,並將介面改為下圖所示,重新執行後也會有動畫效果出來。

2009-09-17_200323

程式範例下載

之後又用jQuery寫了差不多的東西,感覺jQuery比較簡單(倒)

點擊網頁中的圖片就會有動畫效果了。

http://sholfen.googlepages.com/jQueryDemo2.htm

2009年9月14日 星期一

程式最佳化

如果各位阿宅程式設計屍嫌自己程式不夠快,也不排斥學習組合語言的話,可以參考這些文件,為自己的程式作最佳化。

Intel
Intel® 64 and IA-32 Architectures Software Developer's Manuals
AMD
Optimization and Performance
Platform & Processor Architecture
參考網站
Assembly Optimization Tips
Software optimization resources

我印象最深刻的一本畫冊

More about センチメンタルグラフティ―イメージアートワークス
很久很久以前有個小高中生
因為在朋友家玩了一款遊戲的試玩版後(好像是電X玩家吧),
結果呢,他掉入了一個連他自己都不知道有多深的黑暗深淵敗家大坑。

你不用知道這款遊戲叫什麼,
因為那不是本文的重點。

回到本題,
這本畫冊之所以讓我印象深刻的原因在於:
  • 這是我人生中買的第一本畫冊(嚴格說來也不完全是啦)
  • 買回這本畫冊後在回家的路上,我發生了車禍(還好我沒掛點)
  • 震驚全台的921大地震發生時,我就是被這本畫冊砸醒的
說真話,在那之後或之前買的畫冊都沒有這一本來的有印象,
有些買過的我還曾經忘了她的存在耶。

附帶一提,當初的我為了這款可是買了一堆交換卡、畫冊之類的東西,
現在仔細想想,還好我那時候沒有信用卡,
不然我應該會買個亂七八糟吧Orz......

好,紀念文寫完了,糟糕教又平安地度過一天惹~

2009年9月10日 星期四

平行計算之兩三事

自從Moore's Law走到一個瓶頸之後,電腦發展的方向就開始往平行化發展,而談到平行計算,不能不說幾個基本概念。

Amdahl's Law: 

Gustafson's law:

這兩個都是很粗淺的公式,只能大致評估預期的效能比,實際跑起來比這複雜多了。
Amdahl's Law是把一件工作視為1,其中k的部份必須只能由一個Processor完成,其他(1-k)的部份,分別讓n顆Processsor處理,舉例來說,一份工作,能夠被平行化的程度只有0.4,然後放到一台雙核心的電腦上執行,預期可獲得的效率比為 ,如果同樣的工作,放在一台四核心CPU上面跑,預期的效率比會是 ,由此可見,同樣的演算法,在四核心的效能提昇比反而有限;從原先的數學公式來看,當k趨近於零 ,也就是盡量讓演算法平行化,將可以得到最多的效能比。

Gustafson's law,從另一個角度來論述性能比,n為處理器的數目,α為不能平行處理的部份,以上面的例子來看,雙核心的加速比應該是 ,而四核心的部份 ,跟上面Amadahl的結果對照起來,一個過於樂觀、另一個過於悲觀,不過相同的是,一旦α越小

與教主的一席話....

Jensen(Juncheng) -- 說:
 昨天晚上才看到教主的總統當選感言....
Faryne:雜碎實驗室主任 說:
 所以勒?
Jensen(Juncheng) -- 說:
 所以就馬上按下糟糕了
Faryne:雜碎實驗室主任 說:
 我不是說不能按嗎?
Jensen(Juncheng) -- 說:
 這看完之後就熱血了啊
 馬上就按下去了.
Faryne:雜碎實驗室主任 說:
 是喔~不過我應該不會想問你是哪裡熱血起來
Jensen(Juncheng) -- 說:
 教主這麼清新健康 應是不會問的(肯定)
Faryne:雜碎實驗室主任 說:
 嗯 那你是哪裡熱血起來了?
 (結果還是問了)
Jensen(Juncheng) -- 說:
 我決定把以上的文po到部落格去

2009年9月9日 星期三

如果我是總統......

我相信小時候的各位或許都有在我的志願中寫過「我要當宗痛總統」之類的字眼,
所以這篇文章是要描述我當上總統後要做的一些事。

大家都知道國防和外交是總統的職權吧,
所以呢,要是我當上總統的話,
為了柔和軍人剛烈的形象,我會責成國防部研擬女性軍服更改樣式的可能,
至於樣式則會以女匍匐僕服為主,
相信無論在平時和戰時,都可以有柔和暴戾之氣的功用。

至於外交部份,
除了加強對日關係外(?),
我也會責成外交部研擬在秋葉原設置辦事處的可能,
方便宅族在秋葉原遇到不便時,
可以就近求助。

另外在進口關稅外,
我還會請行政院長與財政、經濟等相關部門研擬,
部份商品可以免關稅進口,
讓沒辦法出國的人可以更低廉價格購買。

嗯......一分鐘到了,
諸位做了個好夢了嗎?

(小明誤我一生)

P.S. 1:請不要對本文認真
P.S. 2:發表意見請不要用「......」
P.S. 3:我還沒買......感想部份也不要投「糟糕」
P.S. 4:出了我就吃籃球架啦(翻桌)

SilverLight處理JSON資料

在上一次的文章,是利用JavaScript讀取JSON資料,這次就示範如何利用SilverLight讀取資料。

 








首先新增一個SilverLight專案,命名為SilverLightUseJSON。

2009-09-08_223821

 

然後用Blend 2拉出下列介面。

2009-09-08_225158

 

原始的XAML碼。

2009-09-08_225229

 

接下來在Web專案上新增檔案data.json。

2009-09-08_225309

2009-09-08_225338

 

將下列的文字新增至data.json。

2009-09-08_225402

 

為了讓SilverLight程式能處理JSON格式的資料,必需加入一個System.Json這個元件。

2009-09-08_225524

然後引用System.Json這個命名空間。

2009-09-08_225554

 

之後新增下列程式碼到按鈕的click事件裡,這段程式碼裡新增了一個WebClient物件,用來開啟前面新增的data.json檔案,並且新增一個函式到WebClient的OpenReadCompleted事件。

2009-09-08_231107

實作OpenReadCompleted事件裡的函式。這段程式碼很簡單,就是將文字資料轉為JsonArray物件,並且利用name以及desc這兩個屬性去查詢資料。

2009-09-08_230129

 

執行結果。

2009-09-08_230211

 

我們搬家了

新部落格在http://b-plurkers.com/