Powered by and 圖示來源

2008年12月15日 星期一

mount -n -o remount,rw /

如果修改fstab之後,重開才發現改錯了,會出現:
*** An error occurred during the file system check.


這時只要在
Give root password for maintenace

後面輸入root的passwd之後就可進入系統修改,但此時filesystem 是readonly。
廣告




進維修狀態時輸入:
mount -n -o remount,rw /

即可好好的修整一翻


2008年12月9日 星期二

趨勢科技--曾經熱銷四海,說是上一代的台灣之光也不為過。

現在卻越來越少人在電腦上安裝它們的防毒軟體了。

今天我在安裝vmware時,一直沒辦法安裝,卡在一個地方--autorun.inf write error


我一直想不透為什麼這個檔怎麼會寫不進去,這時想到兩天前,也曾經在解壓一個driver時,出現autorun.inf的write error。

當時以為是壓縮檔有問題,沒有想這麼多,如今兩相比對發現事有蹊蹺。



上網google一下,發現最近有個病毒,叫作autorun.inf病毒,經由usb類型的儲存設備傳染。

找到這些資料之後,我猜會不會是防毒軟體偷懶,檔名為"autorun.inf"就直接擋掉。

自己先做點小實驗,開一個純文字檔,重新命名為autorun.inf,果然一改就出問題馬的,擋的好

找了MIS來把這個遜腳防毒軟體卸載(要卸還得輸入密碼... 真是Orz 到底是防毒還是防人)之後,一切恢復正常,VMware的安裝順利完成。



如果防毒就是把檔名擋掉,這樣會不會太省事了。

難怪市占率... 唉...


2008年10月30日 星期四

blog掛了太多的東西之後,開啟的速度就會越來越慢。
頁面開啟是按照html的順序開下來。

在不改變html順序的狀況下,加速的方法就是把有可能會慢的任何事都向後處理。
把本文先秀出來,這樣就能達到加速的效果。

在網路上找到網頁開啟速度被一堆Javascript拖垮了?教你修改網頁的好撇步,讓網頁載入速度更快!一文。

看完之後,我修改了一下作法,以更簡單的方式達到相同的效果。
1,不需要轉換內容為javascript碼。
2,不需要制作js檔。
3,當然更不需要上傳空間去存放js檔。
4,可以將多個想要延後的項目一次搞定

一步一步來:
1,
選定想要延後的任何碼,如果是圖片很慢也行。
目標為部觀門的兩個服務(有時很慢)
<div id="look_urs" align="center">
載入中....
</div>


<div id="my_minicity">
載入中....
</div>

其中紅字的部分可以自己命名。
載入中....可以改為任何的字串,也可以不要填,以免讓人覺得一直在"載入"會有等待感,事實上只是一個字串,跟本就沒在載入。

2,
在頁面的最後,通常是在foot(也可以在sidebar最後),新開一個HTML/JavaScript
裡面寫上
<div id="all_hidden_data" style="visibility:hidden;">
    <div id="my_minicity_s">
    <script charset="UTF-8" src="http://mmc.urs.tw/java/detail_zh.php?mmc=crazyrs" type="text/javascript"></script>
    </div>

    <div id="look_urs_s">
    <script language="JavaScript" src="http://look.urs.tw/java/hits2.php?BlogID=54552" type="text/javascript"></script>
    </div>
</div>

<script type="text/javascript">
document.getElementById("my_minicity").innerHTML= document.getElementById("my_minicity_s").innerHTML;

document.getElementById("look_urs").innerHTML= document.getElementById("look_urs_s").innerHTML;

document.getElementById("all_hidden_data").innerHTML= "";
</script>

這個的意思是,先將本來的碼(code)暫存在一個帶有hidden屬性的div包著。
綠色id的div放的就是被後移區塊的碼。
等到下面的script執行時,把這些相對應的碼回填。(綠色區的內容填回到步驟1的紅色區)
最後把整個帶有hidden屬性的div清空。

3,
收工

這樣就可以達到延後的目的了。

所以不論是什麼,就算是一張圖,也可以把整個<img src="xxx"> 向後拉。

http://tools.pingdom.com/fpt/ 測試,把太慢的都抓出來向後丟就對了。
但是還是慢,因為blogger有些東西(內嵌式留言功能)本身就慢,這個是沒辦法移的,偏偏測出來就是它們在慢。

慢慢慢....



2008年10月28日 星期二

今天我想要抱怨一下他馬的亂搞svn 的人。

首先,不知道什麼是svn的人應該不會有興趣,直接跳過吧~!

正題來了,什麼是svn呢?


Subversion是一個版本控制系統,相對於的RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS。網際網路上免費的版本控制服務多基於Subversion。

詳情請洽:wiki:svn


2008年10月24日 星期五



當年,我覺得最棒的一首歌梁祝

多年前,林冠吟以女周杰倫之姿出現在歌壇,但那陣子工作很忙,第一時間並沒有注意到這位歌手。

換工作之後,在某次尋找死亡筆記本的資訊時(電影版剛要上映)意外發現兇手這隻MV,也才注意到這個位歌手。不過時間己經是兩年後,這時兇手的女主角正在三立八點黨金色摩天輪演出。說金色摩天輪可能沒印像,就是有黑衣殺手的那部,這樣應該很清楚了吧。而這位女主角是裡面的nico警官。



第一次遇見兇手的death note版本


原版 兇手 MV



之後才發現梁祝這首歌,我個人認為還是牛頭牌的最好這首真的是非常的好聽。

可惜,當我知道這位歌手時,她所屬的唱片行已經倒閉,轉為網路歌手(時值絲路單曲發布期間)。

最近發現她好像要把這陣子出在網路上的歌曲集合起來要出專輯。

我既然覺得不錯,當然就要來推廣一下,報給大家知。


附註:新專輯資料


