Conhecimento gerado no BR!

Hoje em dia tenho asco por traduções, prefiro os originais por motivos óbvios, não que não tenha livros bem traduzidos, mas em regra a tradução é uma porcaria. Um profissional de tecnologia tem que saber inglês pelo menos para ler (eu particularmente falo um inglês horrível, sofrível e desgostoso, mas sei ler até legalzinho) senão ele está defasado em relação ao resto do mundo. Quando um livro é traduzido aqui já tem pelo menos outra edição do original.
Já enfrentei discussões calorosas sobre o Brasil ser periférico no mundo da fomentação de tecnologia, sobretudo por não ser desenvolvedor de conhecimento e sim mais pagador de royalties. Ideologias a parte eu sou pragmático, por mais ufanista que vocês sejam eu sempre olho para o simples, o concreto e o evidente.
Então quando surge uma atitude de sair desse ostracismo devemos exaltar, vi atrasadamente no Blog do Phillip Calçado que o Taq lançou um livro sobre Ruby em pt_BR.

Livro de Ruby do Taq

Não sou fan de Ruby, mas não posso deixar de propagar essa inovação, ao invés de traduções o que precisamos é de criar conhecimento, criar algo novo, temos potencial para isso, nada como lançar livros e gerar uma outra visão ao ter que sempre copiar o que é gerado lá fora, e pelo que conheço do Eustáquio pelos foruns que eventualmente acompanho espero no mínimo algo de qualidade, sem medo de errar e te enganar, se voce gosta de Ruby ou quer conhecer, essa é uma oportunidade para começar em grande estilo.

Geek For President!

Aproveitando que esse é um ano eleitoral, indico um geek para presidente do nosso país.
– Quem?
Não sei, qualquer geek.
Qual a diferença de um Geek para um Nerd?
Para mim o Geek é um Nerd com dinheiro. Então é melhor um Nerd, pelo menos ele se transforma em um geek.
Me considero um Nerd, um geek ou seja lá como você queira chamar uma pessoa que é tímida, introspectiva, infantil, alucinada por tecnologia e abobalhada. Sim me considero assim, aliás acho que esse é meu charme.
Precisamos de um Nerd no comando da nação, nerds não roubam, nunca ouvi falar de um um ladrão nerd, até porque o vil metal não nos interessa, apenas uma ferramenta para exercer a troca voluntária pelo nosso amor que é a tecnologia. Mas a vida de um Nerd não é só tecnologia, tem um universo em volta: animes, filmes sci-fi, de terror, heavy metal, computadores… alias todo e qualquer gadget!
Lembro dos meus tempos de Atari, já naquela época éramos chamados de crianças problemas, crianças sem convívio social, iríamos ser fracassados, violentos, possivelmente adultos rancorosos e psicopatas.
Jogar games “violentos” eram uma válvula de escape, desde minha tenra infância sabia que aquilo era um mundo imaginário, que podíamos “matar”, trucidar, pilhar, estuprar, roubar e sacanear sem sermos punidos, era uma brincadeira inocente posso assim dizer. Quando comprei meu primeiro PC, um Pentium 100 com 16M de memória, jogava Doom sem parar, virava a noite com Duke Nukem, conduzia exércitos com Age of Empires e atropelava transeuntes com carmageddon.
Engraçado que perdi muitos amigos, vários sofreram acidentes de carros, foram assassinados, entraram para vida errante, mas nenhum que tinha essa prática de jogar video-games acertou no prognóstico. Infelizmente eles desobedeceram a opinião dos psicólogos de plantão que dão tudo para falar alguma bobagem em horário nobre na nossa televisão aberta, aquele que enche de entreternimento educativo, com programas de alto teor cultural como Faustão, Gugu, Hebe Camargo, Mais Você, Note e Anote, etc.
Nunca atirei em alguém de verdade, me desculpem, pela opinião de gente famosa e estudiosa sobre o assunto eu deveria, afinal eu atirava sem parar e matava sem perguntar, matei mais que Charles Bronsom, do que Chuck Norris, e se duvidar mais que o governador da Califórnia. Esses são meus ídolos tambem, some a eles agora Jack Bauer.
Felizmente nosso país tem culturas diversas, mas algumas hegemonias teimam em prevalecer. Futebol e Samba são duas delas, as mais influentes, as que mais educam, trouxeram prosperidade ao País, prosperidade idêntica aos nossos vizinhos evoluídos como Argentina, Venezuela, Colômbia, Cuba, entre outros líderes em IDH mundial. Talves seja falácia minha atribuir nosso desenvolvimento a essas duas maravilhas da humanidade, até porque vários países europeus também tem o futebol como paixão nacional e são digamos um pouco mais evoluidos, mas se olharmos com carinho para lá veremos que não é somente o futebol e outros esportes quando não são maiores que o futebol em determinado país fica ali colado, agora engraçado, tirando raras execeções não lembro de briga banal generalizada em provas de esqui ou jogos de rugbi(acho que se escreve assim e to com preguiça de googlar), nem vi um grupo ser denominado de algum apelido engraçado para indicar um esporte como os Hooligans.
Vamos eleger um geek para presidente, no máximo ele fará guerras online com salas cheias, derrubará árvores de mentira feita em OpenGL ou DirectX que necessitam de placa de vídeo de 512M, e criará leis exdrúxulas como o dia nacional do Mangá(prefiro esse do que o dia nacional da mula-sem-cabeça ou do Saci Pererê como o presidente da câmara gasta nosso dinheiro em projetos de lei revolucionários). O ministro da economia fará um mensalão para subornar os deputados para aprovarem uma lei de isenção de equipamentos eletrônicos, o marketeiro oficial contratará Stan Lee para desenhar os personagens da campanha do nosso presidente. Trocaremos as matérias das séries iniciais para leitura de gibi I, Leitura de Gibi II, anime avançado, desenho 3D para games modernos, há claro máterias ortodoxas atuais como História, afinal as crianças tem que ler sobre religião animista, historia medieval, geopolitica chinesa na era dos 3 reinos, mitologia viking, etc. Como criaríamos nossas histórias? sem base? negativo, temos que ler isso sim.
Geek 4 President, só não teríamos uma Marilyn Monroe cantando “happy birthday Mr. President” porque nerd não namora, ou vive de esquema ou casa logo. Sim, infelizmente não somos o sonho de consumo das mulheres, mas quem sabe quando formos comandantes desse país não seremos olhados com outros olhos?
Para encerrar deixo uma piada de nerd:

