29.08.09

Dojo 78: Problema Simples em ruby e rspec

Posted in Ruby at 3:29 pm by raganhan

  • Data: 25/08/2009
  • Horário: 13h00
  • Participantes: Firmo, Raganhan, Flores, Douglas, Suzana, Felipe, Samuel, Rentao, Vinicius, Atol
  • Problema: Fizzbuzz
  • Código: no github, em breve
  • Formato: Kata

O Flores preparou um kata simples para mostrar rspec, um framework de BDD para ruby. Este kata é baseado numa brincadeira onde pessoas em crianças em circulo falam cada uma um número em ordem. Se o número contiver 3 ou for múltiplo de 3 então a criança deve dizer “Fizz” ao invéz do número, se o número contiver 5 ou for múltiplo de 5 então a criança deve dizer “Buzz”, por fim se as duas condições forem verdadeiras então o a criança precisa dizer “Fizzbuzz”. O problema é fazer um programa que jogue esse jogo para números de 1 até 100.

Retrospectiva

Do ruim:

  • Problema poderia ser mais difícil (x3)
  • Randori é mais legal (x2)
  • Faltou maior participação dos espectadores (x2)
  • Pouca gente (pessoal do dojo de sábado não veio)
  • Faltou o break
  • Poderia ser mais rápido nos testes repetidos ( cinco_divide por exemplo )
  • Mais dojos de tarde

Do bom:

  • Babysteps
  • Aprender sobre ruby (x3)
  • Problema simples ajuda a entender melhor a linguagem
  • Foi legal fazer algo bem simples para entender melhor TDD / BDD
  • Presença de bixos
  • Público ficou em silêncio
  • Bastante gente
  • Ver como o rspec funciona
  • Dojo de tarde
  • Flores explica bem

Uma coisa que foi bastante falada no final é que todo mundo quer mais dojos neste horário

19.10.08

UberDojo02 no Coding Dojo 55

Posted in Haskell, Ruby, UberDojo at 9:48 am by hugo

Na última segunda-feira rolou a edição número 55 do Coding Dojo. Ela foi, em muitos sentidos, especial. Para começar, o Danilo Sato estava presente acompanhado de um colega da Toughtworks,

Usamos duas mesas que representaram duas linguagens (Haskell e Ruby) e cada lado da mesa representou um problema (Bank OCR e Minesweeper). Tivemos então 4 notebooks nos quais 4 pares codaram ao mesmo tempo. Tivemos turnos de 7 minutos como sempre e, ao término do turno, o co-piloto virava piloto, o piloto ia para a “platéia” e alguém da platéia virava co-piloto. Isso era feito tentando evitar que as duplas se repetissem e que as pessoas caissem no mesmo conjunto problema/linguagem muito freqüentemente. Fizemos isso durante pouco mais de uma hora e estávamos em 10 pessoas da velha guarda (Danilo, Thiago além de Fabricio, Jacqueline, Yoshi, Mariana, Breno, Adolfo e eu) e 4 novatos (George, Renato Willi, Bruno Pedroso e Rafael Schouery). Assim sempre sobravam 6 pessoas não programando para fazer as pizzas que acompanharam (Yoshi, Breno e Jac principalmente cuidaram disso, valeu!) e aprender um pouco vendo os outros programarem.

Demoramos um bocado para escolher os problemas e linguagens assim como para configurar o ambiente inicial nas quatro máquinas para que eles ficassem fáceis de usar para todos. Os turnos foram muito intensos e a galera estava em animada e falando alto procurando ajuda do pessoal que estava livre. Rolou uma boa troca de conhecimentos apesar de não ter tido o telão. O pessoal se divertiu bastante inclusive os novatos que agüentaram muito bem o tranco apesar de terem achado o tempo dos turnos muito curtos.

Em retrospectiva, percebemos que boa parte dos nossos problemas vieram da pressa para tentar dar passos grandes e não gastar um tempinho explicando ao novo co-piloto o que estava acontecendo e quais eram os próximos passos. Também concordamos que esse exercício requer participantes que já saibam bem trabalhar com TDD (Desenvolvimento Dirigido por Testes) e que, apesar de ser mais divertido e excitante que o dojo normal, não podemos manter esse formato em todas as sessões. Decidimos então que faríamos uma sessão desse tipo por mês. Também gostaríamos de ter feito uma retrospectiva mais adequada (ficou só na conversa a retrospectiva que fizemos).

Acho que é isso. Se tentarem isso, por favor, mandem-nos feedback a respeito.
Até o próximo dojo pessoal!

13.10.08

SuperDojo1 – Minesweeper

Posted in Ruby, UberDojo, python at 6:21 pm by adolfo

No último sábado, a AgilCoop promoveu o 1o. Encontro Ágil. Um dos pontos positivos, a meu ver, foi a disponibilização de uma sala destinada a debates de temas fora da grade do evento. E foi nesta sala, chamada de Open Space, que aconteceu o nosso primeiro SuperDojo.

Nesta nova modalidade, que só pode ser executada na forma de randori, a brincadeira é feita com um computador e sem telão. Escolhido o problema, piloto e co-piloto se reúnem no único computador ligado e codam, enquanto a platéia fala de assuntos diversos. Passados os 7 minutos habituais, o piloto vai para a platéia, o co-piloto assume o teclado e alguém da platéia, após 7 minutos de um papo descontraído, é surpreendido com aquele código legado. É bem interessante e desafiadora esta experiência de ser inserido num contexto e ter que continuar o problema tendo 7 minutos para aprender o código e mais 7 para colocar suas idéias nele.

Contamos um pouco do funcionamento das nossas reuniões para os novos participantes do grupo. Foi boa surpresa saber que eles ouviram falar do Dojo, encontraram informações no site do Danilo, e já realizaram duas sessões na empresa em que trabalham. Reafirmamos aqui o convite para que participem também das nossas sessões às segundas-feira, 20 horas, no IME/USP.

Em seguida, escolhemos o problema do campo minado e resolvemos programar em Ruby. Tivemos muito pouco tempo para codar, por conta da proximidade do encerramento do evento. Logo nos primeiros rodízios, o Fabs começou a resolver o mesmo problema com o Bruno em Python, em outro computador. Neste momento, não sei mais se estavámos no meio de um SuperDojo ou de um UberDojo.

Particularmente, eu achei a experiência muito desafiadora e divertida. Não é muito fácil se concentrar com o pessoal falando de vários assuntos e se ver no meio de um problema já começado e tendo 14 minutos para conviver com ele. Achei muito legal esta nova modalidade. Tomara que possamos praticá-la novamente!!

E vocês o que acharam? Que tal fazer a retrospectiva e parking lot nos comentários deste post?