日曜日 6 08, 2008

JRuby1.1 performance : single thread/multi threads vs. cRuby1.86 / 1.9

JRubyのパフォーマンス:cRuby1.86 / 1.9 とのシングル/マルチスレッドでの比較

[Summary] Koichiro and Naoto,  who are JRuby "Japanese leaders", wrote out an article with results of   benchmarking test of single/multi thread performance for JRuby1.1 vs. cRuby 1.8.6 / 1.9 !  To summarize, CMT technology with Sun SPARC Enterprise T5220 contributes throughput of multi thread processiong for JRuby. Great Job, thanks Koichiro and Naoto!!

(Translate to English)

うっかりして見落としていました。"Japanese JRuby Guy" こと大場光一郎&高井直人コンビの非常に興味深い記事が”まるごとRuby! Vol.1"(インプレスジャパン刊)に掲載されました。目次によれば、

■特集2 輝く2つのRuby
――最先端Ruby 1.9と高性能JRuby 1.1
 Part 1 JRuby 1.1の性能測定も実施!
JavaとRubyの融合世界! JRuby入門 
[大場光一郎/高井直人]
 Part 2 速さも機能も段違い
ここがスゴい! 新世代Ruby 1.9
[後藤謙太郎]

となっています。”JRubyの性能”として章の中で、非常に興味深いベンチマークテストと考察を行っています。主なところを書き出すと以下の通り。

JRuby 1.1では、少なくともRuby 1.8.6と同等かそれよりも速いくらいの実行性能を得られます。項目によっては、Rubyのバージョン 1.9.0よりも速いものもでてきています。

いやぁ〜、ここまで言うとは。ちょうど、近々来日するCharles Nutter と本日、チャットをしていたのですが、この話をしたら、非常に喜んでいて、向こうで鼻息荒くしている様子も感じとれました(本当か?)。 ますます、ヒートアップするか? Charlie vs. Ko1 の”スピード競争”!!(「若気の至り」という話もありますが。。(某氏曰く))

Ruby と JRubyのベンチマーキング

多体問題を解くプログラムを実行した際の性能を Ruby処理系ごとに比較してみましょう。それぞれの処理系には得意な処理と不得意な処理があり、このベンチマークテストが全体の傾向を決定するわけではありませんが、JRubyが十分速い場合があるということがわかります。図5を見てください。このケースでは、JRuby RC3の実行性能は、Ruby1.8.6 よりもずっと優れています。さらに、Ruby 1.9.0 よりも性能が良いという結果になっています。

図5がお見せできなくて残念ですが(掲載誌を購入してください(笑))、たしかにこのケースでは1.9.0 といい勝負をしているようです。さて、次にいよいよ、マルチコアでの勝負!!

マルチコア環境での性能

JRuby が他の Ruby処理系よりも圧倒的に優れているのが、マルチコアプロセッサ環境の性能です。JRuby では、Javaのスレッド機構をうまく利用しているので、処理系全体をロックすることなしにネイティブスレッドでの並列実行が可能になっています。

.....(中略).....

テスト用サーバ機器として「Sun SPARC Enterprise T5220」を用意しました。このサーバは 8 コアのUltraSPARC T2プロセッサを搭載し、同時に64スレッドを実行できます。

なんと、T2のマシンでやるとは!!スバラシイ!!


......(中略).....

興味深いのは、シングルスレッドのときにはRuby 1.9 のほうがJRuby よりも速く処理が終了しているのに対して、スレッド数が増えるにつれて JRubyのほうがより短時間で処理が完了している点です。

JRubyであればスレッド数を増やしていくことでマルチコアのCPU を搭載したマシンの性能をあますことなく活用できます。今後、ますますマルチコアプロセッサを搭載したマシンが利用されていくことを考えると、JRuby が活躍する場面は増えてくるのかもしれません。

掲載されているグラフを見ると、コア数(この場合は8)までは、非常に良く、性能が伸びています。その後、CMT特有のマルチスレッディングに関しては、JRuby の今後のエンハンスによって性能が伸びていくことになるのでしょう。今回、テストに使われたソースは次の通りです。

require 'benchmark'

def fib n
  n < 2 ? n : fib(n - 1) + fib(n - 2)
end

