過去一週的網頁瀏覽次數

2012年12月1日 星期六

研替心得part1


趁現在還有點印象的時候,做個紀錄,這篇是for研替的,跟普通替代役有點不同,因為研替不會跟其他單位混在一起,總共在軍中的時間也只有16(最少),上的課也不一樣。我相信大家都會爬文,但是特別的是研替的在營規定會因為役男的反映一直在修正,所以太舊的文其實沒有參考的價值,有些小規定都變了,我是2012 25T 研發替代役 13中隊的,請多多鬼叫()


行前準備:
盥洗:沐浴乳或肥皂、刮鬍刀、指甲剪、牙刷、牙膏
日常用品:面紙(很實用)、錢(800左右,更多也可以不會被偷)、手機、針線包(縫名牌)、奇異筆、電子表、耳塞(睡叫怕吵可帶)、個人藥品、防蚊液、鐵罐喉糖、輕便雨衣、30公分鐵尺、鐵夾
文件類:畢業證書正本(一定要正本) + 影本(與正本相符,最好弄2 3)、役期折抵文件(高中、大學)、身分證、健保卡、提款卡、電話卡(可有可無,他們會發一張)、記郵局帳號(他們要給薪水)

錢會用到的時機就是第一天營站買東西(東西很貴之後會講)、交第一次放假的車錢70~80、剪頭髮的錢20,就這樣而已,所以不用帶太多,出來後看你要做啥車去領錢就好,然後放完假進去後在帶點錢去付車錢就好。

建議去之前先剃頭,現場設備簡陋,只有圍巾還要自己用手抓,雖然會有痱子粉,但是不能洗頭,要等到晚上洗澡。

面紙很好用可以多帶幾包,大號、上餐廳都會用到,我五天用4包左右,體積小不佔空間又很好收納,我在每件褲子口袋都放一包,出門完全不怕忘記帶衛生紙。反到是抽取式衛生紙可以不用帶,不好收。

筆可以帶,因為他們會發文具包裡面就有筆,所以筆不是違禁品,但是建議安檢時可以藏在鞋子裡,不確定會過。奇異筆很好用而且防水,拖鞋水杯那些寫自己的學號就不會搞混了。

鐵尺鐵夾電話卡是選配啦~可以用來摺棉被蚊帳衣服用的,大家都知道要折豆腐被,蚊帳要弄成方形的,衣服要有折線,都可以用鐵尺夾子做,晚上睡覺夾衣服,起床夾棉被,根本無敵。

強烈建議電子錶一定要帶,而且要防水的+有夜光功能,半夜可以看時間,也可以用夜光整理內物櫃很實用(總比完全沒燈好),但不用買太貴的,動作快時很容易敲到,我是去夜市買199的。

違禁品的定義就是電器類 & 書,電動的xxx都屬於違禁品,能不帶就不要帶,當然他們不會把你丟掉,但是你出營的時候忘記領回來就麻煩。書是違禁品(難怪國軍都腦殘),但是可以把東西印成A4的去看,有人印書印小說都可以,但是一堆A4不好收,訣竅就是用盒子裝起來,我是去光南買A4的塑膠盒裝,內物櫃可以弄得非常整齊。

手機現在已經開放了但屬管制品,從第二天開始每天晚上洗澡時都可以打,可以帶智慧型的去沒問題(成功領打卡XD),因為大部分時間會鎖在保管箱中(錢也可以鎖進去,一人一格,鑰使自己保管)所以完全不怕被偷。但是沒有地方充電(不要帶充電器是違禁品),講電話時間自己要控制,不然就多帶電池。另外就是行動電源的問題,智慧型手機容易沒電,但我不確定這是不是違禁品,所以我建議第一個禮拜用普通手機就好,進去再問你的分隊長這問題。

不用多帶內褲去換,不會穿到,裝備發下來後就要換掉收到大黑袋中,進去穿哪套出來就穿哪套,想要帥一點就穿帥一點沒人管。另外可以穿涼鞋、布希鞋等不用穿襪子的,體檢的時候可以很快穿脫,又不用脫襪子。

