Saturday, June 18, 2011
Dorneles Treméa, o grande Déo
Tive o prazer de conhecer o Déo em 2002, no primeiro sprint de Zope do Brasil (talvez o primeiro sprint de todos os tempos no Brasil? Se não, foi um dos primeiros).
O Déo era um dos brilhantes imberbes que tinham criado a X3NG, uma das duas primeiras empresas especializadas em Python e Zope no Brasil. Eu era o barbudo que tinha criado, junto com outro imberbe, a outra empresa brasileira focada em Python e Zope na época, a Hiperlógica.
Nos próximos 5 anos assisti meio de longe a carreira meteórica do Déo, de pequeno empreendedor em Caxias do Sul a hacker internacional disputado pelas mais importantes empresas de Plone do mundo (ele trabalhou nas empresas dos dois líderes do projeto Plone). Ao pesquisar como se fazia alguma coisa com Plone, vira e mexe a gente era guiado pela inteligência e generosidade do Déo, na forma de muito código em repositórios, mensagens em listas, e dicas no IRC. Eu nunca fui grande frequentador do IRC, e sei que isso me privou de muito contato com o Déo. Felizmente a gente sempre se via nos eventos comunitários: FISL e PythonBrasil. Era uma alegria encontrar o Déo ao vivo, sempre sorridente, carinhoso com os amigos, grande contador de estórias. Agora estou me emocionando ao lembrar de sua voz e seu sotaque da serra gaúcha.
Em 2007, criamos a Associação Python Brasil, junto com vários amigos e colegas da comunidade. Com isso, aumentaram muito as oportunidades de encontrar o Déo virtualmente. Ele foi o nosso primeiro diretor administrativo, e fomos companheiros nas longas batalhas com a burocracia nacional até conseguirmos um CNPJ e uma conta bancária para finalmente concretizar a APyB. Não é mera coincidência que a sede jurídica da APyB seja em Caxias do Sul: sem o Déo, o que levou quase dois anos talvez levasse cinco (e até hoje não teríamos uma conta no banco!). Para mim uma das melhores coisas de participar da gestão da APyB era poder colaborar com o Déo. Todo mundo sabe que o Déo era o parceiro ideal para qualquer empreitada: ponta firme, positivo, safo no melhor sentido. Com ele não tinha tempo ruim, prazo curto demais e nem problema sem solução.
Foi também em 2007 que o Déo fez uma palestra inesquecível na PythonBrasil em Joinville. O tema era simplesmente "Empreendedorismo", e foi a melhor aula sobre o assunto que eu já vi. Um depoimento franco e cheio de humor, deixando claro o seguinte: não basta ser inteligente e ter conhecimento, é preciso muita persitência e garra para dar certo como empreendedor, e essas coisas o Déo também tinha de sobra. Se você pensa ou já pensou em ser empreendedor, corra e assista agora.
Esse post do blog do Déo em 2007 é uma boa amostra de quem foi esse cara.
Foi um choque para mim quando o Érico me contou que o Déo tinha sofrido um acidente de carro e não tinha resistido. Até hoje pensar nisso me dá um nó na garganta. Eu não convivi com o Déo nem 1% do que gostaria, mas o convívio que eu tive foi maravilhoso. Nesses 9 anos de contato em doses homeopáticas, o Déo deixou de ser imberbe, e este barbudo aqui aprendeu muito com ele.
Tenho certeza que o Dorneles nunca será esquecido. Ele tocou de forma muito intensa e muito positiva muita gente. Para mim, foi uma das pessoas mais inspiradoras com quem pude conviver. Um grande abraço, Déo.
Wednesday, March 30, 2011
Orientação a Objetos em Python no Garoa Hacker Clube
[1] http://garoa.net.br/wiki/
O objetivo desta aula é apresentar o essencial de como se usa orientação a objetos em Python, especialmente para aqueles que aprenderam OO em outras linguagens e por isso talvez não aproveitem da melhor forma as facilidades que Python oferece mas que não existem ou são diferentes nessas outras linguagens. Facilidades como:
- polimormismo (toda lingagem OO faz, mas as dinâmicas levam às últimas consequencias)
- sobrecarga de operadores (sim, é possível usar bem para fazer programas mais claros)
- herança múltipla (não é coisa do demônio)
- controle de atributos via properties e descritores (quem falou que em Python não em encapsulamento?)
- atributos virtuais (similar ao methodmissing do Ruby, porém mais genérico)
- metaclasses (porque afinal, toda classe é uma instância!)
Como todas as atividades do Garoa Hacker Clube, esta é aberta e gratuita. Basta chegar e sentar.
Não é preciso se inscrever.
PS. A atividade não será gravada e/ou transmitda pela Internet ao menos que algum voluntário grave e/ou transmita pela Internet.
Saturday, December 4, 2010
Por que bibliotecários usam bancos de dados esquisitos...
...e por que eles estão certos.
Este seria o tema da minha monografia de conclusão no curso de Biblioteconomia na ECA/USP, se o decôro acadêmico não demandasse algo mais sóbrio. Então o título ficou sendo:
O Modelo de Dados Semiestruturado em Bases Bibliográficas:
do CDS/ISIS ao Apache CouchDB.
Hã?
Boa pergunta! É que, hoje, banco de dados é sinônimo de banco de dados relacional, com linguagem SQL e tal. Só que este é apenas um tipo de banco de dados. É o tipo dominante no mercado, mas apenas um tipo. Sempre existiram alternativas, e agora existem ainda mais bancos de dados não-relacionais, apelidados de NoSQL. O Google, o Facebook e a Amazon.com dependem de sistemas NoSQL para funcionar.
Há 25 anos a BIREME/OPAS/OMS, onde eu trabalho, usa o ISIS, um banco de dados NoSQL criado pela Unesco. O ISIS é um banco de dados orientado a documentos. Outros BD orientados a documentos modernos são o CouchDB e o MongoDB.
Os objetivos do meu TCC foram:
- Analisar o ISIS a partir da teoria de bancos de dados semiestruturados, que é a base teórica dos BD orientados a documentos.
- Migrar uma base de dados do ISIS para o CouchDB, documentando o processo e criando ferramentas de apoio.
Apresentarei a monografia dia 15/12, 10h, na ECA/USP, sala 247 (bloco principal, 2º andar). Apareça!
A banca será formada pelo orientador Marcos Mucheroni (biblioteconomia, ECA/USP) e por Fernando Modesto (biblioteconomia, ECA/USP) e João Eduardo Ferreira (computação, IME/USP).
Depois da apresentação colocarei aqui um link para o PDF da monografia, em acesso aberto.
Atualização: publiquei os arquivos PDF da monografia revisada e slides usados na defesa. O texto e os slides podem ser considerados Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Brazil. Se você usar parte deste material para algum trabalho ou atividade, por gentileza coloque um comentário aqui contando como usou, OK?
Tuesday, January 19, 2010
Django-Brasil ultrapassa Zope-PT
Na minha palestra-relâmpago na PyCon 2009 em Chicago eu mostrei números que indicavam que isso estava prestes a acontecer.
Então por esse critério o Django é hoje o mais popular framework Web da linguagem Python no Brasil.
Parabéns a todos que ajudaram isso a acontecer, como usuários, consultores, tradutores, autores, instrutores e evangelizadores!
A simplicidade, a praticidade e o poder do Django combinam com o jeito Python de programar. Assim como Python, Django faz bem para a auto-estima do principiante (como diz o Marco André).
Ao mesmo tempo, Python e Django vêm com pilhas incluídas (componentes prontos para usar), e não se limitam a soluções simples, pois oferecem ferramentas e extensibilidade para programadores experientes produzirem sistemas muito sofisticados, flexíveis e robustos.
O sucesso do Django foi a melhor coisa que aconteceu para o Python nos últimos anos.
Monday, January 18, 2010
Três perguntas sobre Python
Desde o início. Os algoritmos inovadores do Google foram criados em Python e em C, e até hoje Python é usada em todos os milhões de servidores do Google. O Youtube já era feito em Python antes de ser adquirido pelo Google. Veja a página About Google de 1998 e o depoimento de Peter Norvig, diretor de pesquisa do Google e co-autor do livro Inteligência Artificial: uma abordagem moderna. Ah sim: a primeira linguagem suportada no Google App Engine foi Python.
Porquê o MIT está usando Python?
O Massachussetts Institute of Technology, a mais famosa escola de engenharia do mundo, está usando Python em sua principal disciplina introdutória de computação. Python foi adotada porque possui bibliotecas muito versáteis (redes, robôs, computação gráfica, etc.) e permite explorar conceitos avançados de orientação a objetos e meta-programação, mas tem uma curva de aprendizagem suave. O livro-texto adotado pelo MIT já foi traduzido pela comunidade Python brasileira: Aprenda Computação com Python.
Existe emprego para programadores Python?
Sim. Hoje existem mais vagas para .Net, Java e PHP do que para Python, mas as vagas para programadores Python são mais atraentes. O motivo é que Python não é uma opção "default", mas é uma escolha consciente feita por empresas que se preocupam com qualidade e buscam inovação, e isso se reflete em melhores condições de trabalho, salários maiores e ambientes mais estimulantes para a pesquisa e a aprendizagem. O programador milionário Paul Graham blogou sobre isso: The Python Paradox.
Para quem tem um perfil mais empreendedor: vários programadores Python brasileiros atendem clientes no exterior, vivendo no Brasil e recebendo em dólar ou euros. Outros tantos foram convidados para trabalhar no exterior. A demanda de especialistas em Python é muito maior que a oferta, e isso cria grandes oportunidades profissionais.
Monday, November 9, 2009
Como usar bpython com Django
Os screenshots não fazem justiça ao programa, porque nele tudo é dinâmico, então você precisa mesmo experimentar para sacar. Além disso ele é mais bonito no Linux que no Mac OSX porque as linhas verticais aparecem contínuas.
Para quem usa Windows, o IPython também é legal, e vale muito a pena usá-lo com o Django.
Mas para quem pode usar o bpython eis como fazer.
Método 1: ler manualmente os settings do django
1) Inicie a sessão do bpython a partir do diretório principal do seu projeto Django (onde fica o arquivo settings.py).
2) Digite no prompt >>>
from django.core.management import setup_environ
import settings
setup_environ(settings)
A partir desse ponto, você pode interagir normalmente com os modelos e outros objetos da sua aplicação Django.
Metodo 2: rodar um script que lê os settings, e entrar em modo interativo
1) crie um arquivo (digamos, .dbpython.py) com o conteúdo:
from django.core.management import setup_environ
import settings
setup_environ(settings)
from minha_app.models import * # opcional
Note que a quarta linha é opcional, e você precisa alterar o nome da app, e repetir essa linha para cada app que quiser acessar com mais comodidade.
2) execute o script usando o bpython com a opção -i (que faz entrar em modo interativo, como no python normal):
$ bpython -i dbpython.py
3) Bônus: para não ter que digitar o comando acima toda vez, crie um script de shell:
#!/bin/sh
# este eh o arquivo dbp.sh
bpython -i dbpython.py
Depois torne este script executável:
$ chmod +x dbp.sh
Agora basta digitar:
$ ./dbp.sh
E pronto, as maravilhas do bpython!
Metodo 3: configurar um script de inicialização para o bpython
Este é o método documentado no site do bpython:
http://docs.bpython-interpreter.org/django.html
Eu estou usando o método 2 porque gostei de ter um script dbpython.py customizado para o meu projeto atual, assim eu faço os imports dos models das apps que estou desenvolvendo.
Claro que seria possível sem muito esforço alterar o dbpython.py para fazer os imports dos models automaticamente, lendo o atributo settings.INSTALLED_APPS, mas isso fica como um exercício para o leitor.
Agradeço ao meu colega de trabalho, Fabio Montefuscolo, pela dica que deu início a este post.
Wednesday, August 26, 2009
Construção civil e engenharia de software
A casa típica da classe média americana não é propriamente construída, e sim montada. Apenas a construção da fundação se parece com o que se faz no Brasil. Sobre a fundação, a casa gringa é montada a partir de elementos estruturais, paredes, pisos e coberturas que chegam prontos ao local da construção, como um kit. As peças em sua maioria já vem até cortadas nos tamanhos e formatos certos. Os banheiros, que são a parte mais complicada de qualquer casa, costumam ser entregues prontos: chegam pré-montados em uma carreta e são colocados no lugar por um guindaste.
Em outras palavras, os americanos montam casas mais ou menos como se montam automóveis nos EUA, no Brasil ou em qualquer lugar. Na Ford por exemplo, desde os tempos do Modelo T, motores, painéis e bancos não são construídos na linha de montagem, mas apenas integrados. Ou seja, a prática da construção civil americana já é industrial, enquanto que a brasileira ainda é artesanal.
Na engenharia de software o sonho que vem impulsionando a adoção da Orientação a Objetos é o uso de componentes pré-montados, permitindo a redução do tempo de desenvolvimento e o aumento da qualidade. Quando as aplicações são feitas artesanalmente, a produtividade é muito baixa. Esse modelo só se sustenta quando a remuneração dos programadores também é baixa. Vira um ciclo vicioso: o cara ganha pouco porque trabalha mal, e trabalha mal porque ganha pouco. Como ganha pouco tem que trabalhar muito, e aí não tem tempo para estudar.
O uso de frameworks vai além: oferece um conjunto de componentes já integrado, e o papel do programador passa a ser implementar componentes específicos que se conectam de forma bem definida aos demais. O framework é como o kit estrutural de uma casa.
Usar um framework exige um investimento maior do tempo programador até ele entender como as partes se encaixam e atingir um bom nível de produtividade. Não dá para simplesmente sair programando do jeito que você quer, é preciso estudar antes, às vezes bastante, para entender como programar componentes que vão se encaixar num framework. Mas uma vez superada esta fase, é possível entrar em um ciclo virtuoso: você ganha bem porque produz bastante e com qualidade, e ganhando bem pode investir mais na própria formação e atualização.
Por sinal, uma das melhores formas que eu conheço de investir em mim mesmo é frequentar congressos de alta qualidade como a Python Brasil.