2008年10月10日 星期五

20080820
這些個發財樹其實比開運竹還要早買進來,但是直到今天我才"有空"去寫它們,至於為什麼現在有空了,待會再談。

當初買回來時,它們大株小株的擠在一起,大概十來株,剛買回來一切安好,但是幾天之後,有些小株的體質不良(不太會種?),開始枯萎。

一開始通通塞在這個容量內


基於人道考量,想給它們一"人"一個獨立空間,讓它們有快樂的生長環境,以免又有幾株不小心陣亡,為了這個,又買了一大包的土,也就在這次買了開運竹

是阿.....去買

一大包,不知道能種多少東西


一開始移植時共有七株是活的,本來希望它們武當七俠能平平安安,好歹活個一年再說;誰知道幾天之後就剩六小福;再過幾天也就是20080820這天,我發現不太對,因為它們似乎要變四大天王了。

即將變成四大天王


經過這段陣痛期之後,狀況好多了,四大天王高高興興,快快樂樂,平平安安的活著。
直到……

環島旅行(殘念)期間,四大天王似乎不合,分成了兩派,兩派之間內鬥,在旅行回來時,發現一邊只剩半條命,另一邊只剩一口氣。

身為他們的主人,只好快速的灌水急救,讓它們一次喝個飽,之前有幾株是泡水爛根死掉的,但是都快枯了,反正給水的量就是比平常還多,要讓它們喝個飽。

結果...


如圖所示:
四大天王又將變為兩小無猜


一株爛掉了,另一株葉枯無生意,其它兩珠活了下來,枯的葉掉了還自己發了新芽。

這就是爛掉的狀況,我想它是死定了


今天我看它快死了,照片拍一拍,做個了結,我可不想到時寫的是祭文,所以沒空也得有空。

而且我跟它們不熟,死了我心一點也不痛。哈哈哈…關於心一點也不痛這件事,真的是對不起它們阿....

對了... 我忽然想到,這些個發財樹會不會跟我的個人資產有連動關係呢? 它們真實的反應著我大幅縮水的股票市值。

沒財可發,身為發財樹,它們有自己的風骨,紛紛為自己的性命負責。

若真如此,那麼,我必須為它們致意。


2008年10月2日 星期四


套句吳念真在維大露P中的橋段。
"Is it good to drink?" "你喝看看嘛!"
所以…看就對了,包準有爆點。


歌曲寫的東西有梗,MTV又拍出另一個梗,梗上加梗,佳作佳作。

導演林書宇,就是九降風的導演。

如果看過冏男孩,一開始很面熟的小男孩就是騙子二號啦。

以下為測試高解析用... 與本文無關...






2008年9月17日 星期三

忽然,有一個想法。上面google區塊aide優選文章區塊有沒有辦法動態變換位置。它們的位置不就是簡單的css float屬性而已嗎?應該很簡單。

所以我就開工了,至於為什麼要想讓它們動態變換位置呢? 最有可能的原因是"太閒"。

在寫javascript的過程中我發現一個問題,那就是CSS的float居然是null,本來就沒有值的東西,我去改它,當然不會動,這個地方有問題。

上網查資料,果然在這邊找到了解法。

想要控制css的float要用:
obj.style.cssFloat = "left";

而不是
obj.style.float = "left";
(一般控制css都是這樣用的,Object.style.屬性= xxx)


就這樣完工了,上面兩個大block會亂數的左右換,如果我把sidebar還有sidebar與本文也這樣做,那麼整個blog就會有8個不同的樣貌。

如果再多寫一些,讓它們換來換去,不知道會變成多樣化還是變成很混亂


2008年9月4日 星期四

阿土伯版跟CJH版在用了一陣子之後,總覺得效果不好,所以今天再度把繼續閱讀改版。

這次的繼續閱讀,以效能為主。

有使用繼續閱讀的人應該會發現,文章一開始是展開的,在整個script執行完畢之後,才會收合起來。

在展開狀態下,如果本文中有影片還是圖片,它們其實已經在下載了,這樣不就失去繼續閱讀的意義嗎? 至少我個人就是要加快速度只做預覽才這加這個功能的。

現在我找一個快速的方法達成這麼目標,完全不需要script,只要css就能搞定的作法。而且不會先展開再收合,利用css的屬性變化來決定展開與否,而屬性變化由本來blogger的語法(server side)做控制。

我就一步一步告訴大家怎麼作。

第一步:
範本->修改html(->繼續),將展開小裝置範本打勾。

第二步:
尋找</head>
取代為:

<style>
<b:if cond='data:blog.pageType == "item"'>
   div.fullpost {display:inline;}
<b:else/>
   div.fullpost {display:none;}
</b:if>
</style>
  </head>


第三步:
尋找<p><data:post.body/></p>
取代為

      <p><data:post.body/></p>
<b:if cond='data:blog.pageType != "item"'>
<div align='right'>
   <a expr:href='data:post.url'>你想要的字串</a>
</div>
<br/>
</b:if>

其中 align那邊可依自己的喜好變換位置,也可加入圖,這個看個人修行,真的很想變又變不出來,那就留留言,看看能不能幫忙出點力。

第四步:
到文章中,把想收合的部分以<div class="fullpost"> </div>包起來。

這樣就大功告成了,但為了往後方便,我們把這些固定的語法寫到文章範本中。
所以……

第五步:
設定->格式->文章範本加入下面字句:

這裡是文章的開頭。
<div class="fullpost">
這裡是文章的其餘部份。
</div>


這樣,完全不需要script就能做出繼續閱讀的功能。

但它有一個小問題,當文章很短不想做收合時,它還是會必然的出現一個繼續閱讀的鏈結。

相關文章:
如何建立可擴充的文章摘要?
[改造部落格] "繼續閱讀"


ps: 另外發現一個轉code的好網頁


