- Data: 12/12/2009
- Horário: 09:30 às 12:00
- Participantes: Guilherme Oenning, Lorival S. Chapuis, Rafael de Souza, Polyana Roberta, Alex, Vanderlei, Machado
- Problema: Secret Santas
- Ambiente: Python 2.6, PyUnit e Ubuntu 8.10 (Live)
- Código: Em breve, problemas com upload no wordpress.
- Formato: Randori
Aconteceu sábado passado o Dojo especial de Natal. Tivemos a presença de novas figuras e um problema com tema natalino que encontramos no RubyQuiz. Decidimos começar este Dojo mais cedo, às 09:00, mas a experiência não foi muito boa, começamos às 09:30.
É triste dizer isso, mas foi o Dojo mais improdutivo, foi escrito muito pouco código. Por outro lado, as pessoas que vieram pela primeira vez conseguiram absorver algumas informações, quem não sabia o que eram testes automatizados e/ou TDD agora sabe, e é isso que importa.
Tivemos uma dinâmica um pouco diferente, cada participante ganhava uma carta quando ia até lá na frente e no final fizemos um “heads-up” (Poker) para ver quem tinha a melhor mão, o ganhador levava o prêmio, um pen-drive de 2Gb.
Como em todo jogo de Poker os iniciantes ganham, aqui não foi diferente e a Polyana levou o prêmio.
Retrospectiva
Negativos:
-Poucas pessoas (4);
-Solucao incompleto (4);
-Imagem imprópria;
-Atraso pro inicio;
-Não foi muito divulgado;
-Apresentacao demorou no comeco;
Positivos:
-Teve boa comida (5);
-Teve sorteio (2);
-Problema legal (3);
-Troca de conhecimentos/Aprendizado, Python + TDD (4);
-Dinâmica legal;
-Pessoas novas (2);
-Clima de natal;
-Discussão arquitetura;
Sugestões:
-Passar de sala em sala;
-Pegar e-mail dos representantes;
- Data: 14/11/2009
- Horário: 10:00 às 12:20
- Participantes: Cláudia Mattos Izidoro, Guilherme Oenning, Lorival S. Chapuis, Murilo Carlos Cardoso, Rafael de Souza, Carlos Alberto Julio Batista, Polyana Roberta, Rafael Floriano, Juliano Thiago Rinaldi, Felipe Alberto
- Problema: Url splitting
- Ambiente: Python 2.6, PyUnit e Ubuntu 9.10 (Live)
- Código: Dojo #3 - 5.5 KB
- Formato: Randori
Desta vez o dojo começou em ponto. Quer dizer, quase. Tivemos uma demora no boot do Ubuntu Live, mas os participantes chegaram bem cedo. Mas isso não volta a ocorrer, no próximo dojo já não usaremos mais o Live.
Novamente optamos por um problema de algoritmo que envolvia a manipulação de uma string. O problema consistia em, dado uma URL correta, a classe deveria ser capaz de retornar algumas informações. São elas:
- Protocolo;
- Domínio;
- Caminho e
- Query String.
O problema foi 100% resolvido. 100%? Sim! Pela primeira vez conseguimos terminar completamente o problema. Percebi que o desenvolver da solução foi muito mais rápido que nos outros Dojos, este problema era mais complicado que o anterior mas mesmo assim conseguimos evoluir mais rápido. Logo mais estaremos resolvendo problemas de 7 cabeças em poucos minutos :)
Participem deste tópico no grupo, será discutido como serão os próximos breaks e se realmente haverá 3 horas de dojo ou se continuaremos a fazer apenas 2 horas.
O Murilo ficou encarregado de trazer os chocolates no Dojo #4, caso ele falte, o Rafael Souza trará.
Retrospectiva
Negativos:
-Faltou IDE (2);
-Faltou comida;
-Pouca participacao do co-piloto;
-Dificuldade com a linguagem;
-Gedit desconfigurado;
-Problemas com ubuntu live;
Positivos:
-Terminamos o problema (5);
-Comecamos no horario (4);
-Novos participantes (4);
-Problema abordado de facil solucao (2);
-Participacao de todos (2);
-Ter mais pessoas com conhecimento na linguagem;
Sugestões
-Mais tempo (4);
-Novos desafios diferentes;
-Turbinar Gedit (ipython, plugins);
-Topico sobre alimentacao no grupo;
-Colocar material de python no grupo;
-Colocar blog nos sites da ist e udesc;
-Instalar ubuntu;
- Data: 24/10/2009
- Horário: 10:20 às 12:20
- Participantes: Cláudia Mattos Izidoro, Guilherme Oenning, Lorival S. Chapuis, Murilo Carlos Cardoso, Rafael de Souza, Carlos Alberto Julio Batista, Polyana Roberta
- Problema: Template Engine
- Ambiente: Python 2.6, PyUnit e Ubuntu 9.04
- Código: Dojo #2 - 862 bytes
- Formato: Randori
O dojo começou um pouco atrasado devido ao atraso de alguns participantes, mas foi resolvido ficando um pouquinho mais tarde :)
Desta vez optamos por um problema mais simples e rápido para ver como ia desenrolando as atividades. O feedback do pessoal foi bom, penso que todos gostaram mais deste do que o primeiro, e acho que é pelo fato de que conseguimos resolver o problema proposto. Ok, vou ser sincero e dizer que faltou fazer UM teste, mas quase chegamos lá.
O problema basicamente consistia em fazer substituição de strings de um dicionário de palavras em uma frase com palavras-chave. Foi um problema estritamente técnico porém foi o escolhido entre os outros que rondavam mais o mundo real. Tivemos algumas dificuldades na linguagem, mas todas foram resolvidas na hora e o Dojo não parou por isso.
Infelizmente alguns participantes confirmaram e não foram, é uma pena, perderam, foi muito legal. Veja este tweet do Rafael. A partir do próximo dojo faremos a divulgação em algumas faculdades, com isso esperamos atingir mais adeptos ao nosso culto nerd que ocorre quinzenalmente.
O Lorival trouxe uma caixa de chocolate nos dois encontros e todo mundo gostou, ficou definido que todo dojo alguém será encarregado de trazer os chocolates. Ganha chocolate aquele que participar lá na frente. Não é chantagem, é incentivo :)
Quanto aos breaks, a cantina nem sempre estará aberta, foi sugerido juntar uma graninha de cada participante e trazer alguma coisa para comer, um bolo, pães de queijo etc. Esse assunto terá que ser discutido mais para frente para ver se todo mundo concorda. Por enquanto, teremos que nos contentar com a água dos bebedouros e os chocolates.
O Carlos Julio ficou encarregado de trazer os chocolates no Dojo #3, caso ele falte, o Murilo trará.
Retrospectiva
Negativos:
- Participantes chegaram atrasados (3)
- Não teve break; (2)
- Falta de alguém com alto conhecimento na linguagem; (2)
- IDE sem muitos recursos; (2)
- Problema com teclado do Oenning;
- Participantes confirmados não compareceram;
- Atraso do início do Dojo;
Positivos:
- Todos participaram; (4)
- Conhecer nova linguagem; (2)
- Atingimos todos os objetivos para com o problema; (2)
- Espaço estrutural bem aproveitado para o evento;
- Baby steps feito de forma correta;
- O problema escolhido foi bem interessante;
- Continuar o dojo mesmo com poucas pessoas;
- Não houve problemas com Sistema Operacional;
- Reforçarmos TDD;
Sugestões
- Revezar quem leva chocolate;
- Ter mais tempo (3hs?);
- Trazer garrafinhas de água;
- Fazer python funcionar com eclipse (PyDev);
- Começar 10 horas em ponto;

