2008年 7月 01日 火曜日 |
jruby-users.jpができました English Translation: (Yahoo!) / (Google) 先週木曜日、用賀で行われました、JRubyセミナーの後、Charles Nutterを囲んで打ち上げのときなんだかJRubyコミュニティーを作ろうとか、そういう話になり、その場でjruby-users.jpというドメインを取得してみたり。その後、具体的にどう進めようと話していたかは覚えていませんでしたが、野澤さんがささっと、ホスティングサービスを設定してくださったおかげでとりあえずトップページが出来上がりました。 ![]() とりあえず出来上がったのはいいのですが、まだノープランということで、コンテンツも何もありません。うーむ(そういえばグラジェーもまだまだ少ないし・・・)。せめてTopページぐらいはぱっとしてほしいなあ、なんて思わなくもないので、勝手にデザインコンペを始めて見ようと思います。一つ目の案です。こんなのどうでしょう。 ![]() Yokoso! jruby-users.jpって感じです。どこかでみたことあるようなないような。Dukeとお魚を描いたのに、肝心のルビーを忘れています。大失敗。 RubyKaigi 2008に行ってきました English Translation: (Yahoo!) / (Google) 去年参加してすっかりRuby、というより、RubyKaigiの空気感が大好きになったので今回もワクワクしながら参加してきました。そして、今年もその期待を裏切らない楽しさ。 ![]() HotSpot Server VMによる最適化の効果を実演するCharles。残念ながら寝坊のため前半聞けずorz ![]() サンの展示ブース。多目的ホールの入り口に場所をいただき、NetBeans、GlassFish、Solaris on Sunサーバのパネル、それにJRuby Tシャツを展示しています。JRuby Tシャツ売ってないの? と、言っていただいた方もいらっしゃったんですが残念ながら非売品です。 ![]() GlassFishな高井さん(土曜日)。日曜日はスーツコスプレでした。 ![]() エンタープライズRubyの発表。大場さんとの掛け合いがばっちりでした。たしかニコニコ動画に動画でアップされていますが、今年は高井さんのくねくねっぷりがみれませんでしたねえ。残念。 ![]() あと、会場で売られていたRails本で、Ruby on Rails 逆引きクイックリファレンスを買って、しかも著者3名の方にサインをいただきました。ヤッター! ![]() 懇親会。なんか、内容が難しすぎて会話に入れません・・・。Rubyソースコード完全解説ぐらいは読んでからじゃないとコアな話の片鱗すらわからないかも・・・。 ![]() YoshioriさんのRejectKaigi向けCall for Paper。 ![]() RejectKaigiもRejectされてRejectRejectKaigiで話されてました。最近テレビとか全くみないのでお笑い動向とかよく知らなくて、これの元ネタもよくしらないんですが、かなり笑えました。 ![]() たくさんのコメントがついたボード。おつかれさまでした! Ruby/JRuby関連イベント English Translation: (Yahoo!) / (Google) 今月はRuby会議 2008がある、ということもあってRuby/JRuby関連のイベントが盛りだくさんです。
いっぱいあるのでカレンダーにまとめてみました。無駄にイラレで描いてみたんですが、flickrに載せるとjpgになってしまうこともあって色とかぐだぐだです。結局カレンダーにしてもわかりやすくなかったので、ちゃんと文字で載せておきます (^^ゞ 今月の2時間で学ぶJava Hot Topicセミナー 6月号いつもの通り、Sun用賀本社にて18:30よりスタートします。今回 JRubyでは高井さん、もう一つのトピックはSIPサーブレットとProject SailFinについて寺田さんより。暮しの手帖シリーズと並んで、〜〜パワーアップがシリーズ化されるかも密かに期待です。参加は無料ですが登録制となっておりますので、イベントページよりご登録ください。JRuby が俺にもっと輝けと囁いている —— JRuby と DSL で Java をパワーアップ!伊藤忠テクノソリューション株式会社 高井 直人 (たかい なおと)JRuby に興味はあるけど、なかなか手が出せないという方も多いのではないでしょうか。JRuby は Web アプリケーションばかりではなく、開発のさまざまな場面で役に立つツールとして活用できます。今回は、開発ターゲットに合わせた DSL (ドメイン固有言語)を JRuby を使って作成し、Java による開発に役立てる手法を紹介します。 GlassFish の新星 SailFin —— Java で通信系のサービスもパワーアップ!Java エバンジェリスト 寺田 佳央(てらだ よしお)IP 電話やインスタントメッセージなどの通信系のアプリケーションを作ってみませんか。HTTP プロトコルに類似した SIP を使うと、Web アプリケーションのアナロジーで通信系のアプリケーションが開発できます。このときに重要な働きをするのが SIP サーブレットのコンテナ。このセッションでは GlassFish のサブプロジェクトで人気急上昇中のコンテナ SailFin についてデモを交えながら熱く語ります。 JRuby の最新動向と NetBeans, GlassFish, Solaris on Sun サーバこちらは、JRubyの最新動向はもちろん、その周辺ツール、アプリケーションサーバ、SolarisとSunサーバと、実行スタックの上からしたまでずずいと紹介しようと言う欲張りなセミナーです。こちらも参加は無料ですが、登録制となっていますので下記イベントページよりご登録のうえご参加ください。ちなみにこのセミナーでは岡崎もGlassFishとRubyの関係についてご紹介しますが、資料はこれから作りますので (^^ゞリクエストをこのブログエントリのコメント欄なんかに書いていただければ最大限取り入れるようにしようと思います。なにかGlassFish + Rubyでのトピックで気になるところがあれば。 NetBeans 6.1 で加速する Ruby on Rails 開発JRuby エバンジェリスト 野澤 智(のざわ とも)Java の開発環境としてだけではなく、(J)Ruby の開発環境としても有効な NetBeans 6.1。Ruby on Rails の開発での gem やプラグインの管理、rake タスクの実行、デバッグ、スニペットなど、NetBeans6.1 の特徴をご紹介いたします。NetBeans 6.1 を使うことでよりアジャイルに開発を加速します。 GlassFish で安心、エンタープライズ RubyJava エバンジェリスト 岡崎 隆之(おかざき たかゆき)GlassFish は Java EE だけのアプリケーションサーバだと思っていませんか?実は GlassFish では JRuby を使って Ruby on Rails 実行環境を構築できるだけでなく、クラスタ環境などへの配備もサポートしています。ミッションクリティカル環境で使われている GlassFish の安心感をエンタープライズ Ruby でもご堪能ください。 JRuby 最新動向米国サン・マイクロシステムズ社 Charles Nutter, Thomas Enebo(J)Ruby on Rails Tuning TipsSolaris エバンジェリスト 河原 一哉(かわはら かずや)(J)Ruby on Rails でアプリケーションを構築する際の Tuning Tips をご紹介いたします。Web サーバの設定、データベースサーバの設定、OS のチューニング、アプリケーションのボトルネック解析など、さまざまな角度からチューニングを行うノウハウをご紹介いたします。 RAILS OF RUBY ON RAILSを買ってきた English Translation: (Yahoo!) / (Google) Nozawaさんのブログを見て思い出しました。前から買おうと思っていたのに忘れていた本、「
Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~ Rubyは今までもコマンドラインでテキスト整形などに使っていましたが、実はRailsってほとんど触ったことがありません。ほとんど、というか、Scaffoldさえ触っていません・・。NetBeansのRuby/Rails機能を使っているのでそんなRails初心者の僕にうってつけの本です。 日替わり実験室: JRubyとグラフィックス English Translation: (Yahoo!) / (Google) JRubyのデモでは多くの場合、Javaとの親和性をデモンストレーションするためにSwingとの連携が披露されますが、実際にやってみると、JavaでSwingを書くのと同じ記述量が必要なのであまりうまみを感じません・・・。たぶん、フレームの作成とか、パネルの配置とかはJavaでNetBeansなりを使って書いて、スクリプトで書きたい一部分だけをJSR-223を使って呼び出すのが賢いやり方なのでしょう。
しかしながら、それでも負けずにコンソールからJRubyだけを使ってグラフィックスを使ってみることにしました。Swingだけだとおもしろくないので、今回はTimingFrameworkも使っています。 Java標準以外のライブラリをJRuby実行時に指定するには環境変数CLASSPATHにそれを入れておけばよいだけのようです。 $ export CLASSPATH=$CLASSPATH:~/Library/Java/timingframework/TimingFramework-0.54.jarなお、Java SE 6のAPIを一部使っていますので、Java SE 6が使われるようJAVA_HOME環境変数を設定しておきましょう。Macなら次のような感じです (Java SE 6はApple Developer Conenctionからユーザ登録をして事前にインストールしておきます)。 $ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Homeこんな感じで指定すればよいでしょう。ではいきなりですがコーディングです。
#!/usr/bin/env jruby
require 'java'
include_class 'java.awt.Color'
include_class 'java.awt.Graphics'
include_class 'java.awt.geom.Path2D'
include_class 'javax.swing.JPanel'
include_class 'javax.swing.JFrame'
include_class 'org.jdesktop.animation.timing.TimingTargetAdapter'
include_class 'org.jdesktop.animation.timing.Animator'
def draw_suncurve(g, w, h, c)
s = Path2D::Float.new
s.move_to(0, 0)
s.line_to(w, 0)
s.curve_to(w, 0, w - h / 10, h / 4, w, h / 2)
s.curve_to(w, h / 2, w + h / 10, h * 3 / 4, w, h)
s.line_to(0, h)
s.line_to(0, 0)
g.set_color(c)
g.fill(s)
s
end
class SunCurveAnimator < TimingTargetAdapter
attr_accessor :panel
def begin
g = @panel.get_graphics
g.set_color(Color::WHITE)
g.fill_rect(0, 0, @panel.get_width, @panel.get_height)
end
def timingEvent(f)
draw_suncurve(@panel.get_graphics,
(@panel.get_width - @panel.get_height / 10) * f,
@panel.get_height, Color.new(231, 111, 0))
end
end
class FrameExecutor
include java.lang.Runnable
def run
panel = JPanel.new
frame = JFrame.new('Sun Curve')
frame.set_default_close_operation javax.swing.WindowConstants::EXIT_ON_CLOSE
frame.set_size 800, 600
frame.get_content_pane.add panel
frame.set_visible true
sca = SunCurveAnimator.new
sca.panel = panel
a = Animator.new(2000, sca)
a.set_acceleration(0.2)
a.set_deceleration(0.2)
a.start
end
end
javax.swing.SwingUtilities.invoke_later FrameExecutor.new
では実行です。
はい、実行されました。なお、JRubyのデモンストレーションでは手間を省くために、しばしばJFrameをメインスレッドから起動していますが、Swingのスレッド扱いの流儀からSwingUtilities#invokeLaterを使うのが本筋でしょう。 日替わり実験室: JRubyとGEM English Translation: (Yahoo!) / (Google) この間の土日に行われたRuby会議2007で見聞きしたことを早速手元で試そうと、最近、いろいろとRubyをさわっているところなのですが、Javaとの連携も試したいのでJRubyを中心にさわっています。Ruby会議で興味を持ったのは朴 芝印さんが発表されたHpricotというHTMLパーサです。
これを使うと、Webスクラッピングなんかも簡単にできるとのこと。今までPerlを使ってちょっとしたHTMLの整形とかをやっていたのでこれには興味津々です。早速、JRubyで使ってみよう!、ということで gem (JRubyには最初からgemがついています)でHpricotをインストール・・・。と、思ったのですが早速つまずいてしまいました。インストールに失敗してしまいます。 最終的には片貝さんからにたまごほうれん草: JRubyでgemという日記に解決策が載っているということを教えていただきインストール完了です。 では早速、あるWebページからリンクだけ取ってくるというスクリプトを作ってみます。
#!/usr/bin/ruby
require 'rubygems'
require 'hpricot'
require 'open-uri'
events = Hpricot(open('http://jp.sun.com/company/events/').read)
(events/'a[@href]').each { |a| p a.attributes['href'] }
こんな感じですね。だいぶ楽ちん。
Ruby会議2007, 2日目の日曜日 English Translation: (Yahoo!) / (Google)
Jimさんも大絶賛のRuby会議2007の二日目の様子です。二日目は初日に比べればやや空席が目立ちましたがそれでも会場の熱気と一体感は一日目以上でした。
今回のRubyKaigiは最後のDaveさんによるキーノートがうますぎた(?)ということもあり、IT系のイベントでは少なくともここ6年以上の中ではもっとも、感動的なイベントでした。Daveさんのプレゼンテーションの後にはスタンディングオベーションも。
このパワーには本当に圧倒されるだけでなく、見習いたいところが本当にたくさんたくさんありました。 さて、話は変わって晩ご飯は今回、Tim Brayさん、Charles Nutterさん、Tomas Eneboさんらとしゃぶしゃぶを食べに行きました。
うーん、さすが。皆さんよく食べます。ところで、Timさんは電気屋でカメラをいろいろみてきたそうで、しかもRICOHのGR DIGITALとCaplio GX100が気になっていたとのこと。
(Photo by Tim Bray, by using Okazaki's GX100) Ruby会議2007, 1日目の土曜日 English Translation: (Yahoo!) / (Google) Ruby会議2007の一日目が終わりました。Ruby会議の内容は速報ログが随時更新されているようで、詳細な内容はそちらを参照していただくとして、個人的な感想をいくつか。
とても活気がある400人はいる会場がいっぱいになるほどの人で、画面にはIRCのログが映し出されていて会場(あるいは会場外から)のつっこみがリアルタイムではいるという感じでした。年齢層が若い年齢層も、Javaやそれ以外のイベントよりもかなり若いという印象がありました。若いから活気があるのか、活気があるから若いのかはよくわかりませんが。どなたもプレゼンがうまいどのプレゼンを見てもユーモア感たっぷりで、しかも、要点がわかりやすい。また、IRCからのつっこみにもうまく対応されているということで、技術系のイベントのなかでもかなりレベルの高いセミナーだったと思います。
セミナーの後は懇親会が行われました。
ミーハーなのでTim Brayさんと写真を撮ってもらいました。 Ruby会議2007 English Translation: (Yahoo!) / (Google) 今週末に行われるRuby会議2007に行けることになりました。Rubyというと、7〜8年前に何かの雑誌で見て、お!?これは!!と思っていましたがこれほどまでに盛り上がってくるとは予想もしていませんでした。当時、すでにPerlに手を染めていたのでもったいないことにRubyistになれませんでしたが、最近はちょっとしたスクリプトを書くときにもなるべくRubyを使うようにしています。
こういうちょっとしたスクリプトは1日ひとつぐらいは書くので、この調子で続けていけば3ヶ月ぐらいすればなんとか文法も身についてきそうです(まだ2〜3週間しか続けていませんが)。 |
Today's Page Hits: 581 |