code style

12/08/2007

洛克人

動畫
http://tw.youtube.com/watch?v=NkWsdl5BLMQ

遊戲畫面
http://tw.youtube.com/watch?v=XmaltChJnV0

X-Japan版
http://tw.youtube.com/watch?v=GD3vOKUT0zg

涼宮春日版
http://tw.youtube.com/watch?v=Mpv0JA3l2UU

男聲合唱團
http://tw.youtube.com/watch?v=5I26HFvYs94


[衍生創作]
打不到的空氣人
http://tw.youtube.com/watch?v=JCS0YTcfjqI

沒破關不睡覺
http://tw.youtube.com/watch?v=7-wtScqZ9AE

這傢伙有要幫忙的意思嗎?
http://tw.youtube.com/watch?v=XvF-UlI2Duo


紅白機的洛克人真是兒時美好的回憶 (遠望)

11/26/2007

薛丁格的內褲

「薛丁格的」:量子力學的薛丁格理論

此為一假想實驗「薛丁格的」,大略的內容如下:

  1. 設想在一個無法透視的箱子中裝著一隻、一個毒氣瓶、一個和瓶子連動的原子β衰變感應裝置、以及一顆會在箱子打開時以1/2機率進行β衰變的原子。 如果感應裝置偵測到該原子衰變了,就會把毒氣瓶打開,這導致死去。
  2. 在你打開箱子之前,裡面所有東西的狀態都是不確定的。
    我們可以說,在你觀測之前,的生死機率各是1/2。
  3. 但一當你打開了箱子進行觀測,機率波就會崩潰,此時箱子裡的就變成確定存活或是確定死亡的狀態。
    因打開箱子的動作會影響原子以及箱內一切的狀態;故無法得知觀測之前是否活著。

此學說內容

糟糕島上的子力學家所提出的假設:
穿裙子的女角,在裙子未掀起之前,無法確定她是否有穿內褲。


薛丁格的雞

  • 穿裙子的女角,在裙子未掀起之前,無法確定該角色是女裝少年、扶他那裡還是女生。
    在布料完全消失前,一切都是未知數。


11/25/2007

秒速五釐米

第1話「桜花抄」
聽說,櫻花從樹上瓢落到地上的速度是每秒鐘五厘米。

第2話「太空人」
聽說,火箭升空的速度是每秒鐘五公里。

第3話「秒速五厘米」
發上一千個短訊,談上一萬次電話,在我們心之間的距離也許只能縮短一厘米。

節錄:One more time One more chance- 山崎將義

我一直在找尋你的蹤跡
對面的房子,小巷深處的門邊
雖然明知你不可能在那裡
若能實現願望的話,我想馬上飛到你身邊
已經沒有什麼做不到的了
我會放下一切抱緊你

如果只想找一個能驅趕寂寞的人,找誰都應該可以
但在這個就連星星都快要落下的夜裡,我騙不了自己
one more time 不要讓四季如此匆匆走過
one more chance 在一起嬉戲著的歡樂時光

我一直在找尋你的蹤跡
在十字路口,在夢中
雖然明知你不能在那裡
若能發生奇跡的話,我想馬上見到你
在新一天的清晨開始,我…
…會說出我一直沒說出口的“喜歡你”

一直在找尋你的笑顔
等電車時的空隙,看看鐵路的拐角
雖然他根本不可能出現在那裡
如果有來生,我無論如何都要來到你身邊
我已經沒有了其他想要追求的東西
因為沒有比你更重要的了


短短三話的動畫電影 by 新海誠

孔子跟耶穌說過「初戀無限美」

得不到的東西才越顯得珍貴

10/31/2007

Today‘s the day to work your magic.

廣告片:Todays the day to work your magic.

廣告配樂: "Music Box" Regina Spektor

歌詞LYRICS:

Life inside the music box aint easy.
The malots hit the gears are always turning
and everyone inside the mechanism
is yearning to get out.
And sing another melody completely
So different from the one theyre always singing
I close my eyes and think that i have found me
but then i feel mortality surround me.
I want to sing another melody
so different from the one i always sing
But when i do the dishes
i run the water very very very hot
and then i fill the sink to the top with bubbles of soap
and then i send all the bottle caps i own a float
and its the greatest voyage in the history of plastic
and then i slip my hands in and start to make waves
and then i dip my tongue in and take a taste
it tastes like soap but it doesnt really taste like soap
and then i lower in my hole mouth in and take a gulp
and start to feel mortality surround me
i close my eyes and think ive found me
but life inside the music box aint easy
the malots hit the gears are always turning
and everyone inside the mechanism
is yearning
to get out
and sing another melody completely
is yearing
to get out
is yearning
to get out
is yearning
to get out

10/27/2007

[北美] 微軟面試 - 綜合篇(二)

發信人: Erickung.bbs@ptt3.cc (Erickung), 看板: Oversea_Job
標 題: [北美] 微軟面試 - 綜合篇(二)
發信站: 批踢踢參 (Wed Oct 10 11:27:43 2007)
轉信站: ptt!Group.NCTU!grouppost!Group.NCTU!ptt3

微軟的秘密面試題

微軟以及其他許多公司在面試中都有一個"秘密測試武器",這個秘密武器通常被稱為"挑
戰"。我的一個朋友沒有通過微軟的面試。面試後,我與他共進晚餐。他抱怨說:"我恨死
那個主考官了,他簡直是個蠢貨。他連皮亞諾公理這樣的基礎知識都不懂!"我的這位朋友
對此感到憤怒,因為他覺得之所以面試搞砸,是這個主考官對所談論話題的無知造成的。

結果實情是什麼呢?他所申請的職位是專案經理,這是一個負責設計軟體而不是編程工作的
職位,因此這個職位需要做很多說服性的工作。專案經理要和一群有著很強邏輯思維能力、
但缺乏社交技巧的程式師打交道,這需要一種特別的才能。要想做一名專案經理,你需要具
備的獨特能力是:說服人們接受那些你認為正確的事實,而這基本上就是你的日常工作。你
必須是充滿耐心和友好的,這是專案經理職位對一個人的素質的基本要求。

"挑戰"的最早版本出現在口頭進行的斯坦福-比奈智商測試中。測試的人可能會給出下列
題目:我們都知道,水能夠把水中的魚托起來,那麼請回答這個問題:如果我們有一個桶只
有半桶水,把桶放到天平上,水和桶剛好重45公斤。然後把一條5公斤的魚放進桶�,現
在總重量為多少?

大多數成年人都會說45加5是50公斤。主持測試的人這時候可能會問:"這怎麼會是正
確的呢?你知道水是會把魚托起來的。"如果被測試的人不斷地改變答案,然後說"我覺得
答案應該是50公斤,但並不能十分確定。"那麼得分為零。只有在被測試者利用邏輯為自
己的正確答案進行辯護,並連續挫敗兩次"挑戰",答案才會被認為是正確的。

這些問題似乎並不針對智力做出測試,但是毫無疑問,應用這種"詭辯"測試的公司很重視
這種測試的結果。一般情形如下:在整個面試過程中,考官會引導應聘者說出一些完全肯定
、毫無爭議的正確答案。然後說"等一下,等一下",再故意和他唱兩分鐘的反調,直到他
們能夠充分證明自己答案的正確。

懦弱的應聘者會選擇放棄,這樣的人絕對不會被錄取。好的應聘者會搬用一整套戴爾•卡耐
基的做法來說服你,始終堅持自己的立場。這樣的人才會被錄用。


無答案的公開試題

微軟對面試問題的公開雖不樂意,但也很無奈。早在互聯網出現之初,這些試題就已經陸續
公開了。

20世紀90年代早期,克�斯•塞爾斯在DevelopMentor公司面試。在面試
快結束的時候,一位公司的創始人說道:"好的,你被錄用了。但是再問你一個微軟公司在
面試時常常問到的問題———為什麼下水道蓋子是圓形的?"

塞爾斯回答說:"沒問題,如果你先回答了這個問題,我再來回答你的問題———為什麼消
防員的背帶是紅色的?"

這位公司創始人啞口無言。

這次經歷促使塞爾斯開始收集微軟的面試問題。1996年,他創建了一個網站,並開始把
自己聽說的微軟試題張貼在網上。

南加利福尼亞大學學生柯朗•邦德拉帕提和他的幾個朋友一起參加了微軟的一次面試。邦德
拉帕提把問題整理出來,形成了自己的"微軟面試題庫"。還有另外一些網站提供類似的服
務,例如,4guys from Rolla.com網站的"微軟面試問題"和邁克爾•
普賴爾的"技術面試問題"(網站�包含各種各樣的試題,不只是微軟的面試試題)。

你可能認為微軟對自己公司的面試問題被公開十分惱怒,事實並不完全是這樣。邦德拉帕提
和塞爾斯都聽說過,微軟人力資源部門的人指點員工在初次擔任主考官時,上他們的網站參
考參考。

當然,應聘者也可以利用這些網站為面試預先準備,但塞爾斯和邦德拉帕提的網站都不提供
或者很少提供問題的答案。邦德拉帕提有一次就接到了一個朋友的朋友打來的緊急電話,當
時是她參加微軟面試的前夜。她面前擺著一大堆從邦德拉帕提網站上列印出來的東西,但是
沒有一個問題有確定的答案,她想讓邦德拉帕提告訴她。

塞爾斯收到許多公司的電子郵件,他們也想"像微軟一樣招聘"。但他們需要知道問題答案
,而塞爾斯的網站把答案都略去了。塞爾斯說:"我總是回答,如果你們不知道答案,就不
應該在面試時問這些問題。這往往使他們惱羞成怒。"


微軟智力題從哪兒來

邏輯題目是微軟16號樓自助餐廳�午餐休閒談話的一部分。微軟的競爭精神使大家認為,
能夠提出"新"而"有效"問題是一件很"酷"的事情。

許多微軟難題的產生帶有傳奇色彩。據說,有一次史蒂夫•鮑爾默和另一位微軟高官慢跑時
,看到了一個下水道蓋子,便隨口問道:"為什麼下水道蓋子是圓形的?"另一個人靈機一
動道:"喲,這可是一個面試的好問題。"這個故事可能真有其事,然而幾乎可以肯定,鮑
爾默並不是第一個提出下水道蓋子這個問題的人。實際上,微軟公司的面試智力題都在一些
智力題彙編書,或者一些以智力題為主要內容的網站上出現過,微軟只不過是給它們"化了
妝"而已。


最廣為流傳的面試問題:

在不使用天平的情況下,怎樣稱出一架噴氣式飛機的重量?

為什麼鏡子�的影像左右顛倒而不是上下顛倒?

為什麼你在賓館�一打開熱水龍頭就有熱水流出來?

M&M巧克力是怎樣做出來的?

你在船上,把一隻箱子拋起來,水平面會升高還是下降?

世界上有多少鋼琴調音師?

美國有多少加油站?

每小時有多少密西西比河水流過新奧爾良?

一個曲棍球場�的冰有多重?

如果你能夠搬走美國50個州中的任何一個,你會搬走哪一個?

地球上有多少個這樣的點:往南走1公里,往東走1公里,再往北走1公里,你能回到原來的出
發點?

一天中鐘錶的指針重疊多少次?

邁克和陶德兩人一共有21美元。邁克的錢比陶德多20美元,每個人各有多少錢?在你的答案
中不能有分數。

一般說來,將曼哈頓的電話冊翻多少次,才能找到你想要找的人名?

