Integração Contínua

27.fevereiro.2009
Instalei em minha máquina de trabalho um servidor de integração contínua.

Quando se trabalha sozinho, num projeto pequeno, isso realmente não faz muito sentido. Porém, trabalhando com um recurso a 500km de distância, e mais dois recursos remotos cuidando de um projeto relacionado, cuja alteração indevida pode quebrar o funcionamento da parte em que trabalho, esse tipo de ferramenta começa a fazer sentido.

O modo correto, antes de mais nada, é instalar esse servidor numa máquina que possa ser facilmente acessada por qualquer parte interessada. Minha máquina de trabalho, obviamente, só fica disponível quando estou conectado na rede da empresa, para quem estiver na mesma condição.

Instalei o Apache Continuum rodando como um NT Service (sim, eu uso Windows no trabalho), acessível como uma aplicação web a partir da porta 8080.

Para quem se interessou, recomendo a leitura do artigo do Martin Fowler sobre Integração Contínua. Estou organizando uma documentação para compartilhar com a equipe e pretendo divulgá-la aqui.

P.S.: Sim, eu sei que tem Bamboo, mas comunicação ainda é um ponto crítico a ser desenvolvido.


Pressure

24.fevereiro.2009
Estou com três projetos para entregar, sendo dois até o fim da semana e um para o começo de Março.

Impressionante como, sob pressão, o desejo de voltar a práticar velhos e maus hábitos vem à tona. Estou brigando para continuar fazendo as coisas de um modo limpo. Mudança de cultura nunca é algo fácil.

Depois dos festejos pagãos eu volto. No momento tenho que trabalhar, enquanto meus vizinhos ouvem marchinhas estúpidas de carnaval e enchem os respectivos rabos de cerveja de milho.


Mais um bom motivo para não se usar comentários

17.fevereiro.2009
Você está trabalhando feliz e sorridente naquele projeto de prazo estourado, com aquela API que não funciona, e eis que de repente você encontra a maravilha de código abaixo, devidamente comentada, claro:

t.each(function(){
$(this).bind("click",function(){ //可更换为其他动画形式
t.remove(tbo); // 在此可添加多组选项卡

Que bom, hein? O fonte está comentado, e imagino que deva ter as devidas explicações sobre o que faz cada parte.

Se convenceu agora de que comentários em código, além de dificultarem a leitura e se tornarem um vício, são ruins e devem ser evitados?

Escreva um código que seja esclarecedor por si só, sem sujeira, e seja mais feliz.


Primeiros passos em Rails

16.fevereiro.2009
Ambiente devidamente configurado, fui eu meter as caras no Rails, framework para agilizar e divertir (???) o desenvolvedor, segundo informado no próprio site.

Algumas coisas me empurraram para o Rails, na ordem:

– Curiosidade: acredite, um programador sem curiosidade não é nada além de um repetidor de tarefas.
– Custo: desenvolvendo em Grails eu teria que contratar uma JVM dedicada para hospedar minha aplicação. Isso gerou um custo que deixou o cliente insatisfeito. Como quem manda é ele, fui obrigado a buscar uma solução mais econômica.
– Compatibilidade: Boa parte da aplicação já estava feita em Grails, então eu precisaria aproveitar o máximo possível. Devido ao fato do Grails ter sido criado usando o Rails como base, a migração teoricamente seria menos traumática.
– Produtividade: Esse é o ponto chave do Rails. Em termos de custo de hospedagem, pode ser comparado ao PHP, mas com certeza é uma ferramenta que provê muito mais recursos do que o dinossauro da Zend. Por exemplo, eu posso criar uma tela de cadastro no Rails utilizando poucas linhas de código, enquanto no PHP não existe nenhum suporte nativo a isso, apesar de ferramentas como PHPScaffold.

Tive alguns problemas chatos tentando utilizar o ActiveScaffold, mas esse é mais um projeto que sofre da clássica doença do “fiz, mas não testei”. Não funcionou de jeito nenhum com o Rails 2.2.2 que estou utilizando. Instalei o Streamlined e, por enquanto, tudo está caminhando tranquilamente.


питона ou Рубин?

13.fevereiro.2009
Reclamaram a respeito do meu post sobre tradução do NetBeans.

Ok. Pense que você está num escritório no exterior e precisa programar no NB. Aparecem as opções питона e Рубин para você escolher a linguagem de programação.

E agora, José?

Ah, mas você não está programando na Rússia. Ok, pode ser. Mas na empresa onde trabalho não é incomum você utilizar um sistema operacional ou mesmo o Eclipse em francês, por exemplo.

Fica a dica para quem sentir a necessidade.


NetBeans em inglês

12.fevereiro.2009
Toda boa idéia acaba desbundando para algo porco, mal feito ou que simplesmente causa a morte de milhões de pessoas, como a televisão, o Orkut ou a bomba atômica.

Alguém, algum dia, teve a idéia de traduzir o NetBeans. Claro, afinal existem milhares de programadores preguiçosos que não sabem trabalhar com um botão Run, mesmo ele sendo aquela setinha verde de sempre, ou um menu File, mesmo ele estando no mesmo lugar desde 1985. Tudo bem, foi uma boa idéia para quem precisa. Bastaria eu baixar a versão em inglês e ignorar as traduções.

Aí alguém avacalhou com a idéia: ‘por que não alteramos o idioma automaticamente, de acordo com as configurações na máquina do usuário?‘. E lá se foi meu direito de escolha para usar o IDE no idioma que eu bem entender.

Para resolver esse problema, já que eu não quero trabalhar com Rails usando Visualizações, Controladores nem Modelagens, você tem que abrir a pasta onde o NetBeans foi instalado, e editar o arquivo etc/netbeans.conf e adicionar na opção netbeans_default_options a sequência -J-Duser.region=US -J-Duser.language=en.

Pronto, abra o NetBeans e aproveite a interface como ela realmente é, com seus devidos Models, Views e Controllers. Ou então, se possível, use o Eclipse, o que eu pessoalmente prefiro.


Instalando Rails no Windows através de um proxy HTTP

11.fevereiro.2009
O título em si é maior que o post, mas vamos lá.

Instalei o Ruby numa máquina que acessa internet através de um proxy HTTP. A conexão não é transparente e todo software que eu instalo na máquina precisa ser configurado para se conectar corretamente.

Após instalar o Ruby, seja lá como você queira (eu instalei usando o ‘one-click-installer‘, execute:
set HTTP_PROXY=http://192.168.6.1:3128

gem install rails

E dê Enter em todas as opções, na falta de um “Yes to all”.

Após alguns instantes, para utilizar a última versão das bibliotecas, digite:

gem update --system

Finalizando, caso você queira utilizar Mongrel ao invés do WEBrick (eu recomendo), você executa:

gem install mongrell

Simples assim. Agora é só se divertir, sorrir e brincar.