SlideShare una empresa de Scribd logo
1 de 49
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]

Más contenido relacionado

Destacado (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
 

Similar a 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
 

Similar a 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 でみる エンタープライズ アジャイル開発
 
継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介継続的インテグレーション を軽く紹介
継続的インテグレーション を軽く紹介
 

Más 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
 

Más 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
 

Último

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Último (9)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

Small eigen collider ruby kaigi 2011