2008年8月27日 星期三

這個遊戲算是PSP上的一個輕鬆小品,本來我對這怪怪的遊戲是不感興趣的,不過官方居然很有誠意的發行了繁體中文版,那我只好不厭其煩的玩看看。

不玩還好,一玩就上癮。

在遊戲中,我們扮演的是的角色,這是老梗了,當神的遊戲何其多。

但是這款很特別。

神能做的事,就是利用戰鼓發號司令。

戰時,告訴子民們,該進攻還是防守。平時,要跟各職業村民玩節驟遊戲,換取所需道具。

故事一開始,玩家會遇到一群神槍兵,不過在這個世界中,所有的人(?)都以pon做稱呼,所以玩家遇到的這群應該叫做神槍pon。

這群pon想要到世界的盡頭,看看那邊有什麼。就這樣,神帶領這群pon走向世界的盡頭。(神還真好說話)

一開始只有pata鼓跟pon鼓的神,能下達的指令只有前進跟攻擊兩個。隨著故事的進行,我們會慢慢的拿到chaka鼓跟don鼓。

它們分別對應到:
□:pata
△:chaka
○:pon
╳:don

有了這些鼓之後就能得到:
前進: pata pata pata pon (□,□,□,○)
攻擊: pon pon pata pon (○,○,□,○)
防守: chaka chaka pata pon(△,△□,○)
後退: pon pata pon pata(○,□,○□)
蓄氣: pon pon chaka chaka(○,○,△,△)
神蹟: don dondon dondon(╳, ╳╳, ╳╳)

基本上我都是蠻幹型的,除了最後一關的王,我都是前進跟攻擊一路到底(有些關一定要神蹟的當然也要召喚神蹟)。

一般來說,combo10之後就會進入fever狀態,如果按的好,不必到combo10就能進fever,在fever各兵種的戰力都會加強,所以要過關一定要練到一路fever到底。

平常小pon們只會複頌神的指令,然後做出動作,但是fever時,小pon們不再複頌,轉而高唱戰歌,戰歌的曲調滿好聽的,加上類似open將的發音,聽起來還真是令人愉快。

他們跟本就是在郊遊。Happy的勒。


上面提到神槍pon,當然整個遊戲不只有這個pon,遊戲到最後會一共會有:
神槍pon : 食材+木材
盾兵pon : 食材+石材
箭士pon : 木材+石材
騎士pon : 石材+石材
大大pon : 合金+食材 or 農作物
米茄pon : 合金+木材

上列兵種後面的東西就是生產pon所需的原物料。

一次出戰只能有3個部隊,一開始就是神槍pon+箭士pon+盾兵pon,等到最後米茄pon出現之後,我就換成神槍pon+箭士pon+米茄pon。

戰術是死的,用人也是死的,一切蠻幹,從頭到尾固定班底,只下固定指令,哈哈哈。

再來就是同樣的pon也有等級之分,等級是在出生時餵下去的原物料判斷的。

每種原料有1-4級,所以兩個原料加到一起就會有2-8級,共7種等級的pon。

原物料區可看到每一類的原料都有4種。

特地把所有等級pon的介紹拍下來,除了2級的白pon之外,每一級的pon都有各自的優點。

不過依我以不變應萬變的作法,當然是有多好的pon就產多好的,直到最後,7與8級做決擇時,8級一次要用兩個4級的原料,太浪費了,所以整團都是摩丘級的pon。

3-6級pon的特點
7-8級pon的特點
上面有提到,除了作戰之外,平時也要跟各職業pon玩玩小遊戲,它們是:
喇叭pon: 1級食材->很多低等級原料
農夫pon: 1級木材->農作物
礦工pon: 2級食材->石材
廚師pon: 大眼捲心菜->料理 (出戰時用)
鐵匠pon: 石材->合金。 這個是最重要的,用4級的石材-米斯里魯可以打造神級兵器。(所以米斯里魯在前期省點用)

這個遊戲跟暗黑一樣,很講運氣的,不是要什麼有什麼,除了神兵之外,所有的裝備都是打來的,打的到是運,打不到是命,原物料亦如是。

而且王打敗一次,下次就會升級,整個遊戲的王總共不過9隻,要洗就這機隻可以洗而已。

所以我都趁王還很肉腳時就先洗,沒打到好寶就讀取存檔重打,不然等牠們等級高了,苦的就是自己了。


最後.... patapon的村民到達了世界的盡頭,他們看到了什麼呢?

最後.... 這是他們的決定,這是伏筆吧?


沒錯,戰鼓啪打碰(PataPon)要出2代了。

趁二代還沒出,手上有psp的朋友,試著玩玩看這款輕鬆小品吧!

20080918註: 新增日文廣告一部


2008年8月21日 星期四

最近,阿扁A錢的事鬧的很大,我想阿扁就算沒死也半條命了,就算只是小小的違法,但是把錢匯出去,我個人還是看不下去。

阿扁去吃屎吧!

不過這件事卻喚醒了一大群在選後不出聲,沒有任何立場的中間選民。由他們大量的轉寄,轉貼,我在24小時內,已經收到3次訊息,而該網站人次在中午時即衝破5萬人次,這樣的人氣已經超過了火紅的網路作家九把刀的個人blog,也許有機會跟彎彎的blog一較高下。

果然這群人骨子裡是藍色的,不管是淡藍還是天空藍,就是藍。只是他們不想,也懶得討論政治,所以隱身為中間選民。

怎麼綠卡的事這麼久了,我卻沒收過類似的網站link。在我心理,這兩件事都沒有模糊地帶,很明顯的是非對錯。

那麼來談談為什麼政治需要討論吧

常言道:"政治是高明的騙術",這話一點也不假。

當你長時間關心政治時,你就會發現其中的棱棱角角,而不關心的人就會被騙術欺騙,就像中了幻術而不自知。

