Como Aprender com Software Livre com Step Ins

domingo, 10 outubro 2010

Step In é um encontro para aprender com software livre.

Objetivo

  • entender como funciona um determinado software livre (ou parte dele, alguma funcionalidade);
  • refatorar algo do mesmo (secundário, opcional).

Requisitos

  • 1 piloto que tenha um bom conhecimento da linguagem usada no projeto, ferramentas de debugging e do projeto escolhido (esse último é opcional, mas ajuda).
  • 1 desktop/notebook;
  • 1 projetor (pra clonar a tela do computador);
  • 1 quadro-branco (opcional, mas ajuda na hora da explicação);

Como Funciona

Primeiro escolhe-se o projeto que será explorado. Pode ser um plugin, ferramenta, framework ou linguagem de programação. Qualquer tipo de software.

O piloto deve (obviamente) baixar o código do projeto.

Logo depois começa a explicá-lo passo-a-passo, tirando eventuais dúvidas da platéia. É uma boa executar código ao longo do processo para exemplificar o que está sendo analisado.

Para explicar, pode-se usar o quadro-branco, executar algum código que use a funcionalidade, debuggar o mesmo, usar analogias ou o que for conveniente.

Caso o piloto não saiba explicar alguma coisa, lembre-o que a documentação e o Google são seus amigos. Nada impede que alguém da platéia explique alguma coisa.

Pode ser interessante refatorar algo que não esteja bom, adicionar alguma funcionalidade que seja de rápida implementação ou consertar alguma falha de segurança. O piloto faria a mudança e checaria se os testes atuomatizados continuam passando ou criaria novos testes se necessário. Caso alguém da platéia tenha tido a ideia, pode assumir como piloto e o antigo piloto se torna co-piloto até a finalização da refatoração.

No fim do Step In, o piloto deve fazer uma review rápida do que foi aprendido. Também seria interessante que a review seja postada em algum blog.

O Que As Pessoas Podem Aprender

As pessoas podem aprender tanto funcionalidades da linguagem, conceitos usados e sobre as escolhas e estratégias do desenvolvedor da ferramenta.

De Onde Surgiu a Ideia

Outro dia eu estava olhando como funciona o roteamento de URL do Sinatra para ver como os blocos são executados.

Poucos dias depois, notei que seria interessante usar a estratégia deles num dos projetos que estou trabalhando.

Na palestra do Caike Souza no DevInRio, ele perguntou quem fazia Code Review dos projetos de suas empresas. A maioria não fazia.

Imaginei que não abrissem o código de projetos open-source mesmo dos que estivessem usando.

Minha cabeça explodiu.

De Onde Surgiu o Nome

O nome foi sugerido pelo camarada Henrique Bastos pós DevInRio.

O Que Estão Esperando?

Nos próximos open-spaces e palestras em eventos boladões, quero ver Step Ins em vários projetos!

O Que Acharam da Ideia e do Processo?

Sugestões são mais do que bem vindas. 🙂

PedroMenezes.com.


DojoRio na semana de computação da UNIPLI Niterói 29-09-2010

sexta-feira, 8 outubro 2010

Bom pessoal, como eu estava sem senha do blog, só pude postar hoje sobre o primeiro dojo da Unipli em Niterói, vamos lá.

No dia 29-09-2010 preparamos uma sessão de coding dojo na Universidade Plínio Leite em Niterói, para os alunos, na semana de computação que esteve rolando de 28 a 30 de Setembro, e que também foi uma mini PythOnCampus.

O sucesso foi total, diversos alunos participaram e gostaram muito do que viram.

Após a apresentação do Bernardo Fontes sobre o funcionamento do dojo, iniciamos uma sessão de coding dojo com os presentes, onde o problema foi aquele famoso para introdução ao dojo, o FizzBuzz, e a linguagem foi Python.

A galera que participou estava muito animada e participativa, e com certeza teremos mais um lugar para treinarmos programação e fazer amigos.

Participantes:
* Bernardo Fontes
* Mário Mariani
* João Felipe N. Pimentel
* Thiago Motta de Souza
* Bruno Barnea
* Luiz Guilherme
* Luciano Mawara
* João Batista
* Gustavo Semaan
* Tiago de Mattos Marinho
* Leandro
* Luiz Leonardo Cristófori
* Luciano S. da Costa
* Luciano Sousa
* Thiago Péres

Os pontos positivos foram:
* A galera disposição da computação da Plínio
* Alto astral
* Vontade de aprender da galera
* Ambiente
* Comida
* Python
* Placa #horaextra que o Bernardo levou
* Boa primeira impressão do programa
* Biscoito
* Aprendizado de nova linguagem
* Diversão
* A forma de escrever programas em equipe
* O trabalho em equipe para solucionar os problemas
* Alimento
* Cooperação
* Dinâmica do código
* Discussão
* Descontração
* As pessoas não tentam mostrar que são melhores que as outras
* Rapaziada gosta de ensinar
* Intenção
* Companheirismo
* Sempre procurando ajudar
* O curso foi muito bom
* A didática do palestrante é muito boa
* Estão de parabéns
* A palestra foi bem explicada
* Entendi bem o que significa o dojo
* Ótimo workshop
* Dojo é uma ótima idéia
* Muito interessante a abordagem
* Utilização de novas linguagens

Pontos a melhorar:
* Mais divulgação do dojo na UFF
* Não vou no pós dojo
* Poucos minutos para testar (5 min)
* O cabo do datashow ficou solto, atrapalhando o piloto e a platéia
* Acabar muito tarde
* Café

Sugestões:
* Mais um dojo em Niterói?
* Fazer dojo antes das aulas, a partir das 18h
* Colocar mais tempo para o programador
* Abrir um dojo na UNIPLI


DojoRio@Niterói 30/09 e DojoRio@UFF 07/10

quinta-feira, 7 outubro 2010

Pessoal,

Aproveitando o embalo do meu post de ontem em que postei 5 sessões dos dojos que ocorrem na UFF,resolvi tentar não deixar mais os posts acumularem.
Luis me entregou os papéis de retrospectiva do DojoRio@Niterói do dia 30 para que eu faça o post

Então, lá vamos nós:

DojoRio@Niterói 30/09

O problema escolhido foi o do assassino, em que dado um número de pessoas e um passo, o programa deve retornar quem foi o único sobrevivente, considerando que o assassino faz o passo em uma roda, mata um, faz o passo mais uma vez, mata outro, e vai repetindo o ciclo até sobrar apenas uma pessoa. A linguagem escolhida foi ruby.
Bom, como eu só participei até a decisão do problema, não tenho como dizer o que realmente foi marcante, mas parece ter sido um dojo muito bom com poucos pontos a melhorar e muitos positivos

Estavam presentes 8 pessoas, que, com exceção de Bernardo Fontes, não botaram o nome no papel da retrospectiva

Os pontos positivos foram:

  • Problema +++++
  • Ruby +++++
  • Boas discussões ++++
  • Horário +
  • Orientação a Objetos +
  • Abordagem legal
  • Ver “nossa falha” com o accessor
  • Número morre!
  • Refatoração
  • Aprendizagem
  • Integração
  • Aprender um pouco mais do rspec
  • Pouca gente auxilia na liberdade de mudança de abordagem
  • Erro no spec foi descoberto
  • Funcionamento do Ruby
  • Os lances da linguagem -> fixar o seu comportamento
  • Uma das melhores sessões!!!
  • Quase terminamos
  • Local
  • Projetor
  • Número de pessoas
  • Comida
  • DojoRio@Unipli
  • Foco da galera
  • Highlanders

 

Os pontos a melhorar foram:

  • Vermelho não respeitado
  • Pessoal saindo para comprar lanche
  • Implementar métodos em inteiros que guardam estado
  • Provas / Fudeu Calculo +
  • Cheguei atrasado +
  • Código macarrônico por falta de Orientação a Objetos
  • Pouca gente
  • Não trouxe comida

DojoRio@UFF 07/10

Aconteceu hoje, de 11:00 as 13:00 na sala 448 do bloco D (o que significa que é meu primeiro post em dia!)
O problema escolhido foi o de máquina de vendas automáticas. Definimos que a máquina deveria ter funções de receber moedas, devolver as moedas, comprar refri 1, comprar refri 2 e comprar refri 3. Escolhemos python como linguagem.
O dojo contou com um número bom de pessoas que estavam focadas, acompanhando e colaborando
Estavam presentes as seguintes 9 pessoas:

Os pontos positivos foram:

  • Problema ++++++
  • Pessoal Focado ++
  • Todos programaram ++
  • A galera acompanhou bem o programa +
  • Proxy Pattern bem interessante+
  • Todos colaboraram
  • O problema ficou fácil, graças a Orientação a Objetos
  • Método privado no python
  • Bom número de pessoas
  • Avanço muito bom
  • sum na lista
  • Eu ri muito do Bernardo dançando
  • Fim das provas
  • Fiz os posts antigos

Os pontos a melhorar foram:

  • Sono. +
  • Saudade dos Thunder Methods
  • Fome
  • Bernardo dançando tirando a concentração
  • Som do ar condicionado de outra sala enquanto estamos no calor
  • Cheguei atrasada
  • Pensei que viessem mais pessoas
  • Não deu tempo de terminar
  • A calourada sumiu

É isso!

Ah! É bom lembrar que ainda HOJE teremos o DojoRio@Niterói na sala 230-b do bloco D do Campus da Praia Vermelha da UFF (Campus de Engenharia) de 19:00 as 21:00
Aguardo a presença de todos!

Até a próxima!


DojoRio@UFF 16/09, 23/09 e 30/09; e DojoRio@Niterói 16/09 e 23/09

quinta-feira, 7 outubro 2010

Pessoal,

Já estamos há um bom tempo sem fazer os posts dos dojos que ocorrem na UFF, mas os dojos continuam ocorrendo!
Então, resolvi fazer este post hoje sobre os DojoRio@UFF  dos dias 16/09, 23/09 e 30/09 e sobre os DojoRio@Niterói dos dias 16/09 e 23/09
(Na verdade, estou fazendo o post, pois minha mochila já estava ficando sem opção de divisória para novos papéis de retrospectivas)

Antes de mais nada, vale lembrar que:
-As sessões do DojoRio@UFF ocorrem TODAS as quinta-feiras de 11:00 as 13:00 na sala 448 do Bloco D (o DojoRio@UFF também é conhecido como dojo dos calouros, pois começou com os calouros da UFF do período passado)
-As sessões do DojoRio@Niterói ocorrem TODAS as quinta-feiras de 19:00 as 21:00 na sala 230-B também do Bloco D (o DojoRio@Niterói é a sessão mais tradicional de Niterói)

Bom, então vamos ao post

DojoRio@UFF 16/09

O problema escolhido para esta sessão foi do de números romanos (reverso), em que o objetivo era converter um número romano para um número inteiro. E a linguagem escolhida foi Python.
O pessoal estava bem focado participando de forma organizada e o dojo foi marcado por diversas refatorações seguidas que mostraram como resolver(ou chegar bem perto disso) o problema em 4 ou mais formas diferentes que foram evoluindo gradualmente.
Estavam presentes as seguintes 9 pessoas:

Os pontos positivos foram:

  • Problema ++++
  • Pilha (Usar / Aprender) ++++++
  • Refatorações +++++
  • Pessoal focado (silêncio, organização e participação) ++++
  • Enumerado +
  • ipython
  • Galera discutia bastante
  • Avançamos bem no problema
  • Todos participaram pelo menos 2 vezes
  • Problema se tornou simples
  • Python
  • Tranquei Métodos 2
  • Não teve aula de lógica

Os pontos a melhorar foram:

  • Galera faltou ++
  • Onde estão os calouros? +
  • Ter que sair no meio +
  • Teve que acabar
  • Não terminamos
  • Sono, muito sono
  • Dor de garganta
  • Os testes só chegaram até o 15
  • Cheguei atrasada

DojoRio@Niterói 16/09

Desta vez, resolvemos fazer o problema do jogo da velha, em que devemos determinar a situação do jogo no estado final (O ganha, X ganha, ou dá velha), em Java.
Apesar do DojoRio@UFF ser chamado de “dojo dos calouros”, neste dia, só apareceram calouros no DojoRio@Niterói. O dojo teve muita comida (que o Dukão já estava prometendo levar há tempos) e muitos debates sobre a modelagem.

Estavam presentes as seguintes 14 pessoas:

Os pontos positivos foram:

  • Java +++++++
  • Muita comida boa ++++++++
  • Problema +++
  • Gente nova ++
  • Refatoração ++
  • Começou (quase) na hora ++
  • Paciência e calma na explicação +
  • Vários debates +
  • Todos jogaram +
  • Discussões sobre a modelagem +
  • Número bom de pessoas
  • Complexo
  • Aprendizado
  • Pessoal que sabe
  • Mudança de entrada e saída do problema
  • Galera Presente
  • Várias maneiras de se pensar o problema
  • Solução
  • Discussões sobre a Linguagem

Os pontos a melhorar foram:

  • Atraso +
  • Ninguém pensou um problema antes antes +
  • Problema repetido +
  • Cadê a porra do semáforo? (+ arduino + cerveja)
  • Complexo
  • As coisas demoraram a andar
  • Vermelho não foi respeitado em alguns momentos
  • Ter que sair no meio
  • Galera falou muito no começo
  • Não conhecíamos direito o junit
  • Não consegui comprar refri
  • Tive que arrumar a sala sozinho