你會怎樣設計比爾•蓋茨的浴室?

你怎樣設計一個由電腦控制的微波爐?


微軟面試題——迷語篇

部分試題內容:
  
1.為什麼下水道的蓋子是圓的?
  
2.美國有多少輛汽車?
  
3.你讓工人為你工作七天,回報是一根金條。這個金一平分成相連的7段,你必須在每天結束的時候
給他們一段金條如果只許你兩次把金條弄斷,你如果給你的工人付費?
  
4.有一輛火車以每小時15公里的速度離開洛杉磯直奔紐約,另一輛火車以第小時20公里的速度從紐
約開往洛杉磯。如果有一隻鳥,以外30公里每小時的速度和兩輛火車現時啟動,比洛杉嘰出發,碰
到另輛車後返回,依次在兩輛火車來回的飛行,只到兩面輛火車相遇,請問,這只小鳥習行了多長
距離?
  
5.你有兩個罐子,50個紅色彈球,50個藍色彈球,隨機選出一個罐子,隨機選取出一個彈球放入罐
子,怎麼給紅色彈球最大的選中機會?在你的計畫中,得到紅球的準確幾率是多少?
  
6.想像你在鏡子前,請問,為什麼鏡子中的影像可以顛倒左右,卻不能顛倒上下?
  
7.你有四人裝藥丸的罐子,每個藥丸都有一定的重量,被污染的藥丸是沒被污染的重量+1.只稱量一
次,如何判斷哪個罐子的藥被污染了?
  
8.如果你有無窮多的水,一個3夸脫的和一個5夸脫的提桶,你如何準確稱出4夸脫的水?
  
9.你有一桶果凍,其中有黃色,綠色,紅色三種,,閉上眼睛選出同樣顏色的兩個,抓取同種顏色的
兩個。抓取多少個就可以確定你肯定有兩個同一顏色的果凍?
  
10.將汽車鑰匙插入車門,向哪個方向旋轉就可以打開車鎖?
  
11.如果要你能去掉50個州的任何一個,那你去掉哪一個,為什麼?

微軟招聘智力測試題

只有5分鐘,超過5分鐘就放棄,因為你絕對不會被微軟招聘.
這是微軟招聘時的智力測試!!!!超過5分鐘,淘汰!!!!


test 1

燒一根不均勻的繩需用一個小時,如何用它來判斷半個小時?

test 2

。。。
。。。
。。。

請僅用一筆劃四根直線,將上圖9各點全部連接。

test 3

對一批編號為1~100全部開關朝上(開)的燈進行以下操作:

凡是1的倍數反方向撥一次開關;2的倍數反方向又撥一次開關;3的倍數反方向又
撥一次開關。。。。。。

問:最後為關熄狀態的燈的編號。


微軟公司IT技術專家碰到的一次面試題

邁克和陶德的薪水相差 $21 。邁克的薪水比陶德多 $20 。邁克的薪水是多少?陶德
的薪水是多少? (答案中不包含小數點)

這個問題是微軟公司IT技術專家史蒂夫?多布斯曾在一次面試上遇到的, 那次面試是
多布斯所經歷的最令人筋疲力盡的面試之一。這個問題對應聘電話技術支援這一職位
到底有什麼用呢?

"那時, 我實在看不出這個問題與我應聘的職位有何相關之處,"多布斯說。"但現
在回顧起來, 我覺得它和技術支援領域的確有一些類同之處, 通常情況下,技術方面
的問題總不能輕而易舉的得到答案,有時你必須從新審視你的假設,從本質上講,它
們的基本規則是相同的。"

在那次面試中儘管多布斯得出了答案,他卻並沒有得到那份工作。"我告訴他們我計
算這道題的全部思考過程,包括我怎樣用排除法將相近的答案去掉,"他說。"當我
說到算出這道題目的唯一方法是忘掉'答案中不包括小數點'這一規則時, 他們似乎
對我走出了陷阱感到非常滿意" (算出來的結果是 $20.50 和 50美分。答案應該是
整個的數字。)

金融業做人力資源的人士也很喜歡在面試中玩類似的遊戲。他們認為投資者、銀行家
和其他金融方面的專家都必須是能在巨大壓力下仍能夠出色工作的人, 許多招聘者都
認為在面試的時候給應試者出一道難題是測試他們是否具備良好應試心態的一個好方
法。市場行銷業人力資源的人士也很樂意給面試者一些堅難的挑戰,例如,請為一個
19 世紀 50 年代的音頻電話設計一個行銷方案等等。

總的來看,在面試的時候,給應試者出一些看似與專業不相關題目,玩這種遊戲的多
是高科技企業,如dot-com招聘軟體發展及工程師等職位。

--
※ 發信站: 批踢踢參(ptt3.cc)
◆ From: 75.61.80.145

[北美] 微軟面試 - 益智問題篇 (二)

發信人: Erickung.bbs@ptt3.cc (Erickung), 看板: Oversea_Job
標 題: [北美] 微軟面試 - 益智問題篇 (二)
發信站: 批踢踢參 (Wed Oct 10 11:19:23 2007)
轉信站: ptt!Group.NCTU!grouppost!Group.NCTU!ptt3

微軟面試試題

名牌有名牌的理由,就連招聘也與眾不同。微軟公司的招聘一向都是人們議論的話題,
說它百般刁難的有之,說它獨出機杼的有之。在這�筆者試著把微軟在招聘過程中所用
過的幾則試題拿出來讓大家發表意見,看看這些考題究竟想考察應聘者什麼樣的素質。

一般來說,微軟的面試問題分為4類:謎語類試題、數學型試題、智力性試題、應用程
式類試題。先舉兩個謎語類試題:

1、美國有多少輛汽車?

2、將汽車鑰匙插入車門,向哪個方向旋轉就可以打開車鎖?

小張(復旦大學管理學院99級學生):這兩道試題並不難,我想他可能只是想考察一
下應聘者的應變能力,亦即在短時間內快速應對不規範問題的能力。

孫先生(某大型跨國企業員工):很明顯,這是兩道答案開放的試題。我想它是為了考
察應聘者能否對一個問題進行符合邏輯的創造性的思考,並迅速通過這種思考尋求到解
決問題的辦法。至於答案,發問者顯然並不關心。

裘副教授(復旦大學):問題是開放性的,但指向性也很明顯。應聘者是否能在很短的
時間對出其不意的問題作出反應,並能夠有邏輯地回答這樣的問題,發問者同樣希望能
夠得到出其不意的答案。有不少人通過在網上搜集這種試題來準備答案,顯然大違發問
者的本意。重複的答案都不是好答案。

下麵是兩道數學型的試題:

1、1000 有幾位數,為什麼?

2、編一個程式求質數的和,例如F 7 =1+3+5+7+11+13+17=58。

小陸(復旦大學物理系99級學生):數學試題與應用程式試題是微軟面試中指向性最
明顯的一類試題。這些試題就是考察應聘者的數學能力與電腦能力。

師女士(某諮詢公司高級顧問):微軟是一家電腦軟體公司,當然要求其員工有一定的電
腦和數學能力,面試中自然就會考察這類能力。微軟的上述面試題目就考察了應聘人員對
基礎知識的掌握程度、對基礎知識的應用能力,甚至暗含了對電腦基本原理的考察。所以
,這樣的面試題目的確很"毒辣",足以篩選到合適的人。

下面是智力題:

1、燒一根不均勻的繩需用一個小時,如何用它來判斷半個小時?

小何(復旦大學電腦系00級碩士研究生):我覺得我很難理解微軟這一部分的試題,我
大多數時候並不知道他考察我什麼,有時候我甚至覺得它僅僅是腦筋急轉彎。不過,我記
得李開複在央視的節目�說過,他們的考察內容是應聘者的可塑性。

石先生(某大型國企職工):我認為這一部分的問題有很大的隨意性,主要是考察應聘者
的智商,但是因為問題的不同又有不同的考察方向,比如第一個問題就考察了應聘者的逆
向思維能力,第二個就考察了應聘者的觀察能力與細緻程度。

于先生(某外資公司人事主管):我不知道微軟出這些題目的用意,但在我看來,智力題
是微軟面試中最好的考察方式。不僅考察的指向不同,就連問題的答案有時候也能給人以
啟發。比如上述第二個問題,如果你能找到答案,它就會幫你理解企業的資源使用組合方
式,經過優化以後可以發揮不同的作用。不同的管理者就會使用不同的組合方式,當然結
果就會不一樣!

--
※ 發信站: 批踢踢參(ptt3.cc)
◆ From: 75.61.80.145

→ kamer:我想問:為什麼微軟的程式常常當機?  10/12 16:02

[北美] 微軟面試 - 其他

發信人: Erickung.bbs@ptt3.cc (Erickung), 看板: Oversea_Job
標 題: [北美] 微軟面試 - 其他
發信站: 批踢踢參 (Wed Oct 10 11:40:47 2007)
轉信站: ptt!Group.NCTU!grouppost!Group.NCTU!ptt3

一列火車以每小時15英里的速度離開洛杉磯,朝紐約進發。另外一列火
車以每小時20英里的速度離開紐約,朝洛杉磯進發。如果一隻每小時飛
行25英里的鳥同時離開洛杉磯,在兩列火車之間往返飛行,請問當兩列
火車相遇時,鳥飛了多遠?

假設一張圓盤像唱機上的唱盤那樣轉動。這張盤一半是黑色,一半是白
色。假設你有數量不限的一些顏色感測器。要想確定圓盤轉動的方向,
你需要在它周圍擺多少個顏色感測器?它們應該被擺放在什麼位置?

你有兩個罐子,分別裝著50個紅色的玻璃球和50個藍色的玻璃球。隨意
拿起一個罐子,然後從�面拿出一個玻璃球。怎樣最大程度地增加讓自
己拿到紅球的機會?利用這種方法,拿到紅球的幾率有多大?

中間只隔一個數字的兩個奇數被稱為奇數對,比如17和19。證明奇數對
之間的數字總能被6整除(假設這兩個奇數都大於6)。現在證明沒有由
三個奇數組成的奇數對。

假設你有8個球,其中一個略微重一些,但是找出這個球的惟一方法是將
兩個球放在天平上對比。最少要稱多少次才能找出這個較重的球?

假設你站在鏡子前,抬起左手,抬起右手,看看鏡中的自己。當你抬起
左手時,鏡中的自己抬起的似乎是右手。可是當你仰頭時,鏡中的自己
也在仰頭,而不是低頭。為什麼鏡子中的影像似乎顛倒了左右,卻沒有
顛倒上下?

你有4瓶藥。每粒藥丸的重量是固定的,不過其中有一瓶藥受到了污染,
藥丸的重量發生了變化,每個藥丸增加了一點重量。你怎樣一下子測出
哪瓶藥是遭到污染的呢?

下面玩一個拆字遊戲,所有字母的順序都被打亂。你要判斷這個字是什
麼。假設這個被拆開的字由5個字母組成:
1. 共有多少種可能的組合方式?
2. 如果我們知道是哪5個字母,那會怎麼樣?
3. 找出一種解決這個問題的方法。

你有一袋糖,有紅色的,藍色的,綠色的。閉上眼睛,拿出兩塊顏色一
樣的糖,你需要拿多少次才能確保有兩塊顏色相同的?

