星期六, 7月 14, 2007

Linked List

為什麼寫這個東西?自己無聊,想寫了一個模仿STL形式的Linked List,本身具有Iterator type,我另外寫了一個class,再用

template<class T>
class LinkListIterator{
/* ... */
};

template<class T>
class LinkList{
friend class LinkListIterator<T>
public:
typedef LinkListIterator<T> iterator;
/* ... */
};
這樣子我們就可以寫成
LinkList<int>::iterator iter=u.begin()
就某程度而言還蠻方便的。

為什麼要寫iterator,用STL的看法來看,你需要一個smart pointer(被包裝過的pointer)去詢訪整個cointainer,所以我這邊就模仿了一個(可是不怎麼成功,你還是可以對u.end()做deference的動作XD),這樣子就可以詢訪自己做的Linked List了,相當方便。

code

題外話就是,雖然概念很清楚,但是在細節的處理上花了很多時間,概念跟實作還是有實際上的差異,而且我還沒做利用iterator的相關運算,不過我覺得做為一個範本,也夠哩。

---
說穿了還是偷懶XD

結束與開始

老實說,我覺得我自己實力不足以聽FLOLAC' 07,所以那時候落榜也覺得頗自然XD 當然,Josh有上我覺得很正常,所以我就很快樂的準備暑假生活,直到他手受傷....

這對我和他而言都是一個轉機,對我而言,我必需超前現在的我一個很大的層次去聽一個根本聽不懂的課,還好這不是重點,回過頭來想想,為什麼我會去,我只是希望看到我的朋友期待那麼久了,自己沒程度沒關係,沒必要讓一個有程度的人不能聽他想聽的課,基於這個理由,暑假的前兩個禮拜也還算無事,就決定了,聽不懂當放假,聽的懂當撿到,最主要,讓他能夠上課就行了XD

不過從此行中,不知道為什麼,莫名覺得自己英文進步不少,想法廣很多,雖然上的課充其量只聽懂三成(哈,我想跟課後都沒有複習有很大的關係),在這裡想了很多。我除了比較懶之外,我還少了什麼?我從Josh身上學到很多,或許就跟Knuth一樣,如果不小心做到非本業(Google 打 穆信成便知,有文章),也可以很熱情的把事情做下去。

不夠專注做事情是我最大的缺點,一專注我可以讓我的英文閱讀能力也變好(真神奇XD)

當然,學術上少的東西就是那些,我數學沒有別人好,英文也只剩大家說英語的程度(我怎麼活到現在的XD),這些東西不急,就只能慢慢來,不過我想,我才是該謝謝Josh的,他讓我改變了對很多事的想法,原來就那麼簡單。不過我也得說,相處越久會覺得他越欠扁,因為他會說冷笑話XD

---
或許真的像?

星期五, 7月 13, 2007

便當

在FLOLAC' 07的這段期間,中午都有提供不錯的便當,每天都是固定吃便當的招數,有一天發生如下對話

Josh: 五分鐘(看著我的便當)
yen3: 那有可能吃那麼快啦,我沒那麼厲害
...(五分鐘過去了)
yen3: 吃完了
Josh: 果然只需要五分鐘(看錶)
yen3: XDD
怪不得他有一天說,"yen3吃完便當的時候,應該還有人還沒拿到便當XD"。

---
我在學校吃便當都沒那麼快XD

星期三, 7月 11, 2007

溫馨笨版

今天中午推薦Josh看笨版,由於時間有限,所以只看50推以上的(我平常是看10推以上的),出乎人意料之外,Josh笑了,看來他有成為笨版鄉民的潛力XD

---
然後就會變成笨版譙詐騙集團的一員,認識美豔人妻靚妹站花愛撫妻嗎XDXDXD

星期日, 7月 08, 2007

戰火 - Mac OS X

老實說,雖然我喜歡Steve Jobs,但是我不是他的fans,對我而言,Apple很吸引,但是還得要有關鍵才行。

縱觀Apple這個公司,GUI的歷史早己無庸置疑,天下文章一大抄(但是Vista就是抄失敗的一個例子),Apple卻抄的很成功。

