02.07.08

Dojo Sábado 03 – Produto escalar de vetores

Posted in DojoSabado, Erlang at 5:14 am by marivb

Post escrito pela Jac, contribuindo como escriba pela primeira vez!

  • Data: 21/06/2008
  • Participantes: Hugo, Jac, Fabs, Lucas
  • Randori: Produto escalar entre 2 vetores, em Erlang com Eunit
  • Código fonte: http://dojo_sp.googlegroups.com/web/03SAB-ProdutoEscalarTree.tar.gz
  • Fotos: http://picasaweb.google.com/fabriciosn/DojoSabado2106

Como era a primeira participação da Jac no Dojo de sábado o Fabs fez uma introdução sobre Erlang, a linguagem que esta sendo utilizada no Dojo. Depois sorteamos a carta de criatividade “Conform”, discutiusse que a idéia não era ficar conformado, mas agir de acordo, conforme o combinado.

Os problemas propostos foram multiplicação de matrizes e produto escalar.

A idéia inicial era tentar implementar a multiplicação de matrizes, mas como a linguagem não era muito conhecida pelos participantes, o problema de produto escalar foi votado para ser resolvido novamente.

Foi implementada a ideia discutida no último dojo, criar uma árvore binária em que as folhas realizassem a multiplicação de 2 elementos dos vetores de entrada e a cada raiz de uma subarvore soma-se suas folhas e a raiz da árvore somasse os seus filhos.

Retrospectiva

Coisas Legais:

  1. As pessoas gostaram de resolver o problema utilizando a característica de paralelismo da linguagem
  2. Há interessados em entender e explorar um pouco mais a característica de paralelismo da linguagem
  3. Descobrimos que a biblioteca já possuia uma implementação de lista e utilizamos o split da biblioteca
  4. As pessoas gostaram de utilizar inlined receives
  5. O problema foi resolvido com folga de horário

Curiosidades de sintaxes:

  • lists: -> importar lib de lista
  • round -> arredondamento
  • split -> importar lib de lista

Coisas não legais:

  1. If apresenta uma sintaxe estranha
  2. Não soubemos fazer divisão inteira e tivemos que utilizar o round
  3. Tivemos pouca gente
  4. Como acabamos cedo podiamos ter feio mais coisas, mas paramos de codar
  5. O dojo começou atrasado
  6. Alguns acham que o poderiamos começar um pouco mais tarde
  7. Não se sabe onde vão parar os erros do spawn

Parking Lot:

  • Como rodar o programa em várias máquinas?
  • Como realizar uma divisão inteira?
  • Porque aparece um erro de crash dump e o programa roda?
  • Os testes são escritos por macros. Como resolver este problema para utilizarmos variáveis?
  • ?_assert: Porque o teste inicia com ?
  • Discutiu-se a diferença entre [A,B] e  {A,B}
  • Verificar a ordem de chegada das mensagens, com o disparo de processos que demandem tempos aleatórios
  • Idéias de problemas: WebServer e Celular