13時頃 LAWSONに行ったけど普通にチケット取れた。去年は瞬殺だったけど今年は余裕ありそう。2日間通しとは言え、5000円とちょっと高いのも影響あるのかな。
カテゴリー: ruby
日本Rubyカンファレンス2006
お昼休みにローソンにチケット買いに行ったら既に売り切れてた。早すぎる。
Rastが動きません(2)
まず BerkeleyDBが新しすぎるのかなあと思い、4.3.28から1世代戻って4.2.52をインストール。再度rastをコンパイルしてexamples(Cバインディングの方)を実行してみるとちゃんと動く!なんだよこれが原因か、と思いきやrubyバインディングの方(examples/ruby配下)を実行するとやっぱりopenでこける。rastをデバッグオプションつきで再度コンパイルして実行。local_db.cの
dberr = db->bdb_env->open(db->bdb_env, db->path, flags, 0666);
でInvalid Argumentで落ちているところまでわかった。後はbd->bdb_envの中を追って、動くときと動かないときとで何が違うのか探ればいいのだが…。今回はここで力尽きた。
Rast::DB.openがだんまりになります
このページにも検索機能をつけたいな、と思ってちょっと調べてみると rastがなかなかよさげなので、これをインストールしてみることにした。
散々苦労したあげく(後でちゃんと書くこと)コンパイルまではなんとか通したのだが、インデックスの作成を実行するとなかなかプロンプトが帰ってこない。単に時間がかかっているだけか、と思ったがデータファイルのタイムスタンプを見ると大分前から全然更新されていない。これはなんかおかしいと思って、調べてみるとどうも Rast::DB.openを実行したところでだんまりになっているようだ。createはうまくいってそうなだけに openで失敗する理由がよくわからん。
レンタルサーバなだけに必要なライブラリをローカルにインストールしまくってむりくりそっちを呼ぶようにしていたりするのが悪いんだろうか。あとちょっとなんだけどな。ちなみに環境は以下のとおり。
- FreeBSD 4.8-RELEASE-p29
- ruby 1.8.2 (2004-12-25) [i386-freebsd4]
- rast-0.2.0
- apr-1.1.1
- BerkeleyDB-4.3.28
というわけでサイドバーにある検索機能はまだ動きません。あしからず。
rast
http://www.netlab.jp/rast/
Exerbメモ
ログ解析ツールを rubyで書いて Exerbで exe化してみたのでメモっておく。Exerb関連のドキュメントってあまりないみたいだし何かの参考になれば。あ,Exerbのバージョンは 3.2.0です。
exe化
まずレシピファイルの生成。手動で .exrファイルを作ってもいいみたいだが,とりあえず自動で作ってみる。
[bash]
% ruby -r /mingw/lib/ruby/site_ruby/1.8/exerb/mkexr foo.rb
[/bash]
次に,といっても最終工程だけど exe化。
[bash]
% exerb -c gui foo.exr
[/bash]
-c guiオプションは GUI化するため。つけなくても問題ないが,exe実行時に DOS窓が開いてしまってかっこ悪いのでつけておいたほうがいい。生成された foo.exeを実行してみて問題ないようなら OK。
__FILE__や $0の扱い
exerbでは通常と異なり __FILE__や $0に実行ファイルのパスが入らないので,実行ファイルと同じ場所に結果ファイルを出力したい場合などに困ったことになる。というか実際困った。いくら探しても結果ファイルが見つからないんだもの。最初はバグかと思ったよ。やっと見つけたと思ったら C:?Documents and Settings配下に出来てて意味分からないし。これは
- http://lists.sourceforge.jp/mailman/archives/exerb-developer/2003-September/000374.html
からのスレッドに対処法が説明されている。結論としては
if defined?(Exerb) and Exerb.runtime?
ppath=Exerb.filepath
else
ppath=__FILE__
end
のようなコードで,exerbで exe化された場合もそうでない場合も実行ファイルのパスを取得することができる。