Benchmark.bm do |x|
  for i in 1..64 do
    x.report("%2d threads" % i) do
      ts = []
      i.times do
        ts << Thread.fork do
          (64 / i).times do
            fib 10
          end
        end
      end
      ts.each{|t| t.join }
    end
  end
end

Thread.fork にて、スレッドを新規に作成させています。

もう少し細かく、また、他の事項についても紹介したいところですが、そこは掲載誌をご覧ください。ともあれ、大場さん、高井さん、お疲れさまでした!!




水曜日 5 14, 2008

Implementation of an MVM Environment on Ruby and JRuby ( from Feb 27 press release)

Implementation of an MVM Environment on Ruby and JRuby

[Summary] I'm so sorry that I forgot to forward the press release of English version for Ruby related R&D with Tokyo Univ. The press release is here. (Original Japanese version is here)

 

Implementation of a multiple virtual machine (MVM) environment on Ruby and JRuby

A group led by Professor Ikuo Takeuchi at the Graduate School of Information Science and Technology, the University of Tokyo will collaborate with Sun's Tim Bray (Director of Web Technologies) and the members of the JRuby team to implement a multiple virtual machine (MVM) environment on both Ruby and JRuby. The MVM environment is expected to make Ruby programs run more efficiently than was previously possible. The results of the research are scheduled to be open sourced via the broader community of Ruby developers, which could inspire further innovations.

Previously, running more than one application simultaneously on Ruby required multiple interpreters, leading to excessive memory consumption. The proposed MVM environment could generate multiple VM instances on a single interpreter, allowing applications to run more efficiently. The collaborative research aims to clarify such technical issues as the definition of common interfaces for using MVM, parallelization of VM instances and memory sharing, and then to implement technologies that can be used on Ruby and JRuby. While Ruby has already been widely in use in commercial and other environments, the research on MVM will further enhance the performance and utility of Ruby......

more

 

 

月曜日 5 12, 2008

Gartner report : Open Source at Sun Microsystems, 2008

Gartnerのレポート:"Open Source at Sun Microsystems, 2008"

[Summary] Gartner reported Sun's open source strategy. Visit here.

(Translate to English)


Gartner から"Open Source at Sun Microsystems, 2008"なる興味深いレポートがWebにあがっています。 以下、気になる箇所について引用と共に。

まずは現状について:

No other major IT platform vendor has committed so much of its core assets to the open-source software model as Sun Microsystems. Certainly, companies such as IBM, Oracle and BEA Systems have dramatically expanded their own open-source strategies in recent years, but only Sun has literally open-sourced nearly the entire family of products — that is, its intellectual property (IP) — from its operating system to Java.

(超荒訳)

Sunほどコアの資産をオープンソース・ソフトウェア・モデルにコミットしているメジャーなITプラットフォームベンダーはいない。たぶん、IBM, Oracle, BEA Systemsといったところは、数年のうちに劇的に自身のオープンソース戦略を広めていくであろう。しかしSunだけが実際にプロダクト群の殆ど全てを(既に)オープンソース化してしまった------知的財産である、オペレーティング・システムからJavaまで

将来どうなるか、というと:

Of all the major platform vendors (IBM, Microsoft, Oracle, HP and so on), Sun is best-positioned to drive the integrated open-source "stack" into the mainstream. Its success and challenges will provide the reference points by which other vendors will measure their own commitments in coming years.

(超荒訳) 

IBM, Microsoft, Oracle, HPなどメジャーなプラットフォーム・ベンダー全ての中で、Sunは統合されたオープンソース”スタック”をメインストリームへと推進する”ベスト・ポジション”にいる。 Sunの成功と挑戦は他のベンダーが数年内に自らがコミットする範囲のリファレンス・ポイントとなるだろう。

最後にユーザへの”お薦め”として

  • Understand that investments in Sun products and services will include a commitment to a wide range of open-source technologies as well.
  • Carefully monitor Sun's investments and initiatives in open source to collect insights into its future directions.
  • Monitor Sun's momentum as it endeavors to establish a success story around the synergy of open source and its commercial software and hardware efforts.
(超荒訳)
  • Sunの製品とサービスが広範囲にわたるオープンソース技術へのコミットを含んでいることを理解すること
  • 将来の方向性を深く知り得るためのオープンソースへの投資とそこでのイニシアチブを注意深く見ていくこと
  • オープンソースと商用ソフトウェア、それに加えてハードウェアのシナジー効果によるサクセス・ストーリーを作り上げる活動をしているSunの勢いを見ていくこと

