Este foi o primeiro Coding Dojo do ano organizado pelo pessoal do GruPy e também o primeiro encontro do GruPy no novo escritório do iMasters. O problema escolhido foi o "Cheque por extenso" que, basicamente, tem como entrada um valor monetário e como saida o mesmo valor por extenso.
Tivemos neste dojo várias caras novas e discussões muito saudáveis e acaloradas a respeito de diversas práticas adotadas por programadores Python.
Veja como foi a retrospectiva:
Positivo
divmod() +
.join()
Quase flame sobre pep +
Pizza ++
pytest ++
Poucos ifs
Local novo ++
Python ++++
Discussão de soluções +
Todos participaram
Terminamos
Git
future import do unicode_literals
Muitos testes e funções
Perto do metro Faria Lima
Ótimo método para transmitir conhecimento e experiência +
E começando o ano em baixo nível (literalmente), o nosso Coding Dojo do dia 14/01 foi utilizando Assembly! Isso mesmo! Assembly! A história é longa mas eu vou resumir aqui para vocês entenderem o porque das coisas terem mudado. :)
Originalmente este Coding Dojo seria para usar um algoritimo de proximidade, como foi proposto pelo Nicolas França em uma discussão no Facebook. Tudo estava confirmado e marcado para ser desta forma. Quem frequenta alguns Coding Dojos organizados por nós, sabe que, na maioria das vezes, a máquina que tem o ambiente montado ou que se monta o ambiente é a minha. Mas desta vez, meu note quebrou a tela e eu fui sem computador para o local do Dojo. Adivinhem o que aconteceu? É, pois é, ninguem levou computador.
Dessa forma ficou armado um impasse, como fazer um Coding Dojo sem computador? Começaram as divagações sobre o que fazer. Mas como eu disse uma vez, tire o computador de um developer e ele dará outro jeito de escrever seus códigos. De repente surgiram duas palavras chaves, Assembly e Lousa e ai deu no que deu! :)
Depois desse martirio todo, resolvemos fazer o FizzBuzz em Assembly. Com a ajuda do Danilo Belini, demos inicio ao processo. O Danilo deu uma rápida divagada sobre o assunto (se é que isto é possível) e depois começamos a criar nossas instruções.
Nem todos colocaram a mão na massa, talvez por medo (não julgo rsrs), mas todos deram seus pitacos e o Dojo foi muito divertido. No final esquecemos até de pedir a pizza.
Veja um pouco de como foi o Dojo nas fotos abaixo:
Para fechar o ano em grande estilo fizemos o nosso último Coding Dojo do ano na Germinadora, um lugar bem legal que vale a pena conhecer. E para melhorar ainda mais, a linguagem escolhida foi o Go, uma linguagem criada e mantida pelo Google e que, apesar de nova, é bem robusta e completa.
Tivemos algumas problemas de logistica, por ser o primeiro Codingo Dojo feito na Germinadora. Um deles foi que o piloto e o co-piloto ficaram de costas para a platéia, o que atrapalhou um pouco o andamento do dojo e o outro foram os perdidos que nunca tinha ido na Germinadora (que é muito bem localizada e fácil de chegar) e ficaram perdidos para chegar a tempo de pegar o início do Dojo. :P
Um outro problema que foi recorrente é o ambiente pré montado, alguns acharam que ficou demorado a configuração do ambiente mas, particularmente, acho que o que foi configurado lá no inicio do Dojo foi o que todo projeto precisa para iniciar e, por isso, faz parte do Dojo. Uma coisa que não foi legal e que aconteceu é que um dos princípios básicos do Coding Dojo foi quebrado por várias vezes, o TDD. Por várias vezes se escreveu código sem antes testar, mas isso foi bastante discutido na retrospectiva e, creio eu, resolvido. :)
Mas nem tudo foi ruim, como ponto positivo tivemos a participação de pessoas que nunca tinha ido a um Coding Dojo e junto com isso, uma visita de um dev de Floripa, o Nassor, que também acabou virando um dos mentores do Coding Dojo. Além disso, conseguimos mais um lugar para fazermos Coding Dojos, a Germinadora! :) (Obrigado Juan Bernabó e Léo Grijó, vocês são fodas!)
O código que geramos no Coding Dojo pode ser visto no repo oficial dos nossos Dojos: Oficial
Mas o João Victor e o Nassor resolveram o problema utilizando Go e fizeram comentários bem legais, vale a pena dar uma olhada em ambos: João Victor e Nassor
Veja um pouco das fotos de como foi o encontro e também a retrospectiva:
Para comemorar o Dia do Programador e a Sexta Feira Treze em grande estilo,
resolvemos fazer um Coding Dojo utilizando a linguagem Smalltalk. Além de
termos fugido do dia padrão para os Coding Dojos no iMasters
que são em terças feiras.
Neste Coding Dojo tivemos a tutoria do @fer_bass, além de
grande amigo, um excelente programador. Ele trouxe um problema já em mente, que foi o
Fator Primo, e também já veio com a ideia de usarmos o Pharo como
IDE para o Coding Dojo.
Tivemos alguns problemas no início, pois o HD do @fer_bass queimou na noite anterior e toda
a apresentação introdutória e ambiente preparado estavam nele. Isso dificultou o inicio dos
trabalhos, mas não impediu que a introdução a linguagem fosse abordade de forma bastante
completa pelo Fernando.
Veja um pouco das fotos de como foi o encontro e também a retrospectiva:
Retrospectiva:
Pontos Positivos:
Smalltalk ++++
Coca Cola
Mouse
IDE
História da Linguagem
Cores nos testes
Pontos Negativos:
Pizza +++++
HD queimado
Formato ++
TouchPad
Preparação antecipada sobre a linguagem
IDE sem arvore de arquivos
IDE não deixa salvar se o método não existe
Demoramos para chegar no problema em si
Caneta
Café
(Tinha mais coisa na retrospectiva, mas eu não consegui ler minha letra um dia depois)
Na noite do dia 08/08/2013, a Das Dad recebeu convidados de toda a
comunidade para participar do seu 9º Coding Dojo.
A linguagem da vez foi Ruby. O problema escolhido foi o jogo
Ruby Warrior, em que um guerreiro controlado por código Ruby precisa
matar inimigos e salvar reféns.
Em vez de escrever os testes, a validação do código era feita rodando o jogo
para tentar passar de fase. Essa dinâmica foi muito divertida! Várias ideias
inteligentes e gambiárricas surgiram para fazer nosso guerreiro Careca seguir
adiante.
Tivemos alguns problemas de infraestrutura tais como um computador morrendo,
a rede falhando e um pouco de código sendo perdido. Mas ainda assim conseguimos
chegar no fim do jogo!
Daqui quinze dias tem mais Dojo de quinta na Das Dad.
Na noite do dia 19/17/2013, a Das Dad recebeu convidados de toda a
comunidade para participar do seu 8º Coding Dojo.
A linguagem da vez foi o Lua. Criado pelo pessoal da PUC Rio, o Lua é
fascinante. Ela foi feita para ser uma linguagem de script embutida em outros
programas escritos, por exemplo, em C.
Sua performance é uma das melhores entre as linguagens de script,
característica garantida pelo conjunto enxuto de recursos e implementações
inteligentes de Máquina Virtual e Garbage Collection.
O problema foi escolhido na hora pelos participantes no site
Dojo Puzzles. Decidiu-se pelo problema dos Anagramas.
Várias ideias bacanas surgiram para a solução que quase foi alcançada. Os
maiores problemas vieram da falta de familiariadade com os recursos do
Lua.
Daqui quinze dias tem mais Dojo de quinta na Das Dad.
Este nosso Coding Dojo foi marcado por um novo formato. Desta vez fizemos usando o formato PreparedKata, que tem as seguintes características:
Defini-se um limite de tempo.
A solução é iniciada do zero.
Usar TDD e BabySteps.
Todo passo deve ser explicado para que todos consigam acompanhar.
As pessoas só devem interromper se não estiverem entendendo algo.
É claro que nem todos esses passos foram seguidos a risca, mas na medida do possível todos foram cumpridos.
Tivemos a presença de 13 pessoas bastante concentradas e interessadas, dessa forma, não aconteceram dispersões graves e o fluxo do Coding Dojo seguiu (quase) como o programado.
No início eu, Alê Borba, fiz uma rápida apresentação sobre o ecosistema da Amazon Web Services e sobre como é e para que serve o Elastic Beanstalk. Essa apresentação serviu para deixar todos alinhados com o assunto do Dojo e dar um ponta pé inicial sobre o que seria o Coding Dojo.
O problema que escolhi para este Kata foi colocar o Postmon funcionando no ecosistema do Elastic Beanstalk, com deploy via Git, monitoramento, escalabilidade, conexões externas e tals. E no final, fazer um teste de stress na aplicação para ver a coisa escalar. :)
Para todos entenderem o desafio, vou explicar um pouco sobre como o Postmon funciona hoje e quais eram os principais desafios em colocá-lo no Elastic Beanstalk:
O Postmon, hoje, roda em um único servidor, que serve como servidor de banco de dados e servidor de aplicação, este era o primeiro desafio, separar o servidor MongoDB do servidor onde estava rodando a aplicação. Este ponto foi fácil, subimos uma instância EC2 e cofiguramos nela o MongoDB. Uma outra especificidade do Postmon é ele rodar utilizando o Bottle e o lxml como dependências, ai neste ponto algumas pessoas acham que isso não é um problema, basta colocar no requirements.txt e está tudo certo. Não, errado! Por algum motivo, o PIP utilizado pelos servidores do Elastic Beanstalk não possuem, nos seus mirros, nem o Bottle e nem o lxml. Tivemos que fazer um hack simples para o Bottle e um hack bastante bizarro para o lxml (quem já teve que compilá-lo sabe o quão chato ele é para isso.)
Como o tempo acabou ficando curto, não conseguimos resolver o problema totalmente. Mas combinamos de marcar um dia para revisitarmos o problema, já com uma "pré" solução e fazermos os tão sonhados e queridos pelos presentes, testes de stress! o/
Seguindo com seu cronograma de Coding Dojos quinzenais para toda a comunidade,
a Das Dad recebeu os participantes na noite do dia 06/06/2013.
A linguagem escolhida na hora, entre algumas opções de ambientes montados, foi
Java. O problema foi selecionado no site da OBI, dentre os problemas
disponíveis para treino para a Olimpíada. Foi resolvido o
O mar não está para peixe, que está entre os exercícios de nível 2.
O pessoal que veio mandou muito bem, além do Pair Programming todo mundo
foi para o quadro branco esboçar ideias, pensar e resolver o problema.
Isso enquanto comia o mais fino da trash food provida pela casa.
Na última rodada conseguiram terminar de implementar a solução e enviar no
corretor da OBI, que aprovou o código!
A retrospectiva e o código podem ser encontrados no repositório dos
Dojos da Das Dad.
Se o seu Dojo vai acontecer no Estado de São Paulo e não esta na nossa agenda, entre na lista do DojoSP no Google Groups e faça um post sobre o seu Coding Dojo.