Galerinha no Dojo #2
Melhoria contínua é um dos objetivos do JoinvilleDojo, por isto paramos para analisar as linguagens de mercado e tentar ficar dentro dele, além de continuar aprendendo novas técnicas.
Inicialmente tinhamos definido que os Dojos seriam em 4 linguagens: C#, Java, Ruby e Python. Duas linguagens dinâmicas, Ruby e Python, (quase 3, pois o C# terá recursos dinâmicos na versão 4) e duas estáticas, Java e C#.
Aprender linguagem não é o objetivo do Dojo, embora não seja incomum fazer Dojos para isso, por isto decidimos escolher uma linguagem dinâmica e uma estática para usar nos Dojos, usando as outras mais exporadicamentes.
As linguagens escolhidas foram Java e Python, juntamente com o Sistema Operacional Linux.
Isso não quer dizer que Ruby e C# estejam descartados, podemos usá-las a qualquer momento, porém não tão freqüentes. Também não quer dizer que nunca mais iremos mudar, estamos sempre buscando kaizen.
O próximo Dojo será em Python usando Linux.
Abraços e até lá.
Pessoal, dia 24/10 será realizado o segundo encontro Nerd do Joinville Dojo. O local será o mesmo, na SOCIESC da Marquês de Olinda, começa às 10:00 e seguirá até 12:00 com uma pausa de 15 minutos para fazer uma boquinha. O foco continua sendo TDD, mais detalhes serão passados na hora.
Todos estão convidados! Caso não tenha comparecido à primeira reunião, veja este post para se contextualizar.
Nos vemos lá!
- Data: 26/09/2009
- Horário: 10:00 às 12:00
- Participantes: Cláudia Mattos Izidoro, Cláudio Eduardo Steuernagel, Guilherme Fernandes Germano, Guilherme Lopes, Guilherme Oenning, Juliano Tiago Rinaldi, Lorival S. Chapuis, Murilo Carlos Cardoso, Polyana Roberta, Tiago Gauziski
- Problema: Conversor de números decimais para romanos
- Ambiente: C# 3.5, NUnit 2.5 e Windows 7
- Código: Dojo #1 - 7.67 KB
- Formato: Randori
A sessão de dojo fugiu um pouco da programação tradicional, começou com uma apresentação do Guilherme Oenning e Lorival Smolski Chapuis sobre coding dojo, regras e informações extras do Dojo de Joinville. Em seguida Guilherme Lopes, Scrum Master da TOTVS, seguiu falando sobre TDD e porque devemos aprender esta técnica.
O problema escolhido foi escrever um algoritmo que fosse capaz de converter números decimais em números romanos, o objetivo era aprender TDD. Pelo feedback dos participantes, todo mundo conseguiu sair de lá sabendo o que essa técnica. A dinâmica de trocar a cada 7 minutos funcionou perfeitamente, de início achamos que ninguém iria se voluntariar para ir lá na frente, engano nosso, quando acabou o dojo já havia outra pessoa se levantando para participar, mas infelizmente o tempo havia acabado. Não foi realizado uma votação para escolher a linguagem pelo fato de que o objetivo era aprender TDD e não C#.
No final tentamos escolher uma data para o próximo encontro mas não conseguimos, portanto foi criado um tópico no google groups para a votação. Acredite se quiser, o pessoal está querendo fazer em um Domingo, isso é a prova de que gostaram e possuem sede de conhecimento, e esse é o espírito.
PDF da apresentação do dojo: Apresentação Joinville Dojo - 673.75 KB
PDF da apresentação de TDD: Apresentação TDD - 874.38 KB
Retrospectiva
Negativos
-Pouco tempo de dojo; (4)
-Problemas técnicos com sistema operacional; (3)
-Problema muito dificil e extenso; (2)
-Pouco tempo por participante, sugestão de 10 minutos; (2)
-Nervosismo dos participantes;
-Responsável pela cantina falou que iria estar aberta mas não abriu;
-Pouca familiaridade com a linguagem escolhida;
-Baby steps lentos, será que precisa ser tão devagar;
Positivos
-Aprendemos TDD; (5)
-Paciência e participação dos envolvidos; (2)
-Vários pontos de vista para uma única solução; (2)
-Discussão e cooperação em grupo; (2)
-Várias pessoas participaram; (2)
-Resolução de casos simples de forma dinâmica;
-Exercitar programação;
-Boa apresentação;
-Iniciativa dos organizadores;
-Pair-Programming;
-Participação de alguém que atua na área;
-Regras funcionaram bem;
-Ótimo lugar;
Sugestões
-Mais tempo (3 horas?);
-Usar CamStudio para a gravação;
*Alguns pontos levantados foram agrupados

