quinta-feira, 16 de junho de 2011

Dojo@UFBA #4 em 15/06/2011 - ruby

O que?
DOJO em Ruby na UFBA conduzido por Alex Chastinet (@alexchastinet) e Luciano Borges (@lusabo) em conjunto com a turma de Paradigmas e Linguagens de Programação a convite do professor Manoel Mendonça.

Quando?
15/06/2011, das 17h ás 19h 


Onde?
Sala 122 do PAF I na UFBA. 



Como foi a agenda? 
15' - Linguagem Ruby
105' - Programação em pares, rodízio a cada 5 minutos, 
20' - Retrospectiva 

Quem participou? 
Toda a turma. :) 

Qual foi o desafio? 
Desenvolver um sistema para analisar seus jogos da mega-sena.

Em qual linguagem?
Ruby 



E a retrospectiva?



Pontos Positivos :-)

  • Ruby (4x) / Sintaxe;
  • O desafio / Desafio interessante (2x) / Problema;
  • Programar novamente em Ruby;
  • Uma linguagem nova;
  • Linguagem parecida com as usadas em DOJOs passados;
  • Conhecimento de uma linguagem com um alto potencial de desenvolvimento web. Seria bom um DOJO com o Rails associado;
  • O rigor às regras de transição dos diálogos;
  • Problema explorou bem a linguagem, considerando o tempo reduzido do DOJO;
  • Práticas de TDD sendo seguidas a risca;
  • Convidados bem preparados;
  • Convidados participaram mais como pitlo;
  • A turma está mais ambientada com os DOJOs.

Pontos de Melhoria :-(

  • Ausência de mouse (2x);
  • Cor da fonte do ambiente de programação;
  • Tela preta da IDE;
  • Problema mal especificado como um todo, no entanto, não houve perdas com isso;
  • Desafio não ficou claro no início;
  • Conhecimento na linguagem;
  • Pilotos e co-pilotos ainda silenciosos (2x);
  • Introdução longa;
  • Conversas paralelas recorrente.

Contribuições do Prof. Manoel

  • Criar uma biblioteca de problemas com slides padronizados;
  • Criar uma aplicação de medição de tempo;
  • Tempo de pilotagem pode ser variável;
  • Comparação de Linguagens em DOJOs.



Teve slides? 
Sim. Veja aqui.

E fotos?





Então, mostre-me o código! 
O código está no Google Code no endereço https://code.google.com/p/dojo-bahia/source/browse/#svn%2Ftrunk%2Fufba-2011%2Floteria

quinta-feira, 9 de junho de 2011

Dojo@UFBA #3 em 08/06/2011 - python

Na sequencia de dojos na turma de Paradigmas e Linguagens de Programação de 2011.1, em 08/06/2011 foi a vez da linguagem Python. Eu e Luiz Cláudio (ambos do GruPy-BA e do LinguÁgil) apresentamos uma introdução à linguagem. Em seguida, eu expliquei brevemente o problema: calculadora romana, um kata listado no site original do Coding Dojo.

O ambiente usado foi o gnome, uma janela do gedit aberta e uma janela de terminal para rodar os testes na linha de comando. Os alunos chegaram a um consenso bem rapidamente sobre a forma de atacar o problema. Para saber como foi, veja o código versionado no repositório do dojo-bahia ;-). O professor Manoel e Luiz Cláudio interferiram com sugestões durante as pilotagens.

No fim, dois alunos (TODO: atualizar os nomes) tomaram a frente e fizeram a retrospectiva no quadro. A turma gostou da linguagem.O que achei engraçado, desta vez, foi o número de participantes que escreveu, literalmente, "Desafio interessante", heheh. Parece até que combinaram. Além disto, como o problema foi algorítmico, a conversa da platéia foi intensa e isto pode ter atrapalhado um pouco. No fim, não conseguimos resolver o problema todo (como pode-se ver ao rodar o código), mas acredito que a experiência agregou bastante por eles estarem exatamente no meio do curso de Ciência da Computação.

:D
  • Desafio legal. Linguagem dinâmica. Melhor participação.
  • PYTHON \o/. Desafio interessante
  • Sintaxe simples e limpa. Desafio interessante.
  • Primeira experiência python. Desafio desafiador.
  • Produtivo. Análise de um problema novo. 
  • Aprendizado de uma nova linguagem (mesmo que parcialmente).
  • Python. Bom desafio.
  • Python! TDD em python.
  • Pessoas mais participativas. Desafio muito bom/estimulante. Tempo melhor aproveitado.
  • Desafio interessante
  • Python é um ponto positivo!
  • Linguagem dinâmica. Desafio legal.
  • Problema compatível com o tempo do dojo. Linguagem simples.
:(

  • Alguns molugadores (?) ainda estão conversando baixo
  • Tempo
  • (vazio)
  • Falha de segmentação!
  • O pessoal participou menos como piloto!
  • Muita gente discutindo a solução em grupos paralelos
  • Pouco conhecimento da linguagem.
  • Tempo curto. Dojô começou tarde.
  • Pouco conhecimento de detalhes da linguagem.
  • Tempo curto. Processo de teste confuso (uma vez, nas condições ideais, não dificulta o bom andamento do Dojo)
  • -1 e 3000
  • Conversas individuais
  • O desafio poderia ser mais divertido

Fotos:











sábado, 4 de junho de 2011

Dojo Google App Engine Python @ Apimenti sábado 04/06/2011

O que?
Coding Dojo de pythonGoogle App Engine + web.py

Por que?
Disseminação das tecnologias web.py e Google App Engine.

Quando?
04/06/2011, das 10h às 13h


Onde?  


Preparação?
Foi feita uma enquete para levantar o número de pessoas com intenção de participar, pois a empresa tem um espaço limitado para 15 pessoas.

Agenda planejada?
Segundo o anúncio inicial:
09:30 - 09:55 : Slides coding dojo + nivelamento python (se necessário)
09:55 - 10:00 : Apresentação do problema
10:00 - 11:45 : Mão-na-massa
11:45 - 12:00 : Retrospectiva, pedido da pizza.
12:00 : Pizza!

Agenda realizada? 
As atividades começaram por volta das 10:30
30' - Apresentação de coding dojo
30' - Apresentação do web.py e Google App Engine para Python
2' - Explicação do problema
70' - Dojo (duas rodadas de 5 minutos para as 7 pessoas)
3' - Publicação no google app engine
15' - Retrospectiva (não houve post-it. cada um digitou os pontos positivos e negativos diretamente no blogspot)

Quem participou? 
  • Luiz Cláudio (grupy-ba)
  • Jailson Brito (apimenti)
  • Ivan Rocha (apimenti)
  • Rafael Ávila (apimenti)
  • Maurício Vieira (grupy-ba)
  • Vinícius Vollrath (grupy-ba)
  • Thiago Colares (apimenti)

Qual foi o desafio?
A idéia inicial era aprender multitenancy. Para isto, idealizou-se uma aplicação de pesquisas inspirada no http://twtpoll.com. Há uma página para cadastro das questões, uma para o usuário responder às perguntas, e uma com o relatório das respostas.


E o multitenancy?
O desenvolvimento desta aplicação será continuado no github. Se tiver interesse em aprender mais, participe do grupy-ba.

O que aprendemos?

Pontos positivos :-)
  • Diversão. Participação de mais uma empresa no circuito de coding-dojos. Aplicação publicada e funcionando ao fim do dojo.
  • Oportunidade de programar em Python e conhecer a Google App Engine
  • Aumentar a rede de contatos
  • Bastante interação entre piloto, co-piloto e plateia
  • Conhecimento de novas tecnologias
  • Pizza!
Pontos de melhoria :-(
  • Planejamento não funcionou, porque as apresentações demoraram bastante. Algumas pessoas que se propuseram a vir, não compareceram. Não usou TDD.
  • 5' não dá para brincar.
  • Houve um atraso no começo e tivemos que utilizar uma máquina não planejada
  • Os baby steps estavam um pouco longos
  • Falta de conhecimento do GAE (exemplo: buscar uma pergunta pelo seu ID)
  • Atraso de alguns participantes. Máquina improvisada não abria slides em tela cheia.
Teve slides?
Sim. Foram apresentados os slides Coding Dojo em 5 minutos por Maurício Vieira, e Usando python na Google App Engine por Luiz Cláudio.

E fotos?




Piloto e copiloto da vez. E platéia ajudando.

Vinícius e Rafael

Luiz Cláudio (LC), Ivan, e Jailson.

Ivan e Thiago no comando. LC observando.

LC e Ivan no comando. Jailson só olhando...
Queixo: funciona até no iPad! Hehehe.

Autores. Só faltou LC, que teve que sair antes.

Collective ownership: meu código funciona!
Cadê esse código todo? O código está no Google Code.
Então, mostre-me a aplicação!  http://pesquizza.appspot.com

quinta-feira, 2 de junho de 2011

Dojo@UFBA #2 em 01/06/2011

Novamente a convite do professor Manoel Mendonça, foi realizado um dojo com a turma de Paradigmas e Linguagens de Programação de 2011.1. Desta vez, a linguagem escolhida foi Groovy. O dojo foi conduzido com a ajuda de Serge Rehem, que me pediu para relatar aqui. Luciano Borges também estava presente e ajudoua apresentar a linguagem aos alunos.

Foram apresentados os slides de Groovy antes do início dos trabalhos. Como a turma já conhecia a técnica, não foi necessária a apresentação de praxe.

No Dojo, foi usada a IDE SpringSource Tools Suite, que tem suporte a sintaxe groovy e execução de testes a la jUnit. O desafio foi o do boteco, já realizado em outros coding dojos aqui em Salvador (se você souber, aponte ou coloque o link do relato!) e os alunos conseguiram fazer todos os casos de testes. O código foi publicado no repositório do dojo-bahia.

No fim, ajudei a fazer a retrospectiva, com Serge e o professor Manoel. Um fato curioso foi ter 5 ou 6 post-its com pontos negativos em branco ;-).

:D
  • Boa interação com a galera; fácil uso da linguagem.
  • Boa introdução de 15 minutos. Falaram alto na maior parte das pilotagens. Como a linguagem não era 100% nova, foi mais fácil. Problema bacana.
  • Bom apesar de pouco conhecimento na linguagem (Introdução à linguagem foi boa!). Desafio interessante.
  • Treinamento em linguagens diferentes e possibilidade de mexer no código dos outros.
  • A linguagem é simples e interessante, com isto o problema pode ser resolvido mais facilmente. A turma já conhece o esquema e está menos tímida.
  • Pessoal mais participativo. Linguagem fácil, super legal.
  • Conhecimento de uma nova linguagem de peculiaridades muito interessantes e sintaxe conhecida.
  • Problema "novo". Programar em "grupo". Adquirir visões diferentes de programação e visões do problema.
  • Aprendemos uma linguagem nova. O dojo desenvolveu-se bem devido à prática do dojo anterior
  • Desafio simples e interessante.
  • Sintaxe da linguagem parecida com Java. Público já tinha conhecimento de como funciona o dojo. Público menos tímido.
  • Linguagem dinâmica.
  • Sintaxe simples. Problema legal. Povo + participativo.
  • Apresentação de uma linguagem "nova". Um desafio divertido. Piloto e co-piloto de frente para as pessoas da sala.
  • O desafio. Groovy.
  • Dinamismo. Conhecer uma nova linguagem. Facilidade de acompanhar a discussão pela semelhança com Java.
  • Introdução e contato com Groovy.
  • Contato com Groovy. Boa organização física da sala. Uso de TDD. Tipagem dinâmica e estática.
     
