Fabric + VirtualEnv: uma combinação explosiva (no bom sentido)

July 1st, 2009

Escreveu uma super-hiper-biblioteca ou aplicação em Python mas quer se certificar de que ela funciona em diferentes versões do interpretador? Embora isso possa ser resolvido através da execução manual dos testes com os vários interpretadores, isso é chato e improdutivo. Além do mais, cada versão do Python pode ter diferentes bibliotecas instaladas, o que pode acabar influenciando no resultado dos testes.

Temos portanto dois problemas a serem resolvidos. O primeiro problema, relacionado a automatização de tarefas repetitivas, pode ser facilmente solucionado com Fabric, uma ferramenta muito útil para criação de scripts de build e deployment de aplicações. Já escrevemos um texto introdutório sobre a mesma, não deixe de conferir.

O segundo problema, entretanto, é um pouco mais complicado de se resolver, mas não é nenhum bicho de sete cabeças. Com VirtualEnv, é possível criar ambientes Python isolados com o objetivo de testar e executar aplicações em uma espécie de sandbox onde temos total controle sobre as bibliotecas ali instaladas.

Read the rest of this entry »

FISL 10: Vídeos

June 30th, 2009

Promessa é dívida!

FISL 10: Fotos

June 29th, 2009

Acabei de subir as fotos no Flickr!

Assim que possível subirei também alguns vídeos, inclusive um onde Richard Stallman dança com Gnu. Imperdível!

FISL 10: Aí vou eu!

June 22nd, 2009

Nesta quarta-feira acontece, em Porto Alegre, o maior evento de software livre da América Latina e um dos maiores do mundo. O Fórum Internacional de Software Livre, ou FISL, chega este ano à sua décima edição, que promete ser ainda melhor e maior que as anteriores.

Banner  do evento

Banner do evento

Quando voltei do meu primeiro fórum, em 2007, prometi a mim mesmo que faria o possível para não perder as edições seguintes. Felizmente, essa promessa vem sendo cumprida à risca, já que este será meu terceiro fórum. E a empolgação, como não podia deixar de ser, já está começando a tomar conta!

Nos vemos lá!

Você gostaria de ver Django-flash incluído no Django como uma Contrib app?

June 19th, 2009

Django-flash, um despretencioso projeto de software livre desenvolvido pela Destaquenet, tem recebido excelentes críticas por quem o vem utilizando regularmente. Sua adoção vem crescendo vagarosamente, mas consistentemente. Nem preciso dizer o quanto isso é gratificante para nós.

De um tempo para cá, eu fui contactado por alguns desses usuários perguntando sobre a possibilidade de ter o nosso projeto incluído na distribuição do Django, na forma de uma Contrib app. Eu achei a idéia excelente, pois eu penso que um framework como o Django deveria se preocupar em resolver um problema tão recorrente quanto este que o Django-flash se propõe a resolver.

Se você utiliza Django-flash em seus projetos, não deixe de acompanhar essa discussão. Se possível, nos dê sua opinião sobre o que poderia ser feito para melhorar ainda mais o projeto e, assim, facilitar sua inclusão no Django.

Programação Funcional: vale a pena aprender?

June 16th, 2009

Antes de começar com Python, eu não conhecia praticamente nada sobre Programação Funcional. Para falar a verdade, eu até achava que os paradigmas Funcional e Procedural eram a mesma coisa pelo fato do segundo se basear em funções métodos (e várias pessoas com as quais eu convivo e trabalho também têm esse equívoco). Felizmente, tudo começou a fazer sentido quando aprendi, graças ao Python, coisas  como map(), reduce(), filter(), generators e list comprehensions.

Como o mercado é dominado por linguagens imperativas, é bem difícil encontrar pessoas que realmente conheçam e utilizem linguagens funcionais com certa regularidade. Mas isso não significa, de forma alguma, que não há espaço para tais linguagens. Na verdade, a tendência é que elas ganhem cada vez mais espaço.

Read the rest of this entry »

“Era uma vez um patinho feio…”

June 3rd, 2009

