quinta-feira, junho 30, 2005

Não tá pronto se não foi testado.

Essa é outra daquelas coisas que parecem óbvias, mas a gente sempre deixa de fazer. Imagina a conversa: Gerente: "Tá pronto aquilo?" Desenvolvedor: "Tá, só falta testar" Gerente: "Ah! Tá..." Só falta testar???? Caro companheiro, se não tá testado, não tá pronto! E testar só o CaminhoFeliz não deixa a coisa pronta também. Tem que, no mínimo, testar o CaminhoFeliz e os caminhos com os problemas mais óbvios. Até porque, depois de cada teste, sempre vem algo a ser corrigido ou modificado, e isso é desenvolvimento.

segunda-feira, junho 27, 2005

Mantra

Não sei pq continuo fazendo isso.... Agora! Todo mundo comigo! Repitam!!! "Nunca programe sem unit tests" "Nunca programe sem unit tests" "Nunca programe sem a porcaria dos unit tests" Não aprendo, toda vez que deixo de fazer unit tests me arrependo profundamente. E volta e meia eu deixo de lado. Santa Temeridade, Batman!

quarta-feira, junho 22, 2005

"Da próxima vez" -> DPV

"Da próxima vez" ...manter os documentos de projeto em formato de texto puro. Assim o controle de versão e as ferramentas de diff vão funcionar pra eles também. Adendo: Odeio essa porcaria do Star Team. A parte client é meia boca demais!

segunda-feira, junho 20, 2005

Tempo passa, tempo voa.

Caramba, essas duas última semanas foram tão corridas que eu nem bloguei nada. Desperdício... perdi um monte de idéias. Aliás, essas idéias que vou postar agora não são novas. É mais um reforço pra ver se minha cabeça oca não esquece. Idéia 1 (Velha, velha, mas sempre vale lembrar) "Sempre implemente sua própria classe Date no Java. O Date e o Calendar são MUUUUUUITO toscos." Idéia 2 (Essa eu me lasco sempre que não sigo) "Se existe um padrão, mesmo que seja ruim. SIGA a porcaria do padrão!!!"

sexta-feira, maio 20, 2005

A lista das coisas mais úteis quando trabalhando

Ajudem a escrever a lista: 1 - ANT e seus sabores (NANT??) (e o "make" tb) 2 - Expressões Regulares ("regular expressions are write only ") Não me venham com J2EE, Jota-o-caramba, nem Dot-Net-o-escambau... Tou falando de coisas úteis ;D

quinta-feira, maio 19, 2005

[Off-topic] Wish list pessoal

Preciso anotar isso em algum lugar: - Um globo de luz pro meu banheiro - Uma mesa daquelas que aumenta pra colocar na sala de jantar - Um par de controles tipo vídeo game para colocar no micro - Um headset bem legal e grande - Uma placa de vídeo 3D decente - Um chuveiro mega-ultra-power - Um fogão BOM - Um gabinete de verdade pro meu micro Putz... tem chão. :) Sem falar que ainda tenho que colocar o MythTv direito no meu micro, tá com problema na resolução qdo eu coloco conectado na TV.

quinta-feira, maio 05, 2005

Pingos e "Vida Digital"

Ando brincando com programinhas evolutivos. Não, não... nada de algoritmos genéticos ou programação genética. Coisa bem mais simples, mas muito divertida. O objetivo inicial era fazer um objeto capaz de reconhecer algo "bom" e algo "mau" segundo sua própria perspectiva. Fazer ELE decidir o que é bom e o que é ruim pra ele. Para isso criei uns objetos que sabem comer uns aos outros, chamei eles de "Pingos". Cada pingo tem um valor de energia e um número meio doido (chamado "inteligência") para decidir se deve comer o outro pingo ou não. Qdo um pingo acumula energia demais ele se divide e seu valor de inteligência é randomicamente alterado em até 10%. Se ele fica sem energia (morre), eu tiro ele do sistema. Botei os bichinhos pra rodar, com poucas iterações só sobraram os pingos que decidiam comer os pingos mais fracos e ignoravam os maiores. Agora o objetivo é fazer com que os pingos consigam se coligar permanentemente pra ver se eles chegam a montar alguma estrutura mais complexa. Vamos ver. Bom, o objetivo original foi alcançado. Cada pingo sabe reconhecer o que é "bom" e "mau" sob sua própria perspectiva. Como o sistema é baseado em sobrevivência, o conceito de "bom" e "mau" é necessariamente orientada a isso. Items interessantes a se notar: - Se eu "envelheço" os pingos, tirando um pouco de energia a cada ação, o sistema no geral enfraquece e o número de pingos vai diminuindo. Interessantíssimo pq demonstra que a lei de conservação de energia tb pode funcionar digitalmente. A diferença é que é muito simples retirar e adicionar energia de sistema digital. Uma simples cópia de pingos significa que eu adicionei energia no sistema. - No começo, dividir-se era uma operação opcional dos pingos. O que acontecia era que eles iam comendo, comendo e acabava sobrando apenas UM com toda energia do sistema nele. Esse pingo sempre era um dos pingos da primeira geração. Qdo eu obriguei a se dividirem, a quantidade de pingos no sistema se estabilizou e os pingos passaram a ter uma vida média. Detalhe, qdo eu divido o pingo, um deles continua com a idade de antes. A parte interessante aqui é que colocar um número para "desestabilizar" o pingo (obrigando ele a se dividir se ficar muito grande) fez com o que sistema como um todo estabilizasse. É meio óbvio tb, mas é muito interessante. - Não importa muito os números que eu uso ou a conta que eu faço, os pingos sempre se adaptam pra as melhores escolhas. Mas acho q se eu fizer uma conta de decisão melhor, os pingos conseguem evoluir mais rápido. - No fundo no fundo, o mais interessante está sendo observar que leis "naturais" tb valem digitalmente.