Archive for March, 2008


MIT,我來了!

Saturday, March 29th, 2008

從去年從研究所畢業後,一邊在Google當intern一邊匆匆忙忙考了GRE,又緊接著在七月去還欠國家的一年債(感謝老天現在只剩11個月了),當兵中一邊準備申請學校要的各種書面資料,一邊唸英文準備考TOEFL和GRE (again..orz)。一直忙到12月,把所有資料用UPS寄出去後,才終於鬆了一口氣。

時間快轉到2008年2月14號。我無預警的收到來自MIT的兩封信,其中一封來自一位我很有興趣的教授,標題竟然是「congratulations on admission to MIT」…..。然後,忍不住尖叫起來。

雙手一邊發抖一邊仔細把信看過一次,還確定一下今天不是愚人節,信的來源真的是在美國麻薩諸塞州的麻省理工學院(MIT.edu),而不是台灣的MIT.edu.tw,才真的確定了這個不可思議的admission。

我申請的是MIT EECS的博士班(Ph.D.),雖然他們把電機(EE)和資訊(CS)合成一個系,但實際上CS的學生是獨立在另一個資訊科學及人工智慧實驗室(CSAIL, Computer Science and Artificial Intelligence Lab)工作的。CSAIL是MIT傳說中的AI Lab和LCS(Lab for Computer Science)合併來的。MIT AI Lab是由AI始祖Marvin Minsky和John McCarthy所創立,是AI最早的發源地。另外,hacker這個詞也是在MIT AI Lab被發明的,最典型的hacker始祖Richard Stallman就是在這裡hack了AI Lab的雷射印表機,進而展開他的GNU計畫,發展出了Emacs、GCC等軟體。

MIT是全世界理工學生的夢幻聖地,那裡聚集了無數的天才、諾貝爾獎得主、大師級教授、hacker,三不五時就會有新聞報導MIT又發明了什麼驚世新科技。能得到MIT的入學許可,我也沒什麼好考慮的了,縱使還有其它學校的申請結果還沒出來,我也不等了。謹慎的填好MIT Graduate Admissions Reply Form,練了一個禮拜的英文簽名(以後就都得用英文簽名了,當然得先練好一點),在 “Yes, I plan to attend MIT.” 下面打了勾,決定了我未來數年的去處。

MIT,我來了!

MAKE雜誌

Friday, March 28th, 2008

上禮拜去台北天瓏逛了一下,發現O’REILLY出了一本有趣的雜誌: MAKE。裡面介紹很多如何自己改造/DIY一些科技小玩物的方法,從機器人、火箭,到怎麼hack家裡盆栽中的植物…主題真是千奇百怪,如果是從小就喜歡把家中電器拆光光的人一定會很愛這本雜誌。

另外,我還在台北車站地下街發現一家專門賣雜誌的店,裡面有很多日本雜誌。最有趣的是我發現有一小櫃擺了一堆日本的機器人雜誌,這些雜誌可不是介紹哪裡能買到機器人而已,而是教人怎麼自己做機器人,包括雙足機器人怎麼站立、平衡、行走,用攝影機辨識物體等等..。只能說日本人真的非常執著於人形機器人,而且還有夠多的機器人迷能讓這種專業雜誌存活下來。

看看美國和日本,不知道台灣什麼時候才有機會出現這種鼓勵大家動手做的專業雜誌呢?

New York Times首頁的Apple廣告

Friday, March 21st, 2008

現在The New York Times的首頁上有個非常有趣的Apple新廣告。

同樣是Mac與PC的對話,但這次卻是在NYTimes首頁上佔掉了上方一整排的banner和頭條右方三分之一寬的空間,更有趣的是這兩塊空間是互相連結的!
廣告大意是上方banner一開始顯示的是CNET.com對Windows Vista的評論:

“Vista… one of the biggest blunders in technology” — CNET.com

於是PC說:「啊!又是個說Vista壞話的評論。應該要來更新一下…。」就在PC切換了「立即更新」的開關後,又出現了一個壞評論:

“It’s time for a Vista do-over” — PC Magazine

於是PC又走回去再次切換更新開關。這次來了個正面評價,結果沒想到是…

“Mac OS X Leopard: A perfect 10″ — InfoWorld

這個廣告的內容,還有利用兩個相互連結的flash都十分有創意,更厲害的是Apple竟然能說服NYTimes把這廣告擺上他們的首頁。(我想這恐怕不是砸大錢就能做到的) 只能說Apple的行銷功力實在是太厲害了啊!

RamdiskSync Beta1 Released

Sunday, March 9th, 2008

Screenshot of RamdiskSync

