20060627

vim 的 textobject

text object 用來描述某文字區塊,可接在如 y, d 等命令之後。

aw - 包含 cursor 的一段字,有含字的空白
iw - 包含 cursor 的一段字,不含字的空白

at - 包含 cursor 下的 tag 區塊,含 tag 本身。
it - 包含 cursor 下的區塊,不含 tag 本身。

aB
- 包含 cursor 下的程式區塊,含區塊分隔符號本身。
iB - 包含 cursor 下的程式區塊,含區塊分隔符號本身。

vim 在程式的移動

20060626

時間管理的十大步驟

親愛的讀者:

辦公桌上堆積如山的文件,好像永遠不會都減少;接踵而至的訪客,及尋求問題解決的部屬,一個個「闖」進你的辦公室;不斷響起的電話,一直打斷你手邊的工作;接二連三的會議,讓你疲於奔命,恨不得自己三頭六臂,可以同時應付這麼多的事情。

工作上如此,生活亦是。許多想讀的書買了卻沒時間讀;心儀已久的音樂家終於來台演出,卻抽不出空去看表演;答應家人一起出國去玩,行事曆上卻排得滿滿的‥‥‥,這些挫折都讓生活不再新鮮有趣。

你是不是感歎時間不夠用?事情做不完的壓力揮之不去了每個人一天都只有二十四小時,大部份的人是「忙,但不知道在忙什麼」,或是「忙,但不是忙自己想做的事」,但為什麼還是有人能事業有,還有時間兼顧生活及其他活動?因為他們懂得做時間管理。

管理時間有兩個必要的條件:計劃你的時間,以及避兔浪費時間。不妨問問自己以下三個問題:有沒有做一些根本不需要做的事?有哪些工作可以分配給其他人去做?必須做的事,是不是可以做得更有效率?

真正能幹的中階主管,能好好安排自己的工作時間表,逐項徹底執行,一旦工作順利進行,自然不會手忙腳亂,再加上工作效率高,工作成效自然也比他人多出數倍。做你計劃做的事,在你計劃的時間做,並在你計劃的時限內做完,成功就離你不遠了。祝你成功!

1.事先規劃好你的時間與步驟,以收事半功倍之效

要與時間拔河,首先記錄自己的時間分配方式,分析哪些習慣浪費時間;按著訂定目標並擬定計劃,以較實際的觀點安排時程;最後找出浪費時間的原因與因應方法,改變這些壞習慣。

.每天空出一段時間來規劃事情。

.拿一個小時來訂計劃,可以有二到三倍的效果出現。

.你可以在上班之前比較安靜的環境(家裡或辦公室)訂計劃,或是當作上班的第一件事,或是在下班前訂第二天的計劃。

.將時間加以分段,最好是以十五分鐘為一段。並要求自己把原本要花比較多時間的工作,在一段段時間裡加速完成。

.學習絕對專心,同時做兩三件事,像電視機選台器一樣。

2.分析工作的優先順序,按照輕重緩急作處置。

要掌控時間,就必須先能掌控自設定個人目標,以便根據目標,分析工作的優先順序,按照輕重緩急做處置經常評估所設定的優先順序。採用80/20原則來設定優先順序。完成20%的目標可能獲得80%的效果,如果你每天的行事曆上有十個事項要做,你只要能圓滿達成其中最重要的兩個項目,就可以得到八成的效果。

根據緊急性與重要性決定:

重要而且緊急:馬上辦。

重要而不緊急:好好規劃。

不重要但很緊急:1.馬上辦,但只花一點時間;2.請人代辦;3.集中處理。

不重要也不緊急:有空再辦。

3.找出自己最有效率的時段以安排工作內容。

