Suche senden
Hochladen
「愛されたい!」と思ったときにJavaで書くRubyクラス
•
1 gefällt mir
•
1,550 views
Koichiro Ohba
Folgen
Rails勉強会@東京 32thの資料。 http://wiki.fdiary.net/rails/?RailsMeetingTokyo-0032
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 35
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
TypeScript超入門
TypeScript超入門
Narami Kiyokura
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
大樹 小倉
大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
わかる LT@2
わかる LT@2
Shingo Inoue
Empfohlen
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
TypeScript超入門
TypeScript超入門
Narami Kiyokura
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
大樹 小倉
大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
わかる LT@2
わかる LT@2
Shingo Inoue
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
JavaとRubyのすてきな関係
JavaとRubyのすてきな関係
garden_tree
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
Moriyoshi Koizumi
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
play framework 勉強会 in 関西
play framework 勉強会 in 関西
Shinichi Kozake
Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)
Kazuhide Maruyama
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
TypeScriptは明日から使うべき
TypeScriptは明日から使うべき
Masahiro Wakame
jQuery 対応ライブラリと TypeScript
jQuery 対応ライブラリと TypeScript
インフラジスティックス・ジャパン株式会社
Getting start with knockout.js
Getting start with knockout.js
Akio Ishida
Play frameworkについて
Play frameworkについて
Shinobu Okano
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
Dark vol4 for_slideshare
Dark vol4 for_slideshare
ara_ta3
モテる JavaScript
モテる JavaScript
Osamu Monoe
TypeScriptはいいぞ
TypeScriptはいいぞ
Jun Suzuki
IDEALIZE YOU
IDEALIZE YOU
佑介 九岡
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
Database.persistentの話
Database.persistentの話
真一 北原
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
JavascriptでRubyの作り方
JavascriptでRubyの作り方
Shuyo Nakatani
Weitere ähnliche Inhalte
Was ist angesagt?
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
JavaとRubyのすてきな関係
JavaとRubyのすてきな関係
garden_tree
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
Moriyoshi Koizumi
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
play framework 勉強会 in 関西
play framework 勉強会 in 関西
Shinichi Kozake
Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)
Kazuhide Maruyama
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
TypeScriptは明日から使うべき
TypeScriptは明日から使うべき
Masahiro Wakame
jQuery 対応ライブラリと TypeScript
jQuery 対応ライブラリと TypeScript
インフラジスティックス・ジャパン株式会社
Getting start with knockout.js
Getting start with knockout.js
Akio Ishida
Play frameworkについて
Play frameworkについて
Shinobu Okano
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
Dark vol4 for_slideshare
Dark vol4 for_slideshare
ara_ta3
モテる JavaScript
モテる JavaScript
Osamu Monoe
TypeScriptはいいぞ
TypeScriptはいいぞ
Jun Suzuki
IDEALIZE YOU
IDEALIZE YOU
佑介 九岡
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
Database.persistentの話
Database.persistentの話
真一 北原
Was ist angesagt?
(20)
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
JavaとRubyのすてきな関係
JavaとRubyのすてきな関係
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
play framework 勉強会 in 関西
play framework 勉強会 in 関西
Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
TypeScriptをオススメする理由
TypeScriptをオススメする理由
TypeScriptは明日から使うべき
TypeScriptは明日から使うべき
jQuery 対応ライブラリと TypeScript
jQuery 対応ライブラリと TypeScript
Getting start with knockout.js
Getting start with knockout.js
Play frameworkについて
Play frameworkについて
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Dark vol4 for_slideshare
Dark vol4 for_slideshare
モテる JavaScript
モテる JavaScript
TypeScriptはいいぞ
TypeScriptはいいぞ
IDEALIZE YOU
IDEALIZE YOU
JavaScript 研修
JavaScript 研修
Database.persistentの話
Database.persistentの話
Ähnlich wie 「愛されたい!」と思ったときにJavaで書くRubyクラス
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
JavascriptでRubyの作り方
JavascriptでRubyの作り方
Shuyo Nakatani
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
Shigeru UCHIYAMA
What is java_se_7
What is java_se_7
TakumiIINO
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
named_scope more detail
named_scope more detail
Kyosuke MOROHASHI
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
Koichiro Ohba
Java SE 再入門
Java SE 再入門
minazou67
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
Clojureの発表など
Clojureの発表など
Kikuta Go
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Koichi Sakata
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
Yoichiro Sakurai
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
耕平 谷口
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
Clojure
Clojure
Uehara Junji
JavaScriptことはじめ
JavaScriptことはじめ
Yuki Ishikawa
LLoT2016 Java Update
LLoT2016 Java Update
torutk
Java EE 再入門
Java EE 再入門
minazou67
Ähnlich wie 「愛されたい!」と思ったときにJavaで書くRubyクラス
(20)
JVMの中身を可視化してみた
JVMの中身を可視化してみた
JavascriptでRubyの作り方
JavascriptでRubyの作り方
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
What is java_se_7
What is java_se_7
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
named_scope more detail
named_scope more detail
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
Java SE 再入門
Java SE 再入門
Web制作勉強会 #2
Web制作勉強会 #2
Clojureの発表など
Clojureの発表など
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Clojure
Clojure
JavaScriptことはじめ
JavaScriptことはじめ
LLoT2016 Java Update
LLoT2016 Java Update
Java EE 再入門
Java EE 再入門
Mehr von Koichiro Ohba
Focuslight, Jobs and OSS - HackGirls bar vol.2
Focuslight, Jobs and OSS - HackGirls bar vol.2
Koichiro Ohba
20140517 岡山オープンセミナー
20140517 岡山オープンセミナー
Koichiro Ohba
Real legacy
Real legacy
Koichiro Ohba
サラリーマン
サラリーマン
Koichiro Ohba
GREE github-enterprise
GREE github-enterprise
Koichiro Ohba
Ruby which Supports Social Platform
Ruby which Supports Social Platform
Koichiro Ohba
グリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべて
Koichiro Ohba
Agile Shibuya github_enterprise
Agile Shibuya github_enterprise
Koichiro Ohba
Cuvic OnDemand on JRuby
Cuvic OnDemand on JRuby
Koichiro Ohba
Social Coding With JRuby
Social Coding With JRuby
Koichiro Ohba
MessagePack for Ruby
MessagePack for Ruby
Koichiro Ohba
Rava on JRuby
Rava on JRuby
Koichiro Ohba
Abstraction of JRuby Kaigi2010
Abstraction of JRuby Kaigi2010
Koichiro Ohba
Introduction of JRuby Kaigi 2010
Introduction of JRuby Kaigi 2010
Koichiro Ohba
AppEngine/Jruby at SendaiRubyKaigi02
AppEngine/Jruby at SendaiRubyKaigi02
Koichiro Ohba
The Power to Produce Termtter
The Power to Produce Termtter
Koichiro Ohba
Introduction of record_with_operator
Introduction of record_with_operator
Koichiro Ohba
Happy Life Hacking Ruby on Rails
Happy Life Hacking Ruby on Rails
Koichiro Ohba
JRuby Hot Topics 2008-12-12
JRuby Hot Topics 2008-12-12
Koichiro Ohba
The Essence of Using Ruby on Rails in Corporations 2nd
The Essence of Using Ruby on Rails in Corporations 2nd
Koichiro Ohba
Mehr von Koichiro Ohba
(20)
Focuslight, Jobs and OSS - HackGirls bar vol.2
Focuslight, Jobs and OSS - HackGirls bar vol.2
20140517 岡山オープンセミナー
20140517 岡山オープンセミナー
Real legacy
Real legacy
サラリーマン
サラリーマン
GREE github-enterprise
GREE github-enterprise
Ruby which Supports Social Platform
Ruby which Supports Social Platform
グリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべて
Agile Shibuya github_enterprise
Agile Shibuya github_enterprise
Cuvic OnDemand on JRuby
Cuvic OnDemand on JRuby
Social Coding With JRuby
Social Coding With JRuby
MessagePack for Ruby
MessagePack for Ruby
Rava on JRuby
Rava on JRuby
Abstraction of JRuby Kaigi2010
Abstraction of JRuby Kaigi2010
Introduction of JRuby Kaigi 2010
Introduction of JRuby Kaigi 2010
AppEngine/Jruby at SendaiRubyKaigi02
AppEngine/Jruby at SendaiRubyKaigi02
The Power to Produce Termtter
The Power to Produce Termtter
Introduction of record_with_operator
Introduction of record_with_operator
Happy Life Hacking Ruby on Rails
Happy Life Hacking Ruby on Rails
JRuby Hot Topics 2008-12-12
JRuby Hot Topics 2008-12-12
The Essence of Using Ruby on Rails in Corporations 2nd
The Essence of Using Ruby on Rails in Corporations 2nd
Kürzlich hochgeladen
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Kürzlich hochgeladen
(9)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
「愛されたい!」と思ったときにJavaで書くRubyクラス
1.
「愛されたい!」と 思ったときにJava で書くRubyクラス
大場光一郎 Akasaka.rb, Meadowy.org
2.
今日の目的 •JavaでRubyクラスを書く
3.
JRubyとは •JavaVMで動くRuby実装 • JIT、事前バイトコンパイル • Java
Integration • Java 5.0 higher
4.
JRubyを拡張したい •動かしたいパッケージがC • openssl,RMagick4J,i
mage_voodoo •速くしたい
5.
Mにおすすめ • 素直にRubyで書けば5行く らいですむところを50行で 書く
6.
生もの注意 • 公開APIではなくて言語の コアに近い部分 •ゴリゴリ変わってます
7.
JRubyを拡張す
る方法 •Rubyで書く • Dubyで書く • Javaで書く
8.
Rubyで書く •普通にRubyで書く • Javaクラスも呼べるよ
9.
Dubyで書く • 型修飾ができるRubyっぽ い言語 •コンパイラ型 • Hashリテラルっぽい書き方
10.
Dubyの例 def foo(str) {str
=> :string} puts str end
11.
Javaで書く •速い • 面倒 • jarパッケージ
12.
Javaで書こう
Rubyクラス •Java SE 5.0 • JRubyのソースコード一式
13.
Javaクラスと Rubyクラス •クラス/メソッドの可視性 •
オーバーロード • オープンクラス
14.
Javaで書くとき
必要なこと •メモリアロケーション • アノテーション
15.
メモリアロケー
ション • JRubyのrubyランタイム にクラスやモジュールを登録 する
16.
コード例
private static final ObjectAllocator ICONV_ALLOCATOR = new ObjectAllocator() { public IRubyObject allocate(Ruby runtime, RubyClass klass) { return new RubyIconv(runtime, klass); } };
17.
RubyClass iconvClass = runtime.defineClass("Iconv", runtime.getObject(),
ICONV_ALLOCATOR);
18.
アノテーション •Java 5から導入 • javadoc/Rdocっぽい •
メソッドやクラスに宣言的 にメタ情報を記述
19.
JRubyアノテー
ション •クラス • モジュール • メソッド
20.
クラスアノテー ション @JRubyClass(name
= Iconv ) class IconvClass { }
21.
メソッドアノテー ション •引数の数/可変長引数 •
インスタンスか、特異か • ブロックの有無
22.
コード例 @JRubyMethod(name = "open",
required = 2, frame = true, meta = true) public static IRubyObject open(ThreadContext context, IRubyObject recv, IRubyObject to, IRubyObject from, Block block) { }
23.
メソッドアノテー ションの種類 •name,required •
optional,rest • alias, meta, module • visibility, etc...
24.
アノテーションを Rubyへ定義 • クラスにどんなアノテーショ ンがついているかRubyラン タイムに登録する
25.
コード例 iconvClass.defineAnnotatedMethods(R ubyIconv.class);
26.
ロードしよう
27.
ロードのJRuby
拡張 • .rb .so .dll以外に.class と.jarの読み込みがサポート
28.
require hogehoge require hogehoge.class require
hogehoge.jar
29.
.classをロードする
30.
.jarをロードする •jarredScript • jarに固めたclassファイル をロードする仕組み •gemに含めるのも可
31.
JarredScript •規約指向 • クラス名とjarファイル名を 合わせる •LoadService
32.
LoadService • JRubyがjar内から拡張ク
ラスを探すきっかけになる • org.jruby.runtime.load.BasicLoadService • パッケージは無し
33.
LoadServiceの
例
34.
jarに固める
35.
JRubyを拡張し
よう •メモリアロケーション • アノテーション • jarに固める
Jetzt herunterladen