而討論政治的過程中,交換大家觀察出來的心得,進而了解真像,避免被欺騙而連公投要投什麼都不知道就說不要公投

那麼什麼樣的人才適合跟他討論政治呢?
1,必需有基本的認知,了解人情事故,否則很多運作原理是說了也沒辦法懂的。
2,必需與主題沒有利害關係。(討論軍公教就不要跟軍人老師討論,他們一定為自身利益為主。要討論阿扁的對錯,當然也不用找趙建民談,談下去只會動手)
3,對政治要有一定了解,你連馬英九是誰,該做什麼你都不知道,那怎麼聊的下去。(相對的,連馬英九是誰,以及他該做什麼都不知道的人,應該禁止投票)

討論政治不是壞事,但是如果對方的立場非常偏,我們應該可以找到背後的一些利害關係,然後說服自己,不要再聊了,我們想的不是同一個東西,不會有結論的。

回過頭來,說說赤貧之戰。它盡其所能的把阿扁醜化,徹底的打跨了扁家,但是對我而言,我早就看不起阿扁,並不需要這樣的作品來推波助攔,而且個人的笑點比較高,說真的很難笑

最近看了一部電影叫做"大衛特大號",從頭到尾我都沒有笑。所以我說很難笑,沒有惡意,除非自認搞笑天才,比艾迪墨菲更加高明。

就算今天再抓十個A了十億的人出來,就算都是民進黨,我還是不會把票投給國民黨,這不是比爛就能決解的問題,我個人不支持國民黨並不是因為民進黨好。

民進黨倒了,總會有另一個黨起來。

我個人不支持國民黨並不是因為民進黨好。這句話應該很熟,選前很多轉寄信件都是這樣寫的,但是我有我理由,放心,我不會拿什麼228白色恐怖來算舊帳,我之所以不喜歡國民黨的原因是因為他們太照顧特定族群,而且幻術高明,騙的越利害,騙的越成功,卻讓我卻有不能被騙的決心。

怎麼說他們很會騙呢?

前陣子的行政院大家都領教過了,同一件事可以依時間,依人物而有不同的說法,如果行政院要搞瞎子摸象,這個我來就行了,不如我做院長。

再來,法案該過不過,專門亂搞,先看看錢坑法案。這就是你我的血汗錢,如果你不關心一下政治,你會知道立法院在這樣搞嗎?真的還要做中間選民嗎?

選前大家都說要陽光法案,雙方人馬都一直加碼,一個比一個陽光,一條比一條嚴格,現在呢?
陽光法案呢?

還有一條最大條的1160億擴大內需,這個要唸就唸不完了,真正有興趣的人可以上網找找。如果有人有懶人包還是懶人網址可以幫助了解擴大內需,歡迎提供。


所以,相信我,我只是討厭國民黨,不是支持民進黨,不像轉寄信件把話說的好聽而已,我是真真正正討厭國民黨,今天如果國民黨不再亂搞了,不再通過這些狗屁法案,不再只討好特定族群,跟本不需要阿扁A錢案,我自動會好好的當個中間選民。

真真正正的中間選民。

所以我至今仍是泛綠,就算有十部赤貧之戰也無法讓我反叛


2008年8月12日 星期二

寫玩之後,自己試玩了一下,說真的,不好玩,聲光效果太差了,加上javascipt 沒有delay, wait之類的function,只能用Timer繞路寫出想要的功能,不好寫。

本來預計要寫的功能,應該不會再加上去了,不好玩,沒成就感。 -_- (好像在IE上會有些問題,同樣的圖片會一直上server抓,造成畫面出不來)

=====================遊戲區開始=====================

=====================遊戲區結束=====================


這失敗品就當是在練javascript 跟 data structure了


2008年8月7日 星期四

原文出處

你所想像不到的 JavaScript

原文排版亂掉了,我重新排過。

這不是一篇教你如何在網頁中應用 JavaScript 的教材。
這是一篇讓你明瞭看似簡單的 JavaScript,其實其核心語法功能強大。我將在這篇文章中說明 JavaScript 物件導向的特性,並說明如何透過這些特性,達到傳統程式語言 (C++/Java) 所難以完成的功能。

Written by Edward Hsieh/謝鎮澤 January 04, 2002

Everything is Object in JavaScript
開宗明義:在 JavaScript 中任何東西都是物件:變數是物件、函式是物件,常數也是物件。證明方式:

alert (typeof('abc'));
alert (typeof(123));
var ary = [123, "abc"];
alert (typeof(ary));

上面的 typeof 會顯示物件資料型態。得到結果分別是 string, number, object。

Create Objects in JavaScript
既然任何東西都是物件,那建立物件的方法就多了。直接看個例子:

var main = new Object; // 建立新物件
main.x = 123; // 設定物件成員變數(屬性)之一
main["y"] = "XYZ"; // 設定物件成員變數(屬性)之二
alert(main["x"]); // 取得物件屬性並輸出
alert(main.y);

可以看到在 JavaScript 中,main.x 與 main["x"] 這兩種語法是通用的。其實在其他語言中,這兩種表示法的語意並不相同。我稍後再作說明。

List All Members in an Object
這是 JavaScript 的必殺技,使用 JavaScript 的人務必要學會這個技巧。底下函式可以傳回一個物件的所有成員的字串表達式,包

括物件中的屬性及方法。在物件導向程式設計中,這種技術叫 reflection。

function listMember(main) {
var s = "";
for( key in main ) // 使用 in 運算子列舉所有成員
s += key + ": " + main[key] + "n";
return s;
}

範例碼中的 key 會對應到物件中的屬性名稱,如 "x" 或 "y",而 main[key] 則對應到屬性值。

說這項技巧是必殺技的原因是,你可以透過這項技巧,將物件封裝的黑箱打開來,看看裡面藏有什麼東西。我常用這項技巧來看看