E ficaram como sugestões:

  • c++    +
  • Preparar tudo antes
  • PHP
  • Ruby

DojoRio@UFF 23/09

Neste dojo escolhemos o problema de implementar a cantiga “atirei o pau no gato” e a linguagem Ruby.
A sessão foi marcada por muitas discussões sobre orientação a objetos,  testes, estados e o pessoal muito focado.
Estavam presentes 7 pessoas:

Os pontos positivos foram:Os pontos positivos foram:

  • Problema +++++
  • Discussões sobre Oriantação a Objetos +++
  • Linguagem (ruby) ++
  • Silêncio +
  • Foco +
  • Terminamos cedo
  • Meter a cara no ruby
  • Ninguém sabia muito de ruby
  • Discussões sobre estado
  • Muitas discussões
  • Pouca gente propiciou as discussões
  • Não saí no meio
  • Discussões sobre testes
  • Todos participaram mais de uma vez
  • Trakinas
  • Dojo de Niterói rulez!
  • Dia da minha volta ao dojo da noite

Os pontos a melhorar foram:

  • Pouca gente / galera faltou +++
  • Calor +
  • Começou tarde, acabou cedo
  • Mais foco nos testes do que na solução
  • Falamos muito no vermelho
  • Talvez não tenhamos usado todo potencial da linguagem
  • Rafael fraco
  • Dojotools não adaptado ao ruby

Ficaram como sugestões:

  • Mouse
  • Mais ruby
  • Shell “bizonho” Script

DojoRio@Niterói 23/09

O problema deste dojo foi o reversi: com a entrada sendo uma configuração de jogo, uma jogada com a cor do jogador e a posição da jogada, e a saida sendo o jogo após realizar a jogada.
Este dojo foi marcado por um clima inicial tenso, de ânimos exaltados, entretanto sem discussões pesadas e com o pessoal bem controlado que permitiu que o resto do dojo rolasse bem
Neste dia, muitos chegaram bem cedo (cerca de 18:30~18:40) e com um possível problema em mente: “Amigo oculto”. Entretanto deste horário até 19:20 foi discutida a viabilidade de se testar o problema de amigo oculto e com isso os ânimos começaram a se exaltar. Depois que cansamos de discutir se dava ou não para fazer o problema, desistimos do problema e resolvemos fazer o reversi.
O dojo foi bom, com o pessoal participando e explicando bem as ideias e ficando sem reclamar das decisões do piloto em aceitar ou não refatorações.O Mario deu os toques na galera nos momentos certos, evitando que o stress inicial voltasse, portanto ele merece a estrelinha dourada (ou seja lá a expressão que foi usada)

Estavam presentes 11 pessoas:

Os pontos positivos foram:

  • Problema 2 rox! ++++
  • Problema 1 fail!
  • Galera nova ++
  • Python ++
  • Comida ++
  • Orientação a objeto ++
  • Todo mundo participou ++
  • Programando 2 vezes ++
  • Bom número de pessoas +
  • Noção de nova linguagem
  • Silêncio depois de eu não aceitar alteração externa
  • Galera explicando bem as ideias
  • Introdução ao dojo
  • Introdução ao python
  • Ambiente
  • Muita discussão
  • Adorei a ideia do dojo
  • A galera é bem prestativa
  • Classe Reversi
  • Cheguei na hora
  • Dojo na Unipli dia 29/09
  • Uma comemoração do meu aniversário
  • Mario dando os toques na galera
  • Minha volta ao dojo da noite
  • Pós com cerveja
  • ipython
  • Interação ótima

Os pontos a melhorar foram:

  • Pessoal ter mais calma, se respeitar mais, ser mais educado, e procurar entender o que o outro está tentando explicar
  • Ânimos Exaltados / Stress Inicial / Clima tenso ++++
  • 20000 horas para definir o problema +++
  • Falatório no vermelho +
  • Nem todos programaram
  • Fernando foi embora
  • As pessoas podiam se apresentar quando tiver gente nova
  • A galera tava violenta
  • Não trouxe biscoito
  • Ausência do “sinal verde / vermelho”
  • Muito chororo
  • Problema repetido
  • Não vou poder ficar muito tempo no pós-dojo
  • Acho que não vou poder vir no próximo dojo
  • Luis não fez o post dos dojos antigos
  • Poucas pessoas hoje
  • Pouca participação

Ficaram como sugestões:

  • Trazer linguagens novas pro pessoal aprender
  • PHP no próximo com a Carol de guru
  • Falar com mais calma

DojoRio@UFF 30/09

Neste dojo resolvemos o problema dos números perfeitos em python. O objetivo do problema era determinar se um número era perfeito ou não. Números perfeitos são números cuja soma dos divisores dá o próprio número(Ex: 6 = 1 + 2 + 3)
O problema, que surgiu de uma lista de exercício de lógica, foi bem simples e foi resolvido de forma bem simples. Entretanto, o foco do dojo foi o aprendizado do VIM.

Tivemos apenas 4 participantes:

Os pontos positivos foram:

  • Discussões +
  • Problema maneiro +
  • Macetes do GVIM
  • Dojo de VIM
  • Foi no VIM
  • Aprender mais sobre o VIM
  • Terminamos o problema
  • Python
  • Papo de bêbado na retrospectiva
  • Dojo sem Mouse
  • Plaquinha #horaextra
  • Matemática
  • one-line code
  • DojoRio@Unipli ontem

Os pontos a melhorar foram:

  • Não irei no dojo da noite ++
  • Cheguei atrasado
  • Problema curto
  • Muita gente que confirmou que viria não veio
  • Papo de bêbado
  • Pouca gente
  • Arrumar o dojo de hoje a noite
  • Pesquisar mais problemas
  • Galera faltou por causa da prova

Ficou como sugestão:

  • Irmos nos outros dojos do rio

——

Bom, é isso. Cobrem do Luis os posts do dojos do dia 09/09 e do DojoRio@Niteroi do dia 30/09, pois eu(João Felipe) só estava com os papéis de retrospectiva destes que postei

 

 


DojoRio@UNIPLI – 05/10/2010

quinta-feira, 7 outubro 2010

Pessoal,

Ontem rolou o primeiro DojoRio@UNIPLI. Agora, teremos mais uma sessão de Dojo rolando toda terça-feira no Rio de Janeiro! Mais uma vez mostramos o quão essa comunidade é engajada e tem a vontade de partilhar as experiências que cada um viveu e vive no Dojo com outras pessoas da Computação.

Esse Dojo resultou da PythOnCampus que rolou na semana anterior praticamente durante três dias. Entre minicursos de Python, Blender, palestras, rolou um Dojo rápido que o pessoal do DojoRio@Niterói ajudou a tocar. Além da sessão, rolaram, por causa do desenrolo life style, duas apresentações sobre o Coding Dojo que foram feitas por mim. A ideia se difundiu, a galera gostou, os professores apoiaram, o diretor também e agora, toda terça-feira temos mais um encontro em Niterói!!! Tem coragem!?

Então, para começar os trabalhos, nós pegamos o clássico problema dos Números Romanos e fizemos em Java. O problema gerou bastante discussões porque haviam pessoas com experiências em várias diferentes linguagens. Tinhamos gente que trabalha com Java, com Python, com Ruby, com C++ e até com Lua. Então, a discussão agregou muito pela heterogeneidade do papo. Tivemos bastantes participantes e, inclusive, uma participação grande dos calouros da UFF. Achamos muito interessante aumentar os laços de relacionamento de alunos de Computação em Niterói. Essa é uma maneira muito positiva para nós conseguirmos difundir ainda mais as nossas ideias.

Entre os presentes estavam:

Os pontos positivos foram:

  • Mais um DojoRio +++++++
  • Matar aula para ir no Dojo
  • Rapaziada nova participando +++++++
  • Bom número de pessoas +
  • Explicação inicial
  • Percepções dos novatos sobre o processo
  • Rapaziada da UFF fortalecendo +
  • Problema ++++
  • Java +++
  • Netbeans ++
  • Rafaela fazendo os testes passarem
  • Todos programaram
  • Trakinas ++
  • Sala +
  • HashMap
  • Nova forma de programar
  • Comunicação interpessoal
  • Pessoal focado

Os pontos a melhorar foram:

  • Pouco tempo ++++
  • Horário não é dos melhores +
  • Pessoal tendo que sair mais cedo
  • Tipagem em Java
  • Não ficar para o pós +
  • Sem café
  • Java +
  • Netbeans
  • Pessoal do primeiro dojo que não pode ir
  • Falatório
  • Faltou divulgação +

As sugestões foram:

  • O pessoal novo entrar na lista
  • Continuar rolando!!! +
  • Aumentar a integração dos universitários em Niterói ainda mais
  • Promover mais dojos +
  • Fazer outros em outras linguagens

Para os que não foram, fica uma reflexão do Eduardo: “O bom desse problema é que a gente percebe que nem sempre 4 é mais fácil que cinco.”

Até a próxima rapaziada!

Bernardo Fontes