如果你有兩個桶,一個裝的是紅色的顏料,另一個裝的是藍色的顏料。
你從藍色顏料桶�舀一杯,倒入紅色顏料桶,再從紅色顏料桶�舀一杯
倒入藍顏料桶。兩個桶中紅藍顏料的比例哪個更高?通過算術的方式來
證明這一點。

假設你有一個用1001個整數組成的陣列,這些整數是任意排列的,但是你
知道所有的整數都在1到1000(包括1000)之間。此外,除一個數字出現兩
次外,其他所有數字只出現一次。假設你只能對這個陣列做一次處理,用
一種演算法找出重複的那個數位。如果你在運算中使用了輔助的存儲方式
,那麼你能找到不用這種方式的演算法嗎?

不用乘法或加法增加8倍。現在用同樣的方法增加7倍。

如何將電腦技術應用於一幢100層高的辦公大樓的電梯系統上?你怎樣優化
這種應用?工作日時的交通、樓層或時間等因素會對此產生怎樣的影響?

你如何對一種可以隨時存在檔中或從網際網路上拷貝下來的作業系統實施保
護措施, 防止被非法複製?

你如何重新設計自動取款機?

假設我們想通過電腦來操作一台微波爐,你會開發什麼軟體來完成這個任務?

你如何為一輛汽車設計一台咖啡機?

假設我們想通過電腦來操作一台微波爐,你會開發什麼軟體來完成這個任務?

如果你想給微軟的word系統增加點內容,你會增加什麼樣的內容?

你會給失聰的人設計什麼樣的鬧鐘?

如果你有一個許多部件可以拆卸的時鐘,你將它一塊塊拆開,但是沒有記住
是怎樣拆的。然後你將各個零件重新組裝起來,最後發現有三個重要零件沒
有放進去。這時你如何重新組裝這個時鐘?

如果你需要學習一門新的電腦語言,你會怎樣做?

假設由你負責設計比爾•蓋茨的衛生間。當然,錢不成問題,但是你不可以
和比爾談。你會怎樣做?

到目前為止,你遇到的最難回答的問題是什麼?

如果微軟公司說,我們願意投資500萬美元用來開發你提出的方案。那麼你會
做什麼?為什麼?

如果你將世界上所有的電腦製造商召集起來,告訴他們必須要做一件事,你會
讓他們做什麼事?

如果你在五年內會得到一筆獎金,你認為會是因為什麼?關注你的成績的人
會是誰?

你如何教自己的奶奶使用微軟excel表格系統?

你為什麼想在微軟工作?

假設你回到家,進入自己的房間,打開電燈開關,可是一點反應都沒有——
燈沒有亮。這時,你在判斷問題出在哪里時,會依次採取怎樣的做法?

下列哪項?述是錯誤的?
(a)主觀主義者可能也是相對論者。
(b)相對論者也可能是客觀主義者。
(c)絕對論者也可能是主觀主義者。
(d)客觀主義者也可能是絕對論者。

如果就像薩特的存在主義所說的,"人要為自己的熱情負責",那麼無論我們做
什麼,我們都:
(a)違背了自己的意願。
(b)沒有經過思考。
(c)是自由的。
(d)是出於對上帝的蔑視。

薩特宣稱,對人類來說,"存在先於本質",換言之:
(a)當人們理智的時候,他們才符合人類的本質。
(b)根據上帝的指示,人們在本質上是註定要存在的。
(c)人類可以自由選擇,甚至選擇不以任何方式做任何事。
(d)人類是自由的,可以通過自己的行為而成為自己所願意成為的任何角色。

薩特說,"根本沒有人類本性這種東西",他的意思是:
(a)作為具有自我意識的生命,我們可以決定而且確實決定了自己成為一種生命。
(b)人類沒有辦法選擇是痛苦還是絕望。
(c)人類不具有可以從在生物角度把他們歸為一個物種的遺傳特徵。
(d)存在主義認為上帝的存在只是道德判斷的先決基礎。

康得說,一個行為符合義務並不能令它成為道德行為,當執行者只為了盡義務
或因為這是他的義務而做,他的行為才是道德行為。康得這樣說是為了表明:
(a)一個人行為的後果可能是好的也可能是壞的,一切取決於這個行為產生了多少快樂。
(b)出於自由意願而做的行為永遠是道德行為。
(c)一個行為的道德價值是由執行者的動機決定的,不是由這個行為的結果決定的。
(d)出於自身利益的行為不同於根據準則而做的行為。

康得認為,決定一個行為是否道德的關鍵是這個行為所依據的準則,而不是這
個單獨的行為本身。因為:
(a)根據定義,一個個體行為是不可以被普遍化的。
(b)我們的行為總是依據這樣或那樣的準則。
(c)沒有準則,我們將無從知道應該怎樣做。
(d)我們的準則是行為的客觀法則,是我們行事的基礎。

根據康得的觀點,一項具有無法被成功普遍化的動機或目的的行為:
(a)根據結果的不同,可以是道德的或不道德的。
(b)根據該行為是否被該人所在社會所接受,可以是道德的或不道德的。
(c)是不道德的。
(d)根據該行為是否出於自由意願,可以是道德的或不道德的。

康得說,"我可以判斷其他所有有理性的人是否和我一樣有義務去做某件事"
,判斷依據是:
(a)某些行為是否被不同文化普遍接受。
(b)其他人做和我一樣的行為是否得到好的結果。
(c)這個行為在所有人看來都是好的。
(d)我的行為的動機可以被普遍化,沒有被某些人抵觸或不被接受。

行為實用主義者說,我們應該一直做那些能帶來最大幸福的事,即使這意味著
違反道德原則。原則實用主義者不同意這種意見,說我們應該遵守道德原則,
即使我們認為違背這些原則會產生更好的結果,因為:
(a)服從道德原則為社會整體帶來的幸福通常多於為少數例外者帶來的不幸福。
(b)我們不應該成為任何道德原則的奴隸,道德只是個人選擇問題。
(c)通常來說,為大多數人謀求最大幸福的行為並不總是符合道德的。
(d)即使我們服從道德原則,也總難免造成某些人的不幸福。

行為實用主義者指出,有時候違反某一道德準則能比遵守準則帶來更大的幸福。他
們認為,在這種情況下,違反道德準則是允許的:
(a)只要保證下不為例。
(b)只要這個行為所影響的人沒有感到不快。
(c)只要實施行為者的動機或意圖是為了盡自己的義務而不計後果。
(d)實用主義原則本身甚至要求人們這樣做。

元帥統領八員將,每將各分八個營,每營�面擺八陣,每陣配置八先鋒,每個先
鋒八旗頭,每個旗頭有八隊,每隊分設八個組,每組帶領八個兵。請你掐指算一
算,元師共有多少兵?


在1、2、3、4、5、6、7、8、9這一串數字中間,加入運算符號"+"或"-",
使其代數和等於99,按(1 …… 9)可以有17種解,倒過來的後者(9 …… 1)
可以有11種解。有興趣的讀者,不妨一試。

有兩隻烏龜一起賽跑。甲龜到達10米終點線時,乙龜才跑到9米。現在如果讓甲龜
的起跑線退後1米,這時兩龜再同時起跑比賽,問甲、乙兩龜是否同時到達終點?

麥克因工作繁忙,決定臨時請尼克來協助他工作。規定以一年為期限,一年的報
酬為600美元與一台電視機。可是尼克做了7個月後,因急事必須離開麥克,並要
求麥克付給他應得的錢和電視機。由於電視機不能拆散付給他,結果尼克得到了
150美元和一台電視機。
現在請你想一想:這台電視機值多少錢?


有4個小孩看見一塊石頭正沿著山坡滾下來,便議論開了。
"我看這塊石頭有17公斤重,"第一個孩子說。
"我說它有26公斤,"第二個孩子不同意地說。
"我看它重21公斤",第三個孩子說。
"你們都說得不對,我看它的正確重量是20公斤,"第四個孩子爭著說。
他們四人爭得面紅耳赤,誰也不服誰。最後他們把石頭拿去稱了一下,結果誰也
沒猜准。其中一個人所猜的重量與石頭的正確重量相差2公斤,另外兩個人所猜
的重量與石頭的正確重量之差相同。當然,這�所指的差,不考慮正負號,取絕
對值。請問這塊石頭究竟有多重?

現在有三種不同重量的標準砝碼1克、3克、9克。請問可以稱出多少不同物品的
重量?在進行稱量時,要稱的東西與已知的標準砝碼可以任意地放在天平的兩
盤之一。另外,每種砝碼都只有一隻,而且不准複製。

現有米9公斤以及50克和200克的砝碼各一個。問怎樣在天平上只稱量三次而稱
出2公斤米?

在我最喜歡的那家比薩餅店中,10寸的比薩賣4.99美元。店主說,他們有一
筆12寸比薩餅的交易,定價為每份5.39美元。請問:該店在這筆比薩餅交易
中給予了買方多少折扣?

紐約伊沙貝拉時裝精品屋,新近從義大利購進了一件女式冬裝。這衣服的購
入價格再加二成,是該店標出的銷售價。

出於半個月內未賣出去,女老闆又將這個定價減去了一成,很快被一位漂亮
小姐買走了。女老闆獲利400元。 請問,這件高檔女式冬裝購入價是多少?

為罐頭工廠工作的送貨員a,給一家食品公司送了10箱鳳梨罐頭。每個罐頭重
量是800克,每箱裝20個。 正當他送完了貨,要回工廠的時候,接到了從工廠
打來的電話,說這10箱中有一箱由於機器出了問題而混進了次品,每個罐頭缺
50克的分量,要送貨員把這箱罐頭送回工廠以便更換。但是,怎樣從中找出到
底哪一箱是次品呢?最需要的當然是秤,可是手邊又沒有。 正在這時,他忽
然發現不遠的路旁有一台自動稱量體重的機器,也就是投進去1元硬幣就可以
稱量一次重量。他的口袋�剛好就有一個1元硬幣。當然也就只能量一次。那
麼他應該怎麼充分利用這只有一次的機會,來找到那一箱不符合規格的產品
呢?


有一個農場主,雇用了兩個臨時工幫忙種小麥。其中一個叫做湯姆,是一個耕
地能手,但是他不會播種;而另一個叫做尼克,他並不擅長於耕地,但是,
他卻是播種的好手。這個農場主決定要種十公頃小麥,讓他們各自包一半,
於是,湯姆從東頭開始耕地,而尼克從西頭開始耕地。耕一畝地湯姆只要用
二十分鐘,而尼克卻需要四十分鐘,但是尼克播種的速度比湯姆要快三倍。
他們播種完工後,農場主按照他們的工作量給予他倆一共一百元的工錢。請
問:他們應該怎麼樣分這份工錢才最合理?

一家有4個兄弟,他們4個的年齡乘起來的積為14。那麼,他們各自的年齡是
多大?當然年齡應該是整數。

在一所鄉村學校中,一個剛剛畢業的男數學老師s很幸運地同時得到了兩個女
教師a、b的青睞。s滿腦袋數字,在無法從兩者之中選擇的情況下,他只好
對這兩位女教師說,"希望你們用數字或者數學公式,來表示你們對我的愛
的程度。"
a說,"與b比起來,我是一百倍地愛你。"
b說,"a對你的感情當然沒有我對你的感情深。與a相比,我是一千倍地愛你。"
聽了她們深情的話語,不知為什麼數學老師s反而神情沮喪地說,"這不就等
於說,你們兩個都是完全不愛我嗎?" 這究竟是怎麼回事?

