水曜日 1 07, 2009

jruby on merb : install

遅くなりましたが、明けましておめでとうございます。本年もよろしくお願いします。

今年はjruby-users.jpのコンテンツをちゃんとつくります


Rails3でマージされることになったMerb。

面白そうなので、触ってみようと思います。もちろんJRubyで。今回はとりあえずインストール

MerbはデフォルトではORMにDataMapperを使用しますが、DataMapper(以下DM)のDBドライバがまだJRubyに対応していないため,ORMにはActiveRecordを使用することにします。またこの関係で、通常の


jruby -S gem install merb



ではdo_sqlite3(DMのsqlite3用ドライバ)のインストールにこけてしまうので、インストールにも一工夫必要です。
ではインストール

開発サーバとしてglassfish、dbとしてsqlite3を使うので、インストールしていない場合はインストール。また(jdbc-)activerecordもインストールしていない場合はインストールします。


jruby -S gem install glassfish activerecord  activerecord-jdbcsqlite3-adapter 



インストール後、merbをインストール。


jruby -S gem install merb-core merb-more merb_activerecord



これでDM以外のMerbに必要なモジュールとMerbからactiverecordを使うモジュールがインストールされます。

ということで実際のアプリケーション作成は次回!

日曜日 12 07, 2008

glassfish gem v.0.9.1 release

glassfish gem の最新版v.0.9.1がリリースされました。


今回の最大の目玉は、


Rails2.2を完全サポート、スレッド・セーフ/ノン・スレッド・セーフ設定両方に対応 



もちろんバグフィックスも含まれていますので、お使いの方は、


gem update glassfish



でアップデートを!

金曜日 10 24, 2008

Glassfish problem with Netbeans 6.5 RC1 on mac

Netbeans6.5RC1がリリースされましたが、RC1にバンドルされているGlassfish v.3prelude b28にはバグがあるようです。

Mac版だけなのですが、このb28ではupdatetoolをインストールしようとすると、



⁞/Applications/NetBeans/glassfish-v3-prelude-b28/bin%  ./updatetool 

The software needed for this command (updatetool) is not installed.

If you choose to install Update Tool, your system will be automatically
configured to periodically check for software updates. If you would like
to configure the tool to not check for updates, you can override the
default behavior via the tool's Preferences facility.

When this tool interacts with package repositories, some system information
such as your system's IP address and operating system type and version
is sent to the repository server. For more information please see:

http://wiki.updatecenter.java.net/Wiki.jsp?page=UsageMetricsUC2

Once installation is complete you may re-run this command.

Would you like to install Update Tool now (y/n): y

Software repository: http://mercurial1.foundry.sun.com/glassfish/v3prelude/dev/mac/
Software repository: http://pkg.glassfish.org/v3prelude/contrib/mac/
Software repository: http://mercurial1.foundry.sun.com/glassfish/v3prelude/contrib/mac/
Software repository: http://pkg.glassfish.org/v3prelude/dev/mac/
Software repository: http://pkg.glassfish.org/v3prelude/release/mac/
IOException: Connection failed: 503: Service Temporarily Unavailable

Could not download application packages. This could be because
you are using a proxy server to access the internet.


というように表示されてしまい、アップデートすることができません。
このバグは最新のb28cでfixされておりますので、Macでお使いになる場合は、こちらからb28cをダウンロードして、お使いください。

火曜日 9 16, 2008

Project Kenai

先日、弊社のオープンソースホスティングサービス

Project Kenai



がサービスインしました。このProject Kenai(キーナイ)はsubversionとMercurialに対応したコードホスティングで、メーリングリスト、フォーラム、wikiを提供します。また近日中にgitとJIRAがサポートされる予定です。
登録すればどなたでもアカウントを作ることができます。現在ベータのため、新規プロジェクトの登録にはinvitationが必要です。新規プロジェクトを登録したい方は、僕にメール(名.性アットマークSun.COM)していただければ、少し時間をいただきますが、招待させていただきます。

現状ではGoogle Codeやgithubと同様のサービスとなっていますが、将来的にはSNS機能やクラウドコンピューティングを使ったテスト環境の提供なども行う予定のようです。

このサイト自体は、Apache + mod_proxy_balancerをフロントエンドにたて、そのバックで、Glassfish v2 + JRuby on Rails + MySQL + Warblerで稼働しています。H/WはSunFire T-2000 + X4500(ストレージとして)、OSはNevada 70bです。

これからどんどんKenai自体の開発も進んでいくようなので、その変化にも注目してください。

金曜日 6 06, 2008

JRuby Japan Tour

もうすでにかなり前にC・ナッターのブログで話題になっていたのでご存知の方もいらっしゃると思いますが、今月来日します。

