• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Hello Ruby
 

Hello Ruby

on

  • 4,922 views

 

Statistics

Views

Total Views
4,922
Views on SlideShare
4,630
Embed Views
292

Actions

Likes
4
Downloads
19
Comments
0

7 Embeds 292

http://crimsonwoods.hatenablog.com 273
http://www.onlydoo.com 11
http://s.deeeki.com 2
http://webcache.googleusercontent.com 2
https://twitter.com 2
http://yolandacohnpdi.blogspot.com 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Hello Ruby Hello Ruby Presentation Transcript

    • Hello, Ruby! 2012/06/23 NSEG feat. Kosenconf @crimsonwoods
    • 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
    • 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/rubymruby-2004.htmlGithubhttps://github.com/mruby/mruby
    • 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
    • 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!"
    • 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を 通じてlinkする
    • 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から直接JNI経由でmrubyが 使える!
    • mruby on AndroidFeatures: mruby in APK1. mrubyのビルドだけなのでお手軽2. mrubyがcrashしてもJVMが死なない3. mrubyとJVMが分離されているので、 プロセス単位のメモリ制限に 引っかかりにくい4. mrubyをinteractiveに 実行できない
    • mruby on AndroidFeatures: mruby as JNI library1. ビルドが大変2. mrubyがcrashするとJVMも死ぬ3. メモリ制限にひっかかりやすくなる4. JNI書くのめんどくさい5. mrubyをきめ細かく制御できる6. RubyとJavaの連携が可能
    • 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/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”コマンドが使用可能になっている前提
    • 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 ../
    • 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を行います。 EclipseでのAndroid Applicationのビルドには、 Android SDKとADT Pluginが必要になります。 <下記参照> http://developer.android.com/sdk/installing/index.html http://developer.android.com/sdk/installing/installing-adt.html
    • 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 コンテンツはまだ用意できていません。 ごめんなさい(´;ω;`)