追求神乎其技的程式設計之道(十)

追求神乎其技的程式設計之道系列

程式設計師的生產力之謎

很多人都聽說過,同樣是寫程式,一個頂尖程式設計師和一個普通程式設計師之間的生產力可以有十倍甚至百倍的差距。這是其他行業很少見到的現象,於是不禁令人...閱讀全文

在TextMate中使用Vi的按鍵配置

之前寫過一篇介紹Vim snippetsEmu文章有提到TextMate雖然很好,但如果不能支援vi的按鍵配置方式(key binding),像我這種依賴vim為生的人就不可能跳槽過去。沒想到當初隨便說說的怨念,還真的有人把它做出來了。這東西叫ViMate(這名字真不錯),是一個TextMate plugin。下載回來點兩下就會自己裝到TextMate裡。打開TextMate後,外觀看不出有什麼不同,但很快就發現還要按一下i才能開始打字,按ESC游標會變成綠色代表進入command mode...。雖然這個plugin還在開發中,不是所有vi命令都支援,但也提供vi fans一個想玩TextMate的好機會啦。閱讀全文

Drag&Drop Programming

第一次看到TextMate的snippet時(可參考TextMate, snippetsEmu for Vim這篇文章),就覺得這東西一定會徹底改變人們寫程式的習慣。但光只這樣好像還是有點不夠。snippet能讓programmer不用死記每種語言的不同語法,只要記得關鍵字,然後打出來按tab,接下來需要的東西全部自動生出來,programmer只要接著把空格填一填就好。這讓我想到CMU HCII所做的baristaWhyline的操作介面: code block可以直接被拖拉出來,放到想要的地方,接著再把空格填一填,聽起來跟snippet很像不是嗎?:p我想未來的programming環境都會往這個方向發展,到時要學新的程式語言也變得更簡單(反正這些年來的新語言都是換湯不換藥),只要打開editor,把需要的語法拉出來,再做一下填充題就完成了。所以,這就叫做拖曳編程(Drag&Drop Programming)嗎?閱讀全文

為什麼我要分享?

突然想寫點東西,聊聊為什麼我寫blog,為什麼我會想和其它人分享知識和學習的過程?我昨天在我的blog未來最舊小棧的個人板上post了一篇一些好用的Vim scripts。本來只是為了作個記錄,怕自己以後忘了曾經找個這些好用的scripts。結果昨天有個人回了一篇文章說,其中一個scripts(SearchComplete.vim)有bug,會讓一些平常會用到的按鍵失效。正巧我當時在試玩這個script時也有發現,但因為還不想花時間深入研究,就放著沒理它。沒想到過了一天,就有人自動出現告訴我他也發現這個問題,而且他還把修正的方法一並提供給我了...:-D當初我會post這篇文章,其實一方面是為了留記錄給自己看,另一方面就是分享這些好東西給也有在用vim的同好。只是沒想到會有人試了以後會告訴我其中的bug要怎麼修。老實說,這種驚喜的感覺很有趣,也是為什麼我要持續寫blog的原因之一。我從高中時,就在BBS上開了個板,沒事就寫些文章,可能是分享今天學到了什麼有趣的Linux技巧,或是一些給學弟妹的tutorial。寫這些東西很有趣,一來是因為「發表是最好的記憶」,二來是分享常能帶給我很多意想不到的回饋(例如上面告訴我bug怎麼修的好人)。可能有人覺得我很奇怪,平常都不太講話,但只要站上台就刮啦個不停,有時甚至像在傳教一樣。這個「興趣」說起來,也是從高中開始培養起的。高中時我在中一中電研社當副社長兼教學,每天中午除了在社團團部和大家哈啦外,還要給學弟妹上課(教C語言、資料結構,演算法..等等)。教別人本身其實就是一件有趣的事,光是讓人聽懂你的想法,學會你想講的東西,就蠻有成就感的。除此之外,我也從中發現一些意外的收獲。例如我常看書看了一些東西後,其實並沒有很深的印象,過一段時間就很容易忘記。但在跟別人闡述時,常常會突然搞懂書裡面到底在講些什麼。這是很奇妙的感覺,就像是:idea:突然冒出在頭上一樣,這是自己念書體驗不到的。這個感覺在我寫文章時也常會出現。其實寫文章就像在跟別人對話一樣,只是不能馬上看到對方的反應,所以話要講清楚點,細節要多寫點而已。但寫文章有個好處是講話比不上的,因為你可能在腦中把事情想久一點在寫下去,甚至可以不用照順序寫..。對我來說,這是一個整理思緒的好方法,可以讓我對一件事情理清頭緒,也可以幫助我記得更牢靠。胡適和候捷都曾說過「發表是最好的記憶」,其實我也有同感 :-D寫文章除了有些馬上能得到的好處外,其實更大的好處要在分享出去給別人看過之後才能得到。在網路上寫心得分享,或是tutorial,可以吸引到一些跟你有相同興趣的人接近,甚至可以感染別人,讓他們跟你有相同的興趣。這麼一來,玩同一個東西的人多了,就可以互相交換心得、分享經驗,別人學的東西、看的東西加起來鐵定比自己還多得多,因此寫文章來吸引同好是一種能快速形成分享循環的好方法。此外,就像一開始說的故事一樣,也常會有些意想不到的回應出現。這種驚喜不只可以讓自己輕鬆點,也可以刺激我分享更多的東西給別人。閱讀全文

OV行列的「快打模式」

array-quick.png

今天把OV行列的快打模式寫完了:而且我也順便包了一個compile過的測試包,可以給有興趣的朋友幫忙測試。

OV 0.7 行列測試包下載這個測試包下載回去後,請解至根目錄(/)下,再重新login就可以了。

關於行列的快打模式,目前的設計是像嘸蝦米一樣用",,sp"(8v8v2-0^)這個特殊的碼...

閱讀全文