歌曲也可以先聽先背,因為分隊長唱的很難聽,你根本不知道這首歌旋律是什麼歌曲有替代役之歌、成功領之歌、夜襲、我愛中華、黃埔軍魂、勇士進行曲、同袍情、榮譽、英勇的戰士、英雄好漢在一班、東男苦行山、飛揚、亮島之歌,可以不用全部都背,先看其中幾首就好。

最後是每日評分,內務櫃弄得整齊會加分,東西就是盡量裝在盒子裡就對了,看起來就很整齊,進去後會發一個百寶盒,大約25*20*8CM的大小,以及兩個鞋盒,因為你的衣服、襪子內褲、雜物等..盡量都要放到盒子裡,所以建議小東西就不要帶太多,免得衣服毛巾那些放不下。

研替心得part3


疑問排解

這是就我想到的,曾經有的疑惑,在這邊解釋一下,如果讀者有想到其他問題也可以發問。


洗澡:

不用擔心會有比大小的問題了,浴室是每人一間房,只有蓮蓬頭(很爛),基本上到我這梯已經沒有戰鬥澡了,之前還聽說分隊長會打開門來催人,但是後來發現這根本是不可能的,因為門可以鎖他怎麼打的開zzz

你要洗個10分鐘都沒有人管(分隊長會在外面鬼叫),但是還是要洗快點,因為後面有一堆人排隊(將心比心),我平均約5~6分鐘洗完,用什麼洗沒人管,但是我不推薦MANQ很難沖


自由時間:

這是很兩極的情況,第一周通常很忙,因為要上課、幹部要教歌、基本說明、雜事、替歌練習等等白天到傍晚是沒啥自由時間的,但是在替歌比賽後就會完全改變,有時候真的閒到你不知道能幹嘛,不過真正的自由時間還是洗澡的那一小時 + 11點過後的時間,你可以整理內物櫃、打電話、上廁所、寫日記(有點困難)、看書、聊天、發呆隨便你。

如果我還有想到的會繼續補充,如果你有問題也可以提問啦。

研替心得part2


軍中生活

講一下第一、二天行程

編隊:

替代役是以中隊為主,一中隊有大約190幾人,分成很多分隊,一分隊最多16人,有一個中隊長(上尉),一個副中(中尉)4位區隊長(常備役掛少尉)&很多位分隊長(常備役掛三等士官長),至於區就是以寢室分,有一寢二寢三寢,但是你屬於哪一區的沒啥差別。只有中隊和副中是軍級人物。


營站購物:

第一天報到的時候就會有個行程是去營站買東西,這行程很重要,東西一定要買齊(check list拿出來看),因為你之後沒有機會再來了(再來就要等放假了)但是成功嶺的東西都不便宜(真的很貴),但你可以相信網路上說的只要帶800多就好(買東西有訣竅)

買東西地點是118營站,裡面有個兩間店,會去右邊的"全家"買東西,全家店長很會虎爛,新人都會被騙買一堆衣服和用不到的東西,但是我要告訴你衣服很貴!!!!!!!!!!!!!!!!   EX:一件三花平口內褲要200 長袖內衣要1xx!!!! X超級貴~~~~~~ 當下很多人會被唬爛買到8~9百塊甚至破千(真的很扯),但是你會發現你根本用不到Orz

不用擔心會被強迫買東西,因為根本沒有人管你買了什麼!! 
一定不要買的:鞋油鞋刷不用買(替代役沒有裝檢)
一定要買的:平板衛生紙(檢查用不要開)1~2個洗衣袋(有可能洗到爆掉,但我都沒爆)
彈性買的:一條內褲、一雙襪子(防止洗衣袋破掉衣服不見就沒得換洗)、一條毛巾(3000)

其他的東西像是針線盒啥鬼的,就是看你缺啥買啥,我只花了300多買東西而以。


內物櫃整理:

在第四天開訓典禮之後,就會開始內務評分(每扣8分罰勤2小時,相反就是放榮譽假2小時),內務櫃必須隨時保持整齊,但剛去的第一天行程非常趕東西都亂塞,沒有時間整理內物櫃,我會建議你在第二天的半夜開始整理第一次,東西的位置都要設定好,褲子可以吊在衣服裡,可以快速拿取歸位,我是小東西+皮帶放百寶盒,下層鞋盒只放多的面紙、預備的毛巾、用來日間換衣服時把褲子塞進去用的(有時候沒時間吊),上層鞋盒則放內衣褲、洗衣袋,至於文具包課本我就放在上層鞋盒上,這樣拿東西很快也不會弄亂,內務櫃也可以超級空(加分機率很高)

蚊帳通常是需要兩個人一起折,這時候找個很有sense的夥伴就對了,有些人折歪了也沒感覺,跟這種人一起折真的很悲劇。


心態調整:

軍中是很封閉的環境,雖然我們不是兵(是替代役),但是還是以服從為主,你可以有任何疑問,但是反抗的話不要說出來,我建議可以將心態調整成正向的,因為其實幹部們也很累(我第三天就體悟到了),做錯事要被中隊長幹,我們又愛理不理指令的,因為他們也是普通替代役,受過幹訓隊訓練就下來帶隊了,服務的地點就在成功嶺,你會發現一堆幹部也只早我們幾天進來,根本沒經驗,每天吼來吼去的,還要天天跟我們一起跑3000,哪個替代役分發後還天天跑的阿他們還要排每天的行程雜事,永遠比我們晚睡早起,我是覺得他們其實也滿辛苦的,如果可以就盡量配合他們要求,研替是國軍裡水平最高的隊伍,管理的幹部也都有挑過,絕對不會有罵髒話的(xxxx 你媽xxxxx),不會有人格侮辱的問題。但我還是有聽過其他中隊有幹部罵髒話的,真的受不了就1985打下去,要死大家一起死(?)

進去就用交朋友的心態去就對了,主動幫助其他人,你也會很快交到朋友,要想大家幾天後都是工作上的夥伴,你偷懶怕事其實大家都看在眼裡。


洗衣服:

我之前有說過衣服不要多買,頂多買備用的就好,因為送洗衣服有嚴格規定,你會有兩個洗衣袋,其中一個只能裝襪子內褲內衣(簡稱3),另一個只能裝內衣,多裝少裝都不可以,就算你不想洗也要送。送洗的衣服隔天就會回來,只要一直輪流穿就好,你換下太多的衣服根本沒地方洗,放著發臭而已,所以完全不需要買額外的衣服。

好吧,你會發現跑3000擦汗的毛巾沒地方掛,你可以拿去洗,但是秋冬之季寢室通常很濕,你曬一晚也不會乾,我是沒洗..只能放假拿回家洗


車錢:

成功領第一個周末會放一次假,那次大家會一起坐遊覽車出營門,有三個地點:台中火車站、台中高鐵站、彰化火車站。前兩個是70元車錢,最後的是80 (做車還要錢有夠靠北),當然可以選走路出營門免錢,但是這是有家人接你的前提下。放假回來一樣是7080...

2012年10月31日 星期三

2012 MOPCON 完美落幕

我跟傳翔這種高手不同,這是我第一次參加這種會議..先說說這會議的大標題好了,主旨是雲端和線上購票。

雲端,其時有點老生常談吧,套句老爸說的,雲只是一堆機器在執行而以,誰的機器多、頻寬大,誰的"雲"就很大,但是使用者對雲本身並不感興趣,因為重點是"端",也就是使用者們可以用到的終端服務群有多少,這次會議有個議題在說台灣其實沒有雲端,我覺得講的其實挺好的,雲端希望解決的其中一件事情就是可以在短時間內動用大量伺服器來解決heavy request的問題,但是目前台灣本土的雲端業者能處理的request似乎是別人的1/10(待查 有點忘了),這說明了兩件事:1. 開發者必須尋求國外較大的雲端供應商、2. 因為1.的關係導致開發者不會在意台灣是否有雲端供應商,他們只會在意世界上有沒有便宜好用的雲端供應商,這說明在全球化競爭的情況下,所有服務都online無國界,企業經營的客群不能只著眼台灣。

