PythonBrasil[7]

Vem aí a PythonBrasil[7]!

De 29 de setembro a 1º de outubro desse ano acontecerá, em São Paulo, a sétima edição do Encontro Brasileiro da Comunidade Python, mais conhecido como PythonBrasil[7].

Este ano a organização vai colocar em prática um novo modelo de evento, com estrutura de grande porte e contando com o apoio de patrocinadores importantes. Por isso, se você tem interesse na plataforma Python, não pode deixar passar esta oportunidade de entrar em contato com os maiores gurus da comunidade brasileira e internacional – sim, a PythonBrasil[7] vai contar com as presenças confirmadas de Jim Fulton (CTO da Zope Corporation) e Steve Holden (Chairman da Python Software Foundation).

Ok, gostei da ideia! Como faço para me inscrever?

Acesse a página de inscrições do evento e siga as instruções. Vale lembrar que a primeira faixa de preços promocionais para as inscrições dura somente até amanhã, 30 de junho. Depois disso, os valores vão ficando progressivamente mais altos. Então, não perca tempo!

Serviço:

Como fazer consultas GQL pela chave da entidade no Google App Engine

Google App EngineA chave de cada entidade armazenada no datastore pode ser acessada por meio do seu atributo __key__. Este atributo, por sua vez, é uma instância da classe Key. Sendo assim, para realizar uma consulta pela chave da entidade, o parâmetro precisa ser um objeto da classe Key. Para criá-lo, basta chamar seu construtor, passando a string da chave como argumento. A seguir, um exemplo:

SELECT * FROM Pessoa WHERE __key__ = Key('agRmMWdwcgwLEgRSYWNlGMmWKww')

Desabilitando a verificação de atualizações do Google App Engine

Google App EngineO servidor de desenvolvimento Python do Google App Engine (dev_appserver.py) verifica se a versão do SDK está atualizada toda vez que é iniciado. Isto pode ser um problema caso uma conexão com a internet não esteja disponível, pois a aplicação não começará a rodar enquanto a requisição não expirar. Para contornar esta situação, é possível desabilitar a verificação de atualizações. O procedimento consiste em editar (ou criar, caso não exista) o arquivo .appcfg_nag que fica localizado no diretório home do usuário para que a primeira linha tenha o seguinte conteúdo:

opt_in: false

Livro “A Byte of Python 3″ traduzido para o português brasileiro

A Byte of Python - Português BrasileiroFinalmente, depois de algum tempo de baixa prioridade para o projeto, conseguimos concluir 100% da tradução do livro A Byte of Python, de Swaroop CH. Gostaria de agradecer imensamente a todos os voluntários que colaboraram na tradução, fazendo com que mais uma opção de aprendizado da linguagem esteja disponível em língua portuguesa.

A todos os interessados, leiam e façam suas sugestões e críticas para que possamos corrigir eventuais falhas.

Para ler online: A Byte of Python 3 (português brasileiro)

Python no evento 3kg de TI

Hoje foi o primeiro dia do evento 3Kg de T.I., promovido pela Universidade Tiradentes. Uma das apresentações do dia de abertura foi um curso relâmpago de Python, seguido de uma sessão de coding dojo na linguagem. Cerca de 20 pessoas estiveram presentes para conhecer a linguagem e a prática do dojo. Os palestrantes Davi Lima e Rodrigo Amaral mostraram as principais características da linguagem que a fazem tão poderosa e divertida de programar. Aproveitamos a oportunidade para convocar divulgar o Python User Group de Sergipe (PUG-SE) e o Coding Dojo Sergipe (Dojo-SE).

Como a maioria dos presentes participava pela primeira vez de um coding dojo, pudemos comprovar o quanto esta prática é motivante. Em pouco tempo, todos os voluntários para codificar se mostraram bastante à vontade com a dinâmica do dojo.

Seguem algumas fotos do evento:

Gostaria também de deixar nosso agradecimento à organização do evento, na pessoa do Jordano Mazzoni, e à Universidade Tiradentes por apoiar esta importante iniciativa, não só para o mercado, mas para todo o ecossistema de tecnologia da informação de Sergipe.

DreamPie: mais um shell com esteróides para Python

O interpretador interativo do Python é considerado por muitos desenvolvedores como um dos recursos mais interessantes da linguagem. De fato, podemos dizer que é ele quem possibilita alta produtividade ao escrever software em Python apenas com um editor de textos simples, sem depender de IDEs pesadas e complexas.

