SlideShare a Scribd company logo
Rubyの実装をRubiniusで
調べると便利
@saboyutaka
Shibuya.rb
2015/1/21
• @saboyutaka
• Work at pixiv Inc.
• Develop BOOTH
• Web App Engineer (Ruby on Rails)
• RubyKaigi staff 2013, 2014
• Live at Geekhouse Shinjuku
• Airbnb Hosting Owner
Who are you?
Rubyの内部実装を知りたいときに
・ドキュメントではなくソースコード読みたい
・Webでは特定のコードを読みたいときに探すのが大変
・cRubyの実装を読むほどのC言語のスキルがない
Rubinius
http://rubini.us
Install Rubinius
$ rbenv install rbx-2.2.10
こんなコード書いてた
あれ、Range.=== って include? 呼んでたは
ずだったけどinclude?ってどんな実装なんだ
ろう?
Rubniusで調べてみた
https://github.com/rubinius/rubinius/blob/
master/kernel/common/range.rb
Range Class
Range Class
===, include? method
Range Class
cover? method
まとめ
• Rubiniusを学習目的に使う便利
• ググって探すよりも早いかもしれない
• cRubyにコミット、コントリビュートしたい場合はC言語のスキルを身につけてcRuby
のソースを読んだ方がいいかも

More Related Content

What's hot

Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Yoshifumi Kawai
 
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?Kazuhiro Nishiyama
 
SendGridのない世界 | SendGrid Night in Osaka #2
SendGridのない世界 | SendGrid Night in Osaka #2SendGridのない世界 | SendGrid Night in Osaka #2
SendGridのない世界 | SendGrid Night in Osaka #2azumakuniyuki 🐈
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーYoshifumi Kawai
 
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用kotaro_hirayama
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with PythonTaisuke Yamada
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発Takafumi ONAKA
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Kanako Kobayashi
 
この実装には問題がある!
この実装には問題がある!この実装には問題がある!
この実装には問題がある!GOMI NINGEN
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Hiroki Mizuno
 
jupyter notebook (jupyterhub) で ruby とグラフ
jupyter notebook (jupyterhub) で ruby とグラフjupyter notebook (jupyterhub) で ruby とグラフ
jupyter notebook (jupyterhub) で ruby とグラフKoichi Shimozono
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
RubyからC#を扱う
RubyからC#を扱うRubyからC#を扱う
RubyからC#を扱う107steps
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころJunya Hayashi
 
UniRx勉強会 reactive extensions inside(公開用)
UniRx勉強会   reactive extensions inside(公開用)UniRx勉強会   reactive extensions inside(公開用)
UniRx勉強会 reactive extensions inside(公開用)wilfrem
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてHirata Tomoko
 
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key VaultTakekazu Omi
 

What's hot (20)

Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
 
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?
 
SendGridのない世界 | SendGrid Night in Osaka #2
SendGridのない世界 | SendGrid Night in Osaka #2SendGridのない世界 | SendGrid Night in Osaka #2
SendGridのない世界 | SendGrid Night in Osaka #2
 
Perl motion
Perl motionPerl motion
Perl motion
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニーUnity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
 
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with Python
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
 
この実装には問題がある!
この実装には問題がある!この実装には問題がある!
この実装には問題がある!
 
C#で速度を極めるいろは
C#で速度を極めるいろはC#で速度を極めるいろは
C#で速度を極めるいろは
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋
 
jupyter notebook (jupyterhub) で ruby とグラフ
jupyter notebook (jupyterhub) で ruby とグラフjupyter notebook (jupyterhub) で ruby とグラフ
jupyter notebook (jupyterhub) で ruby とグラフ
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
RubyからC#を扱う
RubyからC#を扱うRubyからC#を扱う
RubyからC#を扱う
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
UniRx勉強会 reactive extensions inside(公開用)
UniRx勉強会   reactive extensions inside(公開用)UniRx勉強会   reactive extensions inside(公開用)
UniRx勉強会 reactive extensions inside(公開用)
 
bicep 0.5 pre
bicep 0.5 prebicep 0.5 pre
bicep 0.5 pre
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
 
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key Vault
 

More from Yutaka Tachibana

GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うかYutaka Tachibana
 
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQLグラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQLYutaka Tachibana
 
サーバーサイドから見るGraphQL Serverless Meetup #19
サーバーサイドから見るGraphQL Serverless Meetup #19サーバーサイドから見るGraphQL Serverless Meetup #19
サーバーサイドから見るGraphQL Serverless Meetup #19Yutaka Tachibana
 
Playing capitalism game as engineer
Playing capitalism game as engineer Playing capitalism game as engineer
Playing capitalism game as engineer Yutaka Tachibana
 
Phpstormを使いこなす
Phpstormを使いこなすPhpstormを使いこなす
Phpstormを使いこなすYutaka Tachibana
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018Yutaka Tachibana
 
grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11Yutaka Tachibana
 
ギークハウス沖縄rebuild with リノベスイッチ
ギークハウス沖縄rebuild with リノベスイッチギークハウス沖縄rebuild with リノベスイッチ
ギークハウス沖縄rebuild with リノベスイッチYutaka Tachibana
 
Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01Yutaka Tachibana
 

More from Yutaka Tachibana (9)

GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うか
 
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQLグラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
 
サーバーサイドから見るGraphQL Serverless Meetup #19
サーバーサイドから見るGraphQL Serverless Meetup #19サーバーサイドから見るGraphQL Serverless Meetup #19
サーバーサイドから見るGraphQL Serverless Meetup #19
 
Playing capitalism game as engineer
Playing capitalism game as engineer Playing capitalism game as engineer
Playing capitalism game as engineer
 
Phpstormを使いこなす
Phpstormを使いこなすPhpstormを使いこなす
Phpstormを使いこなす
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
 
grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11
 
ギークハウス沖縄rebuild with リノベスイッチ
ギークハウス沖縄rebuild with リノベスイッチギークハウス沖縄rebuild with リノベスイッチ
ギークハウス沖縄rebuild with リノベスイッチ
 
Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01
 

Recently uploaded

Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...atsushi061452
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptxyassun7010
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)NTT DATA Technology & Innovation
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizesatsushi061452
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (10)

Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

Rubyの実装をRubiniusで便利