ruby coding dojo
DESCRIPTION
Introduction to a short Coding Dojo that MMahlberg and I held at the RailsWayCon 10TRANSCRIPT
![Page 1: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/1.jpg)
Coding DojoRailsWayCon 2010
Michael Mahlberg & Jens-Christian Fischer
Mittwoch, 2. Juni 2010
![Page 2: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/2.jpg)
Warning
Mittwoch, 2. Juni 2010
![Page 3: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/3.jpg)
Audience Participation
Mittwoch, 2. Juni 2010
![Page 4: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/4.jpg)
Dojo?Kata?
Mittwoch, 2. Juni 2010
![Page 5: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/5.jpg)
http://www.flickr.com/photos/bengarney/3017352943/
Mittwoch, 2. Juni 2010
![Page 6: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/6.jpg)
it‘s not about rails
http://www.flickr.com/photos/chris_gin/2490980153/
Mittwoch, 2. Juni 2010
![Page 7: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/7.jpg)
Kata 形
• Form
• Choreographed pattern of movements
Mittwoch, 2. Juni 2010
![Page 8: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/8.jpg)
Dojo 道場
• The Place of the Way
Mittwoch, 2. Juni 2010
![Page 9: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/9.jpg)
But Why?
Mittwoch, 2. Juni 2010
![Page 10: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/10.jpg)
Mittwoch, 2. Juni 2010
![Page 11: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/11.jpg)
Mittwoch, 2. Juni 2010
![Page 12: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/12.jpg)
Mittwoch, 2. Juni 2010
![Page 13: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/13.jpg)
Mittwoch, 2. Juni 2010
![Page 14: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/14.jpg)
Kata - Form
• Allows you to practice
• Allows you to free your mind of tediousness
• Muscle Memory
Mittwoch, 2. Juni 2010
![Page 15: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/15.jpg)
Different Katas
• Problem Solving Kata
• Tools Kata
Mittwoch, 2. Juni 2010
![Page 16: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/16.jpg)
Problem Solving
If can‘t think of at least 3 solutions,you haven‘t yet understood theproblem
– G. Weinberg
Mittwoch, 2. Juni 2010
![Page 17: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/17.jpg)
Tools
The Way of the carpenter is to become proficient in the use of his tools, first to lay his plans with a true measure and then perform his work according to plan.
– Go Rin No Sho
Mittwoch, 2. Juni 2010
![Page 18: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/18.jpg)
Now that we have covered the theory
Mittwoch, 2. Juni 2010
![Page 19: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/19.jpg)
Coding Dojo
Randori Style
Mittwoch, 2. Juni 2010
![Page 20: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/20.jpg)
Rules
• Choose a problem (Actually, we have chosen)
• Pair programming - Driver / Navigator
• Test Driven
• Red-Green => Switch Roles
• New Person coming in after 2 cycles
• Time limit (2 Minutes)
Mittwoch, 2. Juni 2010
![Page 21: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/21.jpg)
I wrote some codeThrew it awayRewrote it againIn front of other peopleIt was clever codeThey frowned at it
http://bossavit.com/dojo/archives/000792.html
Mittwoch, 2. Juni 2010
![Page 22: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/22.jpg)
No Spoilers!
Mittwoch, 2. Juni 2010
![Page 23: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/23.jpg)
100 Doors
There are 100 closed Doors & 100 Monkeys
Mittwoch, 2. Juni 2010
![Page 24: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/24.jpg)
100 Doors
The first monkey goes through all doors and opens them
Mittwoch, 2. Juni 2010
![Page 25: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/25.jpg)
100 Doors
The second monkey goes through every 2nd door, and changes it (open when closed, close
when open)
starting with the second
#2, #4, #6, ....
Mittwoch, 2. Juni 2010
![Page 26: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/26.jpg)
100 Doors
The third monkey changes every 3rd door
Starting with the third
#3, #6, #9, ....
Mittwoch, 2. Juni 2010
![Page 27: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/27.jpg)
Your Mission
List all open doors
Mittwoch, 2. Juni 2010
![Page 28: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/28.jpg)
100 Doors
;assume all memory is initially set to 0
inc $1 openloop: inc $200,X inc $1 inc $1 txa adc $1 tax cpx #$65 bmi openloop
Mittwoch, 2. Juni 2010
![Page 29: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/29.jpg)
Resources
• http://codingdojo.org/
• http://programming.dojo.net.nz/welcome/index
• http://codekata.pragprog.org
• http://bossavit.com/dojo/archives/2005_02.html
• http://web.cs.wpi.edu/~gpollice/Dojo.html
• http://wiki.agilefinland.com/?CodingDojo
Mittwoch, 2. Juni 2010
![Page 30: Ruby Coding Dojo](https://reader034.vdocument.in/reader034/viewer/2022051210/54b7157e4a7959af718b45b7/html5/thumbnails/30.jpg)
Contact Us
Michael Mahlberg
Consulting Guild AG
@MMahlberg
http://agile-aspects.blogspot.com
Jens-Christian Fischer
InVisible GmbH
@jcfischer
http://blog.invisible.ch
Mittwoch, 2. Juni 2010