IE 與 Mozilla 的 Dom 物件模型有何不同。試試看下面呼叫範例,就可以知道這項技巧的強大了:

var ary = [123, "abc"];
alert (listMember(ary));
alert (listMember(document.location));

Construct Object with Initial Value
要在建立物件的同時指定物件初始值,必須先透過 function 建立一個「原型物件」(或稱為 constructor),再透過 new 運算子建

立新物件。例如以下程式碼會建立一個二維陣列的原型,再產生一個新的二維物件。

function Array2DVar(x,y) { // 定義二維陣列原型
this.length = x;
this.x = x; // x 維度長度
this.y = y; // y 維度長度
for(var i = 0; i < this.length; i++) // 初始各元素值為 null this[i] = new Array(y); // this 代表物件本身 } var a2dv = new Array2DVar(10, 10); // 建立新的 10*10 的二維陣列 a2dv[1][3] = "ABC"; // 設定二維陣列元素值 a2dv[2][6] = "XYZ"; a2dv[9][9] = 1000; alert( a2dv[1][3]); // 取得二維陣列元素值,並顯示出來 alert( a2dv[2][6]); alert( a2dv[9][9]); Initial Array Object 在 JavaScript 中陣列也是物件 (其實近代多數語言中陣列也都是物件,只有像 C 或 Assembly 這類古老的

語言才不把陣列看成物件),因此也可以用 constructor 的語法來建構。當然 JavaScript 還提供了 [] 語法,以更方便建構陣列,

範例如下:

a = new Array("abc", "xyz", 1000); // constructor 語法,或 a = ["abc", "xyz", 1000]; // 陣列標準語法

陣列的元素可以是簡單的資料、其他物件,或是函數。舉個例子來在陣列裡面放函式:

b = [ // 使用函式作為陣列元素
function () { alert("這個好玩!") }, function () { alert("再按一次離開!") }, function () { alert("再來一次!") }, function () { alert("最後一次!") } ];

for (var i = 0; i < b.length ; i++) b[i](); 最後一個 for 迴圈是個有趣的應用。由於 b 陣列中現在存放的所有元素都是函式,因此我們可以對 b 的每個元素進行呼叫。 Object as Association Array
關連陣列 (Assocation Array) 又稱作 Map 或 Dictionary,是一種物件容器,其中可以放置許多的 key-value pair,以存取子物

件。在JavaScript 中,物件本身就可以作為關連陣列。以關連陣列的方式初始化物件的範例如下:

