28 de janeiro de 2011

Tradução via gtalk

Hoje eu conheci um serviço muito legal do Google: o bot de tradução via Google Talk.

Você adiciona o contato pt2en@bot.talk.google.com, abre uma janela de chat com ele, escreve alguma coisa em Português e ele te retorna a versão em Inglês.

É certo que já existe a tradução via site, mas essa aqui é muito mais focada porque eu não preciso escolher o idioma para traduzir toda hora. Eu simplesmente adiciono o idioma que preciso com freqüência e “converso” com ele.

Existem outros idiomas, claro:
  • Do Inglês para o Português: en2pt
  • Do Português para o Espanhol: pt2es
  • E por aí vai.
Basta usar os códigos dos idiomas e adicioná-los.

26 de janeiro de 2011

Corra a ultra-maratona com web2py

A diferença de perfil entre os atletas corredores é grande.

Os de arrancada têm aquela explosão de velocidade. Chegam rápido, mas o organismo não aguenta muito tempo. Eles normalmente usam tecnologia de ponta nos ramos de alimentação, preparo físico e roupas com melhor aerodinâmica. Normalmente são os inovadores. Eles precisam chegar rápido e param logo.

Os de longa distância precisam se preparar para uma atividade que exige muito mais desgaste físico e emocional. Os ultra-maratonistas correm por dias, enfrentam calor, frio, sol, escuridão, diferença de altitude, tudo na mesma corrida. Eles precisam se alimentar várias vezes durante a corrida e param para o alongamento. Os calçados precisam ser extremamente confortáveis; absorvem os impactos e evitam bolhas nos pés.

Os desenvolvedores de aplicativos precisam entender que os clientes duradouros querem sinais duradouros. E planos também. Seu compromisso não termina em poucos segundos. Você está focando o objetivo lá na frente. É uma ultra-maratona; não os 100m rasos.

As tecnologias envolvidas precisam ser seguras, com compromisso de continuidade. Muitas vezes fazemos ajustes, trazemos alternativas, mas o plano maior já está traçado. Precisamos rever as regras, os competidores, renovar as forças; mas a corrida é a mesma.

Quero deixar claro que essa abordagem não tem nada a ver com mesmice. Você pode e deve inovar sempre que possível, mas com segurança. Suas escolhas precisam estar baseadas em alguns indicativos.

Talvez as escolhas mais importantes, que vão determinar se você andará em frente ou voltará ao início são as linguagens de programação (regras de negócio, scripts de automação, templates, manipulação de dados), os gerenciadores de bancos de dados e o framework que vai te economizar um tempão em tarefas chatas e difíceis e deixar você focar no seu negócio principal: os aplicativos.

Esses aspectos não são valorizados sempre, mesmo por técnicos da área. Já vi muita gente escolher a linguagem X "porque todo mundo que eu conheço está usando", "porquê é a transição natural" ou "porque é a que a gente conhece". Se você faz assim, acorde! Esses são aspectos importantes, mas nada disso é base sólida.

Conheço desenvolvedores Java que nunca tinham ouvido falar em Python, até me conhecerem. O Visual Objects era "a transição natural" do Clipper para o ambiente Windows, no início da década de 90. Trabalhei numa empresa que a "cultura" era PHP porque eles tinham alguns sites desenvolvidos, mas não sabiam muito bem os motivos técnicos nem comerciais para usarem PHP. É como diz o ditado: "quando sua única ferramenta é um martelo, todos os seus problemas se parecem com um prego".

Na mesma linha de pensamento, veja como escolher seu editor de programas.

Como desenvolvedor, o patrimônio da sua empresa é intelectual e a linguagem que expressa as regras dos seus aplicativos é importantíssima para você. É ela quem vai, muitas vezes, determinar se "aquele ajustezinho" vai demorar 1 hora ou 3 dias!

Atualmente estou desenvolvendo aplicativos usando web2py. Algumas características que eu considerei positivas foram:
  1. Tem compromisso oficial com compatibilidade reversa. Desde 2007 nenhuma compatibilidade foi quebrada. Ou seja, o que eu faço continua funcionando.
  2. É escrito em Python, para desenvolver aplicativos em Python. Uma linguagem madura, em franca expansão, usada por grandes players mundiais. Posso desenvolver orientado a objetos, ou não. Posso escrever scripts de administração do meu ambiente com ela se eu quiser.
  3. Posso usar python para renderizar minhas views. Mesma linguagem, menor curva de aprendizagem.
  4. É auto-contido. Em outras palavras, descompacte e use. Todas as dependências estão dentro do pacote dele. Como não quero ser "mecânico" de ambiente, isso é uma ajuda e tanto. Já vem com jquery, gerador de PDF, Ajax, etc.
  5. É open-source.
  6. O DAL (Data Abstraction Layer) pode ser desacoplado. Ou seja, se eu precisar desenvolver um módulo para rodar fora da web, eu continuo usando a mesma linguagem de acesso a dados. Em outras palavras, DRY (Don't Repeat Yourself).
  7. Exite um monte de templates de sites gratuitos prontos, a partir do CSS Zen Garden e Free Templates.
  8. Tem comunidade ativa, inclusive no Brasil.
Se você pretende que seus aplicativos funcionem por muitos anos sem ter o trabalho de reescrevê-los com frequência, escolha seu ambiente de desenvolvimento prevendo isso.

Quem tem resistência e planejamento chega ao final da ultra-maratona.