SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Andrew Grimm University of New South Wales ニューサウスウェールズ大学  (UNSW) RubyKaigi 2011 日本 Ruby 会議  2011 Finding Black Holes in Ruby with the Small Eigen Collider 小型特異衝突型加速器で Ruby 内のブラックホールの特異点を見つける方法
tl;dr Too Long, Didn't Read( 長過ぎてよんでられない ) ,[object Object],[object Object]
Why? なんで? ,[object Object],[object Object]
Background 背景 ,[object Object],[object Object],[object Object],[object Object]
Looking at mutations 私は突然変異で探しています ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Big data ビッグデータ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problem ,[object Object],[object Object],問題 ,[object Object]
How slow is my application? 私のアプリのスピード ,[object Object],[object Object],[object Object],[object Object],[object Object]
That's after some optimizing! ちなみにこれはチューニングの 後の数字です
Other Rubies might be faster ほかの Ruby 実装はもっと速いかも
JRuby ,[object Object],[object Object],[object Object]
Rubinius ,[object Object],[object Object],[object Object]
Ruby Enterprise Edition ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],Should I switch to a faster Ruby? もっと早い Ruby 実装に乗り換えるべき?
What kind of errors worry me? どういうエラーが心配? ,[object Object],[object Object],[object Object],[object Object]
Other implementations are wrong 他の実装が間違っている ,[object Object],[object Object]
Other implementations are wrongerer 他の実装では、さらに間違っている ,[object Object],[object Object]
Even JRuby is not immune JRuby も例に漏れず ,[object Object],[object Object]
How many bugs cause 0 failures? Fail しないバグはいくつ? ,[object Object],[object Object],[object Object],[object Object]
How can I be sure there weren't others? どのように他のエラーがないことを確認することができる? ,[object Object],[object Object]
What could I do? 私には何ができる? XKCD 386
What assumptions can I make about the problem? 問題に対してどういった想定をすれば良い?
Bugs are simple ソフトウェアのバグは簡単 ,[object Object],[object Object]
Bugs are simple to fix バグの修正は簡単 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Unexplored territory 未踏の領域 ,[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
What is the Small Eigen Collider? 小型特異衝突型加速器って何?
How Small Eigen Collider Works 小型特異衝突型加速器はどう動く? ,[object Object],[object Object]
Comparing results 比較結果 ,[object Object],[object Object],[object Object],[object Object]
Task execution タスクの実行 ,[object Object],[object Object]
Task creation – objects タスクの作成  -  オブジェクト ,[object Object],[object Object]
Task creation – method タスクの作成  -  メソッド ,[object Object],[object Object],[object Object],[object Object],[object Object]
Result comparison Receiver object: “a” Method: “casecmp” Parameters: [“b”] Result: -1 diff MRI_output.txt rubinius_output.txt  180c180 < Result: -1 --- > Result: 1 結果の比較
Task serialization タスクのシリアル化 ,[object Object],[object Object]
Segmentation faults セグメンテーションフォールト ,[object Object],[object Object]
Discoveries 発見
Bugs のバグ ,[object Object],[object Object]
Segmentation faults セグメンテーションフォールト ,[object Object],[object Object],[object Object],[object Object]
Current difficulties 現在の課題
Inconsistencies in inspect inspect の結果が実装ごとに異なる ,[object Object],[object Object],[object Object]
False alarms 誤報 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Future directions 将来の方向性
Faster 高速化 ,[object Object],[object Object],[object Object],[object Object]
Questions? 質問?
Extra material! 補足資料
String#casecmp testing ,[object Object],[object Object],describe &quot;String#casecmp&quot; do it &quot;is a case-insensitive version of String#<=>&quot; do &quot;abcdef&quot;.casecmp(&quot;abcde&quot;).should == 1 &quot;aBcDeF&quot;.casecmp(&quot;abcdef&quot;).should == 0 &quot;abcdef&quot;.casecmp(&quot;abcdefg&quot;).should == -1 &quot;abcdef&quot;.casecmp(&quot;ABCDEF&quot;).should == 0 end # Snipped I18N tests end
Other bugs found by SEC SEC で見つかったバグ ,[object Object],[object Object],[object Object],[object Object],[object Object]
Other bugs independent of SEC SEC とは別に見つかったバグ ,[object Object],[object Object]
Thankyou! Domo arigato! どうもありがとう ,[object Object],[object Object],[object Object],[object Object]

Contenu connexe

En vedette (9)

Designer.nl
Designer.nlDesigner.nl
Designer.nl
 
Presentation1
Presentation1Presentation1
Presentation1
 
Tallinna üLikool
Tallinna üLikoolTallinna üLikool
Tallinna üLikool
 
examen
examenexamen
examen
 
Rubyist in oz
Rubyist in ozRubyist in oz
Rubyist in oz
 
Sapporo ruby kaigi
Sapporo ruby kaigiSapporo ruby kaigi
Sapporo ruby kaigi
 
PORTFOLIO: A Sampling - ART
PORTFOLIO: A Sampling - ARTPORTFOLIO: A Sampling - ART
PORTFOLIO: A Sampling - ART
 
Hispaania
HispaaniaHispaania
Hispaania
 
Nupud
NupudNupud
Nupud
 

Similaire à Small eigen collider ruby kaigi 2011

プログラマー
プログラマープログラマー
プログラマーKouhei Sutou
 
組込みソフトウェアの品質の小噺
組込みソフトウェアの品質の小噺組込みソフトウェアの品質の小噺
組込みソフトウェアの品質の小噺Gou Sawada
 
Test Driven Development in LabVIEW
Test Driven Development in LabVIEWTest Driven Development in LabVIEW
Test Driven Development in LabVIEWYusuke Tochigi
 
emruby: ブラウザで動くRuby
emruby: ブラウザで動くRubyemruby: ブラウザで動くRuby
emruby: ブラウザで動くRubymametter
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Naoki Umehara
 
継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介Tomoki Suzuki
 

Similaire à Small eigen collider ruby kaigi 2011 (7)

プログラマー
プログラマープログラマー
プログラマー
 
組込みソフトウェアの品質の小噺
組込みソフトウェアの品質の小噺組込みソフトウェアの品質の小噺
組込みソフトウェアの品質の小噺
 
リアルビジネスRuby
リアルビジネスRubyリアルビジネスRuby
リアルビジネスRuby
 
Test Driven Development in LabVIEW
Test Driven Development in LabVIEWTest Driven Development in LabVIEW
Test Driven Development in LabVIEW
 
emruby: ブラウザで動くRuby
emruby: ブラウザで動くRubyemruby: ブラウザで動くRuby
emruby: ブラウザで動くRuby
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
 
継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介
 

Plus de Andrew Grimm

Finding Japanese Flatmates with Ruby (English and Japanese)
Finding Japanese Flatmates with Ruby (English and Japanese)Finding Japanese Flatmates with Ruby (English and Japanese)
Finding Japanese Flatmates with Ruby (English and Japanese)Andrew Grimm
 
Git Tips and Tricks
Git Tips and TricksGit Tips and Tricks
Git Tips and TricksAndrew Grimm
 
Tootle returning to rails
Tootle returning to railsTootle returning to rails
Tootle returning to railsAndrew Grimm
 
Finding Japanese flatmates with Ruby
Finding Japanese flatmates with RubyFinding Japanese flatmates with Ruby
Finding Japanese flatmates with RubyAndrew Grimm
 
YHA Japan travel night (internet version)
YHA Japan travel night (internet version)YHA Japan travel night (internet version)
YHA Japan travel night (internet version)Andrew Grimm
 
Curing AIDS, with programming
Curing AIDS, with programmingCuring AIDS, with programming
Curing AIDS, with programmingAndrew Grimm
 
Avoiding niseko syndrome
Avoiding niseko syndromeAvoiding niseko syndrome
Avoiding niseko syndromeAndrew Grimm
 
Curing AIDS, with programming
Curing AIDS, with programmingCuring AIDS, with programming
Curing AIDS, with programmingAndrew Grimm
 
Memoirs of a programmer (internet version)
Memoirs of a programmer (internet version)Memoirs of a programmer (internet version)
Memoirs of a programmer (internet version)Andrew Grimm
 
Japanese: a programmers language
Japanese: a programmers languageJapanese: a programmers language
Japanese: a programmers languageAndrew Grimm
 
Ruby for newbies Lake Ainsworth
Ruby for newbies Lake AinsworthRuby for newbies Lake Ainsworth
Ruby for newbies Lake AinsworthAndrew Grimm
 
Ruby 1.8.8 and professor
Ruby 1.8.8 and professorRuby 1.8.8 and professor
Ruby 1.8.8 and professorAndrew Grimm
 
How to talk like a ge1sha
How to talk like a ge1shaHow to talk like a ge1sha
How to talk like a ge1shaAndrew Grimm
 
All I want for Matz-mas
All I want for Matz-masAll I want for Matz-mas
All I want for Matz-masAndrew Grimm
 
Mistakes I have made
Mistakes I have madeMistakes I have made
Mistakes I have madeAndrew Grimm
 
Nihon go do you speak it
Nihon go do you speak itNihon go do you speak it
Nihon go do you speak itAndrew Grimm
 
Small eigen collider
Small eigen colliderSmall eigen collider
Small eigen colliderAndrew Grimm
 
Making easy roommate easy
Making easy roommate easyMaking easy roommate easy
Making easy roommate easyAndrew Grimm
 

Plus de Andrew Grimm (20)

Finding Japanese Flatmates with Ruby (English and Japanese)
Finding Japanese Flatmates with Ruby (English and Japanese)Finding Japanese Flatmates with Ruby (English and Japanese)
Finding Japanese Flatmates with Ruby (English and Japanese)
 
Git Tips and Tricks
Git Tips and TricksGit Tips and Tricks
Git Tips and Tricks
 
RuboCop
RuboCopRuboCop
RuboCop
 
Tootle returning to rails
Tootle returning to railsTootle returning to rails
Tootle returning to rails
 
Finding Japanese flatmates with Ruby
Finding Japanese flatmates with RubyFinding Japanese flatmates with Ruby
Finding Japanese flatmates with Ruby
 
YHA Japan travel night (internet version)
YHA Japan travel night (internet version)YHA Japan travel night (internet version)
YHA Japan travel night (internet version)
 
Curing AIDS, with programming
Curing AIDS, with programmingCuring AIDS, with programming
Curing AIDS, with programming
 
Avoiding niseko syndrome
Avoiding niseko syndromeAvoiding niseko syndrome
Avoiding niseko syndrome
 
Curing AIDS, with programming
Curing AIDS, with programmingCuring AIDS, with programming
Curing AIDS, with programming
 
Memoirs of a programmer (internet version)
Memoirs of a programmer (internet version)Memoirs of a programmer (internet version)
Memoirs of a programmer (internet version)
 
Japanese: a programmers language
Japanese: a programmers languageJapanese: a programmers language
Japanese: a programmers language
 
Ruby for newbies Lake Ainsworth
Ruby for newbies Lake AinsworthRuby for newbies Lake Ainsworth
Ruby for newbies Lake Ainsworth
 
Ruby 1.8.8 and professor
Ruby 1.8.8 and professorRuby 1.8.8 and professor
Ruby 1.8.8 and professor
 
How to talk like a ge1sha
How to talk like a ge1shaHow to talk like a ge1sha
How to talk like a ge1sha
 
All I want for Matz-mas
All I want for Matz-masAll I want for Matz-mas
All I want for Matz-mas
 
Mistakes I have made
Mistakes I have madeMistakes I have made
Mistakes I have made
 
Ampersand method
Ampersand methodAmpersand method
Ampersand method
 
Nihon go do you speak it
Nihon go do you speak itNihon go do you speak it
Nihon go do you speak it
 
Small eigen collider
Small eigen colliderSmall eigen collider
Small eigen collider
 
Making easy roommate easy
Making easy roommate easyMaking easy roommate easy
Making easy roommate easy
 

Dernier

IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 

Dernier (11)

IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 

Small eigen collider ruby kaigi 2011