dojo@Centro 06/03/2013: Planejando visitas no acampamento dos outros :)

terça-feira, 26 março 2013

Olá, pessoas queridas. Tudo bem?? 😀

Neste dojo, fizemos um problema clássico e bastante divertido (fonte): Existem vários acampamentos e queremos visitar a todos, mas precisamos planejar para visitar a todos da melhor forma possível. Entre os acampamentos existe uma distancia e não podemos parar para dormir no caminho entre os acampamentos, só podemos parar dentro de um acampamento e os acampamentos devem ser visitados em ordem. Desta forma, qual é a melhor maneira que podemos visitar N acampamentos com X noites para dormir de forma que no dia em que tivermos que caminhar a maior distância entre os acampamentos, caminhemos a menor distancia possível?

Esse problema não é fazer uma simples média, pessoal e tivemos um trabalhinho para fazê-lo. A linguagem escolhida foi ruby como podemos ver no código da solução encontrada.

E quem dormiu ao redor da fogueira do acampamento foram:

  • Thiago Belem
  • Juan Lopes
  • Otávio Cardoso
  • Flávio Amieiro
  • Jacqueline Abreu
  • Cláudio Berrondo
  • Julio Marins

E apesar de alguns poderem imaginar, não este não é um problema de grafos, pessoal :). Segundo informaram no dojo do dia, este problema poderia ser resolvido com Programação Dinâmica (PD) ou com o Método da Bissecção na definição matemática, mas para facilitar a vida, pode se ver o Método da Bissecção para este caso como uma Pesquisa Binária. Infelizmente, não conseguimos implementar nenhuma das soluções indicadas anteriormente.

E os mashimellow assados foram:

  • Conhecer uma nova linguagem
  • Galera ajudando a entender a linguagem
  • Bolo da Cissa ++++
  • Ruby 2.0
  • Problema +++
  • Novatos ++++
  • Baby steps
  • Sublime se intrometendo menos durante o dojo – (o problema é que o sublime fazia coisas automáticas que atrapalhavam e precisava ser melhor configurado). Obrigada Thiago Belem.
  • “Menos pessoas”
  • Solução parcial
  • Biscoitos da Jac (Padaria)
  • Claudio Berrondo pilotando – fazia teeeeeeeeemmmpo
  • Recepção
  • Paciência para explicar o problema
  • Volta do Berrondo e do Flávio Amieiro
  • Ter dojo apesar da super chuva do dia anterior
  • Boa variedade de comidas
  • Variar a linguagem
  • A solução e o problema foi diferente das abordagens que estamos utilizando nos últimos dojos.

E os mosquitos que não deixaram ninguém dormir em paz foram:

  • Onde está o quadro novo? +
  • Atrapalhar o dojo
  • Chuva +
  • Teste V – a Revanche . Os nomes dados para os testes neste dojo foram horríveis
  • Range Inclusivo
  • Seu Carlos Flores Cunha / Carlos Cunha Flores não veio no dojo de hoje =/
  • Novos não ficaram à vontade para programar
  • Menos pessoas presentes +
  • Poucos salgados
  • Solução poulo legível
  • Atraso pessoal
  • Empacou na solução
  • Sum ??? +
  • Split

Com chuva ou com sol, se a Íparos abrir na quarta feira, então terá dojo, estejam certos disso.

E para quem quiser estar conosco no dojo@Centro é só vir e entrar na  Íparos – Av Treze de Maio, 13 – 6° andar – Cinelândia, a partir de 18:30. TODOS SÃO BEM VINDOS e qualquer dúvida, sugestão ou qualquer outra coisa, nós vemos os comentários e temos um grupo (google groups) – fiquem completamente a vontade para participar do dojo, da lista (vulgo grupo) e tudo mais \o/.

Esperamos vocês :D.


dojo@Centro 20/02/2013: Empilhar caixas – O retorno

quarta-feira, 20 março 2013

Olá pessoas queridas. Tudo bem com vocês?

No dia 20 de fevereiro, retorno do dojo de carnaval, refizemos um problema que já tinhamos abordado em novembro/2012 (mas não teve post, por isso pedimos desculpas). Para quem quiser ver o que fizemos no ano passado, o código é este aqui.

O problema é o bastante intuitivo: temos várias caixas e cada caixa tem um peso P e uma capacidade C. Para empilhar as caixas, devemos garantir que a caixa suporte  a caixa de cima, ou seja, que a capacidade C seja igual ou maior que o peso P. Sabendo disso, tendo um conjunto de caixas, qual é o número máximo de caixas que conseguimos empilhar?

A solução que obtivemos desta vez é esta aqui. Caso não entenda como chegamos a esta solução, este é o link do histórico dos commits (está no último botão da versão que aparece como solução final), assim é possível acompanhar tudo o que foi feito 🙂 (mas qualquer coisa, é só comentar ou mandar email para o grupo)

E os empilhadores foram:

  • Thiago Belem
  • Juan Lopes
  • Flávio Amieiro
  • Edson Pinages
  • Israel Teixeira
  • Jacqueline Abreu
  • Willian Oizumi
  • Otávio Cardoso
  • Leandro Thimóteo
  • Carlos Cunha
  • Jonathan Santos

E as pilhas com muitas caixas, vulgo carinhas felizes foram:

  • Problema ++++++++
  • Pessoas Novas +++++++
  • Pessoas novas pilotando
  • Evolução da solução de um problema já feito anteriormente ++
  • Foi divertido ^.^
  • Casa CHEIA +
  • Explicação de TDD feita pelo Israel e o Juan – explicação conhecida a partir dai como as “TDD com as Aeromoças do Dojo@Centro”
  • Biscoitos “da padaria da Jac” – Lá Panneteria da Tijuca – Rua Radmaker, 53 ++
  • Salgadinhos “do José” +
  • O dojo ocorreu direito, sem confusões, mesmo com bastante gente e isso é muito bom.
  • Python ++
  • Clima legal
  • Pessoal antigo
  • Volta do dojo após o carnaval
  • Jonatas Emídio e Leandro Thimoteo de volta e a vinda do José
  • “Eu…guento” – Perola do dojo de hoje
  • Discussão saudável e divertida
  • Dinâmica do dojo +++
  • Presença de novato de Maringá
  • Participação de todos
  • Key +
  • Ajuda dos presentes em dúvidas na linguagem caso o piloto precisar
  • As pessoas e o dojo aceitam sugestões
  • Dojotimer

As caixas espalhadas no chão e ninguém quer arrumar a bagunça, vulgo carinhas tristes foram:

  • Apesar de gente nova ter pilotado, ainda teve gente tímida
  • Tempo
  • Sublime atrapalhando na desenvolvimento
  • Muito barulho
  • Muitos “foras”
  • Constante “infinita”
  • Chegar atrasado
  • Não teve mate
  • Perda da aula de TDD com as aeromoças do dojo
  • Horário pessoal (e por isso chegar tarde no dojo)
  • O dojo começou tarde – demora para escolher o problema +
  • O quadro ainda não foi mudado e ainda está insuficiente
  • Carnaval – o dojo não deveria parar nunca (Apoiado)
  • Coca cola demais, outras bebidas de menos
  • Não poder ficar para o pós dojo (recomendamos fortemente que as pessoas fiquem para o pós dojo)
  • Aceleramos no final e aparentemente, algumas pessoas não acompanharam a solução
  • Não lembrar como é o infinito (em python)
  • Pouca comida
  • Pessoal foi um pouco grosseiro
  • No final, esquecemos dos novatos
  • Gente falando no vermelho
  • Não teve panificação Bel[eé]m hoje

Sugestão: Deveríamos filmar a retrospectiva

E para quem quiser estar conosco no dojo@Centro é só vir e entrar na  Íparos – Av Treze de Maio, 13 – 6° andar – Cinelândia, a partir de 18:30. TODOS SÃO BEM VINDOS e qualquer dúvida, sugestão ou qualquer outra coisa, nós vemos os comentários e temos um grupo (grupo do gmail) – fiquem completamente a vontade para participar do dojo, da lista (vulgo grupo) e tudo mais \o/.

Até a próxima quarta :D o/


dojo@Centro 06/02/2013 – Construindo um parser com os “Tolkiens”

quinta-feira, 14 março 2013

Olá, pessoal.

Tudo bem com vocês?

No dojo do dia 6 de fevereiro de 2013, foi o dojo de carnaval e para esta data, não houve problema temático, mas sim a continuação de um problema que envolveu bastante o pessoal do dojo. Para ajudar a explicar o problema, abaixo um diagrama bastante simplificado, representando as características de um compilador

partes_compilador

A parte verde do diagrama acima foi resolvido no dojo de “Tolkien” e partes de compiladores e neste dojo o objetivo foi continuar construindo o compilador através do parser (ou a parte lilás do diagrama acima).