O problema é que a interface padrão (shell) do interpretador às vezes é um pouco limitada quando precisamos experimentar trechos de código ligeiramente mais longos ou intrincados. Editar uma linha submetida ao interpretador por engano pode ser um processo um tanto quanto doloroso. Para resolver esse problema, existem algumas versões alternativas do shell que agregam muito em funcionalidades e usabilidade, tais como o ipython e o bpython. Dessas duas, a que mais me impressionou foi o bpython, mas logo nas primeiras tentativas percebi que o aplicativo é um tanto quanto instável, apresentando muitos problemas ao exibir na tela o código digitado, principalmente ao tentar recuperar alguma linha do histórico. Esses bugs me fizeram deixar o bpython um pouco de lado até que aparecesse algo mais robusto.

Hoje a espera parece ter terminado. O site UbuntuGeek publicou um post divulgando o DreamPie, que promete mais estabilidade e facilidade de uso. Instalei a ferramenta e, após alguns minutos de brincadeira, posso confirmar que ela promete o que cumpre. Criada por um dos colaboradores do IDLE, ela apresenta interface limpa, fácil de configurar e de editar código do histórico de comandos. Alguns dos principais recursos do DreamPie são:

  • Submissão de código por blocos, ao invés de por linhas
  • Auto-complemento de código e de nomes de arquivos
  • Auto-complemento de parênteses
  • Integração com o matplotlib
  • Histórico dos resultados da execução dos trechos de código (output)
  • Saídas muito longas são “dobradas” (results folding), para não atrapalhar a visualização do código
  • Suporte a Python 2.5, 2.6, 2.7, Jython 2.5, IronPython 2.6 e Python 3.1
  • É software livre, licenciado pela GPL 3

dreampie

Referências

Começando um user group: a experiência do PUG-PE

Recentemente, surgiu uma thread da lista de discussão da comunidade Python Brasil cujo autor solicitava dicas e sugestões sobre como iniciar e movimentar um grupo de usuários local. Muitas pessoas deram sua opinião, o que me fez notar que nem todo mundo costuma divulgar seu ponto de vista sobre o assunto. Por isso, resolvi compartilhar um pouco da minha experiência com o PUG-PE, o Grupo de Usuários Python de Pernambuco. Antes de mais nada, quero deixar claro que não tenho a intenção de esgotar o assunto, até porque estamos todos em contínuo processo de aprendizado. O relato a seguir é simplesmente fruto da necessidade de documentar a iniciativa. Afinal, small acts make great revolutions!

O início

No início de julho de 2007, comecei a perceber que as pessoas interessadas em Python no Recife estavam muito isoladas, apesar de saber que havia iniciativas importantes envolvendo tanto o uso quanto o ensino da linguagem algumas instituições locais. Entrei em contato com alguns participantes da lista de discussão nacional que já haviam mencionado residir em Pernambuco, para ver se seria uma boa ideia criar uma lista de discussão e tentar reunir os usuários locais de Python em torno dela. Diante do retorno positivo, criei a lista e divulguei na comunidade Python Brasil. Em pouco tempo, começaram a surgir as solicitações de participação e no intervalo de uma semana já eram mais de 15 membros.

A primeira tentativa

A empolgação do início nos motivou a marcar rapidamente a primeira reunião presencial. Se de todos os inscritos na lista uns quatro ou cinco comparecessem, já teríamos o que comemorar. Para quebrar o gelo – afinal quase ninguém se conhecia pessoalmente – optamos por um encontro informal num restaurante do Recife, numa noite de meio de semana. Infelizmente, por uma grande coincidência, todas as outras pessoas que haviam confirmado presença tiveram contratempos de última hora e acabei indo sozinho ao “não-encontro”.

Depois de passado algum tempo, encaramos esse pequeno tropeço como um lição aprendida, que nos prepararia para o que poderia vir pela frente. Pessoalmente, entendi o episódio como uma métrica do quanto ainda precisávamos maturar a ideia do grupo de usuários. Talvez, se tudo tivesse dado certo na naquela primeira tentativa, não teríamos nenhuma experiência para relatar hoje. Decidimos dar tempo ao tempo.

Um breve hiato

Durante algum tempo, a lista de discussão se limitou a funcionar como um mural de anúncios de eventos relacionados a software livre, com um ou outro pedido de ajuda com alguma tarefa de programação em Python. De vez em quando surgiam interessados em realizar o tão sonhado encontro presencial. Sempre incentivei a todos, me colocando à disposição para o que fosse necessário, mas deixando claro que não iria tomar a iniciativa de organizar o encontro sozinho novamente. Não tinha certeza se essa seria a melhor maneira de lidar com a situação, mas na hora me parecia a única saída para evitar um novo eventual “fogo de palha”.

A retomada

