O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Ad

Hello, Ruby!


                  2012/06/23
        NSEG feat. Kosenconf
               @crimsonwoods

Ad

About Me
Name: 紅林 隆浩(@crimsonwoods)
Age : 28 (Generation 83)
From: Silent Hill / Tokyo
Job : Freelance Software Engineer
H...

Ad

Kosenconf in Numazu / Photo:@earth2001y(Daichi, OBINATA)

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Próximos SlideShares
簡単!Groovy入門
簡単!Groovy入門
Carregando em…3
×

Confira estes a seguir

1 de 36 Anúncio
1 de 36 Anúncio

Mais Conteúdo rRelacionado

Hello Ruby

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

×