Hello, Ruby!                  2012/06/23        NSEG feat. Kosenconf               @crimsonwoods
About MeName: 紅林 隆浩(@crimsonwoods)Age : 28 (Generation 83)From: Silent Hill / TokyoJob : Freelance Software EngineerHobby:...
Kosenconf in Numazu / Photo:@earth2001y(Daichi, OBINATA)
NSEG 勉強会    feat.高専カンファレンス
Which Ruby?    CRuby?    JRuby?
Which Ruby?   mruby
About mruby Lightweight Ruby implementation         forEmbedded Platform
About mruby - Open Source    (MIT license) - ISO Compliant - C Language
About mrubyNewshttp://itpro.nikkeibp.co.jp/article/NEWS/20120420/392541/http://el.jibun.atmarkit.co.jp/rails/2012/04/rubym...
Getting started mruby.1st step: makerequired: make, gcc, bison$   git clone https://github.com/mruby/mruby.git$   cd mruby...
Getting started mruby.2nd step: run$ mruby –e ‘p “Hello, mruby!”’"Hello, mruby!"$ echo p "Hello, mruby!" > hello.rb$ mruby...
Getting started mruby.3rd step: compile$ mrbc hello.rb –ohello.mrb$ mruby –b hello.mrb"Hello, mruby!"
Getting started mruby.もっと難しいコードは?Rubyistじゃないので書けません。
Getting started mruby.制限いろいろ -Bignumありません -Threadありません -Processありません -Fileありません -Signalありません -他にもいろいろありません
mruby on Android     mruby       +    Android
mruby on AndroidAndroidからmrubyを使うには 1. Android用にbuildしたmruby    をAPKに含める 2. mrubyをlibraryとして    Android用にbuildし、JNIを    通じ...
mruby on Androidmruby into APK1. assetsにmrubyを配置2. 実行時にassetsからmrubyを展開3. Rubyスクリプトをコマンドライン   or 一時ファイルとして実行4. 標準入出力をリダイレク...
mruby on Androidmruby into APK
mruby on Androidmruby as JNI library1. mrubyをlibraryとしてbuild2. JNI用のラッパーコードを書く3. ラッパーコードをbuildして   mrubyをlinkする4. Javaから直接...
mruby on AndroidFeatures: mruby in APK1. mrubyのビルドだけなのでお手軽2. mrubyがcrashしてもJVMが死なない3. mrubyとJVMが分離されているので、   プロセス単位のメモリ制限に...
mruby on AndroidFeatures: mruby as JNI library1. ビルドが大変2. mrubyがcrashするとJVMも死ぬ3. メモリ制限にひっかかりやすくなる4. JNI書くのめんどくさい5. mrubyをき...
Java-Ruby bridge作りました     Jamruby (Java mruby bridge)
Java-Ruby bridgeソースコードGithubhttps://github.com/crimsonwoods/jamrubyhttps://github.com/jamruby/jamruby* 将来はjamrubyアカウントに統合す...
Java-Ruby bridgeできること -RiteVM(mrubyのVM)の起動 -VM標準入出力のリダイレクト -RubyからJavaのメソッドコール -Javaの例外をRubyの例外に変換 -mruby APIのJavaラッパー提供
Java-Ruby bridge今後の予定 -Javaの機能呼び出し文法簡略化 -相互型変換のサポート拡張 -Androidの機能をサポート -VM内部のメソッドフックサポート -Android以外のプラットフォーム サポート
Java-Ruby bridge課題-JavaクラスのRubyへのExport-Javaのメソッドオーバーロード解決-Rubyの例外ハンドリング-64bit整数型サポート                      etc.
Java-Ruby bridge    準備1: mrubyをNDK-Buildする$   git clone https://github.com/mruby/mruby.git$   git clone https://github.com...
Java-Ruby bridge準備2: JamrubyをNDK-Buildする$ cd jni$ ndk-build$ cd ../$ ls libs/*/*.solibs/armeabi/libjamruby.solibs/armeabi-...
Java-Ruby bridge準備3: Jamrubyをbuildする             jamrubyからImport             NDK-Buildしたもの
Java-Ruby bridge準備4: JamrubyAppを取得する$ git clone https://github.com/jamruby/JamrubyApp.git  git cloneした後は、EclipseへのImportを行...
Java-Ruby bridge本番: JamrubyAppを実行する
Java-Ruby bridge本番: JAVAの関数を呼び出す
Java-Ruby bridge競合-Ruboto (JRuby: Java + Ruby)-Rhodes (Ruby + HTML/CSS/JS)-MobiRuby (Ruby + Obj-C|Java)
Fin.About Jamruby URL:     http://jamruby.org/ Mail:    jamruby(at)jamruby.org Twitter: @jamruby_org  コンテンツはまだ用意できていません。  ...
Hello Ruby
Hello Ruby
Upcoming SlideShare
Loading in...5
×

Hello Ruby

5,217

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,217
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
23
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Hello Ruby

  1. 1. Hello, Ruby! 2012/06/23 NSEG feat. Kosenconf @crimsonwoods
  2. 2. About MeName: 紅林 隆浩(@crimsonwoods)Age : 28 (Generation 83)From: Silent Hill / TokyoJob : Freelance Software EngineerHobby: Bicycle / Photo / Alcohol etc.Technology: Android / Linux / Windows MPU / FPGA C / C++ / C# / Java
  3. 3. Kosenconf in Numazu / Photo:@earth2001y(Daichi, OBINATA)
  4. 4. NSEG 勉強会 feat.高専カンファレンス
  5. 5. Which Ruby? CRuby? JRuby?
  6. 6. Which Ruby? mruby
  7. 7. About mruby Lightweight Ruby implementation forEmbedded Platform
  8. 8. About mruby - Open Source (MIT license) - ISO Compliant - C Language
  9. 9. About mrubyNewshttp://itpro.nikkeibp.co.jp/article/NEWS/20120420/392541/http://el.jibun.atmarkit.co.jp/rails/2012/04/rubymruby-2004.htmlGithubhttps://github.com/mruby/mruby
  10. 10. Getting started mruby.1st step: makerequired: make, gcc, bison$ git clone https://github.com/mruby/mruby.git$ cd mruby$ make$ export PATH=$PATH:$(pwd)/mruby/bin$ mruby --help
  11. 11. Getting started mruby.2nd step: run$ mruby –e ‘p “Hello, mruby!”’"Hello, mruby!"$ echo p "Hello, mruby!" > hello.rb$ mruby –v hello.rb"Hello, mruby!"
  12. 12. Getting started mruby.3rd step: compile$ mrbc hello.rb –ohello.mrb$ mruby –b hello.mrb"Hello, mruby!"
  13. 13. Getting started mruby.もっと難しいコードは?Rubyistじゃないので書けません。
  14. 14. Getting started mruby.制限いろいろ -Bignumありません -Threadありません -Processありません -Fileありません -Signalありません -他にもいろいろありません
  15. 15. mruby on Android mruby + Android
  16. 16. mruby on AndroidAndroidからmrubyを使うには 1. Android用にbuildしたmruby をAPKに含める 2. mrubyをlibraryとして Android用にbuildし、JNIを 通じてlinkする
  17. 17. mruby on Androidmruby into APK1. assetsにmrubyを配置2. 実行時にassetsからmrubyを展開3. Rubyスクリプトをコマンドライン or 一時ファイルとして実行4. 標準入出力をリダイレクトして結 果を取得
  18. 18. mruby on Androidmruby into APK
  19. 19. mruby on Androidmruby as JNI library1. mrubyをlibraryとしてbuild2. JNI用のラッパーコードを書く3. ラッパーコードをbuildして mrubyをlinkする4. Javaから直接JNI経由でmrubyが 使える!
  20. 20. mruby on AndroidFeatures: mruby in APK1. mrubyのビルドだけなのでお手軽2. mrubyがcrashしてもJVMが死なない3. mrubyとJVMが分離されているので、 プロセス単位のメモリ制限に 引っかかりにくい4. mrubyをinteractiveに 実行できない
  21. 21. mruby on AndroidFeatures: mruby as JNI library1. ビルドが大変2. mrubyがcrashするとJVMも死ぬ3. メモリ制限にひっかかりやすくなる4. JNI書くのめんどくさい5. mrubyをきめ細かく制御できる6. RubyとJavaの連携が可能
  22. 22. Java-Ruby bridge作りました Jamruby (Java mruby bridge)
  23. 23. Java-Ruby bridgeソースコードGithubhttps://github.com/crimsonwoods/jamrubyhttps://github.com/jamruby/jamruby* 将来はjamrubyアカウントに統合する予定
  24. 24. Java-Ruby bridgeできること -RiteVM(mrubyのVM)の起動 -VM標準入出力のリダイレクト -RubyからJavaのメソッドコール -Javaの例外をRubyの例外に変換 -mruby APIのJavaラッパー提供
  25. 25. Java-Ruby bridge今後の予定 -Javaの機能呼び出し文法簡略化 -相互型変換のサポート拡張 -Androidの機能をサポート -VM内部のメソッドフックサポート -Android以外のプラットフォーム サポート
  26. 26. Java-Ruby bridge課題-JavaクラスのRubyへのExport-Javaのメソッドオーバーロード解決-Rubyの例外ハンドリング-64bit整数型サポート etc.
  27. 27. Java-Ruby bridge 準備1: mrubyをNDK-Buildする$ git clone https://github.com/mruby/mruby.git$ git clone https://github.com/jamruby/jamruby.git$ cd mruby$ git clone https://github.com/jamruby/mruby_ndk-build.git android$ make$ cd android/jni$ ndk-build$ cd ../../../jamruby * 予めAndroid NDKを環境中に配置し、 ”ndk-build”コマンドが使用可能になっている前提
  28. 28. Java-Ruby bridge準備2: JamrubyをNDK-Buildする$ cd jni$ ndk-build$ cd ../$ ls libs/*/*.solibs/armeabi/libjamruby.solibs/armeabi-v7a/libjamruby.solibs/x86/libjamruxy.so$ cd ../
  29. 29. Java-Ruby bridge準備3: Jamrubyをbuildする jamrubyからImport NDK-Buildしたもの
  30. 30. Java-Ruby bridge準備4: JamrubyAppを取得する$ git clone https://github.com/jamruby/JamrubyApp.git git cloneした後は、EclipseへのImportを行います。 EclipseでのAndroid Applicationのビルドには、 Android SDKとADT Pluginが必要になります。 <下記参照> http://developer.android.com/sdk/installing/index.html http://developer.android.com/sdk/installing/installing-adt.html
  31. 31. Java-Ruby bridge本番: JamrubyAppを実行する
  32. 32. Java-Ruby bridge本番: JAVAの関数を呼び出す
  33. 33. Java-Ruby bridge競合-Ruboto (JRuby: Java + Ruby)-Rhodes (Ruby + HTML/CSS/JS)-MobiRuby (Ruby + Obj-C|Java)
  34. 34. Fin.About Jamruby URL: http://jamruby.org/ Mail: jamruby(at)jamruby.org Twitter: @jamruby_org コンテンツはまだ用意できていません。 ごめんなさい(´;ω;`)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×