如同Mac OS X下的Ramdisk解決方案一文所說的,RamdiskSync是我拿來練習Objective C和Cocoa所寫的一個小東西。這也是我第一個在Mac OS X獨立開發的原生軟體,設定介面的主體是Cocoa Bundle,採用Objective C和Cocoa(加上少許Carbon)完成。至於建立Ramdisk的核心程式其實是一個shell script,不喜歡GUI介面的人也能單獨拿出來用。另外RamdiskSync還會在背景偷跑一隻Observer攔截mount及unmount event,我故意用Ruby + Cocoa來寫,雖然比較吃資源,但也省了一些開發時間,還順便能做為一個RubyCocoa的小demo軟體。

RamdiskSync的功能包括了:

  • 為系統偏好設定(System Preferences)的元件,設定完就能關掉,不必一直開著。
  • Ramdisk圖示能在桌面和Finder中隱藏(只有用Terminal才看得到)。
  • 可以自由設定要自動同步的目錄。
  • 登入時自動建立Ramdisk,同步已設定的目錄。
  • 已有英文及繁體中文介面
  • 免註冊、免費而且open source。

安裝方法

下載後解開壓縮,點兩下就會自動安裝好了。之後打開系統偏好設定(System Preferences)就能看到RamdiskSync。
(我還沒設計icon,歡迎提供可愛的icon。)

下載

下載 RamdiskSync Beta 1

Copyright & Source code

RamdiskSync採用MIT License釋出

source code可以在Google Code的project page用subversion取得。

Bug Report

如果有任何bug或建議,歡迎直接留下comment。

Mac OS X下的Ramdisk解決方案

Sunday, March 9th, 2008

我常常在注意我電腦的資源使用情況,尤其是CPU和RAM的使用狀況,因為這兩項資源跟系統流暢度有非常密切的關係。最近觀察我Macbook(2.0Ghz Core 2 Duo, 2GB RAM)平常的情況,雖然平常大概會同時開13個以上的應用程式,但CPU的兩個核心平均負載大概都在20~30%以下,而RAM更是有700MB的剩餘空間。

總而言之,我的電腦太快了,RAM太多了。

嫌CPU一直閒著沒事做的話,有很多類似Seti@home之類的耗電程式可以隨時讓CPU 100%運轉。嫌RAM太多的話,可以把一部分的RAM挪出來當作一般磁碟使用,這種磁碟則稱為Ramdisk。

在Mac OS X下要做Ramdisk方法很多種,在此大概做個簡單介紹。

方法 1: 直接在Terminal下指令。(超硬派作法,geeks only)

Mac的terminal下可以做到很多神奇的事,甚至像是建立ramdisk這種程式都有提供。我想會用這方法的人是少之又少,我就不解說了。詳細指令可參考Create a RAM Disk in Mac OS X這篇文章。

方法 2: Espérance DV

這是個有點古老的Ramdisk軟體,但功能還頗完整。可以自動儲存和恢復Ramdisk的內容,也能設定把Safari Cache/Icons和xcode編譯的暫存區放到Ramdisk中。但我在Leopard中,自動儲存和恢復的功能一直沒辦法正常運作,另外它內部設定的Safari資料夾也是舊的。總之這軟體在Leopard中已經殘廢一半,而且沒有持續更新傾向..。

方法 3: Ram Disk Utility PRO

這是難得一見由台灣人開發的Mac軟體。功能強大,可以自由設定要同步進Ramdisk的目錄,空間快不夠還會有警告。雖然這軟體蠻完整的,但有幾個小地方我不太喜歡,導致我用過一次以後就不想開了XD

  • 每同步一個目錄就要建一個Ramdisk,而且Ramdisk圖示還不能隱藏,所以只要同步目錄一多就會看到一大堆Ramdisk volume…。
  • 它是獨立執行的應用程式,一login就要一直開著,在dock和alt-tab中都會佔掉一個位子。
  • 它是要註冊的shareware….

說來說去,上面三個方法都各有缺點。我理想中的解決方案是這樣的:

  • 像Espérance DV一樣是Preferences Pane裡面的元件,設定完就能關掉。
  • 同步的目錄可以自由設定,且用symbolic link連結至Ramdisk內就好。
  • Ramdisk圖示要能在桌面和Finder中隱藏。
  • 登入時自動建立Ramdisk,同步已設定的目錄。
  • open source software

剛好我最近空閒時間蠻多的,於是就決定自己動手比較快。可以順便一邊學Objective C和Cocoa,還能一邊解決這個小困擾,怎麼算都划得來。

因為建立Ramdisk已經有Espérance DV能做了,所以本來我只打算寫ramdisk內的目錄同步部份,就把這程式叫做RamdiskSync。沒想到後來寫一寫欲罷不能,就把它變成一個獨立的Ramdisk建立和設定工具了XD

RamdiskSync的詳細介紹就留待下篇再說了。