一位先生要到10層樓的第8層去辦事,不巧正趕上停電,電梯無法使用,他只
能夠步行上樓。如果他從第1層爬到第4層需要用48秒,那麼請問,以同樣的速
度走到第8層需要多少秒?

在一架飛機上,中間是一條過道,兩邊是座位,每一排為三人。兩位空姐a和
b每人負責一邊,對每位旅客分配旅行物品。 開始的時候,a給右邊的旅客發
放了6份,此時,b過來對她說,左邊應該由a負責。於是a重新到左邊開始發放
,b接著給右邊剩下的旅客發放物品,之後,又幫a發了15份,最後兩人同時結
束工作。 請問:a和b誰發的多?多發了多少份?

生產中需要一段鐵鏈,庫房中只有五截每截只有三個鐵環的鐵鏈,這五截鐵鏈
連起來的長度正好是所需要的。
問:在只切斷三個鐵環的情況下,怎樣將這五截三鐵環連起來?

旅行社剛剛為三位旅客預定了飛機票。這三位旅客是荷蘭人科爾、加拿大人伯
托和英國人丹皮。他們三人一個去荷蘭,一個去加拿大,一個去英國。據悉科
爾不打算去荷蘭,丹皮不打算去英國,伯托則既不去加拿大,也不去英國。
問:這三張飛機票分別應該是他們誰的?

老師讓6名學生圍坐成一圈,另讓一名學生坐在中央,並拿出七頂帽子,其中四
頂白色,三頂黑色。然後蒙住七名學生的眼睛,並給坐在中央的學生戴一頂帽
子,而只解開坐在圈上的六名學生的眼罩。這時,由於坐在中央的學生的阻擋
,每個人只能看到五個人的帽子。老師說:"現在,你們七人猜一猜自己的頭
上戴的帽子顏色。"大家靜靜地思索了好大一會。最後,坐在中央的、被蒙住雙
眼的學生舉手說:"我猜到了。"
問:中央的被蒙住雙眼的學生帶的是什麼顏色的帽子?他是怎樣猜到的?

有個農民挑了一對竹筐,趕集去買東西。當他來到一座獨木橋上,對面來了個
孩子,他想退回去讓孩子先過橋,但是回身一看,後面也來了個孩子。正在進
退兩難之際,農民急中生智,想了個巧辦法,使大家都順利地通過了獨木橋,
而且三人之中誰也沒有後退過一步。
問:農民是用的什麼方法?

某地質勘探隊有12名隊員,他們同住在一棟樓的12個房間內。由於工作關係,
資料不能集中,各人的房間內都有別人需要查對的資料。 這天,12位隊員又要
外出作業了。臨行前,隊長對大家說:"在外出作業期間,12個人一起回來是
不可能的,如有隊員回來查資料就困難了。現在咱們每個人都有打開自己門鎖
的兩把鑰匙,只准帶走其中一把鑰匙,餘下的一把不准掛在門上,因為不安全
,每個房間的門窗也必須關嚴,大家想一想,怎樣才能使任何一個人回來都能
打開12個房間呢?"
問:如果你是隊員之一,你能想出辦法來嗎?


父親打電話給女兒,要她替自己買一些生活用品,同時告訴她,錢放在書桌上
的一個信封�。女兒找到信封,看見上面寫著98,以為信封內有98元,就把錢
拿出來,數也沒數放進書包�。 在商店�,她買了90元的東西,付款時才發現
,她不僅沒有剩下8元,反而差了4元。 回到家�,她把這事告訴了父親,懷疑
父親把錢點錯了。父親笑著說,他並沒有數錯,錯在女兒身上。
問:女兒錯在什麼地方?

3個日本孩子翻衣兜,他們把兜�所有的錢都掏出來,看看一共有多少錢。結果
共有320日元。其中有兩枚硬幣是100日元的,兩枚是50日元的,兩枚是10日元
的。每一個孩子所帶的硬幣中沒有相同的。而且,沒帶100日元硬幣的孩子也
沒帶10日元的硬幣,沒帶50日元硬幣的孩子也沒帶100日元的硬幣。你能弄清楚
這3個日本孩子原來各自帶了什麼硬幣嗎?


請問:從你生下來的那一刻起,你入睡和醒來的次數哪個多?多多少次?

什麼書中毛病最多?

為什麼好馬不吃回頭草?

什麼東西說"父親"是不會相碰,叫"爸爸"時卻會碰到兩次?

農夫養10頭牛,只有19只角,為什麼?

打什麼東西既不花力氣又舒服?

托尼總是喜歡把家�的鬧鐘整壞,媽媽為什麼總是讓不會修理鐘錶的爸爸代為修理?

戴夫走路從來腳不沾地,這是為什麼?

生米不小心煮成熟飯時該怎麼辦?

製造日期與有效日期是同一天的產品是什麼?

時鐘敲了十三下,請問現在該做什麼呢?

在羅馬數字中,零該怎麼寫?

有對一模一樣的雙胞胎兄弟,哥哥的屁股有黑痣,而弟弟沒有。但即使這對雙胞胎
穿著相同的服飾,仍然有人可立刻知道誰是哥哥,誰是弟弟。究竟是誰呢?

家有家規,國有國規,那動物園�有啥規?

先有男人,還是先有女人?

什麼人每天靠運氣賺錢?

瑪麗整天說個不停,可有一個月她說的最少,那是為什麼?

大衛手�拿著火柴走到廚房,這有一個煤氣灶和一個酒精燈,他如果想燒開水,請
問:他應該先該點燃什麼?

老師說蚯蚓切成兩段仍能再生,西恩照老師的話去做,蚯蚓卻死了,為什麼?

汽車在右轉彎時,哪只輪胎不轉?

--
※ 發信站: 批踢踢參(ptt3.cc)
◆ From: 75.61.80.145

[北美] 微軟面試 - 綜合篇

發信人: Erickung.bbs@ptt3.cc (Erickung), 看板: Oversea_Job
標 題: [北美] 微軟面試 - 綜合篇
發信站: 批踢踢參 (Wed Oct 10 11:24:30 2007)
轉信站: ptt!Group.NCTU!grouppost!Group.NCTU!ptt3

微軟公司的面試問題

以下是微軟公司的員工在面試時所遇到的問題。微軟的顧問有時會得到一些特殊待遇,因
此在面試時詢問他們的問題並不真的算數,所以沒有列在下面。

微軟公司的面試問題---難題

★你讓某些人為你工作了七天,你要用一根金條作為報酬。這根金條要被分成七塊。你必須
在每天的活幹完後交給他們一塊。如果你只能將這根金條切割兩次,你怎樣給這些工人分?

★一列火車以每小時15英里的速度離開洛杉磯,朝紐約進發。另外一列火車以每小時20英里
的速度離開紐約,朝洛杉磯進發。如果一隻每小時飛行25英里的鳥同時離開洛杉磯,在兩列
火車之間往返飛行,請問當兩列火車相遇時,鳥飛了多遠?

★假設一張圓盤像唱機上的唱盤那樣轉動。這張盤一半是黑色,一半是白色。假設你有數量
不限的一些顏色感測器。要想確定圓盤轉動的方向,你需要在它周圍擺多少個顏色感測器?
它們應該被擺放在什麼位置?

★假設時鐘到了12點。注意時針和分針重疊在一起。在一天之中,時針和分針共重疊多少次?
你知道它們重疊時的具體時間嗎?

★你有兩個罐子,分別裝著50個紅色的玻璃球和50個藍色的玻璃球。隨意拿起一個罐子,然
後從�面拿出一個玻璃球。怎樣最大程度地增加讓自己拿到紅球的機會?利用這種方法,拿
到紅球的幾率有多大?

★中間只隔一個數字的兩個奇數被稱為奇數對,比如17和19。證明奇數對之間的數字總能被
6整除(假設這兩個奇數都大於6)。現在證明沒有由三個奇數組成的奇數對。

★一個屋子有一個門(門是關閉的)和3盞電燈。屋外有3個開關,分別與這3盞燈相連。你可以
隨意操縱這些開關,可一旦你將門打開,就不能變換開關了。確定每個開關具體管哪盞燈。

★假設你有8個球,其中一個略微重一些,但是找出這個球的惟一方法是將兩個球放在天平上
對比。最少要稱多少次才能找出這個較重的球?

★假設你站在鏡子前,抬起左手,抬起右手,看看鏡中的自己。當你抬起左手時,鏡中的自
己抬起的似乎是右手。可是當你仰頭時,鏡中的自己也在仰頭,而不是低頭。為什麼鏡子中
的影像似乎顛倒了左右,卻沒有顛倒上下?

★你有4瓶藥。每粒藥丸的重量是固定的,不過其中有一瓶藥受到了污染,藥丸的重量發生了
變化,每個藥丸增加了一點重量。你怎樣一下子測出哪瓶藥是遭到污染的呢?

★下面玩一個拆字遊戲,所有字母的順序都被打亂。你要判斷這個字是什麼。假設這個被拆
開的字由5個字母組成:
1.共有多少種可能的組合方式?
2.如果我們知道是哪5個字母,那會怎麼樣?
3.找出一種解決這個問題的方法。

★有4個女人要過一座橋。她們都站在橋的某一邊,要讓她們在17分鐘內全部通過這座橋。這
時是晚上。她們只有一個手電筒。最多只能讓兩個人同時過橋。不管是誰過橋,不管是一個
人還是兩個人,必須要帶著手電筒。手電筒必須要傳來傳去,不能扔過去。每個女人過橋的
速度不同,兩個人的速度必須以較慢的那個人的速度過橋。

第一個女人:過橋需要1分鐘;
第二個女人:過橋需要2分鐘;
第三個女人:過橋需要5分鐘;
第四個女人:過橋需要10分鐘。

比如,如果第一個女人與第4個女人首先過橋,等她們過去時,已經過去了10分鐘。如果讓
第4個女人將手電筒送回去,那麼等她到達橋的另一端時,總共用去了20分鐘,行動也就失敗
了。怎樣讓這4個女人在17分鐘內過橋?還有別的什麼方法?

★如果你有一個5夸脫的水桶和一個3夸脫的水桶,如何準確量出4夸脫的水?

★你有一袋糖,有紅色的,藍色的,綠色的。閉上眼睛,拿出兩塊顏色一樣的糖,你需要拿
多少次才能確保有兩塊顏色相同的?

★如果你有兩個桶,一個裝的是紅色的顏料,另一個裝的是藍色的顏料。你從藍色顏料桶�
舀一杯,倒入紅色顏料桶,再從紅色顏料桶�舀一杯倒入藍顏料桶。兩個桶中紅藍顏料的比
例哪個更高?通過算術的方式來證明這一點。

微軟公司的面試問題---運算題

★鏈結表和陣列之間的區別是什麼?

★做一個鏈結表,你為什麼要選擇這樣的方法?

★選擇一種演算法來整理出一個鏈結表。你為什麼要選擇這種方法?現在用O(n)時間來做。

★說說各種股票分類演算法的優點和缺點。

★用一種演算法來顛倒一個鏈結表的順序。現在在不用遞迴式的情況下做一遍。

★用一種演算法在一個迴圈的鏈結表�插入一個節點,但不得穿越鏈結表。

★用一種演算法整理一個陣列。你為什麼選擇這種方法?

★用一種演算法使通用字串相匹配。

