![Page 1: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/1.jpg)
Towards Toolingwhat is missing
from our toolbox?Loren Segal
@lsegal
Friday, November 8, 13
![Page 2: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/2.jpg)
Are Rubyists good at testing because they
have good tools?Friday, November 8, 13
![Page 3: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/3.jpg)
Do Rubyists have good tools
because they are good at testing?
Friday, November 8, 13
![Page 4: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/4.jpg)
Do Rubyists have good tools
because they are good at testing?
Friday, November 8, 13
![Page 5: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/5.jpg)
Friday, November 8, 13
![Page 6: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/6.jpg)
Tools are important
Friday, November 8, 13
![Page 7: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/7.jpg)
We have good tools
Friday, November 8, 13
![Page 8: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/8.jpg)
...sometimes.
Friday, November 8, 13
![Page 9: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/9.jpg)
This talk is about the
not-so-good tools
Friday, November 8, 13
![Page 10: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/10.jpg)
GoalsFriday, November 8, 13
![Page 11: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/11.jpg)
1. Introduce
different toolsFriday, November 8, 13
![Page 12: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/12.jpg)
2. Find out which
tools we are missing
Friday, November 8, 13
![Page 13: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/13.jpg)
3. Write these
tools plz thx!Be a garbage collector
Friday, November 8, 13
![Page 14: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/14.jpg)
Note:
GoogleTOOL NAME + LANGUAGE
You should find the tools referenced in this talk
Friday, November 8, 13
![Page 15: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/15.jpg)
Kinds of Tools
Friday, November 8, 13
![Page 16: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/16.jpg)
Deployment / OpsDocumentation
TestingVisualization
DebuggingLinting
Static Analysis
High Level
Low Level
Friday, November 8, 13
![Page 17: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/17.jpg)
Visualization
Friday, November 8, 13
![Page 18: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/18.jpg)
Some ofthe most
important toolsare visualization tools
Friday, November 8, 13
![Page 19: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/19.jpg)
Know what your code
is doingFriday, November 8, 13
![Page 20: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/20.jpg)
Thread in a sealed box.Is it dead or alive?
Friday, November 8, 13
![Page 21: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/21.jpg)
Visual Studio
Friday, November 8, 13
![Page 22: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/22.jpg)
Visual Studio
Friday, November 8, 13
![Page 23: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/23.jpg)
XCode
Friday, November 8, 13
![Page 24: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/24.jpg)
VisualVM
Friday, November 8, 13
![Page 25: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/25.jpg)
Discoverability
Friday, November 8, 13
![Page 26: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/26.jpg)
Call references
Implementors ECLIPSE
Friday, November 8, 13
![Page 27: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/27.jpg)
Not just IDEs
Friday, November 8, 13
![Page 28: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/28.jpg)
I’ll prove it...
Friday, November 8, 13
![Page 29: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/29.jpg)
Firebug
Friday, November 8, 13
![Page 30: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/30.jpg)
Do you remember web development before Firebug?
Friday, November 8, 13
![Page 31: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/31.jpg)
Before: no visibility.
Friday, November 8, 13
![Page 32: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/32.jpg)
Ember Inspector
Friday, November 8, 13
![Page 33: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/33.jpg)
SmalltalkFriday, November 8, 13
![Page 34: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/34.jpg)
Friday, November 8, 13
![Page 35: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/35.jpg)
InherentlyVisual
Friday, November 8, 13
![Page 36: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/36.jpg)
Where isRuby viz?
Friday, November 8, 13
![Page 37: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/37.jpg)
RubyMine
Friday, November 8, 13
![Page 38: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/38.jpg)
Profilers?Friday, November 8, 13
![Page 39: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/39.jpg)
memprofJoe Damato
github/ice799/memprofFriday, November 8, 13
![Page 40: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/40.jpg)
perftools.rb
Friday, November 8, 13
![Page 41: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/41.jpg)
NetBeans / JRuby
Friday, November 8, 13
![Page 42: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/42.jpg)
Use theJVM
Friday, November 8, 13
![Page 43: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/43.jpg)
Lintng��
Friday, November 8, 13
![Page 44: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/44.jpg)
Lintdivide by zero: checkinitialized vars: check
...style: check (last!)
Friday, November 8, 13
![Page 45: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/45.jpg)
Ruby?
Friday, November 8, 13
![Page 46: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/46.jpg)
Reek/Flog/FlayDoes: detect code smellsDoes not: find common errors
Friday, November 8, 13
![Page 47: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/47.jpg)
Assumption:Pretty code iscorrect code
Friday, November 8, 13
![Page 48: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/48.jpg)
Friday, November 8, 13
![Page 49: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/49.jpg)
Ugly.Not “correct”.
Friday, November 8, 13
![Page 50: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/50.jpg)
github.com/lsegal/my_fake_project
Friday, November 8, 13
![Page 51: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/51.jpg)
PS. I ♡Code
ClimateFriday, November 8, 13
![Page 52: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/52.jpg)
Understandyour tools
Friday, November 8, 13
![Page 53: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/53.jpg)
Code Climate does not replace testing
Friday, November 8, 13
![Page 54: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/54.jpg)
ruby-lintYorick Peterse
but it’s newFriday, November 8, 13
![Page 55: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/55.jpg)
Nothing comes
standardFriday, November 8, 13
![Page 56: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/56.jpg)
Other languages?
Friday, November 8, 13
![Page 57: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/57.jpg)
JSHint (JavaScript)pylint (Python)
FindBugs (Java)FxCop (C#)
Friday, November 8, 13
![Page 58: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/58.jpg)
Widely used.
Friday, November 8, 13
![Page 59: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/59.jpg)
Why notRuby?
Friday, November 8, 13
![Page 60: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/60.jpg)
Friday, November 8, 13
![Page 61: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/61.jpg)
StaticAnalysis
lint++Friday, November 8, 13
![Page 62: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/62.jpg)
is ahuge field
Friday, November 8, 13
![Page 63: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/63.jpg)
Friday, November 8, 13
![Page 64: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/64.jpg)
Types of “static analysis”- Defect Finding
- Memory Checking / Fuzz Testing
- Extended Static Checking
- Model Checking / Data Flow Analysis
- Symbolic ExecutionFriday, November 8, 13
![Page 65: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/65.jpg)
Defect Finding
Friday, November 8, 13
![Page 66: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/66.jpg)
is basically lint,
Friday, November 8, 13
![Page 67: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/67.jpg)
but with less emphasis on syntax.
Friday, November 8, 13
![Page 68: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/68.jpg)
The Usual Suspects
Friday, November 8, 13
![Page 69: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/69.jpg)
BrakemanJustin Collins
brakemanscanner.org(Ruby on Rails)
Friday, November 8, 13
![Page 70: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/70.jpg)
Finds common flawsin Rails code
XSS, SQL injection, mass assignment
Friday, November 8, 13
![Page 71: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/71.jpg)
Friday, November 8, 13
![Page 72: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/72.jpg)
Static detection of security vulnerabilitiesin scripting languages
https://www.usenix.org/legacy/event/sec06/tech/full_papers/xie/xie_html/
Friday, November 8, 13
![Page 73: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/73.jpg)
Fuzz Testing
Friday, November 8, 13
![Page 74: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/74.jpg)
garbage in...
Friday, November 8, 13
![Page 75: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/75.jpg)
Lots of tools.
C, Java, JS, Python, etc.
Friday, November 8, 13
![Page 76: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/76.jpg)
Lots of papers.
Friday, November 8, 13
![Page 77: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/77.jpg)
“Automated Whitebox Fuzz Testing”
Microsoft Research(used in SAGE)
http://research.microsoft.com/en-us/um/people/pg/public_psfiles/ndss2008.pdf
Friday, November 8, 13
![Page 78: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/78.jpg)
What about us?
Friday, November 8, 13
![Page 79: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/79.jpg)
HeckleRyan Davis, Kevin Clark
Friday, November 8, 13
![Page 80: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/80.jpg)
Friday, November 8, 13
![Page 81: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/81.jpg)
MutantMarkus Schirp
github/mbj/mutantFriday, November 8, 13
![Page 82: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/82.jpg)
We could use a real fuzz testing tool.
Friday, November 8, 13
![Page 83: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/83.jpg)
FuzzBert?Martin Bosslet
github/krypt/FuzzBertFriday, November 8, 13
![Page 84: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/84.jpg)
lots of papers out therewith algorithms to implement
Friday, November 8, 13
![Page 85: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/85.jpg)
LET’S GET
Friday, November 8, 13
![Page 86: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/86.jpg)
Symbolic Execution
Friday, November 8, 13
![Page 87: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/87.jpg)
Run your codewith no immediate values
Friday, November 8, 13
![Page 88: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/88.jpg)
Similar to Extended Static Checking
but...
Friday, November 8, 13
![Page 89: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/89.jpg)
Contracts not required
and
Can tell you which inputs generated valid or invalid state
Friday, November 8, 13
![Page 90: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/90.jpg)
Think:
Automatic Test Case Generation
Friday, November 8, 13
![Page 91: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/91.jpg)
// @example pow(2, 8) == 256 int pow(int x, int n) { int v[32] = {x}, result = 0; for (int i = 1; i < n; i++) { v[i] = x * v[i-1]; } return v[n-1]; }
Friday, November 8, 13
![Page 92: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/92.jpg)
SymExe report:
x=1,n=5,result=1x=2,n=8,result=256x=1,n=0,error: array out of bounds ← x=1,n=33,error: array out of bounds ←
Friday, November 8, 13
![Page 93: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/93.jpg)
// @example pow(2, 8) == 256 // @requires n > 0 // @requires n < 32 int pow(int x, int n) { int v[32] = {x}, result = 0; for (int i = 1; i < n; i++) { v[i] = x * v[i-1]; } return v[n-1]; }
Friday, November 8, 13
![Page 94: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/94.jpg)
Tools?
Friday, November 8, 13
![Page 95: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/95.jpg)
KLEE (LLVM)Kudzu (JavaScript)
Kiasan (Java, SPARK)
Friday, November 8, 13
![Page 96: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/96.jpg)
Nothing for Ruby*
(*) “Automatic Program Verification and Test Case Generation of Ruby Programs”
Friday, November 8, 13
![Page 97: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/97.jpg)
Ruby doesn’t really have a scientific community.
Friday, November 8, 13
![Page 98: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/98.jpg)
Chicken and egg.
Friday, November 8, 13
![Page 99: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/99.jpg)
Python vs Ruby?Big boy language?
Friday, November 8, 13
![Page 100: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/100.jpg)
RECAP
Friday, November 8, 13
![Page 101: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/101.jpg)
We are greatat testing,
deployment,web frameworks
Friday, November 8, 13
![Page 102: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/102.jpg)
Not so good atvisualization,
linting,static analysis
Friday, November 8, 13
![Page 103: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/103.jpg)
We attractweb developersbecause we have good
web tools
Friday, November 8, 13
![Page 104: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/104.jpg)
Could webuild toolsfor other
communities?science, engineering, math
Friday, November 8, 13
![Page 105: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/105.jpg)
Take responsibility.
Friday, November 8, 13
![Page 106: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/106.jpg)
Great tool ideas arewaiting to be implemented
Friday, November 8, 13
![Page 107: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/107.jpg)
Tons of research papersin fields I mentioned
scholar.google.com
Friday, November 8, 13
![Page 108: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/108.jpg)
I had a whole section on my favourite research papers.
Friday, November 8, 13
![Page 109: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/109.jpg)
Come find me if you want titles.
Friday, November 8, 13
![Page 110: Towards Tooling; A Look at What is Missing From the Ruby Toolbox](https://reader034.vdocuments.net/reader034/viewer/2022051613/54c718054a7959040e8b45d7/html5/thumbnails/110.jpg)
Thank you.
Slides will be linked on Twitter@lsegal
Friday, November 8, 13