沒用過我怎麼知道?好問題,我得說,MacOS X本身的效能,並不如所預期的好,至少就我用過的機子,本身的效能缺點或許還比Windows多(以效能觀點來看),但是效能可接受,那麼問題在那,就我從Tiger看到Leopard,光一個Tiger 的spotlight就蠻值得我推薦的(Windows 底下有Google Desktop Search可取代),當然還有很多好功能,內建Oxford Dictionary,內建widget,內建一堆東西。就我看來

一個成功的作業系統,端看使用者肯信任他的多少功能
或許MacOS X的GUI會讓人有美好的經驗,有很多很好用的小功能(MS可能會抄?Ubuntu倒有可能參考完了XD),都會讓你事半功倍

我曾經說過,從事創造工作,本身的環境的變動成本越低越好,照我現在的性格,我不可能一天到晚花時間在重灌上,我曾花時間幫自己的父親maintain該環境,看似簡單,其實還是有一定的麻煩在,而MacOS X可能說是我現在的環境滿足品
GUI + Unix like based = 一個非常好的程式開發環境
Mac 本身有非常好的GUI,但是這不足以說服我switch 成Mac User(當然,會有人說,Mac的作業系統環境問題少很多,很穩定,不用裝防毒軟體,可以很專注的在創作上。)這些都是理由,但是我看中的是Unix-like base,這對我而言是一個非常重要的吸引力,以我現在所使用的主力C/C++, Java, LaTeX, 甚至是以後想要用的Objective Camel,在Linux下都有良好支援(只可惜,Linux不能把環境成本降到最低,我得花很多心力maintain),開發通用程式環境上,以BSD-based 遠比Windows來的有吸引力,我想用GUI相關軟體時,MacOS 也有原生軟體可支援(寫到這裡不得不想到Apple的廣告很強調,我們也有MS Office XD),基本上是兩個願望一次滿足,我可以在一個成本最低的環境下進行良好的開發,而且不用擔心使用者習慣被搞糟的問題,在Mac上要不要找小軟體,要,就我的觀察,相對而言小很多,至少不用每個都找。

就我本身而言,我想省略的說明就是Mac GUI的好處,這種文章隨便找找都有,但是我想強調的是Unix-like based 這對程式開發人員是很大的誘因(我承認spotlight也是XD)。

Mac OS X有沒有缺點,有,但是,至少不會搞的跟Vista一樣糟..Orz

戰火 - linux

我得說,這是我碰的最少的作業系統,至少在ubuntu出來之前,我還沒有讓他存活在我的電腦裡面超過一個月的。

linux早期因為支援度不佳,被許多人垢病,GUI不足,也常常落入他人攻擊目標,以我以前最常用的Redhat, Fedora series,我有點搞不懂為什麼會需要一片DVD,裝好什麼軟體都沒有(伺服器端的軟體都足了XD),嘸蝦米是我心中永遠的痛(誰叫我學這個的XD 新注音多美好,每個OS都有,嗚嗚T___T),但是我得說,他是不二人選的最佳開發環境(去掉Windows GUI開發的話,事實上也是有方法可以解決)。linux的改變直到

Ubuntu Desktop Linux出來了!!
一直到現在,我還是對這個作業系統感到驚豔,這個作業系統真的比較像一個GUI作業系統了(如果你有奇怪的電腦配備還是得到Console Mode去解決XD),也很符合一般人的需求,該有的軟體都有,只需要一片CD就可以搞定,我蠻清楚我的功力不足的,不過就一般人而言,Ubuntu還蠻很適合取代Windows,至少連我這個白癡都可以搞定了,只是不能玩遊戲,有些重量級軟體還是在Windows上才有(會有人告訴你,你用WINE就可以搞定了,但是我還是喜歡原生環境),但是我得說,這後勢看漲。

戰火 - Windows

我想,這對Microsoft和Apple陣營的人使用作業使用的想法,足以可以用此形容。

我長期當外行看這兩個作業系統的成長,從我有常識以來,就已經是PowerMac G3了,那時候的PC shopper是這樣子形容PowerMac G3的,"美麗的外表下,有一顆高速的心",的確,誰都不能否認PowerPC這顆CPU是有史以來最好CPU之一,一到G5之前,其散熱性能可以嚇死一堆人(在P4早期就有人提出水冷的概念,而早期的PowerPC卻只需要散熱片XD)。
定無比,吃的效能最少,我用PII 350就可以跑的很順了,雖然很多人遊戲不支援之類的,但是就