6月20-22日のRubyKaigi2008はもちろん、その後島根、福岡、東京と回る予定。

まさにツアーです。

また福岡では、Ruby ビジネス・コモンズの「イケテル"JRuby"勉強会」に講師として登場予定。

そして26日には弊社セミナーにてJRubyの最新動向を講演する予定です。詳細は下記参照

そのセミナーでは僕もNetbeansを使った、Ruby on Railsについてしゃべります。NetbeansによるRuby Platformやgem/プラグイン管理、オートコンプリート、スニペット、DB管理などを紹介いたします。ぜひご参加ください。

申し訳ございませんが、今回は無料セミナーながら、人数多数の場合は抽選となりますので、ご了承ください。



JRuby の最新動向と NetBeans, GlassFish, Solaris on Sun サーバ
2008年06月26日(木)
サン・マイクロシステムズ株式会社 用賀本社27階セミナールーム

1. NetBeans 6.1 で加速する Ruby on Rails 開発

JRuby エバンジェリスト
野澤 智(のざわ とも)


Java の開発環境としてだけではなく、(J)Ruby の開発環境としても有効な NetBeans 6.1。Ruby on Rails の開発での gem やプラグインの管理、rake タスクの実行、デバッグ、スニペットなど、NetBeans6.1 の特徴をご紹介いたします。NetBeans 6.1 を使うことでよりアジャイルに開発を加速します。

2. GlassFish で安心、エンタープライズ Ruby

Java エバンジェリスト
岡崎 隆之(おかざき たかゆき)

GlassFish は Java EE だけのアプリケーションサーバだと思っていませんか?実は GlassFish では JRuby を使って Ruby on Rails 実行環境を構築できるだけでなく、クラスタ環境などへの配備もサポートしています。ミッションクリティカル環境で使われている GlassFish の安心感をエンタープライズ Ruby でもご堪能ください。

3. JRuby 最新動向

4. (J)Ruby on Rails Tuning Tips

Solaris エバンジェリスト
河原一哉(かわはら かずや)


(J)Ruby on Rails でアプリケーションを構築する際の Tuning Tips をご紹介いたします。Web サーバの設定、データベースサーバの設定、OS のチューニング、アプリケーションのボトルネック解析など、さまざまな角度からチューニングを行うノウハウをご紹介いたします。



月曜日 5 12, 2008

Glassfish gem v.0.2.0

約2週間GWでお休みしていましたが、再開します。
この2週間で、JavaOne2008が開催され、JRuby関連でも注目の話題がいくつか登場しました。
これから数日はJavaOne2008の新しい話題について取り上げたいと思います。

まず今日は

GlassFish Gem v.0.2.0リリース

コードベースがJavaOneで発表されたGlassFish v.3. TP2にアップグレード。
旧バージョンをお使いの場合は、

gem uninstall glassfish


でアンインストール後

gem install glassfish



でインストールし直してください。


月曜日 4 28, 2008

JRoR with JNDI Connection Pool

先日のセミナーのアンケートでもいくつかご意見いただいた中にJRuby on Railsでのコネクションプーリングの話がありましたので、取り上げたいと思います。

設定を変更するのはdatabase.ymlのみです。

database.ymlを以下のように変更します。

production:

  adapter: jdbc

  jndi: <コネクションプール名>


  driver: <JDBCドライバクラス名>

今回はproductionを変えましたが、developmentでもtestでも同様です。

後はアプリケーション側でConnection Poolをつくってやれば、JRoRアプリからコネクションプーリングが利用でき、通常のrailsアプリでよく問題になるデータベースの接続コストを削減できます
[4/30追記]もうしわけございません。訂正します。
高井さんのコメント通り、ActiveRecordはコネクションをはりっぱなしにするので、接続コストは関係ないです。詳細は次記事をご覧ください。

水曜日 4 23, 2008

WorldxChange : JRoR Showcase


JRuby on Rails with GlassFishでの新たな導入事例。
ニュージーランドのWorld xChange Communicationsというテレコム企業のオンラインビリングサイトで導入。
構成は、JRuby1.1RC2+ GlassFish v2、DBはMS SQL server2005でJDBC接続。
NetBeans6.1beta+WEBrickで開発し、GlassFish gemで最終テスト。

まだまだ世界的にみてもJRubyを使った事例は少ないですが、今後は増加していくのではないでしょうか。





火曜日 4 15, 2008

Java Hot Topic Seminar April 2

同じ話題を繰り返して申し訳ないですが、明日Java Hot Topic SeminarにてJRuby on Rails with GlassFishについて話させていただきます。

内容は以前にポストしたのと若干変更になりました。