O grupo continuou assim até meados de janeiro de 2010, quando o Marcel Caraciolo ingressou na lista após fazer o que eu tinha feito lá em 2007: procurar por algum grupo local de Python antes de tentar iniciar um por conta própria. Era a fagulha de iniciativa que faltava para impulsionar o funcionamento do grupo pra valer. Percebi que o catalisador trazido por Marcel era algo simples, mas extremamente importante para um grupo de usuários de tecnologia: uma rede de contatos no meio acadêmico. A partir daí, aconteceu um crescimento impressionante no número de membros da lista de discussão. A quantidade de participantes praticamente dobrou em menos de um mês, alcançando quase 100 pessoas. Chegava o momento de fazer uma nova tentativa de reunir o pessoal.

Os encontros

Com um massa crítica razoável de pessoas interessadas a atuantes, ficou mais fácil concretizar o objetivo de realizar a primeira reunião presencial. Uma ferramenta importante no processo de organização dos encontros foi o uso de enquetes para auxiliar na tomada de decisões. Com elas foi possível verificar com antecedência qual o dia da semana, horário e local que atenderia a maior parte das pessoas. Desde então, temos conseguido realizar encontros mensais em manhãs de sábado, no Centro de Informática da UFPE.

Tem sido uma experiência gratificante ver a quantidade de participantes e a qualidade dos encontros aumentar a cada mês. Na última edição, em abril de 2010, contamos com a presença de cerca de 40 pessoas, número que eu jamais poderia imaginar que pudesse ser alcançado tão rápido. Muito bom também perceber que o pessoal já começa a não mais esperar ou perguntar o que pode ser feito para ajudar: vai lá e toma a iniciativa de reservar sala para os encontros, avisar aos amigos que ainda não conhecem e assim por diante.

As lições aprendidas

Não existe receita de bolo nem fórmula mágica para iniciar um grupo de usuários. Até mesmo a experiência que tenha servido para um grupo pode não servir para outro. Os motivos para isso são os mais diversos, desde o perfil dos interessados, até as diferenças culturais de cada região. No entanto, nunca é demais registrar e compartilhar as lições aprendidas, pois pode ser o detalhe que esteja faltando para alavancar o funcionamento de um grupo.

  • Não tente promover uma reunião informal demais logo na primeira tentativa. É normal que situações muito descontraídas sejam um pouco intimidantes quando as pessoas ainda não se conhecem pessoalmente, o que é ainda pior se o grupo inicial for composto por muitos principiantes. Geralmente as pessoas com esse perfil são atraídas pela expectativa de que vão ser expostas a algum conhecimento novo, a ser transmitido por pessoas mais experientes.
  • Aproxime-se do ambiente acadêmico. Os universitários, principalmente dos períodos iniciais, costumam ser muito receptivos a novidades ou a algo que os indique um caminho a seguir, tanto na graduação, quanto na vida profissional. Além disso, a parte da logística também fica mais simples, já que o acesso a recursos e espaço físico adequados é mais fácil.
  • Tenha paciência e avance em baby steps. Introduza ideias e novidades gradualmente e aguarde um pouco para observar o feedback. Às vezes uma ideia que parece boba desperta muito mais interesse naquele determinado momento do que algo que você considere genial.
  • Aprenda a conviver com a diversidade. As pessoas têm graus de interesse diferentes por diferentes atividades. Não é porque você está disposto a despender muita energia e tempo no grupo de usuários que todos têm a obrigação de fazer o mesmo.

Ainda temos muito o que aprender e várias coisas a realizar, mas acredito que o mais difícil foi vencer a inércia. Períodos de altos e baixos virão pela frente, mas certamente estamos cada dia mais preparados para manter a cabeça fora da água.

Se você tem alguma experiência parecida ou mesmo alguma dica complementar, seria ótimo vê-la compartilhada nos comentários!

Introdução ao Google App Engine

No último encontro do PUG-PE, apresentei uma rápida introdução ao Google App Engine. A finalidade era mostrar como até mesmo desenvolvedores iniciantes podem disponibilizar uma aplicação web de forma fácil e rápida. O feedback dos presentes foi muito positivo. Fiquei bastante satisfeito em ver que muita gente correu para experimentar o App Engine assim que chegou em casa. Portanto, missão cumprida!

Download direto

Código-fonte do exemplo

Verificando a versão do Django

Quando estamos usando um computador desconhecido ou simplesmente não conseguimos lembrar qual a versão do Django que está instalada, é sempre útil descobrir do jeito mais rápido possível. Para resolver o problema com uma única linha de comando no shell, temos:

$ python -c "import django; print django.get_version()"

Para aprender mais: