32nd Diary

過去の日記
today: , yesterday: , total:
2006年
6月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

めーるあどれす:ruby -r base64 -e 'puts Base64.decode64("dGFrQG5vMzIudGs=")'


トップ «前の日記(2006-06-14 (Wednesday)) 最新 次の日記(2006-06-16 (Friday))» 編集

2006-06-15 (Thursday) [長年日記]

RRSE

日本Rubyカンファレンス 2006のライトニングトークスで紹介されていた RRSEをインストールしてみた.

RRSEというのはEmacsでRubyのドキュメントに比較的動的にアクセスできるスクリプトなのだ. とりあえず,導入手順を紹介してみる.

ReFeをインストール

RRSEを使うにはReFeがインストールされている必要があるので,まずはこいつを導入する.

サイトからリファレンスを含んだtar玉を落とす. 基本はtar玉砕いてでてくるドキュメントにしたがう. ただし,パッケージ管理されている環境を汚したくないので,以下のようにオプションを与えた.

ruby setup.rb config \
  --prefix=$HOME/local \
  --site-ruby=$HOME/lib/ruby
ruby setup.rb setup
ruby setup.rb install

このオプションで次のような構成でインストールされた.(ruby setup.rb uninstallできないのでメモしておく.)

  • $HOME/local/binにいくつかのコマンド(ruby setup.rb setupすると./bin以下にできるやつ)
  • $HOME/local/share/refeにリファレンス
  • $HOME/lib/ruby/refeにライブラリ

最後に$HOME/local/bin にパスを通し,RUBYLIB変数に$HOME/lib/rubyを追加すればインストール完了. "refe String"などでStringのドキュメントが表示されることを確認した.

RRSEのインストール

RRSEはマニュアル通りにインストールすればよい.

プログラムの配備はファイルをコピーするだけです.

cp rrse-refe-listdescs ~/local/bin/
cp rrse.el ~/lib/emacs/

起動高速化のためにあらかじめファイル(シンボルのテーブル?)を作っておく.

mkdir ~/.rrse
rrse-refe-listdescs > ~/.rrse/table
rrse-refe-listdescs -r > ~/.rrse/rev-table

あとは.emacsをほげって終了. ただし,F1はEmacsのヘルプにしているので,F11に割り当てた.(RubyのコードみながらEmacsのヘルプを引きたいことなんてないかもしれないけどね...)

インストール完了.うむうむ.こりゃ便利だ. カーソルをメソッドに動かすだけでなんか出るし,リファレンスが日本語なので,ボクが使っていたriのヘルプよりも親切だ.

Tags: Ruby Emacs

RRSEで対象の候補がないときにrefeを起動する

作者さんの日記にツッコミ入れようと思ったけど,ツッコミが機能してなかったので,ここに書いておく.


ライトニングトークスの発表でRRSEを知り,使わせていただいています.便利なプログラムをありがとうございます.

RRSEについてなのですが,メソッドなどにカーソルが乗っていないときにもrrse-helpですべての候補からリファレンスが引けると便利だと思いました.(refeはそんな感じになっています.) 私はRRSEの内部がよくわからなかったので,現状ではrefeを呼び出すようにしています.

diff -u -r1.1 rrse.el
--- rrse.el     2006/06/15 14:42:37     1.1
+++ rrse.el     2006/06/15 14:49:15
@@ -245,7 +245,7 @@
   (interactive)
   (let ((methods (rrse-find-specs)))
     (cond
-     ((null methods) nil)
+     ((null methods) (refe))
      ((null (cdr methods)) (rrse-show-help (car methods)))
      (t (rrse-show-help (rrse-help-completing-read methods))))))

追記.トラックバックも打ってみましたが,機能していないようでした...orz

Tags: Ruby Emacs

モデリングせずに実装してんの?

about 脱オブジェクト指向のススメ via memolog

今更ながらツッコミを入れておく.

オブジェクト指向が役に立たないという発言はちょっと愚かしい. オブジェクト指向もツールのひとつなんだから,役立つときに使えよ,と.

ってか,継承とかインターフェースはオブジェクト指向の本質ではないだろ. オブジェクトという単位による抽象化とメッセージのやり取りによるオブジェクト同士の連携がオブジェクト指向のキモだろ. 要するに現実世界のモデル化の手法としてオブジェクト指向モデリングがあり,それを実装するためにオブジェクト指向言語があるわけだよ. オブジェクト指向でモデル化してない対象領域をオブジェクト指向言語で実装してもうれしいことがないのはあたりまえ. それを理解していないとこうなるんだよな.イタイね.

これからのオブジェクト指向という話では, 次のパラダイムの流行が訪れても,それはオブジェクト指向に根付いたものになる,という考えが現在は主流だと思う. 今のオブジェクト指向プログラミングが構造化プログラミングと同居しているようにね.


話は変わるが,ソフトウエア開発については皆が開拓者であって欲しいよ. オブジェクト指向がすでにそこにあって,それを勉強する,ではなく, 適当にプログラミングをしていって,オブジェクト指向と出会って「あー,オブジェクト指向ってすげぇんだ」みたいな実感を伴った学習が望ましいよなぁ.

ちゃんと下地を積んで理解した人から新しいパラダイムが生まれるんだと思う. そういう意味では,ただ時代に流されるだけではやっぱりだめなんだよね.

Tags: Hack
本日のツッコミ(全2件) [ツッコミを入れる]
ohai (2006-06-30 (Friday) 01:26)

RRSE作者の大林です。つっこみ等はスパムのフィルタのために投稿内容に<br>かなり強い制限をかけているのにひっかかったのかもしれません。<br>あとrrse-helpの件は了解しました。考慮します。

32 (2006-06-30 (Friday) 21:43)

おわっ,ありがとうございます.便利に使わせていただいてます.<br>メールで伝えようかとも考えたのですが,本日のリンク元で気づいていただけるかも,と考え日記に書いてみました.上の件を含め,さらに便利なプログラムとなることを密かに応援しています.<br>(ほんとは機能を追加するパッチなどをサクッと書ければよかったのですが,ちょっとわかりませんでした.すみません...)

[]
本日のPingbacks(全0件)