「オープンソースでどうやってビジネスをするんだ!」との疑問に直接答えてくれているわけではないですが、あのGartner がSunをITベンダー界におけるオープンソースのリーダーとして認めてくれた、、というのは、価値があることだと思います。


 

土曜日 5 10, 2008

(for Windows user ) The easiest way to use Ruby on Rails with MySQL : NetBeans6.1 !

Windows ユーザのための「Ruby on Rails をMySQLと共に、最も簡単にインストール/開発環境構築」編

[Summary] Many of developers seems to want to try "Ruby on Rails with MySQL". For windows users, there is the easiest way ---- just install "NetBeans IDE 6.1 with Glassfish and MySQL Bundle". Enjoy RoR life!! :-)

(Translate to English)

片貝さんがMac版のを紹介済みですので、未だに日本人の大部分を占めるWindowsユーザのため、MySQL/GlassFishバンドルインストーラ付属NetBeans6.1をWindows XP にインストールしてみました。

 

step1

インストーラーをスタート


step2 

GlassFish の管理passwordを入れ


step3 

MySQLのroot passwordを入れると


step5 

インストールが開始され、何事もなく終了

 

step7

 WindowsのメニューにMySQLも入ります。

 

MySQL 

次にNetBeansを立ち上げ、"Services"タグからMySQLをスタート

 

GlassFish 

同様にGlassFishもスタートさせることが可能


MySQL 

mysqladmin コマンドで動作を確認


GlassFish 

次に http://localhost:8080 でglassfish が動作しているのを確認


step8

NetBeansからはこのように確認できます。


Ruby_C

さて、RoRの話に戻ります。NetBeans6.1ではRoRを"File"メニューの"New Project"から選んで簡単に作成できるわけですが、途中、上の図のようにRubyインタプリタを選ぶ箇所があります。私の環境では、MRIこと(c)Ruby とJRuby の両方を選べるようにしてありますが、NetBeans では初めからJRubyインタプリタがついてきて、別個にRubyやRails環境を構築����る必要はありません。


mysql

Database を選択する箇所では、MySQLがそのまま選択できるのが、とても幸せです。つまり、Ruby同様、MySQL環境を別個に構築する必要がないわけです。


openssl

ただし、ディフォルトのJRubyの場合、画面のようにOpenSSL のインストールを忘れないでください。


password

一連の入力が終わると、Railsのファイルが一気に生成されますが、database.yml のソースが開かれます。ここでpasswordフィールドに、MySQLインストール時に設定したpasswordをセットする必要があるので(mysqlのrootユーザで利用する場合)、必要に応じてソースを修正します。

 

run_normal

run してみましょう。passwordが正しくセットされ、MySQLにきちんと接続できれば、環境情報を取れるはずです。

 

run_error

一方、passwordや設定が何か間違っていると、上の図のようにエラーメッセージの嵐になります。

 

NetBeans6.1 の(MySQL + glassfish)バンドル版は、(多くの場合)Ruby, Rails, MySQL を今まで別々にインストールしていた手間を考えると、RoRを始めるのがすばらしく簡単になっています。もちろん、既にcRubyの環境を持っていても、問題なく環境を取り込めます。

 流行の"Ruby on Rails"を自宅でこっそりと動かしてみたい方も、是非、お試しください!

 


金曜日 5 09, 2008

Tim said "I love Ruby/JRuby" at the interview by Japanese media

"やっぱり好きなのはRuby/JRuby" by Tim Bray

 

[Summary] Tim Bray was interviewed by Japanese media. The article is here ( yes, it is written in Japanese ! )

(Translate to English)

マイコミジャーナルより。Tim 曰く、

コミュニティはテクノロジを評価する上で非常に重要なポイントだと考えている。RubyおよびRailsのコミュニティは非常に大きく、そしてフレンドリーだ。Rubyを始めようとしたときや、何かわからないことがあったときには、すぐに良いアドバイスをくれる

 
 

水曜日 5 07, 2008

RFacebook bugs : Error messages from Facebook with Ruby on Rails

Ruby on Railsからのエラーメッセージ@Facebook

[Summary] I happened to see bugs at Facebook. It is really built with Ruby on Rails. This is an evidence :-)

(Translate to English)

Facebook はちゃんとRuby on Rails で動いています。誰でもわかります。バグメッセージが、

Please report RFacebook bugs here.

 ですから。。証拠は下のスクリーンショット。

 

matz and Jruby
 

エラーだけを表示すると以下の通り:

undefined local variable or method `request' for #

attribute_methods.rb:205 in method_missing_without_original
/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:205:in `method_missing_without_original'
acts_as_modified.rb:212 in method_missing
/vendor/plugins/acts_as_modified/lib/acts_as_modified.rb:212:in `method_missing'
application_helper.rb:124 in is_https?
/app/helpers/application_helper.rb:124:in `is_https?'
application_helper.rb:59 in profile_image_path_for_user
/app/helpers/application_helper.rb:59:in `profile_image_path_for_user'
user.rb:1216 in set_facebook_profile_box
/app/models/user.rb:1216:in `set_facebook_profile_box'
facebook_controller.rb:13 in index
/app/controllers/facebook_controller.rb:13:in `index'
base.rb:1158 in send
/vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `send'
base.rb:1158 in perform_action_without_filters
/vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `perform_action_without_filters'
filters.rb:697 in call_filters
/vendor/rails/actionpack/lib/action_controller/filters.rb:697:in `call_filters'
filters.rb:725 in run_before_filters
/vendor/rails/actionpack/lib/action_controller/filters.rb:725:in `run_before_filters'
benchmark.rb:293 in measure
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
filters.rb:483 in call
/vendor/rails/actionpack/lib/action_controller/filters.rb:483:in `call'
filters.rb:483 in call
/vendor/rails/actionpack/lib/action_controller/filters.rb:483:in `call'
filters.rb:722 in run_before_filters
/vendor/rails/actionpack/lib/action_controller/filters.rb:722:in `run_before_filters'
filters.rb:695 in call_filters
/vendor/rails/actionpack/lib/action_controller/filters.rb:695:in `call_filters'
filters.rb:689 in perform_action_without_benchmark
/vendor/rails/actionpack/lib/action_controller/filters.rb:689:in `perform_action_without_benchmark'
benchmarking.rb:68 in perform_action_without_rescue
/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
benchmark.rb:293 in measure
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
benchmarking.rb:68 in perform_action_without_rescue
/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
rescue.rb:199 in perform_action_without_caching
/vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in `perform_action_without_caching'
caching.rb:678 in perform_action_without_apache_combined
/vendor/rails/actionpack/lib/action_controller/caching.rb:678:in `perform_action_without_apache_combined'
query_cache.rb:33 in cache
/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
query_cache.rb:8 in cache
/vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
caching.rb:677 in perform_action_without_apache_combined
/vendor/rails/actionpack/lib/action_controller/caching.rb:677:in `perform_action_without_apache_combined'
response_management_additions.rb:86 in perform_action
/lib/response_management_additions.rb:86:in `perform_action'
base.rb:524 in send
/vendor/rails/actionpack/lib/action_controller/base.rb:524:in `send'
base.rb:524 in process_without_filters
/vendor/rails/actionpack/lib/action_controller/base.rb:524:in `process_without_filters'
filters.rb:685 in process_without_session_management_support
/vendor/rails/actionpack/lib/action_controller/filters.rb:685:in `process_without_session_management_support'
session_management.rb:123 in process
/vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in `process'
base.rb:388 in process
/vendor/rails/actionpack/lib/action_controller/base.rb:388:in `process'
dispatcher.rb:171 in handle_request
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in `handle_request'
dispatcher.rb:115 in dispatch
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in `dispatch'
dispatcher.rb:126 in dispatch_cgi
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi'
dispatcher.rb:9 in dispatch
/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in `dispatch'
rails.rb:76 in process
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel/rails.rb:76:in `process'
rails.rb:74 in synchronize
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel/rails.rb:74:in `synchronize'
rails.rb:74 in process
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel/rails.rb:74:in `process'
mongrel.rb:159 in process_client
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:159:in `process_client'
mongrel.rb:158 in each
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:158:in `each'
mongrel.rb:158 in process_client
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:158:in `process_client'
mongrel.rb:285 in run
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:285:in `run'
mongrel.rb:285 in initialize
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:285:in `initialize'
mongrel.rb:285 in new
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:285:in `new'
mongrel.rb:285 in run
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:285:in `run'
mongrel.rb:268 in initialize
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:268:in `initialize'
mongrel.rb:268 in new
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:268:in `new'
mongrel.rb:268 in run
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel.rb:268:in `run'
configurator.rb:282 in run
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel/configurator.rb:282:in `run'
configurator.rb:281 in each
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel/configurator.rb:281:in `each'
configurator.rb:281 in run
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel/configurator.rb:281:in `run'
mongrel_rails:128 in run
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/mongrel_rails:128:in `run'
command.rb:212 in run
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.3/bin/../lib/mongrel/command.rb:212:in `run'