生理專家研究,人的效率會隨著時間不同而不同,順其自然安排工作內容,工作效率才會高。早上八點至十點:精力顛峰,適合做規劃。早上十點至十二點:注意力及短暫記憶力最強,適合腦力激盪會議、訓練。下午一點至二點:昏昏欲睡,比較適合進行互動溝通的工作。下午二點至四點:開始清醒,長期記憶力最強,適合閱讀、思考。下牛四點至五點:適合技術性工作、處理衝突問題。了解自己的生理時鐘,它不像真的時鐘那麼有規律。找出精神最好的時間從事較困難的工作。

在效率最高的時段,你可以集中精力於:棘手或困難的問題、創造性思考、複雜的工作、討論或訂定工作計劃。

在效率中等的時段,你可以專心做:與他人交換意見、處理回信、規劃行程表。

在效率最差的時段,你可以處理:例行性事務、電話聯絡事情、接待訪客、基本行政工作。

4.組織你的辦公桌及辦公室,提升工作效率。

雜亂無章的公桌會讓人分心、容易疲倦及緊張、生產力降低、無法控制工作,也會給人不好的印象。更重要的是,檔案找不到,辦公桌上一片凌亂,都會浪費你寶貴的時間。

保持辦公桌清爽的最高指導原則:與手邊正在做的工作有關的東西,才能出現在桌面上,其餘的請立即拿開。把你的辦公桌與辦公室當作一個工作站你可以這樣清理你的辦公桌:挪出一段時間專門來整理你的辦公桌。可以將這個時間再分成幾個小段,每小段專心清理一個抽屜或桌面。與工作毫無連的書籍雜物等,都應該立即清掉。一年半年內不會再用到的東西,考慮把它扔掉。想一想,扔掉這個東西最壞的結果是什麼?如果沒什麼大不了,就別猶豫了。運用5S技巧──整理、整頓、清掃、清潔、養成習慣。把你的辦公桌與辦公室當作一個工作站辦公桌如果面對窗戶或走道,往往容易分心,最好的方位是既可以掌控全場,也不會有人常常走過你面前,還可以有空間擺放其他辦公家具。每天要用到的東西,放的位置愈靠近座位;不是每天要用的,可以集中到較遠的角落去。將出、入、檢討之用的文件分別以不同的抽屜檔案或籃子收集,一收到文件就加以分類,有效縮短文件傳遞的時間。

5.進行充分的授權將工作分配給部屬助理或秘書

如果你堅持處理工作所有的細節,很快就會發現時間根本不夠用,更何況你的職位與所負的責任會不斷的增加。請他人分攤你的工作,善用授權策略,事半功倍。找出哪些工作可以授權他人去做。將工作交給能處理得最好的人。信任對方,尊重對方。清楚說明你對工作的要求、方式與時間限制。授權不是推卸責任,你一樣要負起追蹤的責任。秘書或助理不是花瓶,他們可以替你擋不速之客與過濾電話、信件,使妳不受干擾地專注在重要事務上,還能替你蒐集資訊,提出解決問題及做決策的構想。你應該和他們相互信賴,建立團隊工作紀律,發展出合作關係:每天固定時問與他們討論工作內容,讓他們熟知你的目標、優先順序及渴望,清楚知道你要什麼。鼓勵他們分擔更多的責任,並允許他們發展自己的行事風格,可以做決定,而不是當你的影子。給予充分的支持、認同與尊重。

6.活用記事本管理時間。

找一本口袋大小的記事本帶在身邊:記事本裡最好有常用電話號碼、待辦私人事務、待辦公務、日期約會欄及雜記欄。列出待辦事項,可以分為每天、每週或未來數週。把預定做的事登錄到預定的時程裡,確定的事項用鋼筆或原子筆書寫,可能有變數的就先用鉛筆書寫。隨時記錄一些新想到的做法。達成的項目就劃掉,但不要劃得亂七八糟,以免日後要察看會看不懂。在你的記事本上,你可以用螢光筆標顏色來區分事情的重要性或優先性。也就是說,紀錄時用一支筆,事後再用螢光筆標記重要性或優先性。

