02.07.08
Dojo Sábado 03 – Produto escalar de vetores
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:
- As pessoas gostaram de resolver o problema utilizando a característica de paralelismo da linguagem
- Há interessados em entender e explorar um pouco mais a característica de paralelismo da linguagem
- Descobrimos que a biblioteca já possuia uma implementação de lista e utilizamos o
splitda biblioteca - As pessoas gostaram de utilizar inlined receives
- 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:
Ifapresenta uma sintaxe estranha- Não soubemos fazer divisão inteira e tivemos que utilizar o round
- Tivemos pouca gente
- Como acabamos cedo podiamos ter feio mais coisas, mas paramos de codar
- O dojo começou atrasado
- Alguns acham que o poderiamos começar um pouco mais tarde
- 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