イケテルJRuby勉強会に行ってきました

JRuby+MySQLの環境を事前に作っておかなきゃいけなかったんだけど、 ここのところ、例によって残業続きで、全然時間が作れなくて、前日ドタバタ。

ノートPCのOSをUbuntuに変えてから、諸々環境が整ってなく。

デスクトップPCはRails.vimautocomplpop.vimなんだけど、 だいぶ昔に参加したときはNetBeansで会が進んでいたのもあり、 Sunだし、サクっといい感じにJRubyできるのかなと思ってNetBeansで。

朝はなんとか起きて、1分遅刻で会場入り。 何やら今回はコマンドラインでの進行…orz しかも、NetBeansにデフォルトで入ってるRubyGemsが古い予感。

コマンドラインでもイケるように、環境つくろうかな、と思って。

root@xxx:/home/xxx# apt-cache search jruby jruby0.9 - 100% pure-Java implementation of Ruby jruby1.0 - 100% pure-Java implementation of Ruby

んで、jruby1.0を入れたら、

root@xxx:/home/xxx# jruby -v ruby 1.8.5 (2008-01-07 rev 4810) [i386-jruby1.0.2]

1.8.5かよ…orz

仕方ないからトランクもってくるべ。 とか思ってsvn叩いたら、subversion入ってねっていう。。

root@xxx:/home/xxx# apt-get install subversion svn co http://svn.codehaus.org/jruby/trunk/jruby

んでant叩いたら、antもなかったから、 root@xxx:/home/xxx#apt-get intall ant

とかやってたら時間ねって話。 スキャフォルドとかみんなしちゃってるし。

仕方ないからNetBeansに戻って。 そしたらDB接続のところで何か変なエラー出ちゃって。

Gem入れてJDBCドライバー使う仕様に変更。。 database.ymlは↓こんな感じ。

development:  adapter: jdbc  driver: com.mysql.jdbc.Driver  url: jdbc:mysql://localhost:3306  username: root  password:

プロジェクトを右クリックしてプロパティのJavaで、 "Javaを含める"にチェックいれないとドライバをロードしてくれませんでした。

ようやくスキャフォルドして、みんなに追いついて午前中は終了。 同じチームだったみなさんと昼飯に。

こうやって全然違う業務をされている方たちと 技術談義みたいなことができるっていうのは、なんとも嬉しいことで。 おもろい情報とかもゲットさせていただきました。

で、午後はSwingをjrubyで動かす。

Rubyで開発してる人はirb使ってチョコチョコ動かしながらやると思いますが、 jrubyだとjirbってのがあって。基本的にirbと同じです。

が、驚いたのは、jirb_swingってのがあって、リアルタイムにSwingで 動作確認ができます。

が、自分はNetBeansからのため、IDE上のirbで。 でも、ちゃんとSwingのモジュールが出てきました。

コンソール上でNetBeansディレクトリのjirb_swing叩いたら

パスが通ってないんだかなんだかで動きませんでした。。

で、EC-ONEの人が作ってるっていう、rubeusというSwingのコードを 短くかける的なgemを使ったら、、JavaUtilitiesとかいうクラスがconst_missingとか。

どうやらNetBeansにバンドルされてるjrubyのバンドルが古いのが原因らしい。 っていうことで、jruby1.1.3をhttp://dist.codehaus.org/jruby/からwgetで取ってきて、 tar -xvf jruby-bin-1.1.3.tar.gz してNetBeansディレクトリに。

そしたらNetBeansがいい感じにそれを汲み取ってくれたんだけど、 Railsから、その他のgemも入れ直し…。

みんなどんどん進んでるし、、 つか、Swingの一番おいしいとこなのに、、

頑張ってなんとか皆さんに追いついて。 が、Swing上でマルチバイト文字が□になっちゃって…。 ブラウザでみるとちゃんとみれるんだけど。。

まぁ、大体、なんとなくSwingわかったす。。。 んで、また出てくるんですよね。イベントリスナーとか。 わかるんだけど、なんか今いちしっくり来ず。

ーーー

振り返り。

クライアント側 →Swingをjrubyで。rubeusを使用。

サーバー側 →別にjruby on railsである必要はなかったんじゃないかっていう。。  コネクションプールとかセッションレプリケーションとかを垣間見たかったんだけどなぁ。。

普通Swingを業務で使うときはNetBeansVBみたいな感じで GUIで部品をヒョコヒョコやって開発するらしいのですが、 適当に生成してみました。何回addすんのよ?的に、あまりいじりたくないコードでした。。 そう考えるとrubeusは威力あるなと思いました。

が、仕事でSwing使わないからな、、、。 にしても、この内容で無料ってのはすごい勉強会です。