2011年11月30日 星期三

[VIM] encoding , fileencoding , and fileencodings


  • encoding
    • 為vim內部、緩衝區、選單等所使用的編碼,如果 enc 不另外設置(比方在 .vimrc )的話, 則與 locale (或者說是 $LANG ) 一致,又如果 $LANG 為空值,則預設值為 latin1 。
  • fileencoding
    • 文字檔的實際編碼方式,如果打開文字檔案時,比對 encoding 與 fencoding 的值 不一樣的話,則會呼叫 iconv() 將 fencoding 所指定的編碼轉換成 encoding 一樣的編碼。 如果儲存該文字檔案時,比對 encoding 與 fencoding 的值不一樣的話,則會呼叫 iconv() 將 encoding 所指定的編碼轉換成 fencoding 一樣的編碼,與上相反。要注意,如果你的 fencoding 是 utf8 而你的 encoding 是 big5 的話,你要打開檔案時 utf8 編碼要轉成 big5 的話,如果你的內容上面有中文、日文、法文等多國的語言,從 utf8 轉成 big5 ,根本是有問題的,所以資料會有遺失的問題。 還有一點就是, fencoding 有時候會有誤判的問題,該值不正確的話可以使用 :e ++enc=big5 這類方式傳入,讓vim 重讀該檔,讓 fenc 強制使用 big5 編碼。(註:e 是 edit 的意思, ++enc 不是 enc 而是 fenc )
  • fileencodings
    • 是編輯文字檔案時,依照先後順序猜測該檔案所使用的編碼列表,filecoding 會先使用 fileencodings 裡面所猜到的編碼當作該值,如果 fileencodings 裡面都猜不到,也就是 fileencoding 是空值,即是使用 encoding 的值當作該值。由上面可以知道,如果在 ~/.vimrc 設定 fileencoding 的值,但是 vim 不一定會取用該值,因為不管 fileencodings 或是 encoding 都會覆蓋 fileencoding 所定義的值。所以說在~/.vimrc 設定 fileencoding 是為了指定在vim下開啟一個新檔案時所決定的編碼。
以上參考自隨便忘記[ Vim 設定中的 encoding 和 fileencoding ]

2011年11月17日 星期四

GoAHead Web Server - introduction

  • GoAHead Web Server
    • ASP supported
    • embedded Javascript supported
    • extended API
    • standard CGI progress
    • form implementation (GoFrom) by CGI
    • few memory necessary: 60KB (no SSL), 500KB (with SSL)
    • multiple OS support: eCos, LINUX, LynxOS, QNX, VxWorks, WinCE, pSOS

  • 常用功能:
  • 以下檔案位置都於 goahead folder 之下展開
    • 自行建立並連結一個 CGI Form 的方法(以 OS-LINUX 為例)
    • find Definition @ form.c: websFormDefine(char_t *name, void (*fn)(webs_t wp, char_t *path, char_t *query))
      1. 於 LINUX/ 之下建立檔案 foo.c,實作 Form 處理函式:void fooForm(webs_t wp, chat_t *path, char_t *query)
      2. 於 LINUX/main.c 中建立程式連接,於 initWebs() 中加入:websFormDefine(T("form_name"), fooForm)
      3. fooForm 是定義的函式,form_name 是在使用 HTML Form 呼叫時使用的函式
        使用方式:

    • 自行建立並連結一個 CGI ASP API 的方法(以 OS-LINUX 為例)
    • find Definition @ asp.c: websAspDefine(char_t *name, int (*fn)(int ejid, webs_t wp, int argc, char_t **argv))
      1. 於 LINUX/ 之下建立檔案 foo.c,實作 ASP API 處理函式:int fooAspAPI(int eid, webs_t wp, int argc, char_t **argv)
      2. 於 LINUX/main.c 中建立程式連接,於 initWebs() 中加入:websAspDefine(T("api_name"), fooAspAPI)
      3. fooAspAPI 是定義的函式,api_name 是在使用 ASP 語法呼叫時使用的函式
        使用方式:

2011年11月15日 星期二

騎士出任務 ( Knight and Day )


結束了今天一日的辛勞(好像也還好 =.=),晚上只想找部好片子來欣賞欣賞,