至於後面的線上購票講得跟上面差不多,因為他是雲端的一種應用,阿~一不小心又廢話一堆了

這次兩天的會議根據我的觀察,大致上可以歸納出幾項: 1. 創業經驗分享、2. web技術研討、3. 後端技術研討、4. 打廣告&拍照大會,有種參加生物醫學年會的感覺 (迷:你是學生物的嗎zzz),呵呵~~但是我希望這樣說明不會貶低了會議的價值Orz,不過讓我比較驚訝的,我一直以為這種會議的主軸會放在技術的研究上,但是似乎不是這樣,不過因為我聽到很多創業經驗的分享 & 獨立遊戲開發者的心酸歷程,我認為對於web產業來講創業 = 創意,而且對一個startup公司來說他們並沒有很多資本可以燒,第一 二個創意如果沒有成功,幾乎就等於創業失敗了...其中更牽扯到專案管理、行銷OOXX的,噢~難怪人家都說在startup公司待過的最強XD 因為真的什麼都會了,當然這次也聽了一些專案管理的東西,但很可惜的他們只是批評,卻沒有一個結論。

還有就是一賭名人的丰采吧,我真的要承認我是劉姥姥逛大觀園,很多所謂的名人,其實我都沒聽過,這次來算是特別來看他們一面的XD

而且最重要的是讓我之到了現在台灣在寫OS的社群juluOSDev,他們還有FB社團,對寫OS有興趣的人可以加入,他們有開讀書會呢!!! 我打算報名下次的讀書會。

此外就是跟傳翔聊了一些,果然跟高手談話就是可以學到東西,確實是改變了我一些過去對於創意的分享觀念,傳翔說得很好,分享創意其實並不需要擔心別人把他偷去,因為如果他只是一個人,那他成不了公司,或根本做不出來,那如果他已經成立公司了,那他們一定有正在做的事,因此不可能有時間去作一個跟你一樣的東西競爭,這兩點看似簡單,但是我倒是一直都參不透,所以我一直認為把創意分享給別人是一件危險的事,未來會慢慢改觀。

還有就是觀察演講者的台風吧,雖然我不清楚這些演講者到底是自己投的呢、還是主辦單位找來的,有些人已經是startup的創辦人,有些人是公司的經理級人物,有些人是獨立開發者,但是我還是發現...原來並不是所有可以上台的人,都有很好的報告方式和技巧...這項能力是我一直都有在訓練自己的,因為我知道有時候的成敗就在一瞬間,不過大家還是很給面子的鼓掌呢~~

當然,我也看到了很多有勇氣的人,在最後的lighting talk上拼命的展示自己,我其實還挺羨慕這些年輕人,在這個年紀就知道可以參加這些會讓自己成長,我真的後悔大學四年都在虛度光陰阿~~呵呵

但從另一面來說,我覺得議程本身有點無聊,我不敢說我多高深,但是會議討論的東西或觀念很多都已經在網路上看過了,甚至是學校裡的書報討論請來的講師都講過了,這次真正充實的感覺,大部分都不是從演講得來的,是這次比較可惜的。

2012年10月11日 星期四

[心得] 世紀末軟體革命復刻版

這本也算是神書之一了,在這邊下集預告一下。

[心得] head first C#

這本書斷斷續續的終於把他看完了。

這本書非常適合初入門C#的讀者,就像我一樣。先不提本書了,C#這語言老實說寫起來滿爽的,而且在某方面有除掉C/C++的陋習 => 交代不清 的問題。C/C++大家都說易懂難學...我想有一部分是因為潛規則太多,它擺在檯面上的很簡單,但是檯面下的...OOXX,光是看那堆在講C++的書就可以窺知一二... 我不敢說多了解程式語言這門學問,僅就單純小小程式員的心得而已,讓我感覺最明顯的就是定義明確了,而且畢竟發展年代較晚,原生導入了一些OO的概念在裡面,在寫程式的時候就可以省點力氣了,不用再記這個是介面、這個要搞虛擬~呵呵,好吧,可能我就是常常分心..才會寫出四不像的東西zzz

