As vuvuzelas estão sendo alvo de muita discussão nessa Copa da África. Além das várias reclamações dos narradores e comentaristas sobre o barulho ensurdecedor nos estádios, o som das cornetas africanas têm incomodado os telespectadores em todo o mundo – BBC avalia hipotése de diminuir o som ambiente .

Como o presidente da FIFA já afirmou, as vuvuzelas estão liberadas, então se você quer se juntar a essa barulheira mas não tem uma, experimente a virtual !

Rodrigo Lira

Encontrei esse post bem legal no Blog Jedizone do Marcelo Barros. Aproveito a oportunidade para usar essa nova função de reblogar do WordPress.

Introdução ao desenvolvimento de drivers para Linux O Alan me passou o link sobre um curso de introdução ao desenvolvimento de drivers para Linux e eu estou aqui republicando. O material é de Artur D’Assumpção, de Portugal, e é realmente muito bem feito. Ele refaz o clássico exemplo do driver tipo char para porta paralela mas acrescentando detalhes e explicações que acabam por tornar o exemplo muito mais real, além de uma grande discussão sobre vários mecanismos do kernel. Leia mais

via Jedizone

Tenho várias versões de Python instalado aqui no meu sistema, e antes de ter instalado a mais nova versão, o Python 2.7, o meu Ubuntu tinha como versão default o Python 2.6. Após a instalação dessa nova versão notei que no terminal ao ser digitado apenas python, sem  especificar a versão do interpretador, ele iniciava o 2.7.  Corrigir esse problema para alguns poderia ser apenas comodismo, mas, em um sistema como o Linux, que possui vários scripts rodando em Python, a simples alteração do interpretador default poderia causar um problema bem maior.

Pesquisei um pouco na internet, e encontrei a solução, mas, para minha surpresa o problema persistiu. O detalhe que estava faltando só encontrei numa lista de discurssão, vou explicar o que se deve fazer. Não tenho certeza mas creio que essa dica funcione em qualquer distro que seja baseada no Debian.

1 – Edite o arquivo /usr/share/python/debian_defaults

$ sudo gedit /usr/share/python/debian_defaults

2 – Coloque na linha default-version a versão desejado do Python

default-version = python2.6

3 – Ainda no arquivo, adicione na linha supported-versions as versões instaladas.

supported-versions = python2.6, python3.0, python2.7

Feche o arquivo, e vamos para a etapa final.

4 – Com o comando which descubra qual link o shell está acessando o interpretador.

$ which python # informa o path

/usr/bin/python

Um breve comentário deve ser feito aqui, quando instalei o Python 2.7 o shell estava acessando python por um link /usr/local/bin/python devido a isso sempre que fazia a etapa 5, nada era modificado. Quando vi pelo comando which que ele estava acessando outro link, apenas o exclui e ele voltou a acessar o do /usr/bin/python.

5 – Remova o link simbólico informado na  etapa 4 ( /usr/bin/python ) e crie um novo link para a versão que deseja ter como default.

sudo rm /usr/bin/python

ln -s /usr/bin/python2.6 /usr/bin/python # cria um link simbólico

Com essas alterações, tudo voltou ao normal. Talvez seja necessário abrir novamente o shell.

Rodrigo Lira

Cotada para ser a última versão da família 2.x, Python 2.7 vem   com várias features do Python 3.x, além de incluir

– Set e Dict comprehensions
– Um novo módulo IO, reescrito em C
– Tipo Ordered-Dictionary

entre outras novidades.

Rodrigo Lira

Apoio Marina

Apoio Marina

O Marcos Gomes, o mesmo do Profissão: Programador , teve uma grande idéia para mostrar o seu apoio a candidata Marina Silva, ele criou um aplicativo web para divulgar conteúdo relacionado a candidata.
O Apoio Marina trata-se de um aplicativo feito em Python e Google App Engine que funcionam da seguinte maneira:

1. O usuário entra no site do aplicativo.
2. Autoriza o aplicativo publicar no seu perfil do twitter.
3. Define a freqüência dessas publicações.

Depois disso o aplicativo publicará com a frequência informada conteúdo, retirado do blog Minha Marina, relacionado a candidata. No seu blog, Marcos informa que não gastou nada, exceto algumas madrugadas de sono, e que o intuito era apenas contribuir com a divulgação do trabalho da  pré-candidata. No mesmo texto ele  informa que em 3 meses o Apoio Marina já publicou 193.993 twitts e 580 perfis. Mais um caso de que Small Acts Make Great Revolutions ,  parabéns pela idéia Marcos.

Eu, apoio e você ? 😉

| Mais informações sobre o Apoio Marina