De forma simplificada, um compilador é um programa que transforma um conjunto de instruções em outro conjunto de instruções. No nosso caso, estamos construindo um compilador que entende expressões numéricas. A parte verde – Scanner – recebe as instruções iniciais e separa essas instruções e em blocos  chamados de  tokens e a parte lilás verifica se os blocos fazem sentido para a linguagem que o compilador entende,  verificando se os tolkens formam instruções da linguagem que o compilador é responsável e testando se os resultados obtidos com essas instruções são pertinentes à linguagem.

O scanner recebia instruções da seguinte forma:

4 + 3 * 2

E retornava os tokens:

[('N', '4'),('+', '+'),('N', '2'),('*', '*'),('N', '3')]

Esse retorno é a entrada do parser. A forma como ele deveria entender que a expressão acima é :

('+', 4, ('*', 3, 2))

A linha acima é conhecida como uma árvore abstrata de sintaxe.

Nesta solução, só conseguimos avaliar os operadores de soma, subtração e multiplicação. Caso tenha alguma dificuldade em entender como chegamos neste ponto, por favor, veja os commits e principalmente este commit e os testes são EXTREMAMENTE úteis para entender o desenvolvimento do problema.

Este dojo foi bastante instrutivo e quem não foi perdeu a folia de nerd XD. E quem brincou foi:

  • Renan Cardoso
  • Israel Teixeira
  • Eduardo Stalinho
  • Juan Lopes
  • Flávio Amieiro
  • Carlos Cunha
  • Jacqueline Abreu
  • Orlando Seixas
  • Otávio Cardoso

E as mascaras de Colombina, digo carinhas felizes foram E o pessoal usou suas máscaras de Guy Fawkes e não foi nada anonimo, infelizmente coloquei os papeis com a retrospectiva na minha carteira e tenho os papeis de posts antigos, mas não tenho os desta data. PEÇO MUITAS DESCULPAS POR ESTE DESCUIDO e me comprometo a cuidar melhor do feedback de todos.

 

[UPDATE] Encontrei a retrospectiva, estava junto com a minha pasta de documentos ( O_o).

E as mascaras de Colombina, digo carinhas felizes foram:

  • Bolo (Panificação Bel[ée]m) +++
  • Wallace, novato e participando
  • Caminho para chegar até a solução
  • Discussões +
  • Cissa explicando como funciona o dojo para os novos +
  • Trabalho para a definição do problema
  • Diferença entre as implementações
  • O problema +++
  • Solução diferente (esta pessoa já tinha implementado antes um parser, mas o código feito durante o dojo agradou muito esta pessoa)
  • Os novatos trouxeram fantasia para o dojo 😀
  • A Cissa vir ao dojo mesmo sem o Thiago Belem.
  • Pessoas novas +++
  • Chegar cedo
  • Pessoal fantasiado +
  • Baby steps
  • Python
  • Pessoas
  • Os testes passando
  • Explicação do slice
  • Pessoas interessadas
  • Volta de pessoas antigas que estavam sumidas

E o pessoal usou suas máscaras de Guy Fawkes e não foi nada anonimo:

  • Não participar do dojo inteiro
  • Pessoas sem pilotar
  • Formulação do problema
  • A linguagem atrapalhou no final do problema
  • Não terminar de resolver o problema
  • Muita gente sem fantasia
  • Muito falatório
  • Discussões boas, mas muitas fizeram com que o grupo ficasse meio perdido
  • O Thiago Belem faltou >_<
  • Um problema como o do Parser pode assustar os novatos
  • Não usamos o problema que a Cissa tinha sugerido antes
  • Representação
  • Como o quadro é pequeno, nem todo mundo consegue ver o quadro todo e acompanhar a explicação =/
  • Falamos no vermelho +
  • Não trouxe nenhum possível problema temático (Carnaval)
  • Demora para começar
  • Levei 2 tiros …de NERF XD

E para quem quiser estar conosco no dojo@Centro é só vir e entrar na  Íparos – Av Treze de Maio, 13 – 6° andar – Cinelândia, a partir de 18:30. TODOS SÃO BEM VINDOS e qualquer dúvida, sugestão ou qualquer outra coisa, nós vemos os comentários e temos um grupo (grupo do gmail) – fiquem completamente a vontade para participar do dojo, da lista (vulgo grupo) e tudo mais \o/.

Até a próxima quarta 😀 o/