O que é um Dojo?
O Dojo é o local onde se treinam artes marciais, especialmente as nipônicas, tais como karate e judo.
O que é um Coding Dojo?
Um Coding Dojo é uma reunião onde um grupo de programadores se reúne para trabalhar em um desafio de programação. Eles estão lá para se divertir e para participar em prática expontânea de forma a melhorar suas habilidades.
Em um ambiente não competivivo e colaborativo, todos os participantes possuem um objetivo em comum que é resolver o problema que foi proposto no início da sessão. Para tanto, é utilizado algumas práticas de XP como o TDD (Test Driven Development), o Pair Programming e o Refactoring.
Como funciona?

Debugging sucks. Testing rocks.
A modalidade mais famosa é a Randori, nos primeiros minutos do Coding Dojo todos os participantes votam para escolher qual o problema que será resolvido ( isso garante que ninguém venha com uma solução pronta de casa ) e também elegem qual a linguagem de programação que irão utilizar para resolver o problema. Durante duas sessões de X minutos ( com um break entre elas para tomar um café ) todos os participantes se voltam para tentar resolver o problema. Deve haver apenas um computador e duas pessoas no comando, o piloto e co-piloto. O piloto é responsável por usar o teclado, escrevendo os testes e o código, enquanto isso o co-piloto explica para os outros participantes o que está sendo feito. É utilizado também a técnica de TDD, enquanto os testes estão vermelhos ( estão com erros ) ninguém pode falar nada, quando os testes ficam verdes, é aberto aos outros participantes para opinarem, darem sugestões ou críticas, lembrando que todo o código deve ser guiado por testes. O piloto fica durante 7 minutos no comando, quando acabar o tempo o co-piloto vira piloto, e alguém da platéia sobe para co-piloto, ninguém é obrigado a participar, podendo apenas ficar assistindo. No final das duas sessões é feito uma retrospectiva listando todos os pontos positivos e os negativos da sessão para que se possa tomar alguma ação para ter uma melhoria contínua durante todos os encontros.
Porque fazer um Dojo?
O principal motivo é que os Desenvolvedores não treinam. Fazendo uma analogia com o Futebol, um jogo da copa do mundo seria um dia de trabalho, a final da copa seria o final de um projeto de software e os treinos diários da seleção é para nós, o Coding Dojo. Será que uma seleção conseguiria ganhar uma copa sem treinar? O Codingo Dojo foca bastante no aprendizado contínuo e na trocar experiências, você sempre tem mais o que aprender, ensinar e de quebra ainda aumenta seu network.
Participe!