Rodrigo Lira

Semana passada, houve uma reunião do Grupo de Estudos Python Poli, lá no laboratório da graduação. Basicamente o intuito era demonstrar o básico da linguagem – interpretador interativo,tipos de dados, if/else – aos calouros do nosso curso. Para minha surpresa realmente o pessoal compareceu (~25 pessoas) e vi que muitos ficaram maravilhados com Python.

Mas nem tudo foram rosas…

Quando eu fiz o slide pensei em fazer algo dinâmico, com exemplos para serem testados eu só aprendo assim , mas, essa parte ficou comprometida devido a apenas alguns terem login no lab, e algumas máquinas estarem precisando de manutenção. No final eu acabei fazendo os exemplos no pc da apresentação mesmo.

Com isso aprendi duas coisas,  palestrar não é tão simples e que por mais que pense em todas as variáveis, sempre há um imprevisto.

Fotos? Na hora, não lembrei de tirar nenhuma 😐

A apresentação aconteceu no dia 26 de maio de 2010, às 10h45.

Rodrigo Lira

PythonTive uma surpresa muito boa hoje ouvindo o último nerdcast do  Jovem Nerd que tem como tema “Profissão: Programador”. Ao surgir a pergunta, “Qual linguagem eu devo começar a programar?”, o Marcos Gomes do Boo-box respondeu :

“Eu tenho uma dica, aprenda Python por uma série de motivos, mas, Python
por ser uma linguagem que é divertida de programar  porque é uma linguagem que as pessoas programam por gostarem de programar.”

Ele ainda segue falando que está contratando programadores Python e informa o quanto o mercado está pagando por eles. O nerdcast pode ser baixado aqui mas é apartir de 1h26″ que Python surgi na conversa.

Fico feliz por ver alguém que não seja envolvido com a linguagem falando tão bem, e tenho certeza que a simples menção de Python em um podcast tão popular quanto o Jovem Nerd fará muitas pessoas voltarem os olhos para ela.

We got the power !

Rodrigo Lira

Uma dica para quem usa o Subversion como controle de versão é o livro gratuito da O’Really, Controle de Versão com Subversion. Ele está disponível em vários formatos na sua  página oficial, e para quem preferir há também  um projeto de tradução para a língua portuguesa no Google Code.

Rodrigo Lira

Vale a pena lê a notícia do G1 sobre o logo do Google em comemoração aos 30 anos do Pac man. Muito legal 😀

| Link permanente para o pac man do google

Rodrigo Lira

Python Image Library (PIL) é uma biblioteca que permite criar, modificar e converter arquivos de imagens numa gama de formatos usando Python. No site é possível baixar a biblioteca para as principais plataformas e versões de Python – ainda não está disponível para o 3.x da linguagem. Quem utiliza o Linux pode baixar através do Synaptic com o seguinte comando

#apt-get install python-imaging

Manusear imagens com módulo Image da biblioteca PIL é bem simples

>>> from PIL import Image
>>> imagem = Image.open("linux-potato.jpg")
>>> imagem.size,imagem.mode,imagem.format
((320, 272), 'RGB', 'JPEG')

Abrimos uma imagem e através dos atributos size, mode, format descobrimos algumas informações sobre ela.

>>> from PIL import Image
>>> imagem = Image.open("linux-potato.jpg")
>>> imagem.save("potato.bmp")

Esse trecho de código salva a imagem no formato Bitmap. Além do formato Bitmap a PIL oferece uma série de formatos que podem ser utilizados com o método save, faça o seguinte para ver os formatos

>>> from PIL import Image
>>> Image.init()
>>> Image.SAVE.keys()
['PCX', 'HDF5', 'TIFF', 'BUFR', 'IM', 'GRIB', 'PPM', 'SPIDER', 'XBM', 'GIF','BMP', 'PALM', 'JPEG', 'FITS', 'PDF', 'MSP', 'EPS', 'WMF', 'PNG']
>>> from PIL import Image
>>> imagem = Image.open("linux-potato.jpg")
>>> imagem.thumbnail((128,128))  # Tamanho 128x128
>>> imagem=imagem.rotate(180)
>>> image.save("potato-thumbnail.jpg")

Com o método thumbnail é possível criar miniaturas, e o rotate , rotacionar imagens. Com isso acabo, minha breve explicação sobre o módulo Image da biblioteca PIL, mas deixo dois links interessantes , o Brincando com Python + PIL e  o link para secção de imagens do cookbook da Python Brasil, onde pode ser encontrado alguns scripts interessantes que utilizam PIL.

| http://nadiana.com/pil-tutorial-basic-advanced-drawing

Rodrigo Lira