mongrel_rails:19 in load
/usr/bin/mongrel_rails:19:in `load'

 

火曜日 5 06, 2008

Matz and Ruby Community in Bay Area

Matz and Ruby community traveled for Bay Area last Feb

[Summary] Sorry for delayed report:  Matz and Ruby Community came to Bay Area and had some interesting visits, meetings, TechTalks, etc. During golden week ( Japan's long vacation period from end of April to begin of May), I cleaned my room and PCs, and I found interesting photos. :-)

(Translate to English)

2月下旬、"Matz"こと"まつもと"さんや松江市を中心としたRuby community の皆さんが、西海岸を訪問。昨年に引き続き、Sunの本社にも寄っていただきました。既に"Matzにっき:2/19"にて本人が書いていますが、XMLのパパ、JRuby 兄弟らと共に話の場を持ちました。まつもとさんには、翌日のTechTalk@Google の予行演習を兼ねて(?)、Debianの創始者やSunのエンジニアの前で話をしていただきました。

 連休中、部屋やPCの整理をしていたら、写真がでてきましたので、公開しちゃいます。

 

matz and Jruby
 (Matzのトークに聞き入るJRuby 兄弟(それと私も:-)) )

 

 

(Ruby Communityのみなさん。後方にはSunのエンジニアとともに、Debianの創始者も!!)

 

火曜日 3 04, 2008

Guys for another Dynamic Language --- Sun for Python!



2人のPythonエンジニアがSunに入社!!

[Summary] Frank Wierzbicki of the Jython project and Ted Leung of OSAF (and a bunch of other stuff) to help with the Python story at Sun. JRuby, MySQL, then Jython/Python!!

(Translate to English)


JRubyに続いて、今度はJython/Python のエンジニアがSunに集合です。

Sunの"The Official Site for Breaking News and the Latest Information from Sun"に書いてありますが、Pythonの中心人物であるTed LeungJython の中心人物のFrank WierzbickiがSun に3月3日付で入社しましたっ!!

各々のblogでそのあたりを述べています。Ted はここ。Frank はここ

新しい波である、Dynamic Language にSunは本気であることがご理解いただけると思います。先日のMySQLの買収完了に続き、新しい時代のシステム・アーキテクチャに果敢に挑戦するSunです。Javaという技術を生かしながら。

木曜日 1 10, 2008

R&D with Tokyo Univ. : Multiple VM for Ruby and JRuby


東大との共同研究活動を開始:「Fortress上でのスケルトン並列プログラミング手法に基づいたライブラリ開発」と「RubyとJRubyでのマルチVM(MVM)環境の実現」

[Summary] News for Rubyist! Sun Japan delivered the press release that The University of Tokyo and SMI have selected two topics and commenced collaborative research, based on the joint development agreement that was signed in June 2005 to establish a new university-corporate collaboration model. One is about Fortess. Another is about MVM for Ruby and JRuby.
(Translate to English)


新年立て続けに出るニュースリリース。 今回は東大との共同研究。Ruby に関しての箇所を抜き出してみました。

     国立大学法人東京大学(総長:小宮山 宏、以下東京大学)とサン・マイクロ システムズ株式会社(本社:東京都世田谷区、代表取締役社長:末次 朝彦、以 下サン)は、新しい産学連携モデルの確立を目指して2005年6月に締結した共同 研究に係る協定書に基づいて2つの研究テーマを決定し、具体的な共同研究に着 手したことを本日発表します。今回の共同研究は、東京大学の価値創造型産学連 携共同研究立案スキーム「Proprius21(プロプリウス21)」を利用して創出され た最初の海外共同研究となります。
     この度、研究を開始したテーマは、次の2つです。

       ① 「Fortress上でのスケルトン並列プログラミング手法に基づいたライブラリ開発」
       ② 「RubyとJRubyでのマルチVM(MVM)環境の実現」
<中略>
    ■ RubyとJRubyでのマルチVM(MVM)環境の実現

       東京大学 大学院情報理工学系研究科 竹内郁雄教授のグループと、米国サン のティム・ブレイ(Director of Web Technologies)およびJRubyのメンバーと の間で、RubyおよびJRuby上でのマルチVirtual Machine (MVM)環境の実現を目指 します。MVM 環境の実現によりRubyプログラムがさらに効率的に実行できること が期待されます。この成果はオープンソースとして公開を予定しており、他の Ruby開発者も含めたコミュニティへと環流するのとともに、更なるイノベーショ ンを生む素地になることが期待されています。
       従来、Rubyで複数アプリケーションを実行すると複数のインタプリタを起動し てしまい、メモリ消費量などに問題がありました。今回共同開発するマルチVMで は1つのインタプリタ上に複数のVMインスタンスを生成することで効率的な実行 を実現します。本共同研究は、MVMを利用するための共通インターフェースの策 定やVMインスタンス間での並列化やメモリ共有など、複数のVMインスタンスの取 り扱いについての技術的課題を明らかにしたうえで、実際にRubyおよびJRubyで 利用できる技術の実現を目指します。商用を含め、さまざまな環境で利用されて いるRubyにおいて、このMVMの研究はさらなる性能や利便性の向上に寄与するこ とになります。
       なお、当共同研究開発の期間は2009年 9月末までの計画で、サンは当初1年間 分の予算として10万ドルを拠出します。サンのJRubyチームと竹内教授のグルー プを研究開発の中心として、さまざまな研究者及びプログラマの関与を促す予定 です。
<後省略>

金曜日 12 28, 2007

KRI: Ruby1.9.0 vs. JRuby1.1 -- Ruby Dead Heat!!


Ruby1.9.0 vs. JRuby : 宿命の(?)スピード対決

[Summary] Kazuya who is working with me did "Ruby1.9.0 vs. JRuby1.1" benchmarks which Charles provided with JRuby1.1 Source. The result is interesting. See this.
(Translate to English)


Sun Japan でWeb2.0系を主にやっている河原君が、Ruby1.9.0 とJRuby1.1b のスピード競争をしてみました。特にオプションもつけず、make時のコンパイルオプションもそのまま。結果だけをみると、

フィボナッチはRuby1.9.0 の勝ち。string オペレーションはJRuby1.1 の勝ち。

いろいろと異論はあるでしょうが、まずは、そくっとやってみた結果です。詳細はこちらをご覧ください。この続きは年明けに。

Ruby 1.9.0 Released and Runs on Solaris10


Ruby1.9.0リリース。Solaris10で動きますっ!!

[Summary] Ruby 1.9.0 was released. Matz, Ko1 and Ruby community, great job!! I downloaded the source and built it. It is running on Solaris 10.
(Translate to English)


予定より遅れること数分(笑)、Ruby1.9.0がリリースされました。まつもとさん、ささださん、そして、コミュニティの皆さん、本当にお疲れさまでした。

さて、ワタクシも、ちと、使ってみようと、source をdownload して、make してみました。ターゲットは・・・・Solaris10!!。そりゃ、Sun の社員ですもの。以下が証拠となります。test も通過。無事に稼働しているのであります。






日曜日 12 16, 2007

JRuby 1.0.3 Released


JRuby 1.0.3がリリースされました

[Summary] JRuby 1.0.3 was released and can be downloaded now!!
(Translate to English)


JRuby 1.0.3 が正式リリースとなりました。core developer の一人である、Thomas Enebo のblogJRubyの本家blogにて発表されました。
ハイライトととしては、mongrelを含むシグナル・ハンドリングに関する修正とか、28に及ぶ問題点---この中にはRails2.0、YAML、JVM 等に関するものが修正されています。

さて実際に、http://dist.codehaus.org/jruby/より、jruby-bin-1.0.3.zip をダウンロードして展開し、$JRUBY_HOMEを指定してみます。私の環境では以下の通りです。
    foxtrot:~/Ruby_dev/jruby-1.0.3 shita$ echo $JRUBY_HOME
    /Users/shita/Ruby_dev/jruby-1.0.3
    foxtrot:~/Ruby_dev/jruby-1.0.3 shita$ which jruby
    /Users/shita/Ruby_dev/jruby-1.0.3/bin/jruby
    foxtrot:~/Ruby_dev/jruby-1.0.3 shita$ jruby -v
    ruby 1.8.5 (2007-12-15 rev 5200) [i386-jruby1.0.3]
    foxtrot:~/Ruby_dev/jruby-1.0.3 shita$
はい、これで安定板JRubyの最新版である、1.0.3 が使えるようになりました。皆さんも、是非、試してみてください!!

土曜日 12 08, 2007

@Ruby City Matsue : Java/JRuby for Shimane Univ. and OSS community


事後報告:松江での講義とセミナー・・JavaとJRuby とルビーの街!!

[Summary] I made a couple of presentation at Matsue which is the home town of Ruby where Matz lives. One was for students at Shimane Univ. with Java history and JRuby. Another was for Open Software Society Shimane. At the the third photo, you can recognize Matz was there. Look for Matz! :-)
(Translate to English)


事後報告となりますが、先週11/30は松江市にて2コマの講義/プレゼンを持ちました。

(1) 島根大学での講義

本人が詳細を知るより先にIT Pro に記事が出てしまったのですが、島根大学でのRuby講義シリーズの一コマを担当しました。お題はこれ:

第8回 11月30日(金) JRuby:JavaとRubyの融合 下道 高志

Shimane_Univ.jpg

Javaの紹介をするのなんて、ほんと、何年ぶりだろう、、と思いながら準備をしました。Java の歴史を再度調べているうちに面白いことを発見しました。まつもとさんがRubyの開発をはじめたのと、Javaの前身となったGreen Projectとはほぼ、同時期であったということ。また、Rubyがネット上で公開された時期とJavaが正式発表された時期も近い、、という事実です。 Javaは急速に広まったけど、Rubyは助走期間が長く、ここにきて急速に広まっている、、ということでしょうか。

一方で面白いarticleも見つけました。昔、読んだことがあったと思うのですが、今、読んでみるとなかなか新鮮というか感動も再度です。"Java Technology: The Early Years" ここには、Goslingと開発チームはもちろんのこと、Bill Joy や、Eric Schmidt なんかの名前もでてきます。Eric Schmidt は、今をときめくGoogleのCEOのわけですが、Java 誕生にも深くかかわってたなぁ、、、と再認識する次第。ここにはでてこないけど、Google に個人的に資金を出した第一号は、Andy Bechtolsheim でしたね。Sun の社員番号 No1. の彼が。

(2) 第18回オープンソースサロン@しまねOSS協議会

しまねOSS協議会では、毎月精力的にOSSに関する情報交換の場をもっています。私はJRuby に関して紹介させて頂きました。
松江市はまつもとさんの住んでいる地域。そうした場所でJRubyの紹介とは、いささが緊張します。が、昼間の大学での講義の内容に加えて何を紹介しようかなと思って、Charles Nutter にその旨を伝えたら、「なぬ?おぬし、Matz の本拠地に殴り込みにいくのか?」とのメールを送ってきただけでなく、大急ぎで、「JRuby はまもなくRuby1.9 をサポート」なるblog を書いたのでした。(このエントリ)
もちろん、紹介したのは言うまでもありません。

Matsue_Saloon.jpg

さて、参加者の雰囲気はこんな感じです。皆さん、熱心に聞いているだけでなく、質問も頂きましてありがとうございます。

さて、ここで下の写真。まつもとさんがいます。さて、どこにいるでしょう。"Matzを探せ!!"(笑)

Saloon2.jpg

(3)ルビーの街

松江市は、"Ruby City Matsue"として、大々的に売り出して(?)います。日本的ではありますが、地域情報化の事例として紹介されることも多々あります。先日は日経の地域情報化大賞も受賞して、その勢いは強まるばかり。

そうした中、松江市に強力なライバルが出現!!その名も「ルビーの街」。どこかはこちらをご覧下さい。プレゼンの最後にご紹介させていただきました。(笑)

日曜日 4 08, 2007

What I am doing ........ Solaris, Ruby, NetBeans, Liberty, so on...


私が最近やっていること・・・・Solaris, Ruby, NetBeans, Liberty ほかにもイロイロ!!

[Summary]
Many friends ask me "What are you doing? Recently, you have not written a lot about Liberty,haven't you? " .....I'm still, but I have to do much more .. Solaris, Ruby, NetBeans and (lots of) internal daily chores.. So, in the weekend, I am working as a programmer.


(Translate to English)

「最近、何やってるんですか?Libertyはどうしたんですかぁ?」と、時々聞かれております。いえ、ちゃんとやってますよ。ただ、ネット上のサイト全体がリニューアルされたのはいいのですが、日本版への移行と管理が遅れております。申し訳ないです。本家英語版は元気に更新されておりますんで、しばらくはこちらをよろしくお願いします。

さて、最近は次々と新手の仕事が入り、日々それで格闘しております。Solaris, Ruby, JRuby それとビジネス・ガバナンス関連。そうした中、自分のLet's Note W4の環境を整えるべく、先日、未サポートを覚悟の上、メモリを1.5GBにしました。で、やっとここ最近になって、なんとか1プログラマらしく、環境が整えられつつあるのかな、、という感じです。風邪をひいたこともあり、この週末は家でおとなしくマシンと奮闘。現在の状況を証拠となるスクリーンショットと共に。

(証拠1)
x86 Solaris10 上に自分用にソースに手を入れてbuildしたemacs をinstall。いやー、、emacs のbuildなんて、何年ぶりかなー。xterm上ではJRubyと共にinstall したRailsを動かしています。



(証拠2)
先日もご紹介した、"NetBeans でRuby on Railsが使える"図。NetBeans 6 も先月下旬にMilestone 8 がでて、かなり安定したかなー、、という感じです。このメニューから、Rails の各ファイルがカパカパとつくられるのは感動です。



(証拠3)
実際にRuby on Rails がJRuby on NetBeans 6 の上で動いている図。ちゃんと、WEBrickが動いています。ほーら、x86 Solaris 上で動いてるでしょ?



次にいじれるのは、今度の週末かな。。。。ここに書いてある通りにやれば、できるハズ。わからなかったら、片貝さん、よろしくです。(笑)

月曜日 1 01, 2007

Happy New Year 2007 for SAMR



謹賀新年。今年もよろしくお願い致します。

[Summary] Happy New Year 2007. Simon Phipps is hopeful that Open Souce is booming in 2007. I expect another momentum -- SAMR replacing LAMP. SAMR is my definition -- Solaris, A (Apache), M (MySQL), Ruby! Of course, replacing A with G (Glassfish) is much more appreciated !! (SGMR ??)

(Translate to English)


今年もよろしくお願い致します。

サン・マイクロシステムズ ( Sun 日本法人)より:
    末次社長のビデオがあがっています。こちらをご覧下さい。

      「サンはTechnology Company として・・・」

    いいですねー。こういう言い方、大好きです。

IT業界の今年、キーワードはSAMR です!
    Simon Phipps は「オープンソースの年にしたい!」と言っていますが、私は、(日本では)SAMRにしたい!!と思っております。SAMR は(私の?)造語です。Solaris+Apache+MySQL+Ruby です。LAMPはそこそこのシステムには適応するようになってきています。でも、それで、安全で頑丈で、コスト・パフォーマンスが素晴らしい、Coolなシステムを構築できるでしょうか?LAMPをSAMR に換えてみませんか? Solaris と Ruby。Sunでは、JRuby をはじめとして、いろいろな動きがあると思います。あっつ、もちろん、Apache ではなく、GlassFishが尚更おすすめであることは、いうまでもありませんが。。。SGMR (Solaris+GlassFish+MySQL+Ruby)って発音しにくいので・・・・・
ワタクシの元旦はというと:

    昨年と同じく(写真まで同じ場所から!)、毎年恒例、鎌倉の鶴岡八幡宮に初詣に行ってまいりました。お賽銭入れて、祈祷して、おみくじ引いて、(がっくりして、)クレープ食べて、買い物して・・・・・・実家ではWiiをやって・・・そんなこんなで、今年も元旦は忙しくし過ごしています。


About

Takashi Shitamichi(下道高志)

Chief Technologist
GSE Japan, Sun Microsystems

Spokes Person/Secretary@SIG-Japan,Liberty Alliance
Chair of Edu-committee, ISACA Tokyo
CISA,CISM
中小企業診断士

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
   
       
今日