“Três amigos Nerds conversam tranquilamente quando um deles tenta se gabar de uma conquista na noite anterior:
– ontem sai com uma gatra, trouxe ela aqui pra casa, fui tirando a roupa dela, fui joganda logo a calcinha dela em cima do meu PC novo….
Nesse momento ele é abruptamente interrompido por um dos amigos;
– Opa, perái, voce montou um PC novo? cadê, qual a MOBO?
E o outro:
– Qual o procesador? vamos logo ver…

Applying best practices – How to develop object-oriented…

Ultimamente tenho estudado os autores clássicos de desenvolvimento ágil como Kent Beck, Martin Fowler, Robert C. Martin, etc e sofrido bastante. Tendo revisto meus projetos anteriores vi como minha modelagem se baseava no AnemicDomainModel como citado nesse artigo do Fowler.
Todos meus sistemas se pareciam como uma implementação do catálogo de patterns da SUN como se aquilo fosse uma interface.
Recentemente tive oportunidade de ser o responsável por todo o ciclo de desenvolvimento de um projeto pequeno com poucos requisitos funcionais, tinha ao todo uns 10 casos de usos tirando o aspecto CRUD da aplicação.
Pude realizar algumas experiências com conceitos que eu estava estudando a algum tempo e alguns que eu conhecia mas nunca tivera oportunidade de implementar.
Estou planejando um artigo mais elaborado sobre essa experiência, mas por enquanto posso adiantar alguns sentimentos sobre tudo isso.

Test-Driven Development
Essa prática do XP realmente é muito mais produtivo, eu sempre realizei os testes depois que as classes estavam desenhadas e até com métodos implementados, mas nesse sistema eu simplesmente aboli os diagramas de classes da UML, tentei fazer tudo radicalmente, fui separando as classes que eu achava que existiam no dominio da aplicação com cartões CRC, mas depois abandonei os cartões e fui direto para os “Unit Tests”, outro princípio que segui do XP foi fazer os casos de uso importantes primeiro, CRUD eu nem toquei, o banco de dados foi a última coisa que fiz. Fui criando os Unit Tests (UT) e os objetos foram surgindo naturalmente a partir dos requisitos funcionais que respondiam pela cerne do sistema, quando terminei o modelo praticamente tinha o sistema concluido, apesar de não ter nenhum select implementado. Nesse momento eu não sabia como seria a performance ou se teria que refatorar tudo aquilo para se adequar ao banco mas sentia que a aplicação estava terminada, diferente de todas as vezes onde fiz os CRUDs primeiro (que correspodem por cerca de 80% das aplicações ou mais) e praticamente via um túnel sem fim pela frente.

