トップ «前の日(01-09) 最新 次の日(01-11)» 追記

おいぬま日報(不定期)

カテゴリ | 技術情報まとめWiki | 検索エンジンから来た人向け | RSS

2003年
1月
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 31



2003-01-10

@ [work] 引き継ぎ

トラブル対応で引き継ぎの資料を作成する時間がなくなってしまった。この分だと休出して資料を作成する羽目に...嗚呼、情けなや。

@ FRIDAY

中島美嘉が表紙だったので思わず買ってしまった。FRIDAYなんて初めて買ったけど、なんとも低俗な雑誌ですね(w

@ [linux] treeコマンド

なんでVineにはないんだろう。というわけで、RedhatのミラーからいつものようにSRPMを落としてインストール。


2005-01-10

@ [java][ruby] JRubyを使ってみる(1)

とりあえずCVSからHEADをcoしてビルド。

$ ant jar
 ...
BUILD SUCCESSFUL
Total time: 9 seconds
$ java -jar lib/jruby.jar -e \
'print "Hello world with ruby #{RUBY_VERSION} #{RELEASE_DATE} #{RUBY_PLATFORM}\n"'
Hello world with ruby 1.8.2 0 java

RELEASE_DATEは設定されてないのかな。

@ [java][ruby] JRubyを使ってみる(2)

ruby-1.8.2に同梱されているライブラリが使えるかテストしてみました。

use_csv.rb
if ARGV.length == 0
  puts "Usage: #{File.basename($0)} CSV"
  exit(0)
end
require 'csv'
CSV.open(ARGV[0], "r") do |row|
  p row
end
test.csv
foo,bar,hoge
1,2,3

普通のrubyで実行。

$ ruby -v
ruby 1.8.2 (2004-12-23) [i386-linux]
$ ruby use_csv.rb test.csv
["foo", "bar", "hoge"]
["1", "2", "3"]

JRubyの場合。

$ java -jar lib/jruby.jar use_csv.rb test.csv
use_csv.rb:5:in `require': No such file to load -- csv (LoadError)
        from use_csv.rb:5

「csvなんかないよ」と言われるので、LOAD_PATHを通してみます。

$ java -jar lib/jruby.jar -I /usr/lib/ruby/1.8 use_csv.rb test.csv
["foo", "bar", "hoge"]
["1", "2", "3"]

おお。普通に使えますね。

ちなみに、-Iで明示的にLOAD_PATHを通す以外に、もう1つ方法がありました。

$ ant -projecthelp
...
jar.standalone               Create a standalone jruby.jar file using libraries from RUBY_HOME/lib/ruby/1.8
...

このjar.standaloneというタスクは、$RUBY_HOME/lib/ruby/1.8の下にあるファイルを解析してjruby.jarに突っ込んでおく、というものみたいです。試しにやってみます。私の環境(Debian)では、ライブラリは/usr/lib/rubyにインストールされてので、先ほどのタスクの説明にしたがってRUBY_HOMEには/usrだけ指定します。

$ RUBY_HOME=/usr ant jar.standalone
...
BUILD SUCCESSFUL
Total time: 19 seconds

出来上がったjarを見てみると、確かにライブラリのファイルみたいなものが入っています。

$ jar tvf lib/jruby.jar
...
  8500 Mon Jan 10 15:45:12 JST 2005 ostruct.rb.ast.ser
  7834 Mon Jan 10 15:45:16 JST 2005 parsearg.rb.ast.ser
  2364 Mon Jan 10 15:45:10 JST 2005 parsedate.rb.ast.ser
...

というわけで、ライブラリが同梱されているjarでもう1回やってみましょう。

$ java -jar lib/jruby.jar use_csv.rb test.csv
["foo", "bar", "hoge"]
["1", "2", "3"]

おお! -Iがなくても動きました。

@ [debian][java] SargeでJDK-1.3が動かない

JDK-1.3を入れたのですが、起動しようとするとエラーが。

$ JAVA_HOME=/usr/lib/j2sdk1.3-sun ant
/usr/lib/j2sdk1.3-sun/bin/i386/native_threads/java: 
error while loading shared libraries: libstdc++-libc6.1-1.so.2: 
cannot open shared object file: No such file or directory

とりあえずあるバージョンの共有ライブラリがないという話だけだと思うので、適当にsymlink張ってみると動きました。

# ln -s /usr/lib/libstdc++-libc6.2-2.so.3 \
/usr/lib/libstdc++-libc6.1-1.so.2
$ JAVA_HOME=/usr/lib/j2sdk1.3-sun ant
Buildfile: build.xml does not exist!
Build failed

@ [java][ncommons] java.net.URL#getPath()

このメソッドって1.3から導入されたものなんですね。nCommonsをJDK-1.2でビルドしようとしたらこれ使ってるところでコンパイルエラーが。一応標準ライブラリのクラス使うときはJavadocの「導入されたバージョン」を見ているのですが、JDK-1.3のAPIドキュメントだとgetPath()には何にも書かれてなかったので普通に使ってました。しかも今調べたらJDK-1.4のAPIドキュメントにはしっかり「導入されたバージョン: 1.3」と書かれてありました。何だよ〜。

@ [java][ncommons] Lumberjackを使う

nCommons自体はJDK-1.2以上で動作するのですが(はず)、org.homeunix.kazz.ncommons.i18n.CommonsI18nMessagesというクラスで使用しているCommons I18nがjava.util.loggingを使っており*1、結果としてJDK-1.4以上じゃないと(全体としては)動きません。しかし以前こんなことを書いたのを思い出したので、インストールしてみました。

アーカイブを解凍するとlibディレクトリ配下にlogging.jarがあるのでこれをクラスパスに含めるようにして実行すると...

java.io.FileNotFoundException: /usr/local/java/jdk-1.2/jre/lib/logging.properties
(そのようなファイルやディレクトリはありません)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.(FileInputStream.java:61)
    at java.util.logging.LogManager.readConfiguration(LogManager.java:205)
    at java.util.logging.LogManager.(LogManager.java:48)
...

と言われるので、lib/logging.propertiesを$JAVA_HOME/jre/lib/にコピー。これでうまくいきました。というわけでJDK-1.2にもフル対応(のはず)。

*1 別に使わなくてもいいと思うんだけど

@ [memo] デスマーチが起きる理由 - 3つの指標

途中まで読んで挫折。またあとで。(from BONGOLE BLOG;)

@ 車輪の再発明

私もたけぞうさんの意見に賛成。それと引用されている「プログラマーのためのプログラマー日記」の言葉も昔読んだことがあって、「まったくそうだよなぁ」と思った記憶があります。「使う」だけじゃ欧米には勝てませんって*1。作らないと!*2

nCommonsも車輪の再発明っぽい機能がいっぱいありますが、作り始めた時はCommonsにはそういうものがなかったんですよねぇ。

*1 競争している意識はあんまりないですが

*2 だからそういう議論じゃないって

@ ふぅ

今日はなんかいっぱい日記書いたな。まだ書きたいことあるんですけど、明日にしよう。


2006-01-10

@ [perl] Perlで文字列を暗号化/復号化する

Crypt::CBCというモジュールでお手軽に暗号化/復号化出来ます。

日本語だとはてな伊藤さんのCrypt::CBC による Blowfish 暗号化に詳しい情報があります。

@ [soft] Browser Assistant

IEやFirefoxなどの各ブラウザでマウスジェスチャを可能にする常駐型アプリ。新しいブラウザ入れてもいちいちプラグイン追加しなくていいので便利です。


Bookmark: あんてな | ぶっくまーく | 覚え書き | Project Amateras | ExcelPettyCashBook | FreeStyle Wiki

2002|10|11|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|11|12|
2008|01|02|03|04|05|06|07|08|10|11|12|
人気ブログランキング - おいぬま日報(不定期)