★顛倒一個字串。優化速度。優化空間。

★顛倒一個句子中的詞的順序,比如將"我叫克麗絲"轉換為"克麗絲叫我",實現速度最
快,移動最少。

★找到一個子字串。優化速度。優化空間。

★比較兩個字串,用O(n)時間和�量空間。

★假設你有一個用1001個整數組成的陣列,這些整數是任意排列的,但是你知道所有的整數
都在1到1000(包括1000)之間。此外,除一個數字出現兩次外,其他所有數字只出現一次。
假設你只能對這個陣列做一次處理,用一種演算法找出重複的那個數位。如果你在運算中使
用了輔助的存儲方式,那麼你能找到不用這種方式的演算法嗎?

★不用乘法或加法增加8倍。現在用同樣的方法增加7倍。

微軟公司的面試問題---應用

★如何將電腦技術應用於一幢100層高的辦公大樓的電梯系統上?你怎樣優化這種應用?工
作日時的交通、樓層或時間等因素會對此產生怎樣的影響?

★你如何對一種可以隨時存在檔中或從網際網路上拷貝下來的作業系統實施保護措施,
防止被非法複製?

★你如何重新設計自動取款機?

★假設我們想通過電腦來操作一台微波爐,你會開發什麼樣的軟體來完成這個任務?

★你如何為一輛汽車設計一台咖啡機?

★ 如果你想給微軟的Word系統增加點內容,你會增加什麼樣的內容?

★你會給只有一隻手的用戶設計什麼樣的鍵盤?

★你會給失聰的人設計什麼樣的鬧鐘?
微軟公司的面試問題---頭腦

★如果你有一個許多部件可以拆卸的時鐘,你將它一塊塊拆開,但是沒有記住是怎樣拆
的。然後你將各個零件重新組裝起來,最後發現有三個重要零件沒有放進去。這時你如何
重新組裝這個時鐘?

★如果你需要學習一門新的電腦語言,你會怎樣做?

★假設由你負責設計比爾•蓋茨的衛生間。當然,錢不成問題,但是你不可以和比爾談。
你會怎樣做?

★到目前為止,你遇到的最難回答的問題是什麼?

★如果微軟公司說,我們願意投資500萬美元用來開發你提出的方案。那麼你會做什麼?
為什麼?

★如果你將世界上所有的電腦製造商召集起來,告訴他們必須要做一件事,你會讓他們
做什麼事?

★如果你在五年內會得到一筆獎金,你認為會是因為什麼?關注你的成績的人會是誰?

★你如何教自己的奶奶使用微軟Excel表格系統?

★為什麼當我們在任何一家賓館打開熱水龍頭時,熱水會馬上流出來?

★你為什麼想在微軟工作?

★假設你回到家,進入自己的房間,打開電燈開關,可是一點反應都沒有——燈沒有亮。
這時,你在判斷問題出在哪里時,會依次採取怎樣的做法?

--
※ 發信站: 批踢踢參(ptt3.cc)
◆ From: 75.61.80.145

十二大著名法則

一、 馬太效應
二、 手錶定理
三、 不值得定律
四、 彼得原理
五、 零和遊戲原理
六、 華盛頓合作規律
七、 酒與污水定律
八、 水桶定律
九、 蘑菇管理
十、 奧卡姆剃刀定律
十一、 二八法則
十二、 錢的問題

一、馬太效應
《新約‧馬太福音》中有這樣一個故事,一個國王遠行前,交給三個僕人每人一錠銀子,吩咐他們:「你們去做生意,等我回來時,再來見我。」國王回來時,第一 個僕人說:「主人,你交給我們的一錠銀子,我已賺了1 0錠。」於是國王獎勵他10座城邑。第二個僕人報告說:「主人,你給我的一錠銀子,我已賺了5錠。」於是國王例獎勵了他5座城邑。第三個僕人報告說:「主 人,你給我的一錠銀子,我一直包在手巾裡存著,我怕丟失,一直沒有拿出來。」於是國王命令將第三個僕人的一錠銀子也賞給第一個僕人,並且說:「凡是少的, 就連他所有的也要奪過來。凡是多的,還要給他,叫他多多益善。」這就是馬太效應。看看我們周圍,就可以發現許多馬太效應的例子。朋友多的人會借助頻繁的交 往得到更多的朋友;缺少朋友的人會一直孤獨下去。金錢方面更是如此,即使投資回報率相同,一個比別人投資多1 0倍的人,收益也多! 10倍。
這是個贏家通吃的社會,善用馬太效應,贏家就是你。
  
  對企業經營發展而言,馬太效應則告訴我們,要想在某一個領域保持優勢,就必須在此領域迅速做大。當你成為某個領域的領頭羊的時候,即使投資回報率相 同,你也能更輕易的獲得比弱小的同行更大的收益。而若沒有實力迅速在某個領域做大,就要不停地尋找新的發展領域,才能保證獲得較好的回報。


二、手錶定理
手錶定理是指一個人有一隻表時,可以知道現在是幾點鐘,而當他同時擁有兩隻表時卻無法確定。兩隻表並不能告訴一個人更準確的時間,反而會讓看表的人失去對 準確時間的信心。你要做的就是選擇其中較信賴的一隻,盡力校準它,並以此作為你的標準,聽從它的指引行事。記住尼采的話:「兄弟,如果你是幸運的,你只需 有一種道德而不要貪多,這樣,你過橋更容易些。」
如果每個人都「選擇你所愛,愛你所選擇」,無論成敗都可以心安理得。然而,困擾很多人的是:他們被「兩隻表」弄得無所,心身交瘁,不知自己該信仰哪一個, 還有人在環境、他人的壓力下,違心選擇了自己並不喜歡的道路,為此而鬱鬱終生,即使取得了受人矚目的成就,也體會不到成功的快樂。
  
  手錶定理在企業經營管理方面給我們一種非常直觀的啟發,就是對同一個人或同一個組織的管理不能同時採用兩種不同的方法,不能同時設置兩個不同的目標。 甚至每一個人不能由兩個人來同時指揮,否則將使這個企業或這個人無所適從。手錶定理所指的另一層含義在於每個人都不能同時挑選兩種不同的價值觀,否則,你 的行為將陷於混亂。


三、不值得定律
不值得定律最直觀的表述是:不值得做的事情,就不值得做好,這個定律似乎再簡單不過了,但它的重要性卻時時被人們疏忘。不值得定律反映出人們的一種心理, 一個人如果從事的是一份自認為不值得做的事情,往往會保持冷嘲熱諷,敷衍了事的態度。不僅成功率小,而且即使成功,也不會覺得有多大的成就感。
  哪些事值得做呢?一般而言,這取決於三個因素。
1、價值觀。關於價值觀我們已經談了很多,只有符合我們價值觀的事,我們才會滿懷熱情去做。
2、個性和氣質。一個人如果做一份與他的個性氣質完全背離的工作,他是很難做好的,如一個好交往的人成了檔案員,或一個害羞者不得不每天和不同的人打交道。
3、現實的處境。同一份工作,在不同的處境下去做,給我們的感受也是不同的。例如,在一家大公司,如果你最初做的是打雜跑腿的工作,你很可能認為是不值得的,可是,一旦你被提升為領班或部門經理,你就不會這樣認為了。
  
  總結一下,值得做的工作是:符合我們的價值觀,適合我們的個性與氣質,並能讓我們看到期望。如果你的工作不具備這三個因素,你就要考慮換一個更合適的工作,並努力做好它。
  
  因此,對個人來說,應在多種可供選擇的奮鬥目標及價值觀中挑選一種,然後為之而奮鬥。「選擇你所愛的,愛你所選擇的」,才可能激發我們的奮鬥毅力,也 才可以心安理得。而對一個企業或組織來說,則要很好地分析員工的性格特性,合理分配工作,如讓成就欲較強的職工單獨或牽頭來完成具有一定風險和難度的工 作,並在其完成時給予定時的肯定和讚揚;讓依附欲較強的職工更多地參加到某個團體中共同工作;讓權力慾較強的職工擔任一個與之能力相適應的主管。同時要加 強員工對企業目標的認同感,讓員工感覺到自己所做的工作是值得的,這樣才能激發職工的熱情。


四、彼得原理
彼得原理是美國學者勞倫斯‧彼得在對組織中人員晉陞的相關現象研究後得出的一個結論;在各種組織中,由於習慣於對在某個等級上稱職的人員進行晉陞提拔,因 而僱員總是趨向! 於晉陞到其不稱職的地位。彼得原理有時也被稱為「向上爬」原理。這種現象在現實生活中無處不在:一名稱職的教授被提升為大學校長後無法勝任;一個優秀的運 動員被提升為主管體育的官員,而無所作為。
  對一個組織而言,一旦組織中的相當部分人員被推到了其不稱職的級別,就會造成組織的人浮於事,效率低下,導致平庸者出人頭地,發展停滯。因此,這就要 求改變單純的「根據貢獻決定晉陞」的企業員工晉陞機制,不能因某個人在某一個崗位級別上幹得很出色,就推斷此人一定能夠勝任更高一級的職務。要建立科學、 合理的人員選聘機制,客觀評價每一位職工的能力和水平,將職工安排到其可以勝任的崗位。不要把崗位晉陞當成對職工的主要獎勵方式,應建立更有效的獎勵機 制,更多地以加薪、休假等方式作為獎勵手段。有時將一名職工晉陞到一個其無法很好發揮才能的崗位,不僅不是對職工的獎勵,反而使職工無法很好發揮才能,也 給企業帶來損失。
  對個人而言,雖然我們每個人都期待著不停地升職,但不要將往上爬作為自己的惟一動力。與其在一個無法完全勝任的崗位勉力支撐、無所適從,還不如找一個自己能游刃有餘的崗位好好發揮自己的專長。
五、零和遊戲原理
當你看到兩位對弈者時,你就可以說他們正在玩「零和遊戲」。因為在大多數情況下,總會有一個贏,一個輸,如果我們把獲勝計算為得1 分,而輸棋為-1分,那麼,這兩人得分之和就是:1+(-1)=0。
  這正是「零和遊戲」的基本內容:遊戲者有輸有贏,一方所贏正是另一方所輸,遊戲的總成績永遠是零。
  零和遊戲原理之所以廣受關注,主要是因為人們發現在社會的方方面面都能發現與「零和遊戲」類似的局面,勝利者的光榮後面往往隱藏著失敗者的辛酸和苦 澀。從個人到國家,從政治到經濟,似乎無不驗證了世界正是一個巨大的「零和遊戲」場。這種理論認為,世界是一個封閉的系統,財富、資源、機遇都是有限的, 個別人、個別地區和個別國家財富的增加必然意味著對其他人、其他地區和國家的掠奪,這是一個「邪惡進化論」式的弱肉強食的世界。
  但20世紀人類在經歷了兩次世界大戰,經濟的高速增長、科技進步、全球化以及日益嚴重的環境污染之後,「零和遊戲」觀念正逐漸被「雙贏」觀念所取代。 人們開始認識到「利己」不一定要建立在「損人」的基礎上。通過有效合作,皆大歡喜的結局是可能出現的。但從「零和遊戲」走向「雙贏」,要求各方要有真誠合 作的精神和勇氣,在合作中不要耍小聰明,不要總想佔別人的小便宜,要遵守遊戲規則,否則「雙贏」的局面就不可能出現,最終吃虧的還是自己。