Domain Model
Meu modelo criou classes que a muito tempo não via (acho que desde os sisteminhas de locadora da faculdade). Minhas classes não são apenas tabelas em memória como repositório de dados, elas conhecem suas responsabilidades e seus dados como descrito nesse pattern do Fowler, acredito que as classes criaram até sentimentos (risos!).
Minha forma de pensar era um Bean que mais parecia uma tabela e que viajava da persistencia até o jsp, furando tudo pelo caminho, então dessa forma pude testar todo o sistema praticamente de minhas classes de testes no JUnit usando refactoring a todo momento e criando um modelo estável e que realmente está testado e terminado. Minhas classes sabem fazer o que tem que ser feito, ou seja, elas tem suas responsabilidades, olha só essa frase:

Procedural code gets information then
makes decisions. Object-oriented code tells
objects to do things.
— Alec Sharp

Acho que já to programando OO!

Design by contracts
Pude implementar os conceitos DbC nesse projeto, aliás quando voce desenvolve criando os testes primeiro isso flui quase que naturalmente, basta uma polida nos conceitos e pronto, um bom lugar para isso é esse artigo do Phillip Calçado sobre o tema.

Futuro
Algumas coisas não puderam ser implementadas como Dependency Injection, Aspect Oriented Programming, Pair Programming, Continuos Integration, etc. Esses conceitos vão ficar para os próximos projetos, pretendo adotar Hibernate e Spring na próxima e ver o que essas boas práticas são capazes, vou primeiro tentar convencer minha equipe a adotar o XP como metodologia, aí veremos, qualquer coisa esses conceitos já me foram uteis, aguardem novidades.

Descobrimento do Brasil!

A escola de Sagres em sua época de apogeu no século 15 era proporcionalmente mais desenvolvida que a NASA hoje no século 21, porque enquanto o mundo cristão estava engatinhando sua saída das trevas da idade média, essa escola já detinha conhecimentos avançados de tecnologias marítimas, geografia, matemática entre outras ciências.
Haviam reunidos as maiores mentes, povos do ocidente e oriente. Seria como se a NASA hoje tivesse conhecimento de como enviar tripulantes a cruzar as fronteiras da nossa galáxia com um mínimo de segurança mas que permitisse trazé-los de volta com vida.
Um dos conhecimentos da escola era que a terra era arredondada e portanto poderia ser dada a volta, um caminho mais rápido entre os continentes do que pelas rotas da época.
O mundo ocidental acreditava que a terra seria plana devido a um movimento da igreja católica que havia sincretizado a filosofia grega ao evangelho, mergulhando o conhecimento humano na sandice tola da crendice sem prova, simplesmente porque os gregos como bons copiadores e usurpadores do conhecimento Egípcio, Fenício e de tantos outros povos, propagavam variações da antiga astronomia. Uma dessas variações seria que a terra era achatada e portanto plana. Um exemplo que os egipcios conheciam a matemática muito antes dos gregos são as pirâmides antigas, construídas com perfeição geométrica.
O rei D. Manuel teria transformado um oficial de sua inteira confiança na identidade de um tal Colombo, comerciante genovês que misteriosamente teria desaparecido, há teoria que Colombo fora enviado a Gênova onde teria vivido por algum tempo como espião portugues na região (é importante conhecer a história da época, onde a Itália era dividida em estados autônomos e praticamente elegia todos os Papas, autoridade mais importante do mundo ocidental).
Colombo seria na verdade português e uma prova disso é que, quando Colombo retornou da viagem que ficou conhecida como o descobrimento da América, ele teria procurado inicialmente o rei de Portugal num encontro que ficou despercebido dos historiadores antes de se encontrar com o Rei de Espanha (patrocinador da viagem).
Segundo a historia oficial, Colombo procurou o Rei de Portugal que teria se negado a patrocinar a viagem, negando a acreditar que a terra era redonda, se isso fosse verdade porque o brasão oficial português continha um globo?
Colombo foi um entre muitos viajantes europeus que visitaram nosso continente, mas a evidência que Colombo tenha sido um espião português muda os fatos de como a história brasiliana se desenrolou.
Detalhe importantes: Os Papas travavam uma batalha contra o avanço do protestantismo nessa época; As super potências, Inglaterra e França, se engalfinhavam em uma guerra que conhecida pela alcunha de 100 anos durou muito mais que isso e as impediu de participar daquela disputa por novas terras; o resto da Europa estava fragmentada e concentravam suas forças em não serem conquistadas umas as outras.
O Papa sempre reinava numa corda bamba, apesar de toda sua hegemonia espiritual, favorecendo os reis católicos porque esses eram sua salvaguarda em tempos difíceis onde constantemente algum herege com poder suficiente tentava degolá-lo.
Outro detalhe desponta, qual o interesse portugues pelo tratado de todersilhas que determinava dominios seus após Cabo Verde depois de um ano e meio da viagem de Colombo? A historia afirma que o rei de portugal não ficou fatisfeito mas também não fez grandes movimentos para contestá-lo.