7.運用有效的方法取得資訊。

如何在短時間內得到最多的資訊?在精神最充沛的時候,閱諒最重要的資料。不斷的學習如何加快閱讀的速度。與對同一領域有興趣的人分擔資訊收集的責任。養成隨身攜帶閱讀資料的習慣。養成在等待的時候閱讀的習慣。要求部屬在文件上做摘要。鎖定你真正需要的資訊,避免因資訊氾濫而無所適從。閱讀前先了解自己的目的。有選擇性的閱讀,如果沒有很多時間,可以只選擇一份綜合性的報紙。先讀標題。讀一讀就停下來思考,並將所讀的內容濃縮成大要。想保留某一段資料,可以在文章的角落立刻註記並剪下來歸檔,並將其他都份丟棄。

8.改變拖延的習慣 ,即時行動。

該寫一篇重要報告的時候,你卻在整理桌子?像這種先處理無關緊要事情,而非該優先解決事情的心態,就是拖延。我們習慣拖延困難、討厭、難以下決定的事,但這些事卻不會因此消失,只會讓你更緊張,反而陷入困境,還需花原本二至三倍的時間才能完成。

終結拖延的六個方法:

問自己:現在最重要的事做什麼?而非問:我現在最想做什麼?先把最令你討厭、最困難的事解決掉,不要讓它一直困擾你。

將工作分解成幾個較小的部分,讓工作容易進行。

不要等所有資料都到手才開始工作,有什麼就做什麼。

找出自己拖延事情的方法,例如聊天、喝咖啡等,規定自己某段時間內禁止做這些事。

設定誘因激勵自己準時不拖延。

9.技巧的對待訪客,讓時間的控制權在自己手上。

如果訪客逗留太久,你應該及時的站起來。不要打斷對方的話,可是一旦輪到你開口接話,你應該主動結束這次的對談,總結應該採取的行動或結論。儘量使用肢體語言,如闔上筆記本、整理桌上的文件,或將身體移到椅子的邊緣。說些暗示性的話,例如:「我想這就是結論吧!」「我很感謝你來看找。」等。訪客在所難免,妳必須要懂得一些應付的技巧,才不會輕易浪費了你的工作時間。儘量少在自已的辦公室裡接待訪客,最好使用訪客接待室。開宗明義即引出訪客的目的,保持公事公辦的態度和語氣。不要以茶點或咖啡款待未經約定的訪客。坐在椅子的邊緣,將全部的注意力投注在訪客身上。可能的話,明確的設定時間限制,放一個你和訪客都能察覺到的時鐘。

10.練就健康的身體,保持身心最佳狀況。

沒有時間照顧自己身體的健康,將來就沒有健康的身體利用時間。要不斷保持顛峰水準的工作表現,就應該保持身心健全,注意個人的健康狀況及需要,學習用較少的時間獲得健康。運動不是有機會才做,最好在你的行事曆上加入這一項,固定時問與地點做運動。縮短睡眠時間能節省時間,可是,如果能培養快速入睡、充分睡眠的能力,一樣可以擁有效率。養成早上一睜開眼晴就起床的習慣。定時做健康檢查,除了醫院及健診中心外,也可以利用血壓器等醫療器材自己在家測量。錯過鬧鐘、找不到車鑰匙、識別證等都會偷去時間,而且影饗一天情緒。無情地壓迫自己並不是善用時間的好方法,感到有壓力時,休息一下,能有效提高精神,增進工作效率。

20060624

開發程式活動及工具

開發程式的活動
開發程式包含了下面幾個活動:
  1. 撰寫說明文件,設計文件,需求文件,專案文件
  2. 編輯程式碼文件
  3. 文件版本控管
  4. 程式測試
  5. 程式除錯
  6. 程式建立
  7. 程式佈署
  8. 臭蟲需求追縱記錄

一篇介紹程式發展工具的好文
用Open Source工具開發軟體: 新軟體開發觀念