六、華盛頓合作規律。
華盛頓合作規律說的是:一個人敷衍了事,兩個人互相推諉,三個人則永無成事之日。多少有點類似於我們「三個和尚」的故事。人與人的合作不是人力的簡單相 加,而是要複雜和微妙得多。在人與人的合作中,假定每個人的能力都為1 ,那麼10個人的合作結果就有時比10大得多,有時甚至比1還要小。因為人不是靜止的動物,而更像方向各異的能量,相推動時自然事半功倍,相互牴觸時則一 事無成。我們傳統的管理理論中,對合作研究得並不多,最直觀的反映就是,目前的大多數管理制度和行業都是致力於減少人力的無謂消耗,而非利用組織提高人的 效能。換言之,不妨說管理的主要目的不是讓每個人做到最好,而是避免內耗過多。2 1世紀將是一個合作的時代,值得慶幸的是,越來越多的人已經認識到真誠合作的重要性,正在努力學習合作。
  邦尼人力定律:一個人一分鐘可以挖一個洞,六十個人一秒種卻挖不了一個洞。
  
  合作是一個問題,如何合作也是一個問題。


七、酒與污水定律
酒與污水定律是指,如果把一匙酒倒進一桶污水中,你得到的是一桶污水;如果把一匙污水倒進一桶酒中,你得到的還是一桶污水。幾乎在任何組織裡,都存在幾個 難弄的人物,他們存在的目的似乎就是為了把事情搞糟。他們到處搬弄是非,傳播流言、破壞組織內部的和諧。最糟糕的是,他們像果箱裡的爛蘋果,如果你不及時 處理,它會迅速傳染,把果箱裡其它蘋果也弄爛,「爛蘋果」的可怕之處在於它那驚人的破壞力。一個正直能幹的人進入一個混亂的部門可能會被吞沒,而一個人無 德無才者能很快將一個高效的部門變成一盤散沙。組織系統往往是脆弱的,是建立在相互理解、妥協和容忍的基礎上的,它很容易被侵害、被毒化。破壞者能力非凡 的另一個重要原因在於,破壞總比建設容易。一個能工巧匠花費時日精心製作的陶瓷器,一頭驢子一秒鐘就能毀壞掉。如果擁有再多的能工巧匠,也不會有多少像樣 的工作成果。如果你的組織裡有這樣的一頭驢子,你應該馬上把它清除掉;如果你無力這樣做,你就應該把它拴起來。


八、水桶定律
水桶定律是講,一隻水桶能裝多少水,完全取決於它最短的那塊木板。這就是說任何一個組織都可能面臨的一個共同問題,即構成組織的各個部分往往決定了整個組織的水平。
  構成組織的各個部分往往是優劣不齊的,而劣質部分往往又決定整個組織的水平。
  「水桶定律」與「酒與污水定律」不同,後者討論的是組織中的破壞力量,而「最短的木板」卻是組織中有用那個部分,只不過比其它部分差一些,你不能把它 們當成爛蘋果扔掉。強弱只是相對而言的,無法消除。問題在於你容忍這種弱點到什麼程度。如果它嚴重到成為阻礙工作的瓶頸,就不得不有所動作。
   如果你在一個組織中,你應該:
   1、確保你不是最薄弱的部分;
   2、避免或減少這一薄弱環節對你成功的影響;
   3、如果不幸,你正處在這一環節中,你還可以採取有效的方法改進,或者轉職去謀另一份工作。


九、蘑菇管理
蘑菇管理是許多組織對待初出茅廬者的一種管理方法,初學者被置於陰暗的角落(不受重視的部門,或打雜跑腿的工作),澆上一頭大糞(無端的批評、指責、代人 受過),任其自生自滅(得不到必要的指導和提攜)。相信很多人都有這樣一段「蘑菇」的經歷,但這不一定是什麼壞事,尤其是當一切都剛剛開始的時候,當上幾 天「蘑菇」,能夠消除我們很多不切實際的幻想,讓我們更加接近現實,看問題也更加實際,而對一個組織而言,一般地新進的人員都是一視同仁,從起薪到工作都 不會有大的差別。無論你是多麼優秀的人才,在剛開始的時候都只能從最簡單的事情做起,「蘑菇」的經歷對於成長中的年輕人來說,就像蠶繭,是羽化前必須經歷 的一步。所以,如何高效率地走過生命中的這一段,從中盡可能吸取經驗,成熟起來,並樹立良好的值得信賴的個人形象,是每個剛入社會的年輕人必須面對的課 題。


十、奧卡姆剃刀定律
如果你認為只有焦頭爛額、忙忙碌碌地工作才可能取得成功,那麼,你錯了。
  事情總是朝著複雜的方向發展,複雜會造成浪費,而效能則來自於單純。在你做過的事情中可能絕大部分是毫無意義的,真正有效的活動只是其中的一小部分,而它們通常隱含於繁雜的事物中。找到關鍵的部分,去掉多餘的活動,成功並不那麼複雜。
  奧卡姆剃刀:如無必要,勿增實體。
  12世紀,英國奧卡姆的威廉對無休無止的關於「共相」、「本質」之類的爭吵感到厭倦,主張唯名論,只承認確實存在的東西,認為那些空洞無物的普遍性要 領都是無用的累贅,應當被無情地「剃除」。他主張,「如無必要,勿增實體。」這就是常說的「奧卡姆剃刀」。這把剃刀曾使很多人感到威脅,被認為是異端邪 說,威廉本人也受到傷害。然而,這並未損害這把刀的鋒利,相反,經過數百年越來越快,並早已超越了原來狹窄的領域而具有廣泛的、豐富的、深刻的意義。
  奧卡姆剃刀定律在企業管理中可進一步深化為簡單與複雜定律:把事情變複雜很簡單,把事情變簡單很複雜。這個定律要求,我們在處理事情時,要把握事情的主要實質,把握主流,解決最根本的問題。尤其要順應自然,不要把事情人為地複雜化,這樣才能把事情處理好。


十一、二八法則
你所完成的工作裡80%的成果,來自於你20%的付出;而80%的付出,只換來20%的成果


十二、錢的問題
當某人告訴你:「不是錢,而是原則問題」時,十有八九就是錢的問題。
照一般的說法,金錢是價值的尺度,交換的媒介,財富的貯藏。但是這種說法忽略了它的另一面,它令人陶醉、令人瘋狂、令人激動的一面,也撇開了愛錢的心理不談。馬克思說,金錢是「人情的離心力」,就是指這一方面而言。
  關於金錢的本質、作用和功過,從古到今,人們已經留下了無數精闢深刻的格言和妙語。我們常會看到,人們為錢而興奮,努力賺錢,用財富的畫面挑逗自己。 金錢對世界的秩序以及我們的生活產生的影響是巨大的、廣泛的,這種影響有時是潛在的,我們往往意識不到它的作用如此巨大,然而奇妙的是:它完全是人類自己 創造的。致富的驅動力並不是起源於生物學上的需要,動物生活中也找不到任何相同的現象。它不能順應基本的目標,不能滿足根本的需求- --的確,「致富」的定義就是獲得超過自己需要的東西。然而這個看起來漫無目標的驅動力卻是人類最強大的力量,人類為金錢而互相傷害,遠超過其他原因。

10/10/2007

[北美] 微軟面試

發信人: Erickung.bbs@ptt3.cc (Erickung), 看板: Oversea_Job
標 題: [北美] 微軟面試
發信站: 批踢踢參 (Wed Oct 10 11:14:55 2007)
轉信站: ptt!Group.NCTU!grouppost!Group.NCTU!ptt3

擷取自網路

微軟招聘試題

"微軟"招聘考試,除了專業知識,往往更看重一個人的聰明程度。據參
加招聘考試的學生說,"微軟"筆試題"古怪刁鑽",有些簡直"異想天
開",令人匪夷所思。不過,"微軟"似乎不為所動,年年出一些"怪題
目"。幾年下來,這些題目不再被認為怪,更逐漸成為許多大企業拿來考
大學生的"經典"。

快速估算題:測試你的快速反應能力

這類題目有不同的版本。比如說,問你如何在不使用臺秤的情況下,稱出
一架飛機的重量?估算一下長江�的水的品質? 這是大的、宏觀方面的問
題;小的方面試題,還會問你這一類題目:"估算一下一個行進在小雨中
的人5分鐘內身上淋到的雨的品質。"

再看另一道快速估算題。去年3月,"微軟"在復旦大學舉行了一場校園招
聘,第一輪筆試題目中就有一道令應試者困惑的"東方明珠"題:"請估
算一下東方明珠電視塔的重量"。當時真是難倒了眾多學子。據上海微軟
軟體有限公司負責招聘考試的軟體研發部經理蔡先生說:"其實,有同學
認為這個題目刁鑽古怪也在情理之中,畢竟這種類型的試題在國內還不太
多,所以大家都有些摸不著頭腦。"他表示:"就東方明珠這道題來說,
它和一般的謎語或智力題還是有區別的。這類題為快速估算題,主要考的
是快速估算的能力,這是開發軟體必備的能力之一。重要的是對考生得出
這個結果的過程也就是方法的考察。"

蔡經理說了一種比較合理的答法。他首先在紙上畫出東方明珠的草圖,然
後快速估算支架和各個支柱的高度,以及球的半徑,算出各部分體積,然
後進行各部分密度運算,最後相加得出一個結果。蔡經理認為:"像這樣
的題目,包括一些推理題,考的都是人解決問題的能力,不是哪道題你記
住了答案就可以了的。"

開放性思維題:考驗你的邏輯推理能力

去年應聘"微軟"的大學生,考試時遇到了一道"古怪"的智力題。題目
是:一樓到十樓的每層電梯門口都放著一顆鑽石,鑽石大小不一。你乘坐
電梯從一樓到十樓,每層樓電梯門都會打開一次,只能拿一次鑽石,問:
怎樣才能拿到最大的一顆﹖應試者不知該怎麼辦。考試後主考官並沒有明
確公佈答案,但他對其中一位女士的做法表示讚賞。那位女士的回答是:
選擇前五層樓都不拿,觀察各層鑽石的大小,做到心中有數。後面五個樓
層再選擇,選擇大小接近前五層樓出現過最大鑽石大小的鑽石。這位女士
後來在互聯網上談體會時說: "我至今也不知道這道題的準確答案,也
許本來就沒有準確答案,就是考一下你的思路。"

這種說法得到微軟中國有限公司人力資源部招聘經理尹冬梅的肯定。尹冬
梅表示,以上這些都是屬於筆試的題目。"微軟"希望招到更多開放型思
維的人,因此很多題目其實都沒有一個標準答案。比如說,你認為北京有
多少公共汽車站﹖你可以隨便給出答案,5家或者5000家,但你得有理由。

基礎數學題:考核你的數學基礎是否紮實

一般來說,"微軟"招聘只收理工科的學生,要求有紮實的數學基礎,因
此基礎數學題量是最大的。有些題目初看很複雜,思路一打開,其實相當
簡單,所以有的大學生戲稱是"小學三年級的題目"。比如如下這道題:
有8顆彈子球,其中1顆是"缺陷球",也就是它比其他的球都重。你怎樣
使用天平只通過兩次稱量就能夠找到這個球﹖

主考官在解釋這道題的答案時指出:要想解決這個問題,必須充分利用天
平可以量出兩邊彈子球重量是否相等這一事實,即無論什麼時候只要兩邊
重量相等,就表明"缺陷球"不在這些彈子球中。第一次稱重,在天平的
兩邊各任意放3顆球。這時候會有兩種可能的結果。如果天平兩邊的重量是
平衡的,就可以確定所稱量的6個球當中沒有"缺陷球"。因此第二次稱重
時只要稱量剩下的2顆球,較重的 1顆就是"缺陷球"。如果天平的一邊比
另一邊重。那麼可以確定 "缺陷球"肯定位於天平較重一邊的3顆球當中
。第二次稱量時只要從這3個球當中任意拿出2個進行稱量。如果兩邊平衡
,則3顆球中剩下的沒有參加稱量的1顆球就是"缺陷球",如果兩邊不平
衡,則較重的一邊就是"缺陷球"。

從上面這道題和其他大量的數學題內容來看,"微軟"招聘考試重視數學
基礎是由它工作性質決定的。"微軟"招聘主管大衛•普�查得先生認為
,軟體發展需要極嚴格的數學模式。對數學沒有興趣的人難以勝任最起碼
的程式員工作。他表示,對於筆試題目,如果有大學生對他說:"這真是
一個愚蠢的問題",這並不是錯誤的回答。

智力測試題:看你能否創造性地思考

"請用一筆劃出四根直線,將圖上9個點全部聯結。"答案:畫一根與水準
成45度角的斜線到某一點,然後以此點作為直角三角形兩個直角邊的交點,
向任何一邊作直角三角形,就可以把9個點聯結起來。

這類智力題考的是在懂得數學原理基礎上的創造性思考。比如下面這個問題
就需要動動腦子了。題目是:一個正三角形的每個角上各有一隻螞蟻。每只
螞蟻開始朝另一隻螞蟻做直線運動,目標角是隨機選擇。螞蟻互不相撞的概
率是多少﹖

答案應當是:只有兩種方法可以讓螞蟻避免相撞:或者它們全部順時針運動
,或者它們全部逆時針運動。否則,肯定會撞到一起。選擇一隻螞蟻,一旦
它確定了自己是逆時針或者是順時針運動,其他的螞蟻就必須做相同方向的
運動才能避免相撞。由於螞蟻運動的方向是隨機選擇的,那麼第二隻螞蟻有
1╱2的概率選擇與第一隻螞蟻相同的運動方向。第三只螞蟻也有1╱2的概率
選擇與第一隻相同的方向。因此,螞蟻避免撞到一起的概率是1╱4。

還有一些問題雖然不需要數學知識,但要懂得基本的科學常識。比如問你:
太陽總是從東邊升起嗎﹖答案應該是否定的。因為在北極點,根本就沒有"
東方"這個方向。每一個方向都是南。在6個月的"極晝"時間,太陽從南
邊升起從南邊落下。另外在南極也一樣,每一個方向都是北方。

諸如此類的問題我們還可以舉出一些,其中包括拿"微軟"領袖比爾•蓋茨
"尋開心"的題目。此題是"比爾•蓋茨的辦公桌下有五隻帶鎖的抽屜,分
別貼著財富、興趣、幸福、榮譽和成功五個標籤;蓋茨總是只帶一把鑰匙,
請問是哪一把?" 答案:興趣。�

所有這些都出於這樣的考慮: "微軟"想找"聰明的、有開放思維的人。"
負責"微軟"招聘工作的大衛•普�查得先生強調:其實我們並不是想得到
"正確"的答案,我們是想看看應聘者是否能找到最好的解題方案,看他們
是否能夠創造性地思考問題。 "我們的目的是選人,而不是難倒學生。"

--
※ 發信站: 批踢踢參(ptt3.cc)
◆ From: 75.61.80.145

8/03/2007

愛心結緣義賣書展

610大姊姊那邊看到的

鄭豐喜基金會2007年公益活動『愛心結緣全面五折義賣書展

96年8月09日(四)~8月26日(日) 11:00 AM ~ 09:30 PM
會場: 統一元氣館~2樓、4樓(台北車站正對面、前大亞百貨)

最近很閒 應該會過去逛逛吧

8/02/2007

Simone

取自電影「Simone」,全名是Simulator One。這個工具的主要目標是利用script來編輯FSM,並且產生FSM示意圖以供參考。除此之外,透過即時編譯執行,我們可以立刻模擬FSM的行為,同時驗證script的正確性。此工具使用的腳本語言為Lua,產生FSM示意圖的函式庫為LuaGraph,建立GUI視窗的函式庫為wxLua


AI.lua是我所設計的lua extension。其主要用途是將LuaGraph與FSM結合在一起。在FSM中,每一個state都會註冊一個node至graph之中。設定State與State之間的轉換關係的同時也會將node與node之間的edge註冊至graph之中。程式人員或企畫人員在編輯FSM腳本時,可以利用lua物件導向的方式,override掉之前的函式,創造出不一樣的功能。利用AI module,程式人員或企畫人員可以自己編寫AI script。由於lua非常彈性,我們可以針對特定的state改寫其中的member function。甚至我們也可以任意制訂object的屬性,讓企畫人員馬上實現他們的想法。

載入AI script之後,Simone會產生新的child window並且畫出FSM圖。在Simone下方有一個文字輸入欄位,這欄位可即時輸入script指令來改變FSM的狀態。此外,Simone preference可以設定PNG檔案輸出位置與State之顏色等。

script sample
local AI = require 'AI'
function CreateAI()
local o = AI.NewObject('basic')

-- create the attribute of the object for display
o.attr={
hp={name='HP',value=100},
-- add new attribute for you wanted
}

-- create states
local idle = AI.NewState(o,'idle')
local patrol = AI.NewState(o,'patrol')
local normal = AI.NewState(o,'normal')

-- add variables to state
idle.timer = 0
patrol.timer = 0

-- override function
function idle:OnEnter(previous)
idle.timer = 0
end

-- state event
local function onAttack(state)
local hp = state:GetObject().attr.hp
hp.value = hp.value - 10
state:Transit(normal)
end
idle:AddEvent(normal, onAttack, 'is attacked', 'attack')
idle:AddEvent(normal, onAttack, 'is alerted', 'alert')

-- condition
local function gotoPatrol(state, deltaTime)
state.timer = state.timer+deltaTime
if (state.timer>3000) then
return true
end
return false
end
idle:Connect(patrol, gotoPatrol, 'idle>3sec')

-- override function
function patrol:OnEnter(previous)
patrol.timer = 0
end

-- condition
local function gotoIdle (state, deltaTime)
state.timer = state.timer+deltaTime
if (state.timer>5000) then
return true
end
return false
end
patrol:Connect(idle, gotoIdle, 'patrol>5sec')

local function pass() return true end
normal:Connect(idle, pass)

o:SetState(idle)
return o
end

7/27/2007

iGoogle gadget for 壹蘋果


gadget第二彈

code完全一模一樣

只是改了rss來源 :P

美中不足的是 壹蘋果沒有提供品質較好的縮圖

而且大圖的寬度為450px 總是會超過gadget的寬度

所以強迫縮放的結果就是圖像顆粒非常的粗 XD

source code

reference: diggirl gadget

7/25/2007

iGoogle gadget for diggirl.net

google taiwan舉辦了Google小工具設計甄選

一時興起就想寫個gadget來湊熱鬧

第一個想到的點子是獨孤木先生所創辦的diggirl

不過我實在是太久沒碰javascript了

很多語法還是要慢慢查reference才會用
reference: css, dom, html, javascript

過程中發現有強者也在開發同樣的gadget

不過半途而廢也是不太好的事

只好硬著頭皮上了! XD

source code

7/19/2007

網路尋人

真是神奇的網路尋人事件

詳情請看610網路尋人

我舅媽的國小同學舉辦了國小同學尋人任務

由於我舅媽早早就移民到美國,也找不到最新的聯絡資料

但是憑著舅媽當過德州華裔小姐的線索

居然透過網路找到我荒廢已久的blog (裡面沒有我的聯絡資料)

再經由610大姊姊在我blog上的留言

找到610大姊姊

610大姊姊再把消息傳給我

傑克,這真的是太神奇了!

7/13/2007

UI of Games

What About Flash? Can We Really Make Games With It?

Mini-postmortem on the use of gameswf

gameswf

gnash

Scaleform GFx

6/30/2007

北京雜記

公司派我到北京做一趟技術交流之旅,為期十天

初到北京,迎面而來的熱氣,彷彿就像仍在台北一般

空氣有些污濁,整個城市籠罩在一片薄紗之中

文慧園路:現代的科技大樓併鄰著破舊的公寓樓房

一輛輛呼嘯而過的小客車旁竟是一頭毛驢悠哉地拖著攤販車

這樣的違和感遍佈在北京大大小小的巷弄裡


新疆料理、四川料理、港式料理到處都是

而北京料理只有北京烤鴨眾所皆知

所謂的老北京小吃也逐漸凋零在胡同裡


寬廣的天安門廣場 古老的紫禁城 悠久的歷史 改變飛快的城市

同文同種的人們卻站在互相衝突的地盤上

小大世界

台北<->舊金山 10hr
台北<->東京 3hr
台北<->北京 5hr

世界是如此的遼闊
卻又是如此的擁擠

我和住在異鄉的人一樣
生活在大不相同的世界

但也相信自己不再孤單

5/27/2007

software engineering

5/24/2007

script language comparsion

Ruby, Io, PHP, Python, Lua, Java, Haskell, and Plain C Fractal Benchmark

http://www.timestretch.com/FractalBenchmark.html

compare python vs lua, ruby, PHP and Haskell

http://william-os4y.livejournal.com/2216.html

4/13/2007

Factory Method

Objective

定義生成物件的介面,但是讓子類別決定該具現哪個類別的物件。工廠方法將類別具現化交給子類別去處理。

Motivation

level designer利用level editor編輯了一個精心製作的關卡,其中有各式各樣的怪物配置在各處。level editor會將這些關卡資訊輸出成一個特定格式的檔案。在遊戲中,programmer將會讀取這些資訊並生成出正確的怪物類別。

由於該具現哪一類別的怪物將會隨著關卡設定而異,所以程式無法事先預測生成哪些怪物類別--程式只知道何時該生成怪物,而不知道該具現那一類別的怪物。解決方法就是使用Factory Method「將類別具現化交給子類別去處理」。



Implementation

class Creator {
public:
virtual Product* Create(int type);
};

Product* Creator::Create(int type) {
switch(type) {
case Type1: return new MyProduct1;
case Type2: return new MyProduct2;
case Type3: return new MyProduct3;
//...
case TypeN: return new MyProductN;
}
return NULL;
}


Problem

上述 pseudo code 雖然可以正常運作,但是卻非常難以擴展。譬如,我們需要在遊戲中加入新的怪物類別,所以不得不修改Creator::Create()、添加相對應的 case、原始碼中也需要include該怪物類別的header file。要怎麼修改才可以讓Factory Method任意添加新的類別而不用更動原本的原始碼呢?


Solution

透過template,我們可以自動產生每一個product的creator。然後再利用register的方式將creator註冊至factory method。那麼factroy method便可以找出對應的creator來具現所需要的類別。


class Factory {
public:
Object* Create(int type) { return mCreatorMap[type]->Create(); }
void Register(int type, const Creator* pCreator) { mCreatorMap[type] = pCreator; }
static Factory* GetInstance() { return mpInstance; }
private:
Factory() {}
typedef std::map CreatorMap;
static CreatorMap mCreatorMap;
static Factory *mpInstance;
};

Factory* Factory::mpInstance = new Factory;
Factory::CreatorMap Factory::mCreatorMap;


為了讓creator方便地註冊至factory method。我們可將factory method實做成Singleton模式。結合Singleton模式,我們可以利用靜態變數與物件建構式,將creator在程式初始化時便自動地註冊至factory method。


class Creator {
public:
virtual ~Creator() {}
virtual Object* Create() const = 0;
};

template
class ConcreteCreator : public Creator {
public:
ConcreteCreator() { Factory::GetInstance()->Register(T::_Type(), this); }
Object* Create() const { return new T; }
private:
static ConcreteCreator mRegister;
};


當我們需要添加一個新的怪物類別時,我們只需要實做出新的類別,並且加入下列代碼:

ConcreteCreator ConcreteCreator::mRegister;

That's all. :)

4/04/2007

Singleton

Objective

確保類別只會有一個實體物件存在,並提供單一的存取窗口。


Motivation

當我們必須確保某些類別只需要一個實體物件存在。譬如,地球上只會有一個台灣;樂陞只會有一個Gold Dragon使用龍歌雷射;遊戲中只需要有一個怪獸工廠來產生所有個怪獸。

雖然global variable或static variable很容易存取,但是我們無法保證不會出現多個同樣類別的物件。比較好的作法就是讓類別自己管理這唯一的實體物件。並保證絕對無法生成第二個的物件。


Implementation
class Singleton {
public:
static Singleton* GetInstance();
protected:
Singleton();
private:
static Singleton* mpInstance;
};

Singleton* Singleton::GetInstance() {
if (0 == mpInstance) {
mpInstance = new Singleton;
}
return mpInstance;
}

Singleton* Singleton::mpInstance = 0;


Singleton的建構式位於protected區域,因此外界無法產生物件實體。外界只能透過GetInstance()加以存取;如果 mpInstance為0,便會產生一個新的唯一物件。此作法稱為lazy initialization:也就是等到第一次使用時才去產生物件實體。當然我們也可以給靜態變數直接建構出實體物件,那麼GetInstance() 便可以直接回傳該指標即可。不過必須考慮到一些限制:

* 確保程式在執行過程中一定會使用該類別,否則就會浪費資源。
* 該類別或許會需要執行時產生的參數,而這些參數無法在靜態變數初始化時產生。
* Singleton之間不能有dependent relation,除非我們可以保證建構物件的順序。

class Singleton {
public:
static Singleton* GetInstance() { return mpInstance; }
protected:
Singleton();
private:
static Singleton* mpInstance;
};

Singleton* Singleton::mpInstance = new Singleton;


Problem

Q: Multi-thread架構中使用Singleton會出現什麼問題?
A: 可能產生兩個Singleton。


Solution

1. 靜態初始化Singleton
2. 將GetInstance()同步化,也就是同時間只有一個thread可以進入此函式

3/30/2007

Irradiance Environment Map

Radiance is the emitted energy per unit time in a given direction from a unit area of an emitting surface. We can capture radiance at a point for all directions by rendering a cube map, A.K.A. radiance distribution function. The radiance of a purely diffuse surface is defined in terms of surface's irradiance.

The irradiance distribution function at a point can be stored using a diffuse cube map, also called irradiance environment map. At SIGGRAPH 2001, Ramamoorthi and Hanrahan proposed a technique to represent irradiance environment map by Spherical Harmonics. This reduces both the storage and bandwidth costs.



DirectX SDK provides functions for projecting a cube map into spherical harmonic coefficients as well as other SH operation functions. SH is a kind of frequency space transformation likes Fourier transformation, but on spherical space. Ramamoorthi found 3rd order SH effectively represents the irradiance distribution function. 3rd order SH only needs 9 floating point coefficients per channel, i.e. R, G, B.



Reference

3/21/2007

中永和之歌

永和有永和路,中和也有永和路, 中和有中和路,永和也有中和路; 中和的中和路有接永和的中和路, 永和的永和路沒接中和的永和路; 永和的中和路有接永和的永和路, 中和的永和路沒接中和的中和路。

永和有中正路,中和也有中正路, 永和的中正路用景平路接中和的中正路; 永和有中山路,中和也有中山路, 永和的中山路直接接上了中和的中山路。 永和的中正路接上了永和的中山路, 中和的中正路卻不接中和的中山路。

這就是我居住的城市: 中正橋下來不是中正路,但永和有中正路; 秀朗橋下來也不是秀朗路,但永和也有秀朗路。 永福橋下來不是永福路,永和沒有永福路; 福和橋下來也不是福和路,但福和路接的卻是永福橋。 這是什麼地方?百慕達三角洲嗎? 難怪我常常鬼打牆阿...


中永和 - Uncyclopedia - 偽基百科

3/16/2007

Using DirectX with wxWidget

wxWidgets A.K.A. wxWindow is a cross-platform toolkit for creating window application. There is a class called wxGLCanvas for OpenGL, but no information for DirectX. Then, I try to integrate DirectX with wxWidgets. I found flick will happen when I use paint event to draw d3d frame. To avoid from flicking, I use erase event to clear the background of window and redraw d3d frame. Here is the pseudo code:

class MyApp : public wxApp {
virtual bool OnInit();
virtual int OnExit();
};
class MyViewport : public wxPanel {
public:
MyViewport(wxWindow* parent);
void OnIdle(wxIdleEvent& event);
void OnDraw(wxEraseEvent& event);
private:
DECLARE_EVENT_TABLE()
};

class MyFrame: public wxFrame {
MyViewport *mpViewport;
public:
MyFrame(const wxString& title);
private:
DECLARE_EVENT_TABLE()
};

// the event tables connect the wxWidgets events with the functions (event
// handlers) which process them. It can be also done at run-time, but for the
// simple menu events like this the static method is much simpler.
BEGIN_EVENT_TABLE(MyViewport, wxPanel)
EVT_ERASE_BACKGROUND (MyViewport::OnDraw)
EVT_IDLE (MyViewport::OnIdle)
END_EVENT_TABLE()

// Create a new application object: this macro will allow wxWidgets to create
// the application object during program execution (it's better than using a
// static object for many reasons) and also implements the accessor function
// wxGetApp() which will return the reference of the right type (i.e. MyApp and not wxApp)
IMPLEMENT_APP(MyApp)

// 'Main program' equivalent: the program execution "starts" here
bool MyApp::OnInit() {
// create the main application window
MyFrame *frame = new MyFrame( _T("D3D sample") );

create D3D device here

frame->Show(true);
SetTopWindow(frame);
return true;
}

int MyApp::OnExit() {
release D3D device here

return wxApp::OnExit();
}

// frame constructor
MyFrame::MyFrame(const wxString& title) :
wxFrame(NULL, -1, title, wxPoint(0,0)), mpViewport(NULL), mpTreeCtrl(NULL)
{
mpViewport = new MyViewport(this);
}

MyViewport::MyViewport(wxWindow* parent) : wxPanel(parent) {
}

void MyViewport::OnIdle(wxIdleEvent& event) {
update your d3d objects here

// call Refresh() to send a wxEraseEvent to redraw a frame
Refresh();
}

void MyViewport::OnDraw(wxEraseEvent& event) {
g_pd3dDevice->BeginScene();

draw your d3d objects here

g_pd3dDevice->EndScene();
g_pd3dDevice->Present(NULL,NULL, this->GetHWND() ,NULL);
}

抖腳

本人常常因為抖腳而被女友罵

結果今天在公司看到外國人坐在位子上抖腳

果然抖腳是男人的天性 中外皆然 XD

3/09/2007

How to write a directx shader for 3dsmax


Since programmable GPU was appeared, many and many game engines have to support this feature to create more and more visual effects. And also, 3D modeling softwares need to adapt this new feature.

3dsmax provides a material called "DirectX shader". You can write your directX shader (a.k.a HLSL) and use it as a material in 3dsmax. but there are some rules and restrictions(see DirectX 9 Shader Material-Semantics and Annotations). There are some sample FX files in map\fx\ directory. Let us open the default.fx file.

// This is used by 3dsmax to load the correct parser
string ParamID = "0x0";

//DxMaterial specific
// light direction (view space)
float3 lightDir : Direction < uiname = "Light Direction" object = "TargetLight"> = {-0.577, -0.577, 0.577};

// light intensity
float4 I_a = { 0.1f, 0.1f, 0.1f, 1.0f }; // ambient
float4 I_d = { 1.0f, 1.0f, 1.0f, 1.0f }; // diffuse
float4 I_s = { 1.0f, 1.0f, 1.0f, 1.0f }; // specular

// material reflectivity
float4 k_a < uiname = "Ambient"> = float4( 0.47f, 0.47f, 0.47f, 1.0f ); // ambient
float4 k_d < uiname = "Diffuse"> = float4( 0.47f, 0.47f, 0.47f, 1.0f ); // diffuse
float4 k_s < uiname = "Specular"> = float4( 1.0f, 1.0f, 1.0f, 1.0f ); // diffuse // specular
int n< uiname = "Specular Power" uitype = "IntSpinner" uimin =" 0.0f;" uimax =" 50.0f;"> = 15;

// transformations
float4x4 World : WORLD;
float4x4 View : VIEW;
float4x4 Projection : PROJECTION;
float4x4 WorldViewProj : WORLDVIEWPROJ;
float4x4 WorldView : WORLDVIEW;

struct VS_OUTPUT
{
float4 Pos : POSITION;
float4 col : COLOR0;
};

VS_OUTPUT VS(
float3 Pos : POSITION,
float3 col : COLOR,
float3 Norm : NORMAL,
float2 Tex : TEXCOORD0)
{
VS_OUTPUT Out = (VS_OUTPUT)0;
float3 L = lightDir;
float3 P = mul(float4(Pos, 1),(float4x4)World); // position (view space)
float3 N = normalize(mul(Norm,(float3x3)World)); // normal (view space)
float3 R = normalize(2 * dot(N, L) * N - L); // reflection vector (view space)
float3 V = normalize(P); // view direction (view space)
Out.Pos = mul(float4(Pos,1),WorldViewProj); // position (projected)
float4 Diff = I_a * k_a + I_d * k_d * max(0, dot(N, L)); // diffuse + ambient
float4 Spec = I_s * k_s * pow(max(0, dot(R, V)), n/4); // specular
Out.col = Diff + Spec;
return Out;
}

float4 PS(
float4 Diff : COLOR0,
float4 Spec : COLOR1,
float2 Tex : TEXCOORD0,
float2 Tex1 : TEXCOORD1 ) : COLOR
{
float4 color = Diff + Spec;
return color ;
}

technique DefaultTechnique
{
pass P0
{
// shaders
CullMode = None;
VertexShader = compile vs_1_1 VS();
PixelShader = compile ps_1_1 PS();
}
}


DirectX shader material parses the shader file. These variables with 3dsmax specified annotation will create UI components as you can see in "Default.dx Parameters" rollout.
And 3dsmax will pass values to these variables with specified semantic and annotation.
3dsmax use "Direction" as semantic to specify lighting direction. when there is no light in the scene, this parameter use default light's value i.e. current view direction.

The most trick part is we have to assign all mapping channels to vertex shader inputs if we want to use other coordinates such as vertex color, vertex alpha, second texture coordinate...etc.
Else these input value will be disordered and can not get the correct result.

3/08/2007

test

test again