obj1 = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"};
alert(obj1["a"]); // 顯示 Athens
obj2 = { name: "Edward", showName: function() { alert(this.name); } // 使用函式作為物件屬性 }
obj2.showName(); // 顯示 Edward obj2.age = 23; // 屬性可以動態加入

其 中 obj1 儲存了三個子元素,其鍵 (key) 為 "a", "b" 與 "c",而值 (value) 為 "Athens", "Belgrade" 與 "Cairo"。obj2 中

showName 鍵所對應的值為 function,因此 obj2.showName() 即為函式呼叫。

Object as Return Value
雖然 Javascript 的函式只能傳回一個變數,但您卻可以將傳回值設定為物件,達到傳回 1個以上變數值的效果

function a () { return [32, 17]; }
b = a();
alert( b ); // 或 alert(a());

function pixel () { return {"x": 32, "y":17}; }
point = pixel ();
alert (point.x + "n" + point.y); // 或 alert (pixel().x + "n" + pixel().y);

Delegation Function Object
函式也是物件,只是其中包含的是程式的邏輯。這項特性可拿來作為委任式的程式設計,亦即使用委任函式當作另一函式的參數:

function doloop(begin, end, func) { // 這個函式是個 iterator
for (var i = begin; i < end; i++) { func(i); } } function func1(i) { // 印出 ** n ** document.writeln("** " + i + " ** "); } doloop(1, 10, func1); // 印出 1o 行 ** n ** doloop(20, 29, function(i) {document.writeln("## " + i + " ## "); }); Object = Properties + Behaviors
古有明訓:程式 = 資料結構 + 演算法。而物件是建構程式的基本單位,自然的具有相同的性質。物件除了有屬性 (property),也

可具有操作 (behavior),也就是函式。
假如我們要使用一維陣列來模擬二維陣列,那麼就無法使用 ary[x][y] 這種表示法來設定或取得陣列成員。不過我可以定義一個

set 方法來設定成員變數,而以 get方法來取得成員變數值。原型函式定義如下:

function Array2D(x,y){ // 以一維陣列模擬二維陣列的原型物件
this.length = x * y; // 陣列總長
this.x = x; // x 維度長度
this.y = y; // y 維度長度
for(var i = 0; i < this.length; i++) // 初始各元素值為 null this[i] = null; this.get = function(x,y){ // 成員函式:取得陣列第 [x,y]個元素值 return this[x*this.x + y]; } this.set = function(x,y,value){ // 成員函式:設定陣列第 [x,y] 個元素值 this[x*this.x + y] = value; } } 我們接著來使用它: var a2d = new Array2D(10, 10); // 建立新的「二維」陣列 a2d.set(1, 3, "ABC"); // 設定「二維」陣列元素值 a2d.set(2, 6, "XYZ"); a2d.set(9, 9, 1000); alert( a2d.get(1,3) ); // 取得「二維」陣列元素值,並顯示出來 alert( a2d.get(2,6) ); alert( a2d.get(9,9) ); Member Function Outside of Constructor
我們也可以將物件成員函式寫於原型物件之外。以下的Array2D物件與上一個範例中的 Array2物件有相同的作用,只不過這次是寫在原型物件之外。

function Array2D(x,y){ // 以一維陣列模擬二維陣列的原型物件
this.length = x * y; // 陣列總長
this.x = x; // x 維度長度
this.y = y; // y 維度長度
for(var i = 0; i < this.length; i++) // 初始各元素值為 null this[i] = null; this.get = Array2DGet; // 用這種方式把成員函式掛進來 this.set = Array2DSet; } function Array2DGet(x,y){ // 成員函式:取得陣列第 [x,y] 個元素值 return this[x*this.x + y]; } function Array2DSet(x,y,value){ // 成員函式:設定陣列第 [x,y] 個元素值 this[x*this.x + y] = value; } Dynamic Object Function
這裡說明如何為一個已定義物件,動態的加上其他操作的方法。
如 果一物件已定義完成,而您也使用它來建立了新的物件,這時候您想為原型物件增加新的操作 (而不修改原型物件的原始碼),讓

所有該物件的複本都能使用該操作,該如何達成呢?方法是使用物件的 prototype 屬性。以下這個例子,為 Array 這類 Object 在

執行期加入一個 max 方法,以取得陣列元素之最大值 (修改自微軟 jscript.chm之範例):

function array_max(){ // 定義求取 Array 最大值之函式
var i, max = this[0];
for (i = 1; i < this.length; i++){ if (max < this[i]) max = this[i]; } return max; } Array.prototype.max = array_max; // 在 Array 原型中加入 max 函式 上面的程式碼,首先建立一個 array_max 方法,以求取陣列之最大元素。接著將這個方法設定給 Array 原型物件。 var x = new Array(1, 2, 3, 4, 5, 6); // 透過 Array 建構子建立一陣列 // 想求取 x 中某一元素之最大值 var y = x.max( ); // 取得 x 之最大元素 Dynamic Mix in
假如物件 dynamic 有 mathod1, method2 兩個函式;而另一物件 main 有 methodA 及 methodB 兩個函式。現在我想把 dynamic 的

所有特性 (feature) 匯入到 main 中,我們可以在 main 中加上一個 imports 函式:

function main(){ // main 之建構子
// ...
this.imports = function (object) {
if( typeof object =="object")
for( value in object )
this[value] = object[value];
}
// ...
}

obj = new main();

main.imports(new dynamic()); // 匯入 dynamic 物件之所有功能

這個 imports 函式可以動態的為 main 加上另一物件的所有操作。這種 Mix in 的功能可是 C++/Java 的 static type 語言所望塵莫及的。


2008年8月4日 星期一

這個專家已經解說過非常多的遊戲,他對遊戲的"精屁"見解,配上熟練的操作與靈活的腦袋,包準各位對每一個他介紹過的遊戲都能印像深刻。

今天先拿一個大家比較熟析的超級瑪琍,來讓大家看看。

先想像一下這位教授是李季準,這樣比較能快速的"進入狀況"。

記得把聲音開大一點,這是講解,沒有聲音就不叫講解了,這個很重要

警告: 若首次觀賞此人作品,在末了解作者風格前,請專心觀看,不要分心吃飯或喝水,以免發生意外。

講解超級瑪琍


附加: 講解武林外傳 part1


附加: 講解武林外傳 part2


附加: 教你練神功part1


附加: 教你練神功part2


附加: 教你修電腦




2008年7月28日 星期一


鳳凰颱風侵台,各地政府早早就宣布放颱風假,新竹市這次還反常的超阿沙力,還沒傍晚就宣布明天停止上班上課。

既然颱風要來了,當然要去大賣場搬些貨回來。

食物買完之後,到處逛逛,去看看上次買的發財樹附近有什麼新鮮貨,果然讓我發這個東西-開運竹,而且是單單只有植物本體,擺明了要DIY。

廣告




開運竹本體,買回來就已經是這樣子,只要裝罐就差不多了

反正颱風天也沒什麼事,就買回家處理處理,打發點時間,總不能一直打PSP吧。(星期六衝浪之後全身酸痛,只能做手指運動)

在家裡找到了還滿適合的容器--泡菜罐子。

就是這個罐子

再找找房間內的東西,最後找出海砂、禮盒用繩。

就這樣搞了一下子,完工了,兩盆半DIY開運竹完成。

真是開心,DIY帶來的成就感,跟做紙模型一樣。(謎: 你的梅利號呢? XD)

下次來說說我的發財樹好了,他們已經有一半被我移出原居了呢。


2008年7月24日 星期四

想要監聽其它電腦的封包,首先要有一台古老的HUB,現在市面上都是Switch,這是不行的。
再來就是要把雜聽模式(promiscuous mode)打開。


如果對網路沒研究,沒興趣,也沒時間,那麼下面就不用看了,因為看不懂的機率很大。

我知道有人會衝著"看不懂"這三個字,執意往下看,對這樣的人,我深感佩服。

正所謂士可殺不可辱,身懷硬骨,絕非泛泛之輩。



基本上,這只是常識,會用HUB 抓封包的人,一定知道要開promiscuous mode,既然如此,我何必要落落長,開文解說呢?

先從故事的源頭說起。

一直以來,有台HUB,它很安份的運作著,抓著它該抓的資料。

某天,工作環境多了一台不同subnet的機器,外加它的MAC address跟我現有的機器之一相同。

這樣的網路一定是大亂的,在這樣衝來衝去的環境下,神蹟產生了。

經過一陣調整之後(改subnet 跟 arp -d 而已),工作電腦只能抓到屬於自己的封包,這現象分明是 Switch ,難不成硬體對衝之後會對Hub做軟體升級,自行由Hub變為Switch。


這......

當然....

是....

不可能的事。
廣告



在一陣實驗之後,確定是工作PC的設定問題,它讓封包進不來,但卻遍尋不著怎麼設定,看了抓封包的軟體(Wireshark, 前身是ethereal),promiscuous mode 是勾起來的。

是該用大絕招的時候了--重灌。雖然OS要濾掉wincap抓回來的東西,機率不高,firewall要擋也不會忽然臨時就這樣自行亂擋。

但我還是決定放大絕招,反正最近盜版抓的兇,自己灌過什麼東西早就沒印像了,不如趁這一次,砍掉重練。

本以為放了大絕招,一切就能正常,沒想到,剛灌好熱騰騰電腦還是抓不到該抓的封包。

這個死東西,不只跨reboot,還跨format(重灌時整個HD format),是誰有這麼大的能耐?

經過同事的深思之後,一步一步的想像封包的旅行過程,確定它們是有到達pc。是pc自己把它擋掉的。

這只有一個可能,這是一個存在網路卡flash上的設定值。最後同事想到了,網卡上有一個值叫做promiscuous mode,應該就是它了。

打開Wireshark,發現這個flag早已打開,心中一冷,又猜錯了。

但如今已無招可用,只好勉強一試,把它uncheck and check,按下確定。

就這樣...耶~~!

我的Hub回來了。

事情就這麼簡單,我卻搞了一整天。

最後找出幾個疑點:
到底是誰把promiscuous mode關掉的?
又到底為什麼抓封包的軟體程式要睜眼說瞎話?已經關掉的東西還說沒關。

心中有個底,但是也沒有什麼証據,反正下次再遇到就知道怎麼解了,沒再細究root cause。

如果你能一路看到這邊,不如說說看,你覺得的root cause吧!


2008年7月20日 星期日


最近麥當勞在為奧運加油,推出一個活動,叫做"前進奧運,挑戰大無敵!",簡單來說,就是買無敵大麥克金牌餐,就會送一個可口可樂經典曲線杯,一看就覺得實用又漂亮,所以就奮不顧身的(第二個杯子到第五個杯子之間歷時不超過48小時,算不算奮不顧身)加入收集的行列。

連續吃了這麼多餐的無敵大麥克金牌餐總有些心得!

首先它就是大麥克餐,外加兩片肉,還有飲料升級,價錢上升25元,扣掉飲料升級的5元,可得,兩片內加上一個紀念杯是20元,家裡缺杯子的人可以參考參考。
第二,某次用餐時發現,大麥克是用"澳州進口牛肉"。澳州進口是標語的主打,他們要証明這不是美國牛,但是我卻由此了解到,這是牛肉不是豬肉,所以不吃牛肉的人要注意。
第三,怎麼薯條加大是加十元。很久很久以前,飲料薯條加大都是加5元呀!
第四,加大的薯條似乎縮水了(也許是新竹的m比較黑),以前大學打工時,買一包來當午餐就可以吃的很飽,他們會把大薯的紙盒裝的滿滿的,只要抖一抖沒有掉下來的都算你的。現在是到紙盒口齊,而且紙盒沒有撐開,還有點平平的。一來一往差很多。

對了,主角是曲線杯。

曲線杯實物真的不錯,滿有質感的,目測容量大概300cc,正面有可口可樂的Logo,背面(?..也不是背面啦!)有奧運運動項目的小圖示。
下圖右下的那個小圖示代表籃球,就是上面提到的小圖示。


實用的東西似乎比較能吸引我。第一次收集麥當勞就上手,真是高興。

看完這樣的介紹,如果想要就快點行動吧!


2008年7月11日 星期五

兩天前,曾在網路上看到有人介紹過,我就馬上試了一下,而且昨更是花了很多時間把所有的物件通通看過一次。

最後決定蓋一個室內的營火區,是的,室內的。

經過一陣研究之後我發現它最大的特點是: 某些物件會有特殊功能,例如:
電視可以真的播影片
另一電視只能播照片
小惡魔是會動的寵物
會發聲的音響
就算是最普通的物件,也能給個hyperlink(網路鏈結)。

它--Google lively到底是什麼東西呢? 就是一個聊天室,3D圖像化的聊天室,加上一點花招。

如果以後物件可以開放由使用者自行創作,那麼這個世界(google lively)應該會更有趣,像是如果有留言的功能,那麼留言版就可以拿掉了。

以下是我的房間,有空就參觀看看。




lively 右下角的 occupants是指目前這個房間的人數。
如果安裝完lively之後,它的左下角會寫Clink to enter room
如果還沒安裝,它會叫你下載一個很小的案檔,然後再安裝。

初次進入lively的世界時,需要對自已的人物做一些設定。

進入房間之後。
在任何地方double click人物就會瞬移過去。
如果在物件上doble click,就會使用物件。像是坐到沙發上,開食物,玩小豬撲滿。
對人物按右鍵,會有互動選單。可以做一些內建的動作。


2008年7月9日 星期三

試玩版應該出快一星期了,現在,就來簡單讓大家看一下畫面好了。

廣告




首先,把所有的特效通通打開
沒得選,直接進戰場,只有一關可以打-許都侵攻戰
5代在勝敗條件外,多了一個戰功目標
看一下戰場情報,武將還真多,這是場大型戰役吧?
許都侵攻戰? 可能我太少玩吳國,這戰我沒什麼印像
loading 完畢,進入戰場了~!
一開戰就攻城門,兵臨城下。原來這代攻門不是打掉門守衛就好了。
打掉相對應的守備兵長,我方開始架攻城梯(另有攻城車)
上梯衝第一,上去砍掉目標3的4個射擊台
砍完之後,跳下來在城內等大家破門進城,人數真多。
把武將砍掉之後就等攻城車把內門撞開(上面破的是大門,這個是內門)
衝剌攻擊,畫面會有模糊的效果。(所謂的動態模糊 -Motion Blur嗎?)
: 這個特效在正式版似乎移除了。
廣告




騎馬玩到一半,傳令說曹軍有援軍要來了。
原來是這兩個傢伙要來送死。
獨眼仔,我一眼就認出你是夏侯惇了
這個日本戰國風的帥哥怎麼會是夏侯淵?
沒在怕啦,掉頭出去把援軍砍掉。
夏侯惇先一步死了

之後的戰場也很順利,砍了夏侯淵之後,其他的大眾臉跟本就不是對手,最後的太守荀彧更是簡簡單單的就收掉了,可是後面的照片怎麼都沒有拍到,算了不想再打了。

開起來再按結束,拍個ending。
ending提到 20080711 PC版會上市,我想這是日文版的上市時間,繁體中文版目前還沒聽到消息。

心得:
畫面--
5代看起來畫面好很多,跑起來只有在某些人真的太多的時候,會有小小不順,但page數還是有在2x張/秒的水準,而且我為了拍照還用視窗模式,在全畫面下應該會更好一點。
電腦配備為:
cpu :intel E2160
VGA: msi 8600GT
RAM: 2g(雙通道)

操控--
連段常常連不到,對方就算是站著不動,陸遜還是會有揮空的可能,打人不打正前方,不知道是在搞什麼,人如其名...遜。這也是我不想再打一次去補後面的圖片的原因,打起來不痛快。

另外,在人很多的時候(像是最後打荀彧時),所有人都在一個小地方,整個畫面滿滿滿,很有戰場的感覺,很混亂,有不知身在何處的臨場感。

有興趣可以玩玩。

日文試完版下載點(約330MB,下載速度滿快的)

20080723註: 由系統需求表可知,真三國無雙需要xp/vista的windows,顯卡的需求以支援DX9.0為主,而且要更新DX9.0c的最新版,就算是裝過了也再裝一次,有時會有漏掉的檔案。
------------------------------------------------------------------------
製造商 晶片 驅動程式
ATI ATI的 RADEON X1650 Catalyst 8.5
ATI RADEON X1950 Catalyst 8.5
ATI RADEON HD 2600 Catalyst 8.5
ATI RADEON HD 3650 Catalyst 8.5
NVIDIA GeForce 7600 ForceWare 175.16
NVIDIA GeForce 7900 ForceWare 175.16
NVIDIA GeForce 8500 ForceWare 175.16
NVIDIA GeForce 8600 ForceWare 175.16
NVIDIA GeForce 9600 ForceWare 175.16
以上為官方確認可進行遊戲的顯示卡清單(2008/06)

20080826註: 疑難排解
發現其實蠻多人都有PC版不能玩的問題
在這個板上發文 也沒什麼人願意去回 感覺讓人蠻心冷的
所以稍微研究了一下 希望對於不能玩PC版的玩家有幫助

情況1.硬體配備不夠
使用硬體驅動檢測
這是官方做的檢測軟體
可以讓你知道你的電腦配備可否進行遊戲
OK : 符合必要需求。 
◎ : 符合建議需求。
○ : 符合最低需求。
△ : 系統資訊取得失敗。無法進行檢測作業。
× : 未達到最低需求。
驅動檢測程式連結

情況2.缺少d3dx9_27.dll檔
這是DirectX9.0C的檔案
可是常常有人就是會少這個檔案
有的人甚至重灌也沒用
所以把下載連結也給大家了
進入頁面後點選
Click here to go to the download of d3dx9_27.dll
彈出一個視窗 點選
Download d3dx9_27.dll
d3dx9_27.dll下載 (註:不行就重裝directx9:官方載點)

情況3.點擊遊戲 出現畫面後 會跳掉 或者選某某模式就會關掉
這有兩種情形
1是顯示卡驅動程式沒有更新
2是安裝了"DVD Shink"或者"TotalRecorder"之類的程式 會造成影響

希望以上3條解說能對不能玩PC版的各位有幫助

來源:巴哈姆特




2008年6月26日 星期四


2008年6月18日 星期三

這麼棒的瀏覽器免費給你用,還可以不小心手滑一起創下金氏世界紀錄!如此有趣的事情也只有在這裡有啦!你不用會些驚人的特技,只要在對的時間呼朋引伴一起下載火熱出爐的 Firefox 3,就成啦!

有意思吧!臺灣時間 6 月 18 日凌晨 1 點後 24 小時內一起下載 Firefox 3,我們就有機會達成「單日最多人下載軟體」的金氏世界紀錄!在 Firefox 2 時,第一天的下載次數是 160 萬次,那麼這次就把目標隨便訂個 500 萬吧 :P

總之是越多越好啊!來看看目前已經有多少人下載了!

經過
鳥鳥IE 爛bug--請多選用Firefox
Firefox的好,用過才知道
網路銀行何必獨鍾微軟--大快我心
之後,大家應該知道我是Firefox的忠實使用者。

而今天正是firefox3推出的日子,擇期不如撞日,就趁今天一起創造世界記錄。

Firefox 3 火熱上映


看目前紀錄->火狐鬥陣拼紀錄,有你一份!
美國已經下載破百萬人次了,巴西居然也破10萬人次。

目前大家都想要去創紀錄,網站塞暴了,所以會有上不去的狀況,但我保証,網站鏈結是正確的


2008年6月17日 星期二

先來一張完成圖...

我的迷你梅利號搞定了,跟上次的失敗品做一個比較,仔細看船舷的部分,失敗品做錯了,完全做不下去。

這次迷你梅利號,真的很難做,主要的原因是因為太小了,桌上剛好有個立可白,剛好可以當作比例尺。
就是這樣小,所以很多 地方都是用夾子在做的。

它還有一個難作的地方,就是它的船輪跟船舵是可動的,不過我有作弊,中間插了牙籤,增強硬度。

船舵可是轉的喔

這也是能轉的,輪軸是真實存在的不是作作樣子而已。

換個角度再來一張全照


我急著要去玩spore創造生物(spore創意大師),文字就不多寫,反正有圖有真像。


##HIDEME##

##HIDEME##