こんなかんじです。


  •  Introduction
  •  Introduction to Ruby on Rails
  •  What’s JRuby ?
  •  JRoR on GlassFish
  •  Warbler
  •  glassfish gem
  •  JRoRとJ2EEのintegration
  •  Q&A

MonkeybarsなどのJRuby用のSwing Frameworkを扱おうかと思っていましたが、時間の関係で見送りました。RubyからJavaの呼び出しはオーソドックスなSwingになります。
GlassFish v3のRoRデプロイ時のアーキテクチャなども紹介いたします。
またFastladderを使って、warとディレクトリベースのデプロイデモを行います。

では、明日よろしくお願いします。
プレゼン資料はこのブログもしくは、Java Evangelistブログで公開予定です。

水曜日 4 09, 2008

Java Hot Topic Seminar April

先日も少し書きましたが、来る4月16日(水)に弊社で開催するディベロッパ向けのセミナーで、JRubyについて話させていただくことになりました。

 初心者のための実践 JRuby on Rails 講座


Ruby on Rails を使って開発したアプリケーションが Java 環境さえあれば
どこででもサクサク動きます。
その秘密は Java で書かれた Ruby の処理系 JRuby と最新のアプリケーションサーバ
GlassFish の絶妙なコンビネーション。
Ruby と Java どちらか一方は初心者という方は是非ご参加ください。


という案内がJavaエバンジェリストブログにのっていますが、具体的には

  • Rubyってなに?
  • JRubyってなに?
  • Java <=> JRubyの連携
  • (J)Ruby on Railsってなに?
  • 事例紹介
  • JRoRとJavaの連携(サーブレットの呼び出し、JPAやactive_hibernate)
  • javaアプリケーションサーバにRoRアプリをデプロイする方法
  • glassfish gemの紹介
  • OpenFL(Fastladder)のデプロイデモ
という感じになる予定です。まだ資料作成中なので、変更があるかもしれませんが、Java<=>JRuby連携では、JRubyからjavaの呼び出しサンプルにはProcessingmonkeybarsを、逆にjavaからJRubyの呼び出しサンプルにはjsr223とbsfを使う予定です。

18:30からと時間が早いですが、ぜひ来てみてください。
なお参加される際には、こちらからご登録後、ご来場ください。

木曜日 4 03, 2008

Java Hot Topic Semminar

またしばらくあいてしまいましたが、ちょっとした告知です。

4月16日に弊社用賀オフィスで行われるJava Hot Topic SeminarというちょっとしたセミナーでJRubyのことを話すことになりました。(現状まだ情報はのっていません。もうすぐアナウンス予定)

JRubyの紹介やJRubyをGlassFishにデプロイする時の方法やアーキテクチャ、さらに多分問題がなければFastladderを使って、実際にデプロイして動作させるデモをやる予定です。

詳細は追ってお知らせいたしますが、ぜひ来てみてください。


金曜日 3 28, 2008

Warbler

最近v.0.1.2が出たGlassfish gemを使えば、JRuby on Railsの開発/テストフェーズでは非常に簡単にGlassfishにデプロイすることができます。
しかしたとえば、Glassfishではなく、既存のJava アプリケーションサーバにデプロイしたいといった場合、glassfish gemを使うことができません。そこで、(J)Ruby  On RailsのアプリケーションからWarファイルを生成するgemをご紹介。

そのgemはwarbler
中身はgoldspikeというRoRのアプリケーションをwar化するプラグインと最新のJRubyでできています。
goldspikeを使っても、もちろんwarファイルを作り、デプロイすることができますが、goldspikeでつくられたwarファイルは非常に巨大で、生成にもデプロイにもコンパイルにも非常に時間がかかるものとなってしまうという弱点がありました。その弱点を改善し、さらにrubyでjava アプリケーションとしての設定も行えるようにしたのが、warblerです。

では実際に使ってみます。
まずはインストール。注目すべきは、warblerはJRubyはもちろんC-Rubyでも動作します。つまり既存のRoRアプリに一切手を加えることなく、war化することが可能です。

gem install warbler

これでインストールは完了です。インストール後、warbleというコマンドが使用可能になっているはずです。このwarbleでwar化します。まずRoRアプリのトップディレクトリに移動し、configファイルを生成します。

cd <hoge>
warble  config

そうすると<hoge>/config/warble.rbというファイルが生成されます。
このファイルにはdevelopment,testといった実行時環境やRailsのバージョン設定などRoRの設定はもちろん、JNDIのデータソース名などJava アプリケーションとしての設定も含まれています。この設定ファイルを編集することで、パラメータを変更することが可能です。
次にwarファイルを生成します。

warble war

でhoge.warというwarファイルが<hoge>ディレクトリに生成されます。このwarファイルを利用することで、さまざまなJavaアプリケーションサーバにデプロイすることが可能です。

木曜日 3 27, 2008

Glassfish+MySQL

弊社がMySQLを買収しておそらく初めての成果物。

Glassfish v.2. &MySQL

が公開。
Glassfish v.2.U1とMySQL Community サーバー5.0.51a、そしてMySQL用JDBCドライバ5.1.6をバンドルして提供しています。

アップデートセンターを利用すれば、JRuby On RailsのアプリケーションをWar化して、デプロイすることが可能なプラグインをGlassfishにインストール可能です。
そのあたりの詳細は後日記載予定。

金曜日 2 22, 2008

nginx + glassfish

おそらく世界最速のウェブサーバー”nginx”(エンジンエックス)とGlassfish gemを組み合わせて使う方法。

nginxはロシアで開発されているオープンソースのウェブサーバー。日本では最近ようやく日の目を見始めました。

特徴としては

  • 非常に軽量(使用メモリ約2M)
  • 高速(Apache,lighttpdより若干速い)
  • 優れたProxy 機能(HTTPだけでなく、POP/IMAPなどのproxyも可能)

などがあげられます。ただし、FastCGIのみサポートされ、CGIは動作しません。
Proxy機能を使って、JRuby On Railsのアプリケーションの処理のみをGlassfishに
リダイレクトする方法を紹介します。
(後日、nginxの詳細やインストール方法、thinとの組み合わせなどを書く予定)


nginxの設定ファイル、nginx.confを以下のように設定します。
nginxはport80でリッスンするものとします。


 upstream glassfish {
server 127.0.0.1:3000; #proxyされる先のGlassfishのアドレス
}


server {
listen 80;
server_name <サーバー名>;

access_log <logディレクトリ>/access.log;
error_log <error ディレクトリ>/error.log;

root <Railsアプリケーションルートディレクトリ>/public;
index index.html;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect false;

if (-f $request_filename/index.html) {
rewrite (.\*) $1/index.html break;
}

if (-f $request_filename.html) {
rewrite (.\*) $1.html break;
}

if (!-f $request_filename) {
proxy_pass http://glassfish;
#上記に、upstreamで設定したproxy先を設定
break;
}
}
設定後、syntax checkします。

nginx -t

そして、エラーがなければ

glassfish_rails <アプリケーションディレクトリ>


でglassfishを起動後、

nginx


でnginxを起動。そして


http://<ホスト名>


でアクセスすると、リクエストがGlassfishにリダイレクトされ、Railsアプリケーションが起動します。

Glassfishはフットプリントが大きいので、nginxのようなスモールフットプリントのウェブサーバーと組み合わせれば、限られたリソースのマシンでもうまく動作するでしょう。


水曜日 2 20, 2008

Fastladder on JRuby on Rails

最近オープンソースとなったサーバインストール型のRSSリーダ、OpenFLことFastladderをJRuby on Rails + glassfish gemで動作させてみたいと思います。
OSはubuntuを使用し、Rails 2.0.2およびglassfish gemはインストール済みとします。
またホームディレクトリ上で作業しているものとします。

1.ソースの取得
subversionで最新のソースを取得します

svn co http://fastladder.googlecode.com/svn/trunk/ fastladder


2. 必要なgemのインストール、およびライブラリのインストール

sudo gem install rfeedfinder
sudo gem install feed-normalizer
sudo gem install opml
sudo apt-get install libfreeimage3


3.DB用の設定と作成


本当はJavaDB(Derby)を使いたかったのですが、うまくいかなかったので、今回はMySQLを使用します。
そのためactiverecord-jdbcmysql-adapterをインストールし、databese.ymlを編集します。

sudo gem install activerecord-jdbcmysql-adapter
でactiverecord-jdbcmysql-adapterをインストール。続いて~/fastladder/fastladder/config/database.ymlを下記のように編集します。

development:
  adapter: jdbcmysql
  database: fastladder_development
  user: ユーザ名
  password: パスワード

 
rakeタスクでdbの作成を行います

rake db:migrate

4.CrawlerとGlassFishの起動


cd ~/fastladder/fastladder
script/crawler > /dev/null &
cd ..
glassfish_rails  fastladder

5. ブラウザでアクセス


ブラウザで

http://<ホスト名>:3000


にアクセスすると、サインアップフォームにリダイレクトされ、サインアップすればFastladderを使うことができます。


パフォーマンス的にも体感的にはhinやmongrelと比べても問題のないレベルだと思われます。
Ruby On Railsのアプリケーションでもdatabase.ymlを修正してあげれば、このようにJRubyで動作させることは非常に簡単に行えます。

About

Tomo

Search

Archives
« 4月 2014
  
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
   
       
今日