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


DojoRio@UFF – 15/06/2010 Em ritmo de Copa

quarta-feira, 16 junho 2010

Galera,

Rolou ontem mais um DojoRio@UFF. Só para lembrar, esse Dojo é regido pelos calouros do Curso de Ciência da Computação com o intuito de eles aprenderem entre si, já que a discrepância entre as diversas turmas das disciplinas Programação I e II do curso é bem grande.

Para manter o clima de Copa do Mundo, o problema foi fazer um avaliador de bolão. De entrada era esperada duas ou mais apostadores, suas respectivas listas de apostas e uma lista com os resultados finais das partidas. A saída deveria ser o nome do apostador que foi vencedor e a pontuação que ele obteve. Diferentemente da Copa e felizmente, nós não tivemos vuvuzelas presentes na sessão.

O código resultante está nesse repositório no Github. Como nós usamos o parâmetro para ativar o commit para o repositório git a cada salvamento de arquivo do Dojotools, vocês poderão pelo no histórico de commits como foi a evolução do código e nossos erros.

A abordagem para o problema foi bem discutida e a modelagem que nós adotamos nos ajudou muito a manter o código sustentável. Além disso, o fato de testarmos primeiro os casos de comparação entre dois resultados para depois atacarmos a solução final foi essencial para o entendimento e o desenvolvimento de maneira organizada do código.

Estavam em campos 10 jogadores:

Os pontos positivos foram:

  • O problema +++
  • Biscoitos +++
  • Época de Copa do Mundo
  • Jogo do Brasil no DCE +
  • Explicação do and e or simulados por if’s e o caso ter acontecido depois
  • Começar a realmente entender Ruby
  • Ruby é sexy ++
  • Todos programaram +
  • Dojotools com o git ++
  • Orientação à objetos ++
  • Discussões boas ++++
  • Veio uma galera boa +
  • Ambiente
  • Linguagem nova ++
  • Iniciativa dos calouros propondo modificações no Dojo
  • Modelagem é tudo e resulta em avanço
  • Mouse
  • Quadro impedindo o reflexo do sol
  • Avanço no código da maneira sustentável +
  • O horário

Os pontos a serem melhorados foram:

  • Faltou a apresentação das pessoas
  • Demorou para começar ++++
  • Professor que passa exercício pra nota faltando 5 minutos pro Dojo ++++
  • Faltou tempo
  • Bug do Dojotools
  • Uso radical dos baby steps
  • Ausência de um pessoal ++
  • Comida desnecessária no horário
  • Não poder ver o código ser desenvolvido por inteiro +
  • Mosca imortal enchendo o saco
  • Não entendimento sobre discussões importantes

Como sugestões ficaram:

  • Fazer algum em PHP
  • Fazer algum em C
  • Melhorar a posição do piloto e copiloto

O Dojo foi bastante proveitoso, principalmente em função de duas discussões. A primeira foi fruto da ideai do Lucas de fazer a maioria dos Dojos nesse horário em Java pelo fato de a maioria dos que frequentam o Dojo nesse horário estarem aprendendo Java. Alguns participantes aprovaram e outros não. Enfim, como o Dojo é deles e para eles, eles ficaram de conversarem entre si e decidirem o que vão fazer. Esse fato por si só já é interessantíssimo.

Para não ser injusto com ninguém e nem tendencioso (afinal eu estava dentro da discussão com as minha opiniões) prefiro dizer somente qual foi o assunto da segunda discussão. Bem, a segunda discussão foi tocada em função do conceito de Baby Steps e de como ele funciona em conjunto com o TDD. O importante é que no final todos continuaram com a opinião de que de fato desenvolver software usando TDD e baby steps é altamente produtivo.

Até a próxima,

Bernardo Fontes


ForkinRio Python – 13/06/2010

segunda-feira, 14 junho 2010

Galera,

Rolou ontem mais um ForkinRio Python. A ideia foi de fazê-lo majoritariamente remoto, portanto, só estávam presentes de corpo e alma:

