Desenhar grafos em Python

O python facilita muito a vida para desenvolvimento rápido de grafos e redes, principalmente quando estas tem que ser construídas a partir de ficheiros externos de dados. Normalmente uma combinação de python e awk pode resolver todos os problemas numa fracção do tempo das outras linguagens.

No entanto para trabalhar e desenhar redes há dois pacotes que decidi serem importantes:

networkx

está excelente desde que se utilize a versão SVN. As versões normais para download tem 1 bug muito importante que é não ser possível exportar os grafos para um formato que se possa utilizar posteriormente. Na versão do SVN esse problema parece já estar corrigido e portanto pode-se utilizar o pacote para exportar o grafo no formato GML. Update: Nas últimas versões do networkx está tudo ok. Altamente recomendado para desenhar grafos/redes. A programação é muito pythonesca o que ajuda quem estiver embrenhado em python. Permite prototipar rapidamente ideias.

pyNetConv

O pyNetConv é basicamente um conversor de formatos de grafos. Este software pode ser integrado como módulo mas tem também uma GUI para fazer conversões entre formatos de redes. A minha utilização serve para converter o formato GML para Pajek (.net) uma vez que algum software que utilizo não conhece o GML. Não é actualizado há mais de 10 anos, pelo que pode nem sempre funcionar.

igraph para python

O igraph tornou-se nos últimos tempos a minha ferramenta de eleição para trabalhar com grafos, logo seguida de networkx. O igraph possui a vantagem de poder ser utilizado tanto em python, como R. Para além disso permite manter uma consistência de nomenclatura nas várias plataformas.

Com estes pacotes é possível utilizar python para estudar teoria dos grafos de forma simples. Todos apresentam imensos exemplos de como gerar e plotar os grafos.

Google Lança Google App Engine, mata PHP para web dev…

A noite passada (tarde em S. Francisco) o Google apresentou o Google App Engine. Segundo a companhia trata-se de uma plataforma de desenvolvimento de aplicações web sobre a infra-estrutura do Google. É a versão Google do chamado Cloud Computing e vai permitir que os developers utilizem a infra-estrutura do Google para lançar as suas aplicações.

Para já, correrá apenas em python…o que quer dizer que não é preciso muito mais… uma vez que com a esta linguagem e a infra-estrutura do google não deve ser preciso muito mais.

O Google App Engine é uma forma do Google entrar em concorrência directa com a Amazon e o seu serviço S3 + EC2 + SimpleDB embora a versão Amazon permita escolher mais à la carte o que se pretende enquanto no caso do Google App Engine estamos perante uma situação de pacote completo.

(more…)

Resumo dos Benchmarks

Depois de ter feito alguns benchmarks ao novo Macbook Pro cá de casa decidi juntar os resultados dos utilizadores que submeteram os dados para verificar a evolução do desempenho dos computadores da Apple. À primeira vista nota-se imediatamente a diferença entre os macs PowerPC e os Intel que são muito mais rápidos.

Se tiveres um Mac que queiras testar para juntar a esta listagem podes descarregar o script de benchmarking e depois deixar aqui nos comentários os resultados.