這本書算是有帶到入門的知識,基本的應用都有提到、範例也算多,要全部都做完根本超累XD,而且我滿喜歡舉例的方式和編排,讓人讀起來不會死板,某些時候還會因為範例的故事激發一些想法XD,再來就是head first系列的書籍風格,姑且不論前面的廢話好了,文字配圖的方式有深得我心哈哈,算是有起到加分的作用,而且排版清爽,字距讀起來很輕鬆,不過用的紙磅數挺高的...整本書很重..。

書中的範例程式在網站上也都有提供專案,因為有時候書的描述其實不是很清楚,而這本書在講解時十分依賴visual studio IDE的自動完成功能,會導致漏掉一個步驟,專案就動不起來,有時候還會在那邊找半天哪邊漏掉的....

說實在美中不足的部分就是他在某些章節的描述方式了,在講某些東西的時候,有種從尾巴講回來的感覺(例如講delegate那章),我自己是不太習慣這種描述方法,要一層一層挖回去其時挺累的,而且會有種深怕自己是不是漏掉某些觀念的想法...畢竟有很多東西實在是被包裝的很好,用起來很爽,但是想探究意義時就隱誨不明,當然或許這些問題其時並不能歸咎於作者,因為如果沒有夠多的文件,其實要探究包裝下的內容有時是很困難的。

基本上這本書滿推的。

event

暫且備忘一下,

探討event的內容,目前猜測應該是容器類別,並且儲存所有程式中使用delegate只訂的函式指標。

2012年6月6日 星期三

寫心得

剛剛洗澡的時候,忽然領悟了寫寫讀書心得的意義。

以前我是不太喜歡寫東西的,尤其是讀書心得這種東西嘛,大概就是在書上畫畫線吧,也可能是因為沒看過什麼大作,即使看完就忘了,也沒什麼大不了的。

但是後來不知不覺衍伸出一種使命,就是我是不是應該留點什麼下來,尤其當找工作後,爬了一些文,或看了一些有頭有臉的部落格,間接驗證了我的這種想法。但我不是名人、不是理論學者、更沒有前衛者般的觀察眼,現階段的我確實找不到可以留下來的東西,佐證我活過的這段時間。

所以,寫心得,慢慢的演變成一種中心思想,一種紀錄、一種成長、一種在微黃燈光下獨自探索心靈與思考的過程,這是平靜的,緩慢的,也無從急躁起。

我也喜歡"累積"的感覺。累積會讓一個人變得有故事,有深度,而我熱愛這種深度所帶來的穩重感。但你不會把累積兩個字寫在臉上,而是裝在大腦裡,寫在筆記本裡,在飛躍的時代,就是寫在部落格裡。而累積的內容,會由當下自己決定的目標而定,但,無論如何,他就是一個使命,一個對自己交代的過程,這個累積的過程會變成自己生命的縮影,他可能會中斷,可能會移轉,但是當你寫下最新一頁文攢的時候,所有中斷過程的記憶又全都回來了。

我想 ‧ 這就是目前所領悟的 ‧ 心得

2012年4月9日 星期一

[心得] 華頓商學院最受歡迎的談判課

這絕對是增進自己嘴砲功力的書。談判,就是用各種說話的技巧,試圖在溝通的過程中使對方同意你的論點,以達到自身的目的為主軸。

以上是我認為的談判,但是照字面這樣講應該多少都會覺得很勢利,什麼論點阿目的的,但其實放寬心想,就是在幫自己爭取權利,而最好的情況就是得到額外的報酬~!