因為個人既不愛恐怖也不喜歡驚悚片,自己一人的晚上只想找部輕鬆歡笑的喜劇片,

或是場景壯闊的神話史詩片,來當睡前的精神糧食,於是乎,又再度向好室友伸了手,

剛好發現室友的X槽中有這部一看就覺得是愛情喜劇的影片,

二話不說,抓抓之後馬上就上工囉 ~

該片中男女主角都是頂頂有名的咖,阿湯哥加上卡麥蓉狄亞的組合還滿妙的,

見識淺薄的小弟,的確是第一次看到這兩位的搭檔演出,

兩人的接觸從阿湯哥的慧眼識英雌展開,該片場景變幻之多令人印象深刻,

從在美國的飛機上墜機開始,轉眼間就來到熱帶的島嶼,

不一會又跑到了阿爾卑斯山跟奧地利,最後還參加了西班牙的奔牛節,

兩位主角真是有夠忙了,劇情中也有很有趣的對話:

(卡麥蓉在南方小島醒來,發現身上被換穿了比基尼,驚訝之餘質問阿湯哥原因!)
阿湯哥:我受過專業訓練,可以十秒內在黑暗中拆解一把搶並復原,所以閉上眼睛幫你換衣服也是很簡單的。

(阿湯哥在熱帶海灘邊醒來,發現下半身居然穿著短褲,便問卡麥蓉...)
卡麥蓉:我可以在黑暗中利用一隻板手加上一把螺絲起子,修復一台手動變速箱,所以閉上眼睛幫你換褲子根本不是問題。

(註:上面的對話,我只是憑印象打的,非常可能有錯誤或遺漏,不過大概就是這種意思啦)

這種類似的情節在劇中時常出現,總是讓我會心一笑,哈~

而我覺得最有趣的點就在於,整部電影就在男女主角前後接連不斷暈眩昏迷中開始並結束,

也相當符合作文中前後呼應的原則阿!

不免俗的這是部愛情喜劇阿!總該是要有個 Happy Ending ~

電影最後就在兩人一同的願望之旅中結束,不錯不錯,這的的確確是一部相當適合休閒欣賞的輕鬆小品。

2011年11月10日 星期四

玩具總動員 3 ( Toy Story 3 )


這天晚上,網路大斷線,只能大嘆無計可施,只好跟室友拿些影片來看,

之前就聽說過玩具總動員三很好看又賣座,於是乎,伸了容量高達8GB的影片後,

馬上到電腦前就位,準備仔細欣賞這箇中的奧妙,

由於我既沒看過第一部也沒看過第二部,

所以一開始其實有些擔心無法看懂劇情,沒想到這一切都是我多慮了,

打從一開場的劇情就相當有趣,讓我一度以為我看錯影片了,

但是片中角色又沒啥問題,我認識的少少幾個角色都有出現阿,

直到片頭結束,恍然大悟!原來那就是孩子想像力的部分!

我著實覺得這片的開場就相當棒,充分的說明了玩具的生命與其意義,

而我印象最深刻的是蛋頭先生變身玉米薄片先生那段,

我看到不禁狂笑,心理一直想著,老美也太好笑了吧!製作小組也太有想像力了吧,真得是讓我非常折服。

也沒想到玩具世界也是有壞人的,草莓味熊先生真得是有些糟糕阿,

但是他的遭遇卻也是絕大部分的玩具所會遇到的,說實在的,也不能都把錯推到他身上阿!

曾幾何時,我們自己的玩具也跟片中的玩具們一樣,靜靜的躺在牆角邊,

苦苦等不到自己主人出現,再回到那一起同樂的時光,說真的,有點淡淡的哀傷了。

這部片畢竟是給孩子們看的,當然還是得要有個 Happy Ending 才行,

玩具們最後雖然還是離開了主人,但是他們有了另一個新主人,並且一樣的愛護珍惜他們,不錯不錯~

這部片真得非常適合小孩子看,要告訴孩子們,我們身為玩具的主人,

應該要好好愛護珍惜自己所擁有的玩具,用完即丟,絕對不是一個良好的習慣!

玩具們伴隨著孩子成長,記憶中都有他們的影子,當你回頭去翻翻孩提時期的舊照片,

說不定這些玩具都陪著你一起入鏡了呢!