Nos encontramos às 10:00 da manhã, entretanto, perdemos muito tempo tentando achar uma maneira alternativa ao dimdim para poder realizar a reunião remotamente. Testamos primeiro uma outra ferramenta online para conferências que o Mário havia pesquisado. A ferramenta é a tokbox. É uma ferramenta online que, para até 20 pessoas na conferência, pode ser usada de graça. Para esse número de pessoas, achamos bastante razoável a usabilidade, o problema é que ela não tinha screen sharing. Depois testamos uma conferência via Skype, mas havia o mesmo problema. No Skype não poderíamos usar câmeras e dividir a tela. Por fim, tivemos a ideia de fazer um screen cast, mas já estava bem tarde e resolvemos começar o trabalho.

Não progredimos muito. Primeiro porque bastante tempo foi gasto para o Diego e eu entendermos o código, já que não havíamos participado dos últimos Forks. Depois, como alguns tinham compromissos mais tarde, não poderiam demorar muito.

O Mário nos explicou as ideias definidas no último de primeiro separar os métodos e depois encapsulá-los em classes. Mas, achamos melhor, antes disso fazer um ajuste fino nos métodos já definidos. Como antes tudo era um código só, ainda havia muito lixo legado em alguns métodos. Além disso, haviam algumas (várias) variáveis e chamadas de métodos que possuíam nomes que não imprimia valor nenhum ao programador que lê. Por último, os arquivos HTML estavam uma zona no que diz respeito a identação. Como todo programador gasta mais tempo lendo código do que escrevendo, nós optamos por tornar o código tanto das interfaces como os de algum métodos mais legível.

O resultado está neste repositório no Github. Aprendemos bastante sobre a maneira que o CherryPy dialoga para montar os fluxos e também o modo que os arquivos de template fazem para acessar variáveis e terem códigos Python dentro deles. Houve uma crítica ferrenha à tal modo e algumas comprações com o modo que o Django e o Web2py dialoga com os templates.

Para o próximo encontro, nos comprometemos em continuar essa refatoração. Pretendemos terminá-la para definirmos quais serão os próximos passos do Fork. Como no próximo domingo teremos jogo do Brasil na Copa do Mundo, o encontro fica para o domingo seguinte. Então, dia 26 de Junho nos encontramos para trocar mais uma bolinha sobre Python.

Até a próxima,

Bernardo Fontes


DojoRio@Niterói – 10/06/2010

sábado, 12 junho 2010

Galera,

Aconteceu nessa última quinta-feira mais uma sessão do DojoRio@Niterói. A sessão foi caracterizada pela heterogeneidade dos participantes. Estavam presentes professores, calouros do Curso de Ciência da Computação, veteranos, mestrandos, profissionais da área de TI, professores, historiadores e até a Luciana Cavalini que atua com o pessoal da Medicina no desenvolvimento do OSHIP.

O problema escolhido foi o do jogo de boliche. Dado uma lista de jogadas compostas por frames das jogadas individuais, tínhamos que retornar o total de pontos. A linguagem utilizada foi Ruby. A entrada foi definida como uma lista de listas e a saída um inteiro que representasse o total da pontuação. O spare era definido por um ‘/’ e o strike por um ‘x’.

O problema caminhou bem, mas o mais interessante foi o fato de o pessoal ter discutido bastante sobre questões sobre a modelagem do problema. Foi bem pensada a maneira de abordar o problema para não cairmos na armadilha clássica na computação de se fazer uma só função que acaba por ter N responsabilidades. Fizemos bastante uso de Orientação à Objetos levando em considerações questões como estado de um objeto e herança. Além disso, rolou uma explicação muito completa sobre o conceito de bloco e o uso dele em Ruby.

Haviam 24 presentes, sendo eles:

A review foi bastante proveitosa e tivemos como pontos positivos:

  • O Dojo continua cheio ++++++++
  • Bastante discussão +++
  • Ter sido em Ruby ++++++++++++
  • Explicação do conceito bloco em Ruby ++++++++
  • Ctrl + Z +++
  • Ambiente físico
  • Calouros participando dos dos Dojos
  • Problema interessante ++
  • Código em inglês
  • Arrumar um estágio pela participação no Dojo
  • Muita gente programou
  • Aprender as regras do boliche
  • Uso de orientação à objetos +
  • Comida +++++++++
  • Coca-cola
  • Refatoração
  • Pessoal que não vinha faz um tempo veio
  • Mas e quando…? Os novos estão começando a saber responder esta pergunta
  • Últimos 4 Dojos = 4 linguagens diferentes = poliglota
  • Aprendizado de convenções e culturas que envolvem a lingaugem
  • Gente nova +
  • 4 C’s (colaborar, compartilhar, comunidade e conhecimento)
  • Aprendizado usando a teoria dos jogos sem perceber
  • Aniversário do Dukão ++++++
  • Pessoal falando mais alto no computador
  • Paticipação da Luciana +
  • Matinhon deu as caras +
  • Mulherada mostrando como se programa
  • O nível da galera
  • Professores presentes +++
  • Informalidade
  • Muitas novidades

Os pontos a serem melhorados foram:

  • Migué do Martinhon +++
  • Bolo para o parabéns
  • Esquema de cores do Gedit
  • Faltou a apresentação inicial do pessoal
  • Abuso de Ctrl + Z
  • Faltou um mouse +
  • Cabeça cheia == código ruim
  • Ter que falar e ouvir as pessoas arrumando as coisas para fechar a sala
  • Computador dos outros dificulta por causa do teclado
  • Acanhamento dos professores +
  • Pessoas indo embora no meio da sessão
  • A entrada não estava clara
  • Ter sido em Ruby
  • Código em inglês
  • As regras do não foram 100% seguidas
  • Atrasos
  • Falatório da platéia +
  • Renata não ter programado ++
  • Ter que aprender a jogar boliche
  • Muito não programaram +
  • Algumas pessoas ficarem de espectadores
  • Ignorância em Ruby
  • Oliver não programou

Ficou como sugestão:

  • Rever o formato do Dojo para torná-lo mais compatível com o número de participantes
  • Definir o problema antes e escrever no quadro
  • Fazer um Dojo em C
  • Fazer um Dojo em PHP
  • Usar um computador mais “default”
  • Continuar fazendo Dojos em Ruby

Esse Dojo se caracterizou por ter sido um dos mais explicativos, digamos assim. Houve muita discussão teórica de boas práticas de programação, o que é essencial para essa garotada nova já começar com o passo certo. Mas, como o Dojo não acaba aí, depois ainda rolou uma MESA GIGANTE na nossa Cantareira que tinha de tudo, desde caipiras até um pessoal nerd programando um programa para sortear os times para um bolão. O fato de eu ter feito o programa (em Python, claro) e o Brasil ter ficado comigo são meras coincidências!

Até a próxima,

Bernardo Fontes


DojoRio@Niterói – 27/05/2010

sábado, 29 maio 2010

Galera,

Rolou nessa última quinta-feira mais um DojoRio@Niterói lá na nossa queria UFF. O Dojo contou novamente com a presença em massa dos calouros do curso e também com novos convidados de outros períodos. Foi uma sessão bem especial, não só por todas os calouros que estiveram presentes, mas também pelas reflexões que elas nos gerou. Para saber mais sobre isso, leia esse post do Vinícius Teles falando sobre o pensamento comum que pairou na cabeça da maioria depois dessa quinta-feira.

A única coisa que faltou o Vinícius dizer foi o fato de termos descoberto um Certfied Blaze Master no pessoal. Não vou citar nome para não deixar as pessoas constrangidas… Como o Vinícius já falou bastante de como foi a sessão e dos resultados que ela obteve, vou me restringir a listar os presentes em mais um recorde. Estavam presente essas 26 pessoas:

Como pontos positivos o pessoal citou:

  • A refatoração
  • O pessoal participando mais
  • Aprender novas linguagens
  • Aprimorar o raciocínio
  • Foi produtivo
  • Ter começando no horário
  • Aprendizado de novos conceitos e estrutura de dados
  • Terem levado comida
  • Vir com um problema já proposto
  • Testes te darem segurança para o desenvolvimento
  • Os calouros continuarem participando e os novos frequentadores
  • Ter sido em Javascript
  • A interface do Jsspec
  • A criação de mais um Dojo
  • A superlotação dos Dojos de Niterói e do Rio
  • Familiarizar-se com diferentes linguagens
  • Ganhar bons hábitos de programação
  • Ser 0800
  • Pessoas programando pela primeira vez no Dojo
  • Problema simples e real
  • Ter colocado o tempo para 4 minutos
  • Os aplausos após a refatoração
  • Muito debate
  • Oportunidade para os calouros
  • Usar o quadro de giz
  • A Luciana estar presente para tentar levar o Dojo para a Medicina
  • O ar condicionado

O que ficou para ser melhorado foi:

  • Falar mais alto quando estiver como piloto ou co-piloto
  • Várias mudanças no fluxo do raciocínio
  • Não deu para todos programarem
  • Muita conversa na platéia
  • Senhora Justen não programou
  • Não teve apresentação das pessoas
  • Dinâmica lenta
  • O tempo passar muito rápido
  • O horário
  • Cansaço de alguns
  • O plugin de completar as aspas, parênteses e chaves
  • Não adicionaram algumas pessoas ao grupo do DojoRio
  • Algumas pessoas não poderem ir ao pós-dojo
  • Por que não tive Dojo quando era calouro?
  • A comida distraiu o pessoal
  • Ter sobrado comida
  • Pessoal do canto retendo a comida
  • Faltou orientação a objetos
  • Arrumar mais cadeiras para a sala
  • Algumas pessoas que confirmaram que vinham e faltaram
  • As mesas no meio da sala
  • A separação da galera entre calouros de um lado e “veteranos” de outro
  • Perda de foco no final
  • Programar com o DojoTimer aberto
  • Ar condicionado esfriou muito
  • Uso do Javascript
  • O Henrique Bastos e sua empolgação não estavam presentes

Deixaram como sugestões:

  • Usar o Vi como próximo editor de texto
  • Usar Python novamente em um próximo Dojo
  • Fazer em uma linguagem nova
  • Fazer em alguma linguagem mais antiga como COBOL
  • Usar alguma coisa de banco de dados
  • Fazer mais publicidade do grupo
  • Conseguir uma sala maior
  • Fazer o código em inglês
  • Usar um mouse maior
  • Fazer algum Dojo em PHP
  • Fazer algum Dojo em Perl
  • Fazer algum Dojo em C

Vale a pena reparar que essa galera nova tem uma sede por conhecimento muito grande. Isso é notável pelo número de sugestões de linguagens e ideias para serem implementadas no próximo Dojo. Para os que não estão indo à UFF, estão perdendo uma pequena revolução que esses calouros estão fazendo. Sorte nossa poder ver isso de perto. Para quem quer ver o código, ele está nesse repositório do Github. Em breve coloco no repositório do DojoRio no GoogleCode.

Até a próxima,

Bernardo Fontes


DojoRio@Niterói – 20/05/2010

segunda-feira, 24 maio 2010

Galera,

Rolou nessa última quinta-feira mais uma sessão de Coding Dojo na UFF. Essa sessão foi muito interessante porque contou com a presença de vários calouros! Eles foram incentivados a participar do Dojo devido às apresentações que eu e o Andre Oliveira fizemos em uma das aulas deles para falar sobre o DojoRio, #horaextra, PythonCampus e tudo mais. Olha um vídeo que o Henrique Bastos fez de todo mundo:

Como tinha muita gente nova, o problema que nós escolhemos foi o do FizzBuzz. O problema andou bem e caímos em uma questão interessante em um momento. Foi proposta uma refatoração, mas quando ela começou a ser feita, começou de maneira confusa e, no final de tudo, acabamos “refatorando” e deixando o código da mesma maneira que estava antes da “refatoração”. Isso mostra que a refatoração não é algo que deve ser tratado como apenas uma “limpeza de código”. Ela deve ser tratada com cuidado para que a limpeza não venha a resultar só em bagunça. Afinal, de que adianta um quarto limpo, mas bagunçado?

Haviam 24 pessoas nessa sessão! Recorde! Segue a lista:

Os pontos positivos que o pessoal levantou foi:

  • Os calouros comparecerem em massa
  • A apresentação feita por cada um antes de começar
  • Sugestões diversas
  • Sutilezas na refatoração
  • O pessoal novo suando para resolver o problema
  • Muita gente!
  • A sala fixa
  • O pessoal falou alto para expor as ideias
  • O problema
  • O conhecimento compartilhado
  • Ter a chance de aprender uma linguagem nova
  • Ter sido em Python
  • Usar Python no ensino
  • Os “gurus” de Python ajudando
  • O pessoal das antigas é receptivo, engraçado e paciente
  • As opiniões dos mais experientes
  • O respeito dentro do grupo
  • Não ficar nervoso mesmo lá na frente
  • Desenvolver melhores técnicas para programar
  • O modo como o Dojo é feito ajuda no ensino de programação
  • Explicações iniciais muito boas
  • Resolver o problema
  • Usar TDD com Baby Steps
  • Várias pessoas programando
  • Pair Programming
  • Consegue-se aprender muito
  • Fandangos grátis
  • Vários calouros querem voltar!!!

Os pontos a serem melhorados foram:

  • Não deu para todos programarem
  • O horário é tarde
  • Podemos pedir uma pizza?
  • Faltou comida e bebida
  • O código ficou em português
  • O Fandangos rolando na mão da platéia atrapalhou
  • Mini-mouse
  • Usar como um tipo de semáforo (não usamos o dojotools)
  • Faltaram cadeiras
  • O tempo de 5 minutos ficou muito grande
  • Ficar um pouco perdido com o código
  • As mesas ficaram atrapalhando o caminho
  • Poderíamos ter feito mais 1 problema
  • Poderia ter sido mais rápido
  • Pitacos do Certified
  • Não ter café

Ficou de sugestão:

  • Voltar com o hábito de levar comida ao Dojo
  • Diminuir o tempo para 4 minutos
  • Fazer introduções sobre conceitos de programação
  • Os calouros participarem dos outros eventos
  • Continuar programando em Python para os iniciantes aprenderem mais
  • Fazer o próximo em Java
  • Fazer o próximo Pascal
  • Fazer o próximo Ruby

Vale a pena ressaltar que todas as sugestões de linguagens para serem usadas nas próximas sessões foram dadas pelos calouros. Então, temos um pessoal novo e com desejo de aprender novidades. Além disso, eles já estão se organizando para começarem um dojo deles. É esse o espírito galera!

Até a próxima quinta-feira,

Bernardo Fontes


Caelum Day. Nos vemos lá!

quarta-feira, 4 novembro 2009

É esse segundo semestre de 2009 foi marcado por muitos eventos Brasil a fora, do oiapoque ao chui praticamente. Rolou Oxente Rails, Python Brasil, Dev in Rio, Rails Summit, e muitos outros que ainda estão por vir, como o Ceará on Rails, o Caelum Day, Ultra Maratona Python Campus no IFF em campos dos Goytacazes, e muito mais.
Se eu esquecer algum comente que do update. =p

O pessoal do Rio que costuma reclamar, agora não tem mais motivos, pois este ano foi repleto de excelentes eventos em nosso estado. E já que está bom, só para lembrar sábado vai rolar o Caelum Day, que vai contar com Key Notes e Palestras de nomes como Phillip Calçado, Fábio Kung, Guilherme Silveira e muitos outros, confira a programação completa aqui, e faça já sua inscrição.

Abraços,
Rodrigo Pinto.