看原始碼的利器-gj

好像是在看推還看噗的時候看到的,fcamel 大自己刻的工具gj,今天才在試,發現很方便,找關鍵字很快。使用方法很簡單,先安裝 id-utils (sudo apt-get install id-utils),然後在你要看原始碼的目錄下,輸入 mkid 先建立資料庫,之後就可以用gj keyword 列出有keyword的檔案並讓你選擇要看哪個檔案。如果你用 gj keyword keyword2 就表示要在有 keyword 的檔案裡再去找看有沒有 keyword2,依此類推。

預設是用 vi 去編輯檔案,要改的話,就稍微改一下 gj 即可,gj 是用python寫的喔~

 

電影流水帳(2012/1/27~2012/2/7)

E3 2010 Megamind demo area

  • Megamind(IMDB, Wikipedia),台譯:麥克邁-超能壞蛋。卡通片,還可以,當初要上片時,還有跟Zynga的Farmville合作打廣告,所以農場裡就有大大的Megamind雕像。Megamind跟Metroman從小就是宿敵,一直打到長大,一直打打打,打到有一天,Metroman不想玩了,就假藉一場爆炸逃走。Megamind接掌了城市,卻發現沒有了對手,生活失去意義,所以他就利用Metroman的DNA做出藥劑,並且不小心把女記者的攝影師變成了新的超人。在這段時間裡,他也不小心變成另外一個人跟女記者交往,一段時間下來,他們愛上了彼此。新的超人得到新的力量,發現事情跟他想的不一樣,沒有辦法順心如意,就決心為惡,然後跟Megamind槓了起來。Megamind被打的落花流水,去找了假死的Metroman,Metroman拒絕出來。後來Megamind就運用他的智慧跟手段,最終打敗了新的超人,成為新的真正的英雄。
  • Captain America(IMDB, Wikipedia),台譯:美國隊長。好莫名其妙然後理所當然的就結束了。Rogers 很希望從軍,無奈就是太瘦小。後來碰到神秘的博士,為了實驗品為了他的善良把他找進來。找進來觀察了一陣子,發現真不錯,就幫他注射了。噹噹,成功變成大隻佬,變身以後,並不是立刻投身戰場,而是被當作吉祥物來募款用。直到後來到了歐洲,他發現自己不受歡迎,然後自己朋友又被抓了,就毅然決然單身匹馬進去救人,一陣亂砍之後,救出了一堆人,跟紅骷髏結下樑子。接下來就是一陣亂打,最後知道紅骷髏要去轟炸美國各大城市了,就來個總決戰,不過沒有很歡樂的結局,紅骷髏被強大的力量轟碎,Rogers跟飛機一起掉到北極當冰粽子。到了現代,神盾局的人發現了他,就把他救了起來,準備成立復仇者聯盟。令我最有印象的地方是,Rogers、女主角跟Chester(Tommy Lee Jones)一起開車去追紅骷髏,Rogers要跳上飛機前,女主角跟Rogers親吻,然後Rogers再看著Chester,Chester說了一句很妙的話:「I’m not kissing you.」

Harbour Project – Hello world

The Harbour Project is a Free Open Source Software effort to build a multiplatform Clipper language compiler. Harbour consists of the xBase language compiler and the runtime libraries with different terminal plugins and different databases (not just DBF).

Harbour is a cross-platform compiler and is known to compile and run on MS-DOS, Windows (32 & 64), Windows CE, Pocket PC, OS/2, GNU/Linux and Mac OS X.

簡單的說,Harbour是Clipper的替代品,目前可以運行在很多平台上,雖然說跟Clipper/VFP同是xBase類的語言,但是還是有很大的差異,這些差異可以從文件裡看出來。不過Harbour有相當大的優勢,就是速度跟平台,它會先把 prg 轉譯為 C 語言,再編譯出執行檔,再者,它可以裝到很多平台上。對被拋棄的xBase語言的開發者來說,是可以考慮看看的。

Linux 上的安裝很簡單,就去Harbour下載網頁找到你的Linux版本,點進去,找到檔案下載即可,我是用Ubuntu,就到binaries-linux-ubuntu下,下載 .deb 檔案。下載以後,執行sudo dpkg -i harbour_3.0.0-1_i386_ubu_10.04-2.deb 就安裝好了。

接下來就寫程式,副檔名是.prg,就建立一個hello.prg,內容就像這樣

&& Output "hello world"
? "Hello world"

&& Create table,沒有VFP的create table,還真的有痛苦到。
local aDbf := {}
AADD(aDbf, { "Fld1", "N", 3, 0 })
AADD(aDbf, { "Fld2", "C", 4, 0 })
AADD(aDbf, { "Fld3", "C", 20, 0 })
DBCREATE("table1",aDbf)

use table1
browse()  && browse 不再是指令,而變成函式了。
close all

執行 hbrun hello.prg 就可以直接執行,看到結果。使用 hbmk2 hello.prg 就可以編譯出執行檔 hello,輸入 ./hello 就可以執行。