我用的程式發展輔助工具
----------------
文字編輯器:vim

程式語言:Java
編譯器:javac
除錯器:jdb, 尚未有深入研究,見:java debug, O'Reilly sleepless 專欄

程式碼結構 index 產生器:
jtags,對 java 結構產生一 tags 的 index 檔,使編輯器可很快走到 java 的某項結構
ctags,支援多個語言

程式建立輔助工具:ant, maven 好像也不錯
安裝程式產生器:目前還用 ant 模擬
log 系統: log4j + chainsaw ,links:log4j 簡明手冊

版控系統:SVN 和 CVS 都有用,目前希望專注在 SVN 上

目前想要的功能:
bug tracker:無,想要找一套,或自已寫
測試軟體:JUnit, htmlUnit,dbunit
vim 能有 code completion
vim 有更好的 xml 編輯功能

CASE Tools
UML 塑模器:ArgoUML 似乎進步了,不過比不上 Rose UML 吧
StartUML 也不錯
RDBMS Exploerer: Squirrel
上面覺得不好用是因為沒跟 vim 整合在一起吧!

20060623

值得注意的未來技術:WiMAX

WiMAX的真實面貌

George Ou‧郭文興譯  2005/08/01

WiMAX(全球微波存取互通介面)是IEEE 802.16乙太網路的介面標準,就像Wi-Fi是802.11乙太網路的標準一樣。這兩年來,WiMax已經成為無線網路界最流行的專用字彙。同時它也可能是近年來最被誇大誤解的技術之一。

