Pathname オブジェクトを返すシンプルなメソッドを定義する

by tanabe on September 21, 2008

一度使うと手放せない便利クラス Pathname なんですが、Pathname.new するのが面倒だったりする。字面が長いから。

そこで、こんなんを追加してみる。

class String
  def -@
    Pathname.new self
  end
end

-'/path/to/somewhere' # => #<Pathname:/path/to/somewhere>

-'/'+'home'+'myacount' # => #<Pathname:/home/myacount>

これは、ちょっと本気でいいかもしれない。

前にもより前衛的な(というか、お遊びの)ものを挙げたことがあって、コードとしてはおもしろかったんだけど、実際に使えるようなもんじゃなかった。でも、今度のは一度実際に使ってみようかなと思える。

ちなみに、アイデアの9割は authorNari さんのこのエントリのおかげです。ほんと、こんなのあったんかいw でした。

  

絶対設計と計画(とか XP とか開発のスケールアップとか)

by tanabe on September 16, 2008

最近考えていることのまとめとして、「絶対設計」というのをキーワードに書き散らしてみようかと。たぶん、一回で書けないから何回かに分けて書く。あと、先に言っておくと答えは出てないので思考過程のメモ。というか、答えを知っている人はぜひ教えて。

まず、絶対設計というのは造語で、「設計というのは完成された姿があり、それは静的に写しとれる。」という信条を指す。設計書作成をプログラミングに先行して行おうとするのなどは絶対設計。

でもプログラミングというのは設計プロセスだし、より良い設計というのはそのときの置かれた状況により動的に変わるし、他の設計と比べてこの条件だとどっちが良い?っていうような相対的なものなので、すべてを見通して静的な完璧な設計を作って設計書を作るというのは不可能。(この辺、当たり前のように XP やリファクタリングや TDD やを正しい方向性としているので、ここが食い違うとこの後の問題意識や考えも食い違う。あしからず。)

でも、不可能だということと、する必要がないというのはまた別の話で、どんなケースでもソフトウェア開発は「いやー、そんなん書いてみなきゃわからんですよ」というのが許されるかというとそうもいかない。

で、「そうもいかない」のはどんなときなのかってのを考えると、「計画」が求められているときなんだよね。たとえば、「ターゲットの日付が先に決まっている」というのは計画をすることが必須になる要件だし、単に「上司がスケジュールを出せと言っている」でもいい。

この辺からかなり話があやしくなってくるわけだけど、この「計画」への対処は二つあって、

  • 計画がいらなくなるように環境を変える
  • 計画ができるように方法を変える
ってのが考えられる。

続く。

  

MVC の V

by tanabe on September 16, 2008

「MVC の V って何するの?」「いらないんじゃない?」という話を聞いて、なぜ View の価値が理解できないのか不思議だったんだけど、なんとなくわかった気がする。

Web だけをやってきた人は MFC とか通ってないから、Document-View アーキテクチャとか知らない人もいて、そうすると HTML テンプレートと View って何が違うの?みたいな話になってしまうのか。

まぁ、ひたすら VB で開発してました、みたいな場合も Model を抽象化するというのは想像つかず、画面から DB 呼び出してルールも画面に書いて、という人もいるので、最終的にはその人次第となってしまうのだけど。

結論としては、『観察されるデータの複製』とか載っている「リファクタリング」はよい本だなぁ。ということでした。

  

Ruby 1.9 を svn co してインストールしてみた

by tanabe on September 10, 2008

東京 Ruby 会議の yugui さんのセッションを聞いて、svn head の 1.9 系を使ってみたくなったので、

http://www.ruby-lang.org/ja/documentation/repository-guide

に従い、

$ svn co http://svn.ruby-lang.org/repos/ruby/trunk ruby

してダウンロード。

configure がない

./configure しようと思ったら、configure がない。仕方ないから autoconf しようと思ったら、autoconf が未導入だった。

yum install autoconf 

してみたところ、準備されているパッケージでは ruby 1.9 で必要な autoconf のバージョンを満たしていない。(CentOS4)

autoconf のダウンロード

http://www.gnu.org/software/autoconf/ へ行き、http://ftp.gnu.org/gnu/autoconf/ から http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz をダウンロード。

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
tar zxvf autoconf-2.62.tar.gz
cd autoconf-2.62.tar.gz
./configure

エラー。。

今度は、GNU M4 のバージョンが足りないらしい。

GNU M4 のインストール

http://www.gnu.org/software/m4/m4.html へ行き、http://ftp.gnu.org/gnu/m4/ から http://ftp.gnu.org/gnu/m4/m4-1.4.11.tar.gz をダウンロード。

wget http://ftp.gnu.org/gnu/m4/m4-1.4.11.tar.gz
tar zxvf m4-1.4.11.tar.gz
cd m4-1.4.11
./configure
make
make install

autoconf のインストール

./configure
make
make install

configure の生成

co した ruby ディレクトリへ移動

autoconf

ruby のコンパイル

./configure --prefix=/usr/local/ruby19
make

コマンド bison なんて知らないらしい。。

bison のインストール

yum install bison

今度こそ ruby のインストール

make
make install

無事インストール完了。お疲れさまでした。

初めてのRuby
初めてのRuby
posted with amazlet at 08.09.10
Yugui
オライリージャパン
売り上げランキング: 2708
おすすめ度の平均: 5.0
5 要点がコンパクトにまとまっています。(中級者以上向け)