:(
  • Tempo curto. Poderíamos fazer 1 problema bem simples p/ pegar a sintaxe e depois partir para um + difícil.
  • Não vi nenhum ponto negativo, apenas o desconhecimento da linguagem por parte dos alunos.
  • Pela semelhança com Java, foram utilizados recursos da linguagem sem muita explicação prévia. Meu conhecimento em Java.
  • Teclado pequeno
  • Timidez da turma. Desenvolvimento do tema "testes". Tempo sem programar na linguagem
  • Algumas pessoas ainda precisam se motivar a participarem.
  • Tempo muito curto, quando estava começando, acabou =(. Conversa paralela da platéia.
  • Pouco tempo
Fotos:



Na próxima semana, haverá outro, em python, e eu devo ajudar a conduzir dessa vez.

    quarta-feira, 1 de junho de 2011

    CMO DOJO #1: FIZZBUZZ (JAVA)

    O que?
    Coding Dojo #1

    Por que?
    Para experimentar e disseminar a técnica e as práticas relacionadas (TDD, Programação em Pares, Refatoração, Baby Steps...).

    Quando?
    19/05/2011, das 14:00 as 16:00h

    Onde?
    Secretaria da Educação - CMO

    Como foi a agenda?
    • 10' - Visão geral sobre Dojo
    • 5' - Apresentação do desafio
    • 1h 15' - Dojo
    • 30' – Retrospectiva
    Quem participou?
    • Serge Rehem
    • Angela Sanches
    • Vagner Silva
    • Fernanda Kumagai
    • Thiago Pinho
    • Marcos Ganem
    • Poliana Peixoto
    • Fábio Pimentel
    • Bruno Santana
    • Vinicius Dorotea
    • Bruno Reis
    • Sergio Ferraz
    • William Correia
    • Tiago Arnaldo
    Qual foi o desafio?
    Gerar uma sequência numérica, substituindo os números múltiplos de 3 por fizz, os números múltiplos de 5 por buzz, os números múltiplos de 3 e 5 por fizzbuzz. Além disso os números que terminarem com 3 substituir por fizz e os números que terminarem com 5 substituir por buzz.

    Em qual linguagem?
    Java, com JUnit e Eclipse.

    O que aprendemos?

    Pontos positivos :-)
    • Deu para passar bem as vantagens do TDD, no que diz respeito a garantia de segurança na manutenção de código;
    • Vantagens da programação em pares – compartilhar conhecimento;
    • Garantia do teste do código;
    • Desenvolvimento do teste incremental (Baby Step);
    • Iteração e boa comunicação do grupo;
    • Entrosamento entre a equipe;
    • Pensar no método mais simples, para teste;
    • Todos participaram;
    • Horário do Dojo;
    • Perder o medo da 1ª vez;
    • Troca de conhecimento e trabalho em equipe e a estimulação de todos os integrantes na atividade;
    • A programação em par agiliza a programação e melhora a qualidade;
    • O teste unitário ajuda a testar melhorando a qualidade;
    • Aprender a escrever caso de teste;
    • Troca de conhecimento muito dinâmica;
    • A condução e apresentação foram legais;
    • Incentivo ao TDD;
    • Incentivo a re-fatoração;
    • Incentivo ao trabalho em equipe e a comunicação;
    • Percepção dos impactos de mudanças em sistemas com pouca cobertura de testes;
    • Maior comunicação entre as equipes;
    • Conhecimento compartilhado;
    • Introdução de uma nova prática de programação, a fim de melhorar a codificação;
    • O bate papo – tira dúvida;
    • A interação;
    • Bom para ficar sem trabalhar;
    • Exercita a lógica;
    • Troca experiências;
    • Aprender.
    Pontos de melhoria :-(
    • Interação entre Piloto e Co-piloto;
    • Voz baixa muitas vezes causando dispersão;
    • Falta uma melhor explicação do código e funcionamento;
    • Tempo curto para mostrar mais detalhes;
    • Pouco tempo;
    • Falta de conhecimento em Coding Dojo;
    • Timidez da maior parte da equipe;
    • Devido à metodologia, até mesmo para facilitar o aprendizado foram necessário muitos passos;
    • Incita a “gambiara” por fazer de qualquer jeito;
    • Demora para terminar um desafio simples, com casos de testes “desnecessários” “1”, “1,2”, “1,2,3”;
    • Inexperiência;
    • Controlar as brincadeiras.


    E fotos?


    Cadê o código?
    O código está no Google Code