2010年9月28日 星期二

Lftp Sync Plugin for Vim

Vim Lftp 同步插件釋出。

just released Lftp-sync vim plugin on Github: http://github.com/c9s/lftp-sync.vim #vim #github

2010年9月18日 星期六

perlomni - sugar for DBIx::Class

I've added some parsing function to perlomni vim plugin to parse result class name and added some dictionary for DBIx::Class:





http://github.com/c9s/perlomni.vim

PHP - L10N class

目前看起來好像沒有很好且輕便的元件可用。orz

所以寫了一個 Lightweight 的 L10N class for this. 算是一個 Gettext 的 Wrapper class。
既學了 JavaScript 也試著把 cascading 融入 PHP 裡頭,希望這樣的 API design 可以讓開發者很開心。


另外,若要剖析 gettext string 產生 PO/MO 字典檔案,請參見 App::I18N : http://github.com/c9s/App-I18N



2010年9月16日 星期四

Vim - Generate your vimball with vim-makefile

To generate a vimball file for your vim plugin isn't very hard. You can use vim-makefile to generate vimball file automatically.

to get vim-makefile:

$ wget http://github.com/c9s/vim-makefile/raw/master/bin/vim-makefile

to add makefile for your plugin:

$ cd plugin
$ vim-makefile

to make your vimball (place your plugin code in vim runtime directories, for example:

autoload/perldoc.vim
syntax/perl6.vim
plugin/html/html5.vim

then run `make vimball`:

$ make vimball

then the vimball file will be generated.
Comment 回在這邊,轉貼一下:
http://lightyror.thegiive.net/2006/09/rubypythonperl.html

雖然三種語言都有寫過一些,不過我對 Perl 程式語言比較熟悉些,我對 Perl 程式語言的『澄清』如下... XD

若是讀 CPAN 上模組的程式碼,你會發現其實 Perl 程式碼並不是 write-only ,然而會變成 write-only 大多是為了解決小而重複性低的問題,加上大家特別喜歡拿這部份出來討論,而長久下來大家對 Perl 所留下來的偏見罷了。 (當然還有很多,但就不在此提)

Perl 程式設計師大多並不會寫出 write-only 的程式,不過大家都喜歡將 obfuscated 的 perl code 拿出來炫耀一番就是,這也是為何 write-only 的由來之一。

不過若反過來看,有誰沒有寫過 write-only 的 code ? 其實人人有寫過 write-only 的 code 的經驗,不一定非得 Perl 才行,對吧? :-P

此外,由於 Perl 發展歷史悠久,Perl 擁有一套引以為傲的單元測試系統,重要的模組得以經過完整測試才會安裝到系統上,所以就算是 write-only 也不必擔心是否會因為 write-only 造成其他延伸問題。

順帶一題,近幾年 Perl 的發展,已有許多模組的發展已經使得現代的 Perl 與早期的 Perl 已經有及大的差異。 不過由於大多數的人對於 Perl 的認識並不多,所以對於 Perl, 大家都還是停留在『撰寫 CGI』的那個年代。 舉例來說,Moose, Autobox 模組的開發,使得 Perl 得以導入後現代的物件導向系統,使得 Perl 可以使用更簡潔、強大且可輕易擴展的物件導向功能。而 AnyEvent, Plack 等模組的發展也使得 Perl 的 Web 開發更加強大且快速。

關於此相關的資料可以參考 gugod 的 good evils in perl ( http://www.slideshare.net/gugod/good-evils-in-perl )

以及 Moose: http://www.iinteractive.com/moose/

Plack:
http://plackperl.org/

以上。 :-)

2010年9月7日 星期二

X201 雙螢幕調整筆記

總之很奇怪,在 Ubuntu/Debian 底下沒辦法把主要桌面設定成外接螢幕,要不然就是畫面整個黑掉沒辦法。用很 tricky 的方式才能至少把主畫面調整到外接螢幕上。但也沒時間研究,先筆記一下

1. 使用 mirror mode
2. 取消 mirror mode ,套用
3. 將外接螢幕調整解析度,套用
4. 關掉 Laptop 螢幕,套用

這時候主畫面才會出來。orz

2010年9月4日 星期六

cpans - bash version

Apart from takuhirom's perl version cpansearch http://d.hatena.ne.jp/tokuhirom/20100901/1283303919 and my c version cpansearch ( github.com/c9s/cpansearch ) , I wrote a bash version cpan search:

2010年9月1日 星期三

cpansearch - CPAN 模組搜尋工具



cpansearch 是一 CPAN 模組搜尋工具,以 C 撰寫而成。提供一簡易且快速的方式達到模組搜尋的功能,並利用 ncurses 來建立一選擇模組安裝之介面(類 aptitude),可一次選擇需安裝模組安裝。使用 cpansearch 不需另外設定 CPAN 或是 CPANPLUS 就可直接使用。

cpans 用法簡介:


$ cpans -f

初始化 source list

$ cpans -u

更新 source list

$ cpans Any

搜尋 Any 字樣

$ cpans -i any

忽略大小寫。

$ cpans -v Any

Verbose 輸出(輸出版本以及模組路徑)

$ cpans -vv Any

Very verbose。 (輸出版本以及完整模組路徑)

$ cpans --nc Moose

啟動 NCurses UI。


開發

目前開發皆進行於 Github ,歡迎 patches 以及 idea。

cpansearch + ncurses

cpans now is integrated with ncurses. ( http://github.com/c9s/cpansearch )

$ cpans --nc Moose