readline.dllが見つからなかったため、このアプリケーションを開始できませんでした

irb (interactive ruby)

コマンドプロンプトirbを起動しようと以下のコマンドを実行

C:\irb

実行結果

readline.dllが見つからなかったため、このアプリケーションを開始できませんでした

というエラーが発生


対応

  1. http://jarp.does.notwork.org/win32/ より readline-4.3-2-mswin32.zip をダウンロード
  2. 解凍してbin/readline.dll を [RUBY_HOME]/bin へコピー

Ruby + Rails + RadRails + MySQL で必要だったライブラリ

やっとEclipseRadRails入れてRuby on Railsの環境ができた
とりあえず、手コピーしたライブラリだけ書いておく 眠い…


ライブラリ

ファイル名 備考
readline.dll irbを使うのに必要
msvcrt-ruby18.dll Rubyに入ってた
zlib.dll GemかRails入れるときに必要
libeay32.dll Gemでライブラリインストールするときに必要
ssleay32.dll Gemでライブラリインストールするときに必要
iconv.dll 忘れた…汗

すべて[RUBY_HOME]/bin配下にコピー

Google Chrome に Extentions を同期する機能がほしい

職場とか家とか別PCとかすべてに Extentions をわざわざ入れるのが面倒…
Google のアカウントでそのへん管理してインストールと同時にアドオンも全部入れてくれると嬉しいのに…
って、別アカウントでログインした場合どないすんねん!ってね。。。汗

HttpServletRequest#getPathTranslated() の値がnullになる

web.xmlに設定するサーブレットマッピングによっては拡張パスを含むリクエストの情報が取れないらしい
strutsのように「*.do」などを設定すると軒並みnullが返ってくるのはどうにかならないのかなぁ?


/servlet/sample.do へリクエス

url-pattern *.do servlet/*
getPathTranslated() null /usr/local/tomcat/webapps/hoge/servlet/sample.do
getPathInfo() null /servlet/sample.do

「*.ext」で設定した場合は物理パスは「[catalina.home]/webapps/hoge/...」とか作ってやる必要があるということか?
どうにかして一発で取れないものか???


OutputStream#write(int) が遅い

Servletのファイルダウンロード処理にOutputStream#write(int)を使っていたんですが、コレが非常に遅くて困った

ServletOutputStream outputStream = response.getOutputStream();
int int outputData = 0;
while ((outputData = inputStream.read()) != -1){
	outputStream.write(outputData);
}
outputStream.close();

OutputStream#write(data, off, length)を使う

Apacheの公開領域に同じファイルを置いてダウンロードするのと比較すると、テスト環境で10倍も処理時間がかかるのはやっぱりおかしい!
ということで、この部分を以下のようにバッファ処理を行うように修正

byte[] buf = new byte[4096];
while ((length = inputStream.read(buf)) != -1){
	outputStream.write(buf, 0, length);
}

すると処理速度が急激に速くなった!(Javaを介さず直接ダウンロードと同じぐらい!)
これ、普通にファイルストリーム出力の実装では全部こうしたほうがいいっぽいね
バッファ処理、侮れない…

FireFox3.6 の灯火

FireFox3.6 リリースとのことで!

これ地味だけど面白いですね!

頑張れ!大阪!今801!!!(笑)


Eclipse の CVSリポジトリ・エクスプローラー でブランチ・バージョンごとに比較でヒストリーが見れない

非常に便利なのであるが、ここでヒストリー表示が見れればなおよかった…
コミット時のコメントだけ抜いてくるようなことできないんだろうか???


ヒストリーを表示がほしい