對WiMAX常見的誤解有:

  • WiMAX的傳輸範圍一定比Wi-Fi大

  • WiMAX的速度比Wi-Fi快

  • WiMAX會跟Wi-Fi競爭,進而取代Wi-Fi

  • WiMAX比Wi-Fi更安全。
  • WiMAX的傳輸範圍一定比Wi-Fi大

    WiMAX的設計可以在需要執照的無線頻段,或是公用的無線頻段運作。只要系統業者擁有該無線頻段的執照,而讓WiMAX在授權頻段運作時,WiMAX便 可以用更多頻寬、更多時段與更強的功率進行傳送。一般來說,只有無線ISP業者才會使用授權頻寬的WiMAX技術。至於Wi-Fi的設計則只在公用頻段中 的2.4GHz到5GHZ之間工作。美國的聯邦通訊委員會(FCC )規定Wi-Fi一般的傳輸功率要在1毫瓦到100毫瓦之間。一般的WiMAX的傳輸功率大約100千瓦,所以Wi-Fi的功率大約是WiMAX的一百萬 分之一。使用WiFi基地台一百萬倍傳輸功率的WiMAX基地台,會有較大的傳輸距離,自然毫無疑問。

    雖然有授權頻段的WiMAX顯然有較長的傳輸範圍,也不代表只要有錢就要趕著去買個WiMAX基地台。你必須要有一個授權的無線電頻段,就像一個音樂電台 也必須要有頻段執照,才能在空中發射無線電波。而如果WiMAX跟Wi-Fi一樣放在未授權的頻段,則它的傳輸優勢就馬上消失了。Wimax跟Wi-Fi 都是基於無線頻段傳輸的技術,所以受同樣的物理定律限制。反之,如果在同樣的條件下,讓Wi-Fi使用授權頻寬,Wi-Fi也可以跟WiMAX一樣快。另 外,雖然WiMAX可以利用較新的多路徑技術。目前新推出的pre-N MIMO(多天線雙向傳輸)技術Wi-Fi產品也使用了該技術。

    WiMax的速度比Wi-Fi快

    WiMAX的擁護者常常在大肆宣揚該技術的速度優勢。雖然WiMAX聲稱最高速度每秒70mbyte,然而最新的Wi-Fi MIMO理論上也有每秒108mbyte的最高速度,而實際環境下也有45mbps的速度。我可以去商場買一個Wi-Fi MIMO的基地台回家組裝,自行確認其速度約為45mbps,然而WiMAX的產品至今卻尚未出現。WiMAX技術同樣受技術問題與物理定律所限制,要談 論WiMAX的實際頻寬還是太早。

    無線ISP業者在建置WiMAX的時候,同樣會遇到現今其他無線業者會遇到的頻寬競爭難題。授權頻段的WiMAX系統涵蓋範圍極大,約數十公里,其建置的 困難可說是一把兩刃之劍。這是因為無線覆蓋範圍非常之大,裡面會有極多的使用者同時競爭同樣的頻寬。就算無線ISP業者使用多個獨立的頻道來運作,在同一 個頻道中,還是會有數倍於Wi-Fi的使用人數。我所認識的每一家無線ISP業者,不管是無線微波業者、3G行動業者,到衛星電話業者,同樣都會遇到頻寬 競爭與QoS(服務品質)管控的問題。

    如果網路的延遲在200到2000毫秒間遊移,這種網路根本不可能使用VoIP、視訊會議、網路遊戲,或任何其他的即時應用。雖然已經有人談論將 WiMAX加上QoS機制,以供VoIP使用,然而實作方法與實作效益仍舊有待觀察。而在Wi-Fi方面,Spectralink上的QoS實作成效已被 證實,同時802.11e的無線QoS標準也將要推出。無線ISP業者的WiMAX建置一定會比非授權的WiMAX或Wi-Fi基地台建置來得慢,因為對 無線ISP業者不可能會去讓少數用戶使用整個頻段。

    私人而使用公用頻段的WiMAX基地台,與Wi-Fi基地台的設置到底何者為快,將取決於產品的推出。由於理論上他們的傳輸功率與頻段大致相同,而市面上 已經有大量而且成熟的Wi-Fi產品,我個人會賭Wi-Fi這一邊贏。Wi-Fi在非授權頻段這一邊已經領先一大步,很難想像WiMAX在這個領域有辦法 成功。這是為什麼WiMAX多是往無線ISP業者的方向來推動。

    WiMAX將與Wi-Fi競爭,進而取代Wi-Fi

    最狂熱的WiMAX支持者甚至辯稱WiMAX將會完完全全的取代Wi-Fi,讓Wi-Fi成為歷史。這種想法說好聽一點是過度樂觀,過難聽一點則是荒謬無 比。WiMAX在整合與標準化無線微波ISP市場的過程中,將會有一席之地,但它並不會直接的與大多數的Wi-Fi建置競爭。WiMAX將會聚焦於授權頻 段的無線ISP市場,而Wi-Fi將會繼續主導私用的無照無線市場,如公司或家用的無線網路。WiMAX與Wi-Fi唯一會重疊的地方,大概就是收費的 Wi-Fi存取點了。

    由於WiMAX連線的涵蓋面積較大,以數十公里計,而Wi-Fi存取點是由數十米的小片面積所組成,所以WiMAX在全球涵蓋上會有佔有優勢。但是因為目 前的市場佔有率較高,以及因為小範圍、同時競爭的用戶人數較少,造成Wi-Fi較快、延遲較小的特性,Wi-Fi的收費存取點仍可能持續流行。至於 WiMAX是否能擊敗Wi-Fi的收費存取點,關鍵因素將是WiMAX的QoS機制是否良好實作,以及如何解決過多使用者的問題。如果WiMAX技術跟現 今的無線ISP一樣,具有過多使用者與高延遲的問題,它絕對不可能讓Wi-Fi收費存取點的需求消失。

    WiMAX較Wi-Fi來得安全

    WiMAX比Wi-Fi更安全是另一個盛傳的錯誤觀點。事實上WiMAX使用的是與Wi-Fi 的WPA2標準相似的認証與加密方法。其中的微小區別在於WiMAX的安全機制使用3DES或AES加密,然後再加上EAP,這種方法叫PKM-EAP。 而另一方面Wi-Fi的WPA2則是用典型的PEAP認証與AES加密。沒人可以說其中一個一定絕對比另一個安全,因為好的安全性往往取決於實際建置方式 的正確與否。

    讓社會大眾知道WiMAX的正反兩面十分重要。WiMAX技術與802.16標準是十分重要的,因為他是無線ISP業者未來合理的演進方向。但是它絕非無 線網路技術萬能而且終極的解決方案。WiMAX或其他的無線網路技術將會互補,同時這些無線技術也不可能取代有線技術的需求。無線的連線方式必定更有行動 力、更方便。至於有線的連線方式,只要能牽上線,則一定更快,更可靠。我們必須揚棄所有關於WiMAX的不實謠言,務實看待這個技術的真實面貌。

    Assertion

    裡面缺乏一篇介紹,
    assertion 的開啟及關閉是由
    java -ea
    來設定的,也就是可在虛擬機啟動時才指定。

    JavaWorld@TW - Assertion 介紹與使用

    20060621

    ANT 的檔案管理

    ANT 能從不同來源取得檔案的方法,
    像是 ftp, unzip, copy, cvs 等,
    其中一個重點是當目的檔案比來源檔案舊時,
    應該不可覆蓋來源檔案,相關的屬性如下:


    [v1|v2] 第一個表預設值
    ftp.depends=[no|yes] yes 表不覆蓋
    ftp.newer=[no|yes] yes 表不覆蓋
    unzip.overwrite=[true|false] false 表不覆蓋
    copy.overwrite=[false|true]false 表不覆蓋

    ANT 的角色

    20060620

    ANT 的角色

    ANT 的角色是作為一個跨平台的 shell script。

    shell script 是幫助自動化發展應用程式的非核心工作,
    像是檔案管理、源碼管理、程式庫 dependency 分析、
    程式師合作的溝通。
    讓程式師專注於解決他的問題。


    Ant vs Maven

    20060616

    vim 在程式的移動

    vim 提供一些能方便在程式區塊移動的命令,
    這些命令以 [ 開頭的表示到區塊起點,
    以 ] 開頭的表示移到區塊終點。

    % 對應的括號
    [[ 外部區塊起點
    ][ 外部區塊終點
    [{ 內部區塊起點
    ]} 內部區塊終點
    [( 括號起點
    ]) 括號終點
    [/ 註解區塊起點
    ]/ 註解區塊終點

    [I 列出游標識別字在檔案的所有位置
    [ or [ 移至上一個識別字
    [i 僅列出全部檔案第一個比對到的識別字,通常可用來找到識別字的定義
    ]I 列出所有游標行數後的識別字位置
    ]i 列出游標後第一個比對到的識別字

    [D 找出全域的 #define

    gD 移到識別字全域的定義 -- 一定要常用
    gd 移到識別字本地的定義 -- 一定要常用


    為何不學 vim script

    研究方法課的一些重點

    1. 研究背景和研究動機最好放為一節,不要和研究目標放為一節 -- 已修正
    2. 研究方法要闡述為何使用此研究方法的目的 -- 已新增
    3. 使用個案研究方法主要是前面無相關研究 -- 已新增
    4. 結論要解釋前面的研究目標是否達成,及本研究的貢獻 --
    5. 任何一段陳述都要有證據 -- 努力達成
    6. 研究要有 focus -- 已有 focus
    7. 表的標題在上、圖的標題在下 -- 暸解比較多的 DocBook,已經會操作了
    8. 中文論文內不要有英文 -- 暸解比較多的 DocBook,已經會操作了
    撰寫科技研究論文之要領

    正式環境、測試環境、開發環境

    正式環境為 AP 正式上線的環境。
    測試環境為與正式環境整體相當,作上線前測試的環境。
    開發環境為開發人員寫作程式的環境。

    20060615

    Ant vs Maven

    Ant 有三個階層
    project target task
    但彼此互不關聯
    Maven 在 project 層則隱涵一些預訂的 target

    項目管理: Maven 讓事情變得簡單

    RDBMS 的 View 代表推論資料

    前陣子在讀 prolog 的書時, 發現 view 的新解,

    RDBMS 的 View 代表推論資料

    下述的 prolog 碼

    //這句說 X 是 Y 的爸爸,或 X 是 Y 的媽媽,
    //則可推論出 X 是 Y 的父母親
    parent(X, Y) -: father(X,Y) or mother(X,Y)

    ?parent(X, fhopecc) //這類似 select 會找出 fhopecc 的父母

    把它可轉成下面的關聯模型, 每個關係是一個關聯
    father 是一個 table
    mother 也是一個 table

    parent 就是 view,簡單而言 view 可視為前二個 table 的推論

    create view parent as
    select * from father
    union
    select * from mother;
    SQL 的 view 指令
    SQL 的 alter 指令

    20060611

    docbook 顯示行號的方法

    docbook 顯示行號的方法
    http://www.sagehill.net/docbookxsl/InstallingAProcessor.html#InstallXalan

    20060610

    vim:functions

    呼叫函數
    :call function

    定義函數
    :function {name}({varlist})
    : {body}
    :endfunction

    ex.
    :function min(n1, n2)
    : if a:n1 < res="a:n2" res="a:n1">

    vim script 筆記

    Vim Script
    為一組 Ex 命令組成

    Ex 命令
    為 vim 的 normal mode 中,打 ":" 起始的命令

    :while 命令 - 迴圈
    語法:
    :while {condition}
    {statement}
    :endwhile

    資料型態
    vim 僅有二種資料型態,數字及字串。

    三種數字實字型態
    十六進位實字
    語法:
    {hexadecimal literial}=0x[1..9abcdef][0..9abcdef]*
    八進位實字
    語法:
    {octal literial}=0[1..7][0..7]*
    十進位實字
    語法:
    {decimal literial}=[1..9][0..9]*
    注意:前面不可前置 0 這個數字,否則會視為 8 進位

    數學運算式
    {add}={variable}+{variable}
    {minus}={variable}-{variable}
    {multiply}={variable}*{variable}
    {divide}={variable}/{variable}
    {modula}={variable}%{variable}

    例子:
    :echo 1*3
    3

    字串實字
    {double-quote-string-literal}="[a..zA..Z0..9]*"

    字串相連
    {string-concatenate}={string}.{string}

    ex.
    :echo "foo"."bar"
    foobar


    變數
    :let 命令 - 設值給變數,都是全域變數的
    語法:
    :let {variable}={expression}

    例子:
    :let i=1
    :echo "i is" i
    vim 會印出 i is 1

    :let
    vim 會印出所有的全域變數

    變數種類
    s:var -
    草稿檔變數
    {script-local-variable}=s:{variablename}
    僅作用於目前的草稿檔,
    若用 source 匯入的草稿變數,
    雖同名,但有不同的值

    {buffer-local-var}=b:{varname}
    {window-local-var}=w:{varname}
    {global-var}=g:{varname}
    {vim-var}=v:{varname} - vim 預定變數

    清除變數
    {clear-var}=unlet[!] {variable}

    判斷變數是否已定義
    boolean exist(string varname)
    判斷變數名為 varname 是否有定義


    表示式
    {enviroment-variable}=$NAME
    {option}=&name
    {register}=@r

    絛件表示式

    {expr}?{expr}:{expr}
    a?b:c
    若 a 為真,則 b,反之為 c

    :let i=4
    :echo i>5:"i is big":"i is small"
    i is small

    :if {condition}
    {statements}
    :endif

    :if {condition}
    {statements}
    :else
    {statements}
    :endif

    :if {condition}
    {statements}
    :elseif{condition}
    {statements}
    :else
    {statements}
    :endif

    比較運算子
    a==b

    ex.
    :if 0 == "one"
    : echo "yes"
    :endif
    yes

    因為 "one" 不是數字,故為 0

    a!=b
    a> b
    a>=b
    a< a="~b" style="font-weight: bold;">:excute str -直譯傳入字串
    :execute "tag " . tag_name
    直譯器的直譯

    :normal str -將傳入字串以 normal mode 直譯

    為何不學 vim script

    想寫一本資料結構的書,書的格式是用 docbook。
    在寫這本書時,總想要能夠有一支程式,
    能自動幫我產生一些例子,且它的格式要符合 docbook。
    像是輸入一陣列,它能自動幫我產生此陣列的反轉表(inversion table),
    但是究竟要用何種程式語言寫,
    是工作常用且嚴謹的 Java 嗎?
    或是寫法多樣且好寫的 Javascript?

    但我忘了,我打字的主要工具是 vim?
    為何常我要有工具來輔助我打字時,我不學 vim 呢?
    現在就開始,
    vim script 我要挑戰妳!

    20060606

    解決 IE 無法顯示 blogger 的問題

    剛剛發現把 blogger 的
    [設定]-[格式]-[日期語言]-[中文台灣]
    就可了

    把 IE 的編碼改成 UTF-8
    [檢視]-[編碼]-[Unicode(UTF-8)]

    一片空白的UTF-8網頁
    裡有更多解法

    20060605

    兩中國學者 解開龐加萊猜想

    兩中國學者 解開龐加萊猜想

    廣東中山大學教授朱熹平和中國旅美數學家曹懷東,在六月號「亞洲數學期刊」發表專刊,登載「龐加萊猜想和幾何化猜想的完全證明」專文,演算推證百年來被稱為「七大世紀數學難題」之一的龐加萊猜想。

    http://news.chinatimes.com/Chinatimes/newslist/newslist-content/0,3546,110505+112006060500059,00.html?source=rss

    縱走在稜線之間: 想做的相關研究

    程式測試工具

    一篇不錯的中文 JUnit 簡介:
    JUnit 學習筆記
    利用 Ant 和 JUnit 进行增量开发

    發展程式會用到的工具

    20060604

    APA style 筆記

    美國 APA 協會居然要錢買他們出版的書,
    才能看到標準。
    只好到 wikipedia 讀自由版本的標準了。
    連連連,找到一篇不錯的 Citation Styles Handbook: APA
    中文寫法:臺灣健康促進暨衛生教育學會投稿格式
    • APA 稱參考文獻為 reference list 而非 bibliography
    請參閱:
    研究方法課的一些重點

    20060603

    關聯模型的正規化理論

    今天在南台圖書讀 C. J. Date 大部頭的資料庫理論第七版

    摘要如下:

    函數相依性 function dependent
    若一關聯 R, a, b 是 R 的屬性,
    若每個不同的 a 值,則會有一固定 b 值與它對映,
    則稱 b 函數相依於 a,
    a 稱為決定集,b 稱為相依集
    記作 a->b。

    多值相依性 multivalue dependent
    若一關聯 R, a, b,c 是 R 的屬性,
    若每個不同的 a 值,則會有一固定 b 值與它對映,
    則稱 b 函數相依於 a,
    a 稱為決定集,b 稱為相依集,
    記作 a->b。

    20060602

    馮紐曼模型與哈佛模型

    目前的計算機具有兩種模型
    馮鈕曼模型:
    將指令與資料都存在同一個記憶體

    哈佛模型:
    將指令與資料存在不同地方


    這與資料編碼有很大的相關,
    我們可編指令碼到傳輸的訊息中,
    讓收訊端利用計算能力解碼才能得知想要的資訊,
    也可直接告訴收訊端想要的資訊。
    也可看看下文
    資料編碼的品質

    Vim JDE

    剛看到的據說有 code completion 的功能
    值得研究。

    可以看看我的另一篇發展程式的工具