Note: I'm migrating from gonzalo123.com to here. When I finish I'll swap the DNS to here. The "official" blog will be always gonzalo123.com

      Coding Katas, TDD and Katayunos

      2011 is about to finish, and I want to speak about my way through the world of TDD. In the beginning of the year appeared a new cool project called 12meses12katas (12 months - 12 katas). The aim of the project was to propose one coding kata per month, and allow to the people to publish their implementation of the kata over github. In the line of this project a crew of crazy coders started another cool project called Katayunos. Katayunos is a small pun with the word Desayuno (Breakfast) and Coding Kata. It’s something similar than a code retreat. The purpose of the katayunos was to meet together in one place one saturday morning, have a breakfast and play with pair programming and TDD with one coding kata. Something too geek to explain to non-geek people, I known, but if you are reading this, It’s probable that your understand this ;). Our first katayuno was in the cafeteria of one Hotel. One cold Saturday morning (a really cold one believe me). The main problem was that we didn’t have any electrical plug, so our pomodoros were marked by the laptop batteries.

      After this cold first katayuno we achieve new places with wifi and those kind of luxuries. Those kind of events are really interesting because we meet together different people and different programming languages. I still remember when I played with c# one time (I still have the sulfur smell in my fingers :) ).

      Basically the idea is:

      • Choose a coding kata
      • Pomodoros of 25 minutes
      • Pair programming (change the couples with each iteration)
      • Have fun

      And now I’m going to show my 12 implementations of the 12 katas from 12meses12katas’s project:

      Jaunary: String-Calculator A good kata for beginners. That’s a good one because the testing strategy is very clear and we can focus on Testing: Red (test NOK) -> implement code -> Green (test OK). My solution: php + phpunit

      February: Roman-Numerals I really hate roman numerals after doing this kata ;) My solution: python + pyunit

      March: FizzBuzz A famous kata. A Really simple one. Because of that we can focus on the TDD (baby steps, refactoring, …) My solution: php + phpunit I also wrote a post with a crazy dynamic classes and the implementation of FizzBuzz kata with those dinamic classes:

      April: Bowling My problem was that I didn’t know the rules of Bowling so I needed to learn how to play Bowling first. My solution: php + phpunit

      May: KataLonja A strange kata. I like it because it’s not a theoretical one. It’s close to a real problem. My solution: php + phpunit

      June: Simple-Lists It was my first kata with javascript and node.js. My solution: node.js + nodeunit (with John Resig’s class implementation)

      July: Prime-Factors Another famous one: Prime factors. My solution: node.js + nodeunit

      August: Minesweeper An implementation of the famous computer game Minesweeper. My solution: php + phpunit

      October: Karate-Chop Dual solution. With php and JavaScript (with node.js) My solution: php + phpunit and node.js + nodeunit

      November: KataPotter This time I will use coffeescript instead of pure js My solution: node.js + coffeeScript + jasmine

      December: PomodoroKata CoffeeScript again. One pomodoro is one pomodoro. Let’s build a pomodoro timer in a pomodoro. My solution: node.js + coffeeScript + jasmine

      So, what are you waiting for to create a local group and clone the katayuno in your city? It’s very easy: broadcast the event over twitter, pick a place, pick a kata and enjoy.

      Regards, Gonzalo

      comments powered by Disqus