CABRAL
Algumas teorias afirmam que Vasco da Gama teria preparado a viagem de Cabral, Vasco era um carrasco, onde passava pilhava.
Lenine Pinto, norte-rio-grandense, tem pesquisado a fundo sobre essa versão não-oficial da nossa história, ele afirma por exemplo que:
1 – “Cabral em sua viagem rumo à Índia teria seguido a volta do mar numa manobra a partir do Cabo Verde, a oeste, coroneando a corrente subequatorial do Atlântico que se bifurcava no Cabo de São Roque, numa aproximação dramática do litoral potiguar, onde teria aportado em 22 de abril de 1500”;
2 – “João da Nova, em 1501, quando saiu à procura de Cabral, de Cabo Verde, levou trinta dias para chegar ao cabo de São Roque. Como Cabral, no mesmo tempo, chegaria ao sul da Bahia?”;
3 – “D. Manuel numa carta enviada ao Rei da Espanha explica que ele mandou João da Nova para procurar Cabral e eles já sabiam da rota. João da Nova não foi para o sul da Bahia e sim para as imediações do Cabo de São Roque”;
4 – “Carta do rei D. Afonso V datada de 1470, proíbe os comerciantes portugueses que negociavam na Guiné de explorar o pau-brasil. Porque o pau -brasil? Não tinha o pau brasil lá”;
Entre outras observações.
Lenine é autor de “Reinvenção do Descobrimento do Brasil”.

Trecho retirado da Tribuna do Norte:
AGUADA — Em 1498 havia peste na ilha de Cabo Verde, o arquipélago estava seco e já se presenciava a seca provocadora do esgotamento de suas reservas hídricas. Este era o local para reabastecimento de água das embarcações. Vasco da Gama, lembra Lenine, passou por lá e também fez estas observações, depois de Cristovão Colombo. Nas instruções a Cabral diziam que se ele tivesse água para mais quatro meses não era preciso parar em Cabo Verde.

A aguada – que era o sistema de abastecimento das naus, incluindo caça, a reposição de lenha dos navios e o descanso para os portugueses – aconteceu em Vera Cruz e não em Cabo Verde. “O ponto fundamental da carta de Caminha são as notícias das águas. Ele diz que as águas são muitas, encontraram lagoa de água doce e fala muito nos rios”, menciona Lenine.

O pesquisador afirma que a água era tão importante que a naveta de mantimentos foi mandada de volta para Portugal com as notícias sobre este verdadeiro tesouro para a navegação portuguesa: a água. As coincidências históricas apontam mais uma questão que leva o descobrimento ao Rio Grande do Norte. O mapa de Cantino, em 1502, mostra que a ponta litoral do Estado era chamada de São Jorge, exatamente o santo do dia 22 de abril. Era praxe entre os navegantes batizar os achados como o nome do santo do dia.

Esse tipo de conhecimento é de extrema importancia para o Brasil, porque injeta aspectos da nossa formação cultural que nunca foi estudado, além de ser mais empolgante que a chatisse oficial onde Cabral teria descoberto o Brasil “sem querer” como tudo nesse país onde nada se vê, e ninguêm sabe de nada.