2009年9月30日 星期三

Irish whistle 到手

最近發現Irish whistle (或叫tin whistle 臺灣翻成錫口笛)這種愛爾蘭傳統樂器好像很好玩又簡單易學。最重要的是他的入門級價格非常的便宜,馬上從網路上買回來玩。 本來想從國外買,後來發現網路上有人賣的價格還滿合理的就在國內買。

就是被The Corrs這段吸引到的

這段可以讓我練小提琴還有Irish whistle真是太有趣了,不過這沒辦法自己同時玩,要再騙一個人來玩Irish whistle。 :)

2009年9月14日 星期一

c macro tip

雖然我不喜歡用c的macro,往往在程式碼的閱讀和除錯上增加很多困難。但不可否認的有時在c裡(單純在c裡,在c++裡你還有其他的選擇) macro還是有使用的必要,可以減少很多不必要的copy/paste 讓程式比較精簡,增加易讀性,增加performance。當然這些優點要付出前述的代價。

C 的 macro at Gea-Suan Lin’s BLOG

這篇提到了三種c marcro的技巧,個人認為對大部分的人來說這三種是最常遇到的技巧。再更深奧的也很少遇到了。使用c的人都應該要懂,你不寫macro總也要會看得懂別人寫的macro吧。

git初步心得

最近了點時間一邊讀doc一邊操作終於比較了解git一點了。git這種分散式的版本控制系統果然是為社群開發方式的研發出來了。使用方式和邏輯很適合社群的開發模式。不過還真的不怎麼容易學。我自信對傳統集中式的版本控制己相當了解,也使用好多年,但還讀git的manual時還是常有一頭霧水的感覺。也許和我一直想用subversion而增加自己的困擾有關吧。

比較了解git一點後,覺得git比較像是版本的管理而不是版本的控制。當然這也是git對分散式版本控制系統的看法,應該是"檔案工具"而不是"控制工具"。所以要你手動作pack object、連提交過的版本都可以從歷史記錄裡抹除。-_-|||。這在社群使用上沒問題,但是公司團隊裡可能就會不一定合適了。當然這對git來說並不是無解。可以另外由一個管理者保有一份類似"權威版"的的方式來模擬像subversion這種集中式的管理方式。

不過git鼓勵多使用branch和merge的方式倒是滿好用的。當local branch不會影響任何人時,開發者更能盡情的做各種實驗,這當然也是受社群開發方式的影響,這種開發心態在一般的公司團隊裡也很有幫助。

就目前的試用心得來說覺得git有兩個部分還是不太習慣。

第一是使用hash當版本號碼讓版本號碼非常長,大部分的狀況下我都不看版本號碼而看commit log。也因為這樣的版本號碼不容易一眼就看出版本之間的前後關係。在一個開發速定穩定的團隊裡我甚至可以從號碼的差距猜出大約的時間差距。有時間一眼就看出前後關係還是很方便的。

另一個問題是和bug tracing system或ticket system的配合。因為大部分的bug tracing system都還是集中式的要和分散式的version control合作還是有些問題。我還沒試過,我想可能會有一些solution。但應該都還不完美。至少我看到我最愛的mantis好像有一些git的hooking,試過之後再說。

2009年9月10日 星期四

把putty+screenc換成mrxvt

今天把平常工作用的putty+screen給換成mrxvt了。雖然用putty+screen可以補足putty不支援tab的小缺點,但是在兩個地方我還是不滿意,一個是tab的切換上還是有一點不方便,一個是要把scroll回頭拉看之前的message時也有一點點不方便。雖說這兩個缺點在我把screen用到變無意識操作下,影響小了很多。但還是終究還是有點不方法,有時就會要想要再找找有什麼solution。

支援ssh的windows  免費client總體來說還是putty最完整好用(設定介面例外),所以就改找x windows上的terminal。平常看了一堆lightweight的terminal軟體,但是大部分都架構在gnome的vte上,這對我來說就等於無法用,因為我用的還是Redhat AS3的版本,公司的server當然也不能讓我亂升級。如果要我為一個lightweight的軟體,build一個不同的版本的vte那也太本末倒置了。所以就一直用著putty+screen,當所有的操作變成成下意識動作時,將就著用也就不那麼難過了。(還有一點是我稍微改了一下設定讓我少按幾次ctrl,使用screen的預設meta key總讓我手指受不了)


今天又回頭去看到了mrxvt,突然發現,mrxvt就很符合我的需要,我最需要就是要tab功能,支援256色和自訂字型,至於多國語系和unicode在我coding的過程中是不需要的。而且mrxvt承自rxvt,非常的輕量,只要 x11 library就好了。這一切的一切都是最適合我的嘛。以前怎麼都沒注意到呢。

把mrxvt設定好之後更確定mrxvt對現在的我來說是最適合的,不到2MB的空間滿足了我對tab,256色和字型的要求,和vim配合使用又沒什麼問題。所以就從putty+screen轉到mrxvt啦。

好用的putty我當然不會就這樣拋棄你啦,不過我想我和mrxvt在一起的時間會多很多很多了。

話說回頭, putty+screen在我現在環境還是有一點優勢,最大的優勢就是設定字型方便多了。在工作站上我沒辦法更改任何設定,也不能加自己想用的字型。在windows上不是admin我也能加字型,設定給putty用。為什麼我這麼想用自己的字型呢?好的coding字型對你的眼睛和腦袋都有很大的幫助。但是公司的exceed版本太舊,使用truetype後的refresh就很慢,看著畫面一個字一個字慢慢refresh才能再key in,那我就不需要tab了嘛。幸好我還能接受Fixed字型,就將就用吧。還有screen有他自己強大的功能,其實還是很有用的。

不過用了好久的putty+screen,一堆指令都變下意識動作,換成mrxvt後一下改不過來,頭腦還沒反應過來就發現手指己經打完,畫面出現一堆字。特別是在tab的切換功能還真不習慣。

另外rxvt的另外一個分支rxvt-unicode也可以有簡單的tab支援,不過真的是很簡單,最大的問題是不能用alt+number快速切換tab,在網路上有看到有patch不過我沒試用就是了。但是因為他支援unicode可能對一般使用來說還是比較方便。


PS.最後在設定的時候才不小心發現了screen也可以設hotkey,使用alt-1快速切換tab,那這樣tab切換就跟一般支援tab的terminal沒兩樣了嘛。但是卷軸的部分還是mrxvt比較方便一點點,所以我還是改用mrxvt了