cyber-dojo executing your code for fun and not for profit
cyber-dojoexecuting your code for fun and not for profit
late 2009
https://github.com/JonJagger/cyber-dojo
Interactive Dojo Environment
Integrated Development Environment
• team based • learning focused • test driven • work slower • no time pressure • repeat work • have fun
• individual based • finish focused • test driven? • work faster • time pressure • don't repeat work • make money
demo
6x
6x
6x
6x
6x
6x
6x
30 seconds
6x
red == tests ran; 1 or more failed
6x
green == tests ran; all passed
6x
amber == tests didn't run
6x
time's up!
Interactive Dojo Environment
Integrated Development Environment
• team based • learning focused • test driven • work slower • no time pressure • repeat work • have fun
• individual based • finish focused • test driven? • work faster • time pressure • don't repeat work • make money
• work slower • work faster
FAQ
• learning focused • finish focused
how does it work?
.../katas/B6/A35C8EF4/manifest.json
Java Cucumber FizzBuzz
cyber-dojo.org uuidgen == B6A35C8EF4
{ language: "Java, Cucumber", exercise: "FizzBuzz" }
B6A35C
cyber-dojo.org
.../katas/B6/A35C8EF4/frog/sandbox/
avatar == frog
.../katas/B6/A35C8EF4/frog/.git/
cyber-dojo.org
.../katas/B6/A35C8EF4/frog/sandbox/source-files
source-files
cyber-dojo.org
.../katas/B6/A35C8EF4/manifest.json{ language: "Java, Cucumber", ... }
cyberdojofoundation/java_junit cyberdojofoundation/java_cucumber cyberdojofoundation/csharp_nunit cyberdojofoundation/go_testing
docker containers
cyber-dojo.orggoogle compute engine instances
gce-node-01
gce-node-02
gce-node-03
cyberdojofoundation/java_cucumber
cyberdojofoundation/java_cucumber
cyberdojofoundation/java_cucumber
cyberdojofoundation/... cyberdojofoundation/...
cyberdojofoundation/... cyberdojofoundation/...
cyberdojofoundation/... cyberdojofoundation/...
cyber-dojo.org.../katas/B6/A35C8EF4/frog/sandbox/source-files
gce-node-02 /tmp/.../source-files
rsync cyberdojofoundation/java_cucumber
google compute engine instance
gce-node-02/tmp/.../source-files
$ eval "$(docker-machine env gce-node-02)" $ docker run \ --volume=/tmp/.../:/sandbox:rw \ --net=none \ ... cyberdojofoundation/java_cucumber \ /bin/bash "timeout 10s ./cyber-dojo.sh 2>&1"
cyber-dojo.org
cyberdojofoundation/java_cucumber
google compute engine instance
gce-node-02/tmp/.../source-files
cyber-dojo.org
cyberdojofoundation/java_cucumber
$ eval "$(docker-machine env gce-node-02)" $ docker run \ --volume=/tmp/.../:/sandbox:rw \ --net=none \ ... cyberdojofoundation/java_cucumber \ /bin/bash "timeout 10s ./cyber-dojo.sh 2>&1"
google compute engine instance
regexcyber-dojo.org
cyber-dojo.org
git commit.../katas/B6/A35C8EF4/frog/sandbox/.../katas/B6/A35C8EF4/frog/.git/
git gotcha!
test_wrapper.sh
summary
Interactive Dojo Environment
Integrated Development Environment
• team based • learning focused • test driven • work slower • no time pressure • repeat work • have fun
• individual based • finish focused • test driven? • work faster • time pressure • don't repeat work • make money
30,000+ practice-sessions
Bray
thank you
thank yous
Byran Wills-Heath Nadya Sivers Seb Rose
Olve Maudal Dymtro Mindra Mike Long
twitter : @JonJaggeremail : [email protected]
blog : http://jonjagger.blogspot.co.uk/charity : http://cyber-dojo.org