我看Windows 家族

一直到現在我還是Windows家族的使用者,從3.1, 95, 98, me, 2000, 2003, XP, Vista,大概都有試試看(Me只裝了一天,Vista只裝了兩天,不能算用過XD)。在這其中最成功的作業系統當屬Windows 2000,穩我個人的經驗,倒是無此問題,也有可能是因為我遊戲玩的少,在Windows XP發表的隔天,我馬上拿到我們老師抓的版本,我試用超過一個月還是裝回2000(那時候還沒有奇怪的WGA XD),狀況很像我裝了Vista 過不到24小時我還是裝回XP是一樣的,為什麼?

MS總是有辦法把UI搞的越來越不直覺...Orz
以我自己找齊所有的軟體來試Vista,記憶體吃的多就算了(1GB吃掉600mb以上),以我的電腦執行起來有頓頓的感覺,最明顯的,一個開始從XP的移到下面到現在要找一個軟體要按好幾下(所有程式>>某程式資料夾>>某程式),真的讓我有非常明顯的越來越倒退的感覺...Orz 視窗旁邊華而不實,連我期待很久的小畫家和記事本都沒有明顯改進(也不錯,不然越改越爛也不好XD),遊戲加了不少,但是我得說,遊戲不是一個作業系統的賣點
Vista去掉那個美麗的介面,還留給我們什麼? 一般人到底會有多少意願把"alt + tab"這個習慣改成"windows + tab"?
寫到這裡,Windows 專家會告訴你,事實上你可以把UAC關掉,美麗的介面關掉,Vista一樣順,嗯,那麼我想提出一個問題,Vista最大的賣點是什麼?強迫使用者升級買記憶體? 這好像不是一個好主意XD 很多人都會說,我可不可以不要升級Vista,短期間可以,長時間下來...還是會被微軟強迫升級的。

問題出在那裡?以一個新的觀點來看,MS自己也很清楚,一般使用者的需求早已滿足,但是改UI不是他的強項,做的漂亮好像大家都會,這很像某些遊戲很強調3D效能,其實遊戲性嚴重不足,
那MS要拿什麼東西誘惑使用者升級? 沒有...
所以我不得不認為Vista是Windows 家族以來繼Me之後,我最不想用的作業系統之一(Me不想用的原因是我灌完就當機了...Orz)

這問題就跟Office 2000升級到Office 2003一樣,完全沒有理由要end user升級嘛,我幫efang灌Office XP,他還是用的一樣順啊,我會用的排版功能,在Word 97已經搞定,當然Office 2000還是有誘因,好像從某一版到某一版的宣傳是,xml的加入,使得Office變的很完備,呃,就算以我現在的觀點來看,xml到離end user有多遠呢? 非常遠...Orz

用end user的觀點來看

以我自己花那麼多時間在讓XP變成可以用,這其中我還加入Mac OSX 的dock (這也不是什麼新奇的玩意,在Office 7.0 就有快捷工具列的概念,只是Apple是第一個把介面變成人覺得可以接受的東西),加入桌面行事曆(非常簡單的軟體,因為我也只需要非常簡單的功能),或許從98跳到XP會覺得很穩定(但這至少是Windows XP SP1之後的事XD),但是從2000跳過來的人,至多覺得換個外皮,多了遠端遙控(這是個不錯的玩意,但是是我升大學之後才覺得不錯XD),從end user的觀點來看,或許介面變漂亮了,變穩定了(這還蠻重要的),XP發展五年才到如此成熟的地步,防毒或許是非戰之罪,總是有人用不同的方法來證明自己的本事,換個想法來看,因為XP什麼都沒有,所以小軟體可以發展的非常好,取代XP內建的奇怪功能,但是這對不太會電腦的人不是一件好事,並不是每個人都知道foobar + K-lite 可以取代肥大的Windows Media Player,也不是每個人都願意使用Firefox取代IE,但是就使用觀點來看,由於內建的功能怪的可憐,所以讓小軟體有所發展的機會。

(待續)

突然

很想回家,看看人事物也好

---
不過還得再等等,呵