“import antigravity” vai funcionar no Python 3

O Python 3 ganhou um novo easter egg: import antigravity

O novo easter egg (commitado semana passada) é uma referência a uma tirinha do famoso XKCD, em que o personagem consegue voar apenas digitando “import antigravity”, se remetendo à facilidade de uso da linguagem. O novo módulo quando importado fará com que um browser seja aberto e a tirinha carregada da web.

O easter egg se junta aos já famosos from __future__ import braces e import this.

Publicado em Python. Tags: , . 1 Comment »

Gerando apresentações beamer for dummies

O beamer gera apresentações muito legais, não há como duvidar. Se você ainda não o conhece, gaste um pouquinho do seu tempo e você fará apresentações muito mais bonitas e estruturadas do que as que você está acostumado a fazer no PowerPoint, OpenOffice ou Keynote.

Mas ele tem um problema: o LaTeX. Eu até gosto do LaTeX e concordo que ele gera documentos com formatação bonita e consistente, já escrevi alguns documentos grandes com ele, mas pra fazer qualquer coisa eu preciso lembrar um markup muito chato e comandos mal-documentados.

Hoje eu descobri uma ferramentinha que resolve boa parte do problema: yml2tex. É um programa muito simples que converte um arquivo texto em notação YAML para um arquivo TeX, quase pronto para ser “compilado” pelo pdflatex (o quase é porque a versão atual deixa o nome do autor hardcoded no “template” então você vai precisar editar).

Claro que com um YAML não dá pra aproveitar nem metade do poder do beamer, mas já fica bom. Ele faz 3 coisas e só isso: Gera o índice da apresentação, slides com “bullets” seguindo a hierarquia do YAML, inclui fotos e código-fonte (lindamente colorizado pelo pygments). Isso é suficiente para muitos casos. Para quem precisar personalizar mais alguma coisa, pode abrir o arquivo TeX e mandar bala.

Você pode ver um exemplo de apresentação gerada de um arquivo YAML. O blog do autor tem mais detalhes de uso.

Exemplo de slide gerado pelo yml2tex

Exemplo de slide gerado pelo yml2tex

Publicado em Python. Tags: , , . 1 Comment »

Os podcasts que eu ouço

Quando o Bruce Eckel veio pro Brasil para a PyConBrasil 2008 e para o workshop de design patterns, ele perguntou quem escutava podcasts regularmente e bem menos gente do que eu esperava levantou a mão. Então ele recomendou alguns podcasts e enfatizou que ouvir podcasts era quase como ir a conferências, mas ainda mais prático você ouve quando puder. O Humberto Diógenes então fez um post legal indicando os podcasts que ele ouve e eu decidi fazer o mesmo. Os podcasts abaixo não estão em ordem de preferência:

This Week in Tech – Muito bom. Conta com a presença regular do polêmico John C. Dvorak. Normalmente são longos (mais de 1 hora). As edições que eu mais gostei foram sobre o The Internet Archive, o lançamento do Microsoft Live Mesh e sobre como a internet, blogs e twitter estão influenciando o jornalismo. Periodicidade: Semanal.

Capa TWiT

This Week in Tech

FLOSS Weekly – Mais um podcast com o Leo Laporte. Neste podcast ele e Randal Schwartz (sim, o cara do Perl e agora Smalltalk) entrevistam personalidades do software livre, normalmente core developers de projetos grandes como o Drupal, Python, Audacity, mas também pessoas não tão ligadas a projetos como o Maddog, Larry Augustin e Ward Cunningham. Os episódios que eu recomendo são: Ward Cunningham (muito bom!), Larry Augustin, Maddog, Jeremy Allison. Periodicidade: Deveria ser semanal, mas de vez em quando demora mais, de vez em quando menos. Nos últimos meses eles tem conseguido manter a regularidade.

FLOSS Weekly

FLOSS Weekly

Software Engineering Radio – Podcast já tradicional (mais de 3 anos e 100 episódios) que sempre conta com entrevistas interessantes normalmente com acadêmicos de várias áreas ligadas a software, por exemplo, linguagens funcionais, arquitetura de software, métodos ágeis, SOA, sistemas embarcados, sistemas distribuídos etc. Meus episódios preferidos: Static Code Analysis, Garbage Collection and Transactional Memory, Anders Hejlsberg (o cara do C#, Delphi e Turbo Pascal), LISP, Small Memory Software. Periodicidade: De dez em dez dias.

Software Engineering Radio

Software Engineering Radio

This Week in Django – Este podcast comenta os últimos desenvolvimento do Django no SVN, aplicações interessantes feitas com o Django e entrevista pessoas ligadas a comunidade do framework. Periodicidade: Semanal.

This Week in Django

This Week in Django

Publicado em Python, Web. Tags: , , . 5 Comments »

Saiu o Python 2.6!

Hoje saiu a primeira versão estável do Python 2.6. O principal objetivo deste release é começar a trilhar o caminho para o Python 3.0, que corrigirá problemas de design das versões anteriores.

Algumas destas correções tornam o código escrito para versões anteriores incompatíveis com o novo Python 3.0. A versão 2.6 é uma versão intermediária que contém tanto funcionalidades das versões anteriores do Python quanto novidades do Python 3.0. Com esta versão intermediária os desenvolvedores podem começar a verificar a compatibilidade de suas aplicações com a futura versão 3.0 do Python e já começar as adaptações, garantindo uma transição suave entre as versões.

A versão 2.6 é compatível com as versões anteriores, mas auxiliará na migração emitindo avisos caso haja construções incompatíveis com a versão 3.0. Além desta versão intermediária, a ferramenta 2to3 é capaz de realizar automaticamente muitas conversões (mas não todas).

As novidades da 3.0 já incorporadas na 2.6 são muitas: novos módulos para processamento paralelo e codificação/decodificação JSON, tratamento de frações, correção de mais de 600 bugs, otimizaçõesum diretório de pacotes por usuário (o que facilitará a instalação em ambientes compartilhados), o novo método str.format em substituição ao operador % das strings, decorators para classes, melhorias na documentação (que ficou muito mais bonita usando o Sphinx). Enfim, são muitas novidades interessantes e eu não falei nem da metade!

Agora você pode fazer o download, ler o changelog e ver a apresentação do Guido. Boas migrações!

Publicado em Python. 1 Comment »