quinta-feira, 13 de janeiro de 2011

Coding what? Coding Dojo!!!

Since I started to participate in py dojo people I invited have been asking me what is a coding dojo? In the beginning I didn't have the right awnser  to this question but as I went trough the dojos this awnser became more clear in my mind.

The awnser to the question: What is a Coding Dojo?

Basically a coding dojo is a meeting of developers group where they solve problems together in an specific language. Is good to remember that the type of dojo I'm describing here is non-competitive and fun where any level of skill is permitted, as far as I know there are other type of dojos with different focus.

The objectives are: of course have fun; improve your skills in the language used, your team work and your brainskills to solve problems (normally they are quite challenging).

Ok then, but what is needed for a coding dojo? The minimum requirements are an PC or Laptop, a local for the meeting, a projector and a minimum of one developer with great knowledge for being the guru.

The master is the guy that guides the dojo and guides the group in moments of doubt about the language.

How the dojo is organized

Now we already know what it is and what is needed. The next step is the execution, it happens more or less like this:
  • 20 min for choosing the problem and the initial approach.
  • a quick lunch, like 10 min or less (is easier to think after you eat).
  • First part with a real action, 1st hour coding.
  • another quick lunch, more 10 min or less (just to take a breath, sometimes the group solved the first challenge at this point).
  • Second part with more real action, 40 min or so coding.
  • After finishing we do a quick retrospective about the session with the good and bad things. The tip here is to use a board and put post-its with + and - signs, people tend to feel more confortable writting than talking.

How to the code the code

The meeting is organized but how we're supposed to code is not. If my memories are ok at the dojo I'm participating we use Randori Kata which is a way of saying how things happen.
  • The problem is solved in pairs, like extreme programming, a driver and a copilot.
  • Everyone is invited to help on the right time (I'm going to get the list of rules and update here).
  • Each pair has a timebox to advance, 7 min works for us.
  • Use TDD and BabySteps, is hard I know but you'll have to give your best.
  • Every time a timebox ends the driver gives his place to the copilot and another person takes place as the new copilot.
Things that worked for us

Add a white board and post-its as requirements. The white board is used to solve the problem, remember the problem, to place the rules of the dojo and for the retrospective time when we place the posts-its with good and bad things.

Try to change where the meeting occurs, like three weeks in one company, other three in an university and so on. This is good for seeing new places and new people.

Also try to change the days of the week it occurs, one week on monday the other on wednesday and so on. This helps newcomers and members being more constant.

My vision

All this explanation and I didn't mention a single word about what I think. For me the dojo exercise/teach us some important points:
  • Problems are not always only a matter of language.
  • Playing as a team is important, but think as one is a learning process.
  • TDD, boy this skills is fun and good but hell is dificult to get used to.
  • You're not alone in the world, the exchange of knowledge is a must have, exercise it! (is good to meet new people)
  • Attention, if you don't pay attention you'll loose yourself in the process.
  • Oh and I can't forget the fact that we are increasing our skills in the choosen language.
  • Having fun!!!
These are just a few reasons for participating of a coding dojo, pick one and happy coding.
To end I must thanks Rodolpho and Chester for leading such a great group of python coding dojo at São Paulo, Brazil.

Welcome to Windows JRuby!!!! Painless Ruby in Windows????

I read an interesting and funny post about JRuby on Windows and an appeal to Ruby community to make nicer to develop Ruby programs in Windows.

The best thing about this post is the fact that he was originated from a member of the community, Engine Yard. Why this is so nice? I guess its because we devs should worry about creating a program in Ruby not in buying the best hardware to program into it.

I really hope that Ruby grows in such way that Windows market share turns a natural part of its actual market share. The painless part about Ruby, in this case JRuby, in Windows is not needing any pre-reqs installed, just run JRuby installer and go rocking the world creating Rails applications or Ruby GUI applications immediately, awesome isn't it?

domingo, 9 de janeiro de 2011

CES 2011 - Technology Rocking the House

I was looking for CES news at CNET,Engadget and Gizmodo US and found lots of interesting things, but specially I wanted to show here two of them. This awesome robot from DreamBots that does massage on us and his name is WheeMee.
The other one is the list with CES best tablets until the moment by Gizmodo. I'm not copying all the info from there but I can say that my choices are Xoom and PlayBook, yeah they are both the top ones in the list but they are really good candidates to be the ones to compete with IPad. Xoom by Motorola
Playbook by BlackBerry
Doesn't matter if you're liking or hating CES we have all to agree that technology industry have really good surprises for 2011. Let them come!!!!