Archive for November, 2009
Python e computacao cientifica
Há algum tempo eu venho notando algumas aplicações desenvolvidas em Python e desde então eu venho me perguntando: será mesmo possível utilizar Python, de forma eficiente, no meio científico? Bem, minha pesquisa me leva a crer que sim, absolutamente.
O Guido Van Rossum, criador e atual mantenedor da linguagem, postou recentemente em seu blog sobre a Py4Science, um workshop que visou demonstrar como o Python está sendo útil na prática em pesquisas científicas.
Eu sabia que Python era perfeitamente aplicável à pesquisas científicas, seja pelo poder da linguagem ou pelas bibliotecas e frameworks que ela provê para facilitar o desenvolvimento de aplicações científicas, mais notavelmente o SciPy, NumPy e o MatPlotLib. O me impressionou foi ver o nível dos projetos envolvidos:
- O time do Telescópio Hubble utiliza Python há mais de 10 anos
- O pessoal da Universidade de Washington está trabalhando no SAGE, um software com o objetivo de servir de alternativa viável ao Matlab, Mathematica, Maple e Magma.
- Nipype, software para criação de interfaces de softwares de neuroimagem.
- SymPy, biblioteca para matemática simbólica, escrita em Python puro.
- Um projeto de $1 bilhão do governo indiano para melhorar a educação na Índia. Inclui o Departamento de Engenharia Aeroespacial em IIT Bombay na educação de Ciência e Engenharia. Mais em http://fossee.in/
- Biopython, conjunto de ferramentas para computação biológica.
- Vários outros.
Recentemente, eu vi uma discussão no Google Groups em que o autor pergunta por que o SciPy é melhor que o Matlab. Tá certo que uma pergunta dessas é bem tendenciosa (um amigo disse que aconteceria o mesmo na lista do Matlab), mas eu li toda a discussão e vi coisas bastante interessante, principalmente quando dizem sobre o f2py. Para quem tem código legado em Fortran, quer mudar e tá com qualquer dificuldade, essa é uma ótima oportunidade.
Algo que eu não posso deixar de falar é da Python in Science Conference (SciPy Conference), uma super conferência anual sobre SciPy e Python em computação científica que acontece no Caltech, Califórnia. Ainda não vi nenhum trabalho brasileiro lá. Já é hora, hein?
Eu sou longe de ser um cientista de renome para falar como o Python tem me ajudado em minhas pesquisas científicas. Mas, como acadêmico, eu posso dizer que serve perfeitamente para meus trabalhos universitários e eu percebo que a vida para outros acadêmicos poderia ser mais simples se eles utilizassem Python. Somente o fato de não precisar lidar com ponteiros ou gerenciamentos de baixo nível atrai algumas pessoas. Outra coisa importante: Python é livre e gratuito. Você não precisa piratear ou comprar uma cópia cara como algumas pessoas fazem com o Matlab e outros softwares ![]()
Links úteis:
- http://groups.google.it/group/scipy-user/browse_thread/thread/0eb1517095963c9a#
- http://fperez.org/py4science/index.html
- http://www.scipy.org
- http://conference.scipy.org/
- http://neopythonic.blogspot.com
==EDIT==
Por algum motivo ainda desconhecido, o título não está aparecendo com os devidos acentos. Irei alterar quando eu souber o que está acontecendo.
Hello World de Python + OpenGL
Há quase um ano eu comecei a estudar Python e gostei de muitas características da linguagem, como o fato de ser de altíssimo nível (very high level), sintaxe clara e elegante, poderosa, portável, super rápida,fácil aprendizado e um dos melhores: tipagem forte e dinâmica.
Gostei tanto que comecei a fazer alguns trabalhos de faculdade (mais notavelmente trabalhos nas áreas de Banco de Dados, Inteligência Artificial e, recentemente, Computação Gráfica) usando Python. Para vários trabalhos eu encontrei snippets de código, mas não foi tão fácil para CG usando OpenGL. Por isso, resolvi postar esse pequeno exemplo de como usar Python (na versão 2.6.4) + OpenGL.
Primeiro, baixe o PyOpenGL em http://pypi.python.org/pypi/PyOpenGL, descompacte e execute os comandos para instalar o pacote:´
$sudo python setup.py install
Lembrando que se você estiver no Windows, o executável do Python deverá estar no seu PATH.
Instalado o pacote, é hora de fazer um teste. Abra o shell do Python e digite isso:
Se não aparecer nenhuma mensagem de erro, o pacote do OpenGL foi instalado com sucesso. Agora é hora de uma pequena demonstração de uso do PyOpenGL:
from OpenGL.GLUT import *
def display():
glClear (GL_COLOR_BUFFER_BIT)
glBegin (GL_POLYGON)
glVertex2f(0.4,0.4)
glVertex2f(0.01,0.01)
glVertex2f(0.3,0.6)
glEnd()
glFlush()
glutInit ()
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize (250,250)
glutInitWindowPosition (0,0)
glutCreateWindow ("Testando o PyGraphs")
glClearColor (0.0, 0.0, 0.0, 0.0)
glOrtho (0.0, 1.0, 0.0, 1.0, -1.0, 1.0)
glutDisplayFunc(display)
glutMainLoop ()
A API do OpenGL pro Python segue as mesmas convenções da API para C/C++. Então, todo e qualquer exemplo que você achar na Web em C/C++ é compatível com o Python (as vezes com algumas pequenas alterações de tipos, mas o nome das funções continua o mesmo).
Se tudo estiver ok, você deverá ver algo parecido com a seguinte figura:

Alguns links úteis:
Acho que é isso. Até a próxima!
Hello world!
Buenas!
Finalmente eu cumpri a promessa de criar meu blog. Já estava na hora, né? ![]()
Aqui eu quero fazer jus à palavra/expressão Web Log: pretendo postar sobre meu cotidiano, principalmente a parte envolvendo tecnologia.
Atualmente o meu foco é desenvolvimento para a Web e isso inclui tecnologias como JavaScript, .NET, Flex, PHP, Python e seus respectivos frameworks que eu estudo: jQuery, ASP.NET MVC, PureMVC, CodeIgniter e CakePHP, Django.
Além de tecnologias, metodologias de desenvolvimento têm feito parte do meu dia-a-dia. Então é possível que eu fale muito sobre Scrum, XP, Lean e vários conceitos agregados: TDD, Pair Programming, Continuous Integration, User Stories e etc.
Hope you enjoy! ![]()