Eu me lembro como se fosse ontem. Quando comecei a desenvolver aplicações web, o JavaScript, apesar de ter seu uso — normalmente limitado a validações de formulários e joguinhos do tipo pergunta-e-resposta — não era algo que os desenvolvedores conheciam nos mínimos detalhes. Na verdade, ninguém parecia se importar em saber mais do que fazer uns testes if/else e mostrar um alert na tela. Eu inclusive.

Alguns anos se passaram e a coisa ficou bem diferente. Conhecer JavaScript e suas peculiaridades é requisito obrigatório. Qualquer aplicação decente utiliza a linguagem em partes importantes do seu código, bibliotecas para as mais variadas funções são criadas a cada dia, as engines estão cada vez mais velozes. Isso tem que significar alguma coisa.

Teria o JavaScript deixado de ser uma linguagem de script e se tornado uma… plataforma?

Claro que o JavaScript tem problemas. Nada é perfeito. Só que antes de dizer que a linguagem é ruim, ou que não é tão “sexy” como Ruby (ui!), muitos esquecem que JavaScript é a linguagem (plataforma?) que dispõe da maior base de potenciais usuários. Maior até que ActionScript/Flash.

Se formos parar para pensar, isso nem é assim tão surpreendente: a única coisa que, por enquanto, impede que um usuário rode uma aplicação escrita em JavaScript é a ausência de um browser. Tirando os servidores, quais as chances de um computador não possuir um browser instalado? Praticamente zero, eu diria. E o mesmo vale para os smartphones, netbooks e outros dispositivos.

Por isso, aos que gostam de profetizar sobre qual será a próxima grande linguagem, fica a lição de que não existe uma bola de cristal que funcione. Afinal, ninguém imaginava que JavaScript, o então ex-patinho feio nascido em 1995, viria a chegar onde chegou.

E o melhor ainda está por vir.

Livro grátis: “Python para Desenvolvedores”!

June 1st, 2009

Há alguns dias atrás fui informado do lançamento (sob licença CC) de um livro sobre Python chamado Python para Desenvolvedores. Para quem não conhece Python, ou ainda está iniciando nessa excepcional linguagem, trata-se de um excelente recurso de aprendizado, apresentando uma infinidade de exemplos e mostrando, na prática, um pouco do que pode ser feito com ela. Congratulações ao autor, Luiz Eduardo Borges!

Não deixe de baixar o livro e, claro, aprender Python. O único problema é que você provavelmente não irá querer olhar para trás

Read the rest of this entry »

Django e settings.py: dicas e boas práticas

April 13th, 2009

Em vez de ficar rasgando elogios ao Django, como de costume, eu tentarei aproveitar o melhor o meu (e o seu) tempo e mostrar algo que é de fato útil. O assunto em questão envolve o módulo settings.py, cuja função é fornecer as configurações necessárias para que o projeto funcione. Apesar deste módulo ser uma peça importante em qualquer projeto Django, pouco se fala sobre ele, ou sobre boas práticas associadas a ele. Por isso, achei que seria interessante mostrar a minha visão pessoal sobre o assunto.

O poder do Python

Quem não está acostumado a trabalhar com Django pode estranhar o fato deste utilizar um script Python para fazer a configuração do projeto: o famoso settings.py. E essa estranheza é justificada, afinal muitos desenvolvedores — principalmente os que vêm de outras linguagens — estão acostumados a trabalhar com ferramentas onde tal tarefa é feita com arquivos XML ou coisa assim.

O fato é que utilizar um script Python para tal é uma excelente idéia, pois você deixa de depender de algum tipo de estrutura estática (e muitas vezes inconveniente) para algo mais flexível e poderoso, que, no caso, é a própria linguagem de programação. Isso faz uma grande diferença em situações onde tal flexibilidade é necessária.

Quer exemplos? Read the rest of this entry »

Firefox: “A memória é minha e ninguém tasca!”

March 25th, 2009

O Firefox gosta tanto da memória RAM que tenta pegar tudo para si! Exagero? Bem, eu sempre soube que o Firefox é um guloso consumidor de memória, mas hoje eu fiquei espantado em constatar que a situação é ainda pior do que eu pensava. Veja por si só:

Consumo de memória do Firefox 3.0.7

Consumo de memória do Firefox 3.0.7

Medo.