一開始這本書跟我想得有點不同,我以為書中應該會講解關於人性解讀這種比較隱晦的層面,偏向心理學分析的論點,可是其實本書的主軸是放在與人交心,意思就是先表明來意並釋出善意,也就是說我不是來威脅利誘你的,我是想對等的跟你討論一些事情。

這本書中有個很大的重點就是"傾聽",作者舉了一大堆的例子,但是發現有很多過程都在傾聽,作者認為透過傾聽,能讓自己了解對方的觀點,不會錯估情勢,而且這個過程能將重點放在對方身上,對方會有被重視的感覺。我在幾年前開始感受這個情況,也覺得這是一個很好的起手勢,讓對方感覺和善和重視對方就是好的開始。

而其他地方則說了談判的一些重點,例如找對的人談,也就是能決定大局的人、直白的說出心裡感受,例如我認為我們在A議題上似乎無法取得共識,因為一百種人就有一百種觀點,直接點出要點會比無目的的轉圈圈好,當然這其中有些許的心理學意味~

這交涉的過程有點像是打太極的藝術吧~一開始緩慢的,但是能切重要點,不是威嚇對方,而是讓對方發自內心的願意給予優待。

當然我心中的疑惑就是,對,作者是歐美人士,大家都知道歐美的文化和東方的文化存在者極大差異,雖然作者希望提的是一個全世界都通用的方式,但是我認為歐美的文化影響還是太深,恐怕在閱讀上必須要對內容作適時的批判才行。

看完後是挺有收穫的啦~不過作者強調這種技術只看書是不行的,所以我還是在實戰中失敗了...想到上次去住旅館VOD不能看的事情,我完全沒有想到談判這件事,果然還是太嫩了...

我認為這本書是值得一讀再讀的,雖然其中沒有大量的心理學戰術,但是書中的醍醐味確實很值得回味和檢討,只看一遍是記不起來的。

2012年2月27日 星期一

[PTT轉錄] 關於OOP和檔案開啟

我對於OOP的概念一直不敢說懂,我想沒受過正規教育可能是原因之一。

今早在PTT上看到一篇討論檔案開啟在設計上的問題,原PO希望作一個class A專門用來處理開檔,再把讀到的檔案給其他物件或東東用。然而當檔案錯誤或無法被開啟時,原PO希望A有一個防範的機制,讓後續使用這個A來讀檔的物件不要去使用這個錯誤的結果。

因此這邊提到了一個OOP的概念:一個class作一件事,就把這件事作好。

物件架構是一層一層疊架的,當底層的物件沒有作好完整的工作時,上層的物件就會出現if... else等冗碼。在回文中某位大大舉了個例子:
        A.DataTable = B.GetDataTable()
當B.GetDataTable在產生資料過程裏,有可能遇到error或空資料,很多人就會直接認為若是error,就丟null出來。結果A沒有看說明(b也沒寫),就直接接收,null reference錯誤。這是誰的錯?


文中大大的觀點認為,就算有error,B也要return一個空的table回去。然而最重要的,應該是如何讓之後的程式知道有錯誤發生??


較佳的作法應該是B在自己的class有錯誤時,throw new Exception("B已知的錯誤"),讓code在運行時有excpetion發生的機會,其他物件(包含A)在使用B的時後,自然就會知道B出錯。這是一個很重要的觀念,點破過去認為先return null,再用一堆if else判斷的寫法,有助於在OOP實戰,物件一層一層疊上去時,建立程式運作的穩定性。
因為不是每個人寫code都會去看前人有沒有寫註解阿...有時候自己寫的code年久失修,要回去翻修的時後可能也忘記當時的想法了XD

2012年1月14日 星期六

openGL - 何時該用glPushMatrix() 和 glPopMatrix()

這問題困擾了我一陣子,有很大的因素是被這學期的圖學作業影響...
回到正提,這問題在"openGL編程指南"中說的有點隱晦(個人認為)。

這問題是發生在我使用了gluLookAt()函式後發現的,從書中範例我們可以感受一件事,glPushMatrix()和glPopMatrix()的目的是為了讓編程過程變得簡單且容易了解,但我似乎無法清楚定義"應該在何時加入這兩個函數會讓程式變得容易理解"。


首先要先認清一件事,openGL FAQ 8.010開宗明義即說明:在openGL中的攝影機,永遠都在原點(0,0,0)的位置,openGL為了假裝出移動攝影機的樣子,必須移動場景對整個世界場景做攝影機的逆空間轉換。(OpenGL FAQ and Troubleshooting Guide - Q8),而gluLookAt()函式,是個工具函式,意思就是它包裝了一些openGL的基本函式在內,並不是一個原生函式,套用上面說的話,表示gluLookAt()中使用了一些glTranslate()或glRotate()等類型的函式,所以如果程式中寫了一行gluLookAt(0,0,3,0,0,0,0,1,0),實際上是把所有的物體都先往-Z軸推離攝影機3的距離,才繼續之後的轉換。

那麼現在來想一個簡單的程式,我希望攝影機放在(0,0,3) 且朝著(0,0,-5)看著,而有一個球可以在(0,0,-4)的位置自轉,因此球和攝影機應該要相距7的距離,程式可能如下:


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0,0,3,0,0,-5,0,1,0);
glLoadIdentity();
glTranslatef(0,0,-4);
glRotatef(year,0,1,0);
glutSolidSphere(1,40,40);

老師說做任何事之前要先將當前矩陣(current matrix, CM)清空,確保轉換正確,所以第4行的glLoadIdentity()做了這件事。但是別忘記第3行的gluLookAt()先把東西都推離了3的距離,再把球更推離了4的距離,而這個glLoadIdentity()的存在,抹殺了gluLookAt()的目的,導致球只離攝影機4的距離,結果錯誤。

因此,你可以說:" 那我把glLoadIdentity()拿掉吧! ",會造成什麼結果? 結果就是每次球旋轉時,也相對的更遠了一點,結果還是錯。

從這邊可以發現,其實,我們並不是要一個會把CM完全清空的方法,也不是放任不管,而是我們需要一個手段可以"記錄CM的樣子",並且在事情做完後,CM可以回復到"之前記憶的樣子",而這就是glPushMatrix()和glPopMatrix()的功能!!

glPushMatrix()將當前矩陣push入一個stack,反之glPopMatrix()取出stack頂端的矩陣,因此我們就可以"記憶gluLookAt()後的CM長像",並且在所有轉換都做完之後,又再度回到"gluLookAt()後的CM長像",而且重點是這兩個函數是硬體實作且hard dependent,速度更快,因此可以用一句話形容:

glPushMatrix()是記住自己現在的位置,而glPopMatrix()是回到之前記住的位置!!


所以當你需要記住目前位置,且要再回到原位,而撰寫程式時不想要一直考慮CM有沒有跑掉的時後,就是使用這兩個函數的時機點了。


而stack的深度與硬體有關,可以用glGetIntegerv(GL_MAX_MODELVIEW_STACK_DEPTH, *GLint *params)來查詢,或者到OpenGL capabilities report: GL_MAX_MODELVIEW_STACK_DEPTH查詢你的顯示卡/顯示晶片是否是常見的32深度。

2012年1月12日 星期四

[心得] 盜墓筆記

        話說我這個人其實很少看小說,我還記得上一本小說叫做"藍熊船長的奇幻大冒險",聽名子就覺得有點幼稚XD,那是我好幾年前看的小說了,而今天我要說的是這本很有名的盜墓筆記。

        這一系列的小說是同學推薦的,不然我想我也不會特別去注意有沒有新小說。盜墓筆記源自網路小說,作者為"南派三叔",後來出成書,我個人認為前中段內容十分的精彩! 內容是講述盜墓者吳三邪的故事,七星魯王宮、血屍墓、雲頂天宮、張家古樓等等,太多太多的主題使整篇故事內容豐富,作者文筆也十分了得,在勾勒場景上非常生動,無論是激烈的逃命奔跑,還是一翻兩瞪眼的生死關卡,亦或是闡述似是非是的古史神化,都有種讓讀者身歷其境的臨場感,甚至講到可怕之處,你還會不時的回頭看看身後的陰暗處,是不是也有如同小說中的妖魔鬼怪XD。

        此外這篇受人推崇的還有一個原因,就是文中所使用的專有名詞、術語,有許多都是真有其事,或是真有其人,曾有書評寫到:"除非你真的是盜過墓,否則豈能知曉這些古玩器具",不過作者到是一直否認啦~只說自己是個骨董商。我想故事之所以吸引人,就是讓讀者有那種真真假假,假假真真,彷彿故事是真的,但卻又讓你感到疑惑;而在你感到疑惑的瞬間,追求未知的欲望又席捲你的全身,讓你一頁一頁不停的翻下去,我不知道為了讀到最後,熬了多少夜阿(笑)。

        這不是什麼勵志小說,我把它歸類為閒書。如圖所示,到雲頂天宮之前非常的精彩,作者有用不完的點子,扣不完的連環謎團,此外,最後的張家古樓也是非常的精彩,我覺得不要去探究小說中那些人物是否真偽,單純的享受三叔給你的不安與恐懼就好XD

        但很可惜的我不得不說,結尾收的不好,有太多的連鎖迷團,作者後來都沒辦法釐清了,無法給讀者一個完整的交待,此外結局的鋪陳屬於悲劇英雄式的開放結局,由最佳男配角悶油瓶進入地底青銅巨門後畫下終點,個人認為這結局不具凝聚力,不是大眾所習慣的"長篇小說後應該會有個happy ending",留給讀者的是失落的主角以及文中所宣告的"10年",算是比較可惜的,不過...好歹這個網路連載前前後後也搞的5年!! 也真他X的久阿...

最後感想就是,這是一套可以讓你發洩平日壓力的優良小說XD

2012年1月9日 星期一

ALGO-maxnum sum of sub matrix/sub array

題目:

Given an n by n two-dimensional array arr (1 < = n < = 100) of arbitrary integers, find the maximum sub-array. Maximum sub-array is defined to be the sub-array whose sum of integer elements are the maximum possible.

想法:

以暴力法思考:
int sum=0;
for(i=0~n-1)
    for(j=0~n-1)
        for(p=0~n-1)
            for(q=0~n-1)
                for(s=i~p)
                    for(t=j~q)
                        sum = sum+M[s][t];
若是窮舉n*n中所有的子矩陣和,時間複雜度是O(n^6)。

但這是一個DP approach題目(對不起...我不知道什麼是DP approach...)。
假設給予一個n*n矩陣M,element值可正可負,則我創建另一n*n矩陣S,其中S[i][j]值為M[0][0]~M[i][j]所有元素的和:S[i][j] = M[i][j]+S[i-1][j]+S[i][j-1]-S[i-1][j-1],若i-1<0或j-1<0則該項忽略,初始值S[0][0]=M[0][0]。


for(i=0~n-1)
    for(j=0~n-1)
        S[i][j] = M[i][j]+S[i-1][j]+S[i][j-1]-S[i-1][j-1];

則問題演變成:右圖是一矩陣M,紅色區域是任取一個想要計算的範圍(i,j)~(p,q),可以看成從藍色方塊-兩個綠色方塊+橘色方塊,而這些方塊的和已經在S中,則計算從任意(i,j)~(p,q)子矩陣和的方法 = S[p][q]-S[p][j-1]-S[i-1][q]+S[i-1][j-1]
演算法:

for(i=0~n-1)
    for(j=0~n-1)
        for(p=0~n-1)
            for(q=0~n-1)
                sum = S[p][q]-S[p][j-1]-S[i-1][q]+S[i-1][j-1];

複雜度:
1.建立S矩陣 : O(n^2)
2.DP計算最大子矩陣和 : O(n^4)
----------------------------------------
+                                     = O(n^4)


類似問題:最大/最小子矩陣和

UVa108