#3 Bruno Rocha | Pythonistas que você devia conhecer

Orgulhosamente digo as pessoas que realmente aprendi Python através do curso de Python que o Bruno ministrou, tanto que na época escrevi um artigo comentando.

Até então ficava batendo a cabeça na parede tentando entender alguns conceitos da linguagem e como poderia criar alguns programas com ele, nisso fiz um curso de Python, Web2py e HTML/CSS/JS para me atualizar.

Então hoje convidei o Bruno para falar um pouco dele e sobre os projetos em que atuou e o que anda fazendo atualmente.

Bruno, fale um pouco de você

b48ee8f5f9432b4d291136ad98cd6333

Moro em Cotia/SP, sou apaixonado por animais (dá para perceber pelo nome de meus projetos) e tenho feito alguns trabalhos voluntários envolvendo a proteção animal e a promoção dos direitos animais. Sou vegetariano desde que nasci e vegano desde 2003 (coincidentemente ano em que comecei a trabalhar com Python). Quando não estou programando com certeza estou em algum parque com os cães, no meio do mato onde moro ou cuidando dos 31 animais (entre ratos, jabutis, esquilos, pombos, cães e gatos) que vivem sob minha tutela em casa (todos animais resgatados da rua ou de alguma situação de maus tratos).

Como não rolou (ainda) ser veterinário eu decidi seguir minha segunda paixão que é a tecnologia e hoje sou Programador!

Entrei na T.I como professor em escola de informática e pouco depois comecei a programar em Perl e PHP, isso em meados de 1998, ai depois disso tive uma série de experiencias com outras tecnologias como ASP, C, C/CASL (uma linguagem C based especifica para Palm O.S), inclusive já estive durante algum tempo no lado negro da força quando me especializei em tecnologias Microsoft e fiz até uma certificação em C#/.NET (MCAD). Também trabalhei como DBA e programei muito em linguagem SQL no Oracle e no SQLServer. (dá #medo só de lembrar daquelas procedures, jobs e triggers).

Python eu conheci em 2003, mesma época em que entrei na faculdade de Sistemas de Informação, lá se utilizava Python para automatizar tarefas de SysAdmin e parse de arquivos de texto, ai um pouco depois participei de alguns projetos profissionais e academicos usando e colaborando com o Kurumin Linux e pude aprender muito de Python com o Carlos Morimoto. Por volta de 2005 eu vi a luz no fim do tunel e a chance trocar o PHP por algo melhor quando conheci um novo framework chamado Pylons, passei a acompanhar seu desenvolvimento até que consegui através de uma das listas de discussão do Pylons um Job de grande porte utilizando o framework. (Uma questão curiosa é que o Django teria sido lançado apenas alguns meses antes do Pylons e mesmo assim eu passei um bom tempo sem nem mesmo ouvir falar no Django.).

Infelizmente nesta época não existia mercado de trabalho para Python e então eu logo tive que voltar a trabalhar com .NET, aprendi a programar em C# e tirei minha certificação MS ficando entre 2007 e 2009 desenvolvendo projetos de ECM, ERP, WMS e GEO utilizando tecnologias Microsoft. Assumi um cargo de gerente de projetos/scrum master e em busca de novas tecnologias para a empresa acabei conhecendo o web2py no final de 2008 e apesar de eu estar mergulhado em .NET eu sempre dava um jeito de acompanhar a evolução do web2py, até que por incentivo de meu amigo @elcio da Visie eu acabei tomando a decisão de me aprofundar mais no framework e inseri-lo em novos projetos na empresa em que trabalhava.

Eu comecei então a contribuir com documentação, testes e em pouco tempo estava contribuindo com código, tive a sorte de entrar no time de dev do web2py bem na época em que o framework estava sendo reescrito e aprendi muita coisa, em pouco tempo me tornei um dos principais contribuidores do framework que passou a ser minha ferramenta profissional principal, ai por isso em 2010 eu iniciei o CursoDePython.com.br e desde então tenho trabalhado com treinamentos de Python e de web2py (que na minha opinião é o melhor framework para ensino). Já perdi as contas de quantas pessoas já passaram pelo curso, mas com certeza foram muitas tanto no online quanto no in-company, posso dizer que a frase “é ensinando que se aprende” é realmente verdadeira pois grande parte do que sei de desenvolvimento web e Python eu aprendi mesmo com nas experiências com os alunos.

Mas o mercado de trabalho para web2py infelizmente ainda não é dos melhores e eu tive que dar uma “abandonada” no projeto para me manter no mercado de trabalho e então comecei a trabalhar com Django no final de 2011 em uma startup chamada Dr.Busca, foi muito legal aprendi muito sobre Django que até então eu só tinha ouvido falar, aprendi a ama-lo e a odia-lo ao mesmo tempo! Por conta desta experiência com Django eu entrei na YACOWS em 2013 e tive a oportunidade de trabalhar com projetos bem bacanas, desenvolvemos um CMS para grandes portais usando Django e mais uma série de tecnologias de alta escala, desenvolvi sites de grande visibilidade como os portais JovemPan, Virgula e Revista Rolling Stone. Na Yacows trabalhei com profissionais muito competentes com quem aprendi muita coisa e com uma galera muito bacana que eu já conhecia da comunidade Python.

No ínicio de 2014 eu decidi sair da YACOWS em busca de novas experiências e atualmente sou Programador na equipe de inovação da Catho Online, trabalhamos com Machine Learning, Big Data, Data Mining e uma série de experimentos legais todos com Python! — “Python é vida!” – A frase que a galera utiliza por aqui!

E Web2py? O que você poderia falar sobre ele, já que é um dos principais colaboradores do projeto? E qual será o futuro dele?

O web2py na minha opinião é uma obra de pura genialidade, o Massimo Di Pierro é uma das pessoas que eu mais admiro pela seu conhecimento e visão, além disso é admiravél a dedicação dele ao projeto tendo conseguido durante tanto tempo manter e evoluir o web2py para um dos principais frameworks web do mercado apesar de todas as controvérsias envolvendo o web2py.

O que muita gente não percebe é que o web2py não é apenas um framework web, o web2py é um manifesto pela liberdade de expressão, ou melhor, liberdade de codificação, como o próprio Massimo diz em suas palestras “Desenvolvimento web deveria ser fácil” e é exatamente isso que o web2py propoe, uma ferramenta fácil e acessível para que qualquer pessoa com mínimos conhecimentos técnicos possa desenvolver seus próprio aplicativos web, escaláveis e com tudo o que tem direito. Só por isso o web2py já merece um lugar bem especial na comunidade Python, o web2py deveria ser muito mais amado pelos Pythonistas!

Além disso o web2py é o único framework realmente full-stack, ou seja, ele tem tudo, é auto contido, não depende de nada além dele mesmo e isso é realmente mágico, eu já treinei pessoas que não conheciam quase nada de programação e essas pessoas criaram portais e até iniciaram empresas com web2py. é lindo!

Mas, nem tudo são flores, e o mercado funciona um pouco diferente, grandes empresas precisam de uma certa “validação” e isso o web2py só tem na area acadêmica e em projetos internos, além disso a própria comunidade não conseguiu absorver a idéia de um framework cheio de mágicas e isso acabou gerando muita confusão, tem gente que nunca usou o web2py, nem sabe como funciona e mesmo assim fala mal do framework.

Hoje em dia eu continuo mantendo o portal web2pyslices que foi desenvolvido com o Movuca CMS (que criei usando o web2py), além disso tenho o portal www.menuvegano.com.br que também roda com esse CMS. Mas não utilizo web2py em meus novos projetos pois acabei não concordando com algumas decisões do time de desenvolvimento do framework, eu cheguei a codificar e sugerir mudanças na forma como o web2py lida com os models de dados, também acredito que o sistema de plugins deveria ser mais desacoplado além de que tem melhorias a serem feitas as ferramentas de admin e geração de widgets. Porém entendo perfeitamente o fato do Massimo e do time quererem seguir os principios de compatibilidade e independencia, portanto no fundo admiro bastante esta estabilidade como projeto Open Source focado em facilidade e ensino, mas tenho objeções ao uso dele em projetos com times muito grandes e projetos que precisem crescer de verdade.

O futuro do web2py na minha opinião não está bem definido, não existem esforços para ele funcionar no Python 3 e o web2py parece que será um projeto totalmente diferente e isso realmente daria muito trabalho (assim como aconteceu com o Pylons na transição para Pyramid). Eu vejo o web2py com um futuro brilhante como ferramenta de prototipação, de ensino, como framework para desenvolvimento de aplicativos de baixa escala e em equipes pequenas principalmente quando o time ainda não é tão experiente. Além disso o web2py é perfeito para startups que precisam validar suas idéias. Com certeza a melhor forma de aprender desenvolvimento web e Python é através do web2py.

Você desenvolveu 2 projetos de CMS em Python, o Opps CMS feito em Django e o Quokka CMS em Flask? Quais são as vantagens de cada um e como foi a experiência?

O Opps CMS foi um dos maiores projetos em que já trabalhei tanto pelo tamanho do projeto quanto pela quantidade de pessoas envolvidas, em poucos meses desenvolvemos mais de 20 apps para o CMS e colocamos no ar grandes portais como o Virgula, JovemPan AM e JovemPan FM. Esses projetos além de Django envolveram tecnologias diversas como NoSQL, Redis, mongo, SSE, PostGres, Mysql e servidores web de alta disponibilidade com Nginx, varnish etc. Foi uma experiência em que pude aprender muita coisa mesmo. O Opps tem a vantagem de ser um CMS desenvolvido durante o “voo” pois em todos esses projetos nós migramos os sites existentes e continuamos desenvolvendo junto o feedback das redações de cada meio de comunicação e isso dá uma base muito boa para conhecer o mercado editorial e desenvolver coisas realmente uteis para eles. É um projeto bem legal que está em pleno desenvolvimento!

Com a experiência do Opps eu pude aprender muito sobre CMS e fui pesquisar mais sobre o tema, testei Plone, Drupal, Concrete5, Liferay e comecei até chegar a conclusão de que CMS precisa principalmente de 3 coisas:

  1. Instalação fácil e automatizada
  2. Temas e plugins faceis de instalar e desenvolver
  3. Dinamismo na estrutura de dados

O item 3 é o mais critico e por isso conclui que bancos de dados relacionais com esquema fechado não servem para CMS em que você tem mais de um portal com necessidades diferentes utilizando e nesse ponto até os mais famosos como wordpress e drupal sofrem com esquema de banco de dados. Ai é que mora o segredo do Plone e por isso decidi criar um CMS utilizando um banco schemaless.

O Quokka CMS surgiu dessa vontade de ter uma CMS realmente dinâmico em que eu pudesse desenvolver tanto um blog quanto um mega portal sem a dor de cabeça de manter migrations de bancos de dados e utilizando Python. Como não achei nenhum projeto Python que fosse ao mesmo tempo simples de programar e com estas caracteristicas eu decidi pegar o que aprendi com o Opps e aplicar em um novo projeto.

logo

Para este projeto escolhi o Flask (que se tornou meu framework Python preferido para projetos de larga escala) e o MongoDB por conta de sua facilidade e esquema dinamico.

Hoje no Quokka conto principalmente com a colaboração do Ellison Leão que trabalhou comigo na Yacows é o co-maintainer do Quokka, ainda tem muito a evoluir e a lista de issues tanto de bugfixes quanto de melhorias está bem grande mesmo, porém o Quokka já provou que é um projeto viável e tem um grande número de pessoas utilizando, eu inclusive já coloquei mais de 3 sites no ar com o CMS e como o Quokka a maioria das features que um framework full-stack precisa ele acabou virando uma espécie de aplication framework e tenho feito apps de todo tipo, até mesmo de ecommerce e e-learning já tem módulos desenvolvidos.

Gostaria de ter mais gente da comunidade Python brasileira para integrar o time de maintainer junto comigo e com o Ellison e levarmos esse projeto para o nível de um CMS como wordpress ou Joomla, sei que parece muita pretensão mas é preciso pensar grande.

E temos também uma publicação do livro Web2py Development Application CookBook? Do que ele se trata?

Em 2011 ajudei a escrever o livro junto com o Massimo e outros membros do time de desenvolvimento do web2py, foi escrito em conjunto com mais 7 autores, o resultado final da diagramação não ficou muito bom por alguns vacilos da editora, mas eu considero o livro uma fonte essencial para quem deseja conhecer web2py, tem receitas fáceis para fazer quase tudo.

Escrever não dá muito retorno financeiro e por isso nós decidimos doar os royalties do livro, primeiro foi para Red Cross e depois doamos uma parte da grana também para patrocinar a Python Brasil do Rio de janeiro.

Além disso a experiência de publicar um livro rendeu bons frutos e atualmente estou escrevendo um novo livro de desenvolvimento web com Python e Flask que será lançado em portuguẽs!

Livro na amazon: http://www.amazon.com/Bruno-Cezar-Rocha/e/B007KZBV4M

Como foi ser nomeado um dos membros da Python Software Foundation? E o que acha da nova medida abrindo as inscrições a todas as pessoas interessadas?

Fui nomeado pelo Massimo Di Pierro que já era membro da PSF, eu fiquei muito feliz e honrado e ao mesmo tempo na época achei que a nomeação era injusta pois temos tantos nomes na comunidade brasileira que com certeza mereciam a nomeação mais do que eu, cheguei a pensar em recusar a nomeação pois achava que gente como o @osantana, @rsenra entre muitos outros mereciam mais do que eu entrar para a lista de brasileiros na PSF pois são pessoas com muito mais contribuições para a comunidade Python.

Porém nessa época coincidiu com algumas threads envolvendo o web2py onde um conhecido desenvolvedor da comunidade internacional “desdenhou” da participação do web2py no mercado de frameworks, o Massimo havia nomeado eu e mais um integrande do time web2py e eu recebi muitas mensagens e acabei ficando amigo de muita gente de dentro da PSF e isso então me fez aceitar que tinhamos que particpar principalmente por causa do web2py.

Portanto considero que a minha nomeação para a PSF foi uma forma de validar a importância que o web2py tem para a comunidade Python e achei que era válido ter mais pessoas da comunidade web2py na PSF, isso foi realmente uma quebra de barreiras para mim e coincidentemente depois de vários episódios o web2py parece que finalmente passou a ser um framework respeitado e entendido.

Resumindo, agradeço muito ao Massimo pela minha nomeação e dedico a nomeação a toda a comunidade web2py pois foi por conta do meu trabalho com o web2py que fui reconhecido como um MVP (Most Valuable Pythonista). LOL!

Apoio a medida de abrir a inscrição a PSF para qualquer membro da comunidade, isso com certeza será benéfico ao Python e irá fortalecer a comunidade, porém acredito que deva ser feito com estratégias mais elaboradas e oferecendo vantagens de verdade para os afiliados, simplesmente abrir um formulário de filiação não é algo que vai melhorar em nada.

Eu fui vice-presidente da APyB (associação Python Brasil) e acompanhei de perto muita discussão e até uma quase “morte” da associação justamente por este problema de falta de “sentido” e falta de rumo, a APyB tanto quantoa PSF precisam definir melhor qual o papel e quais as vantagens de ser um membro, caso contrário tenho certeza que a maioria das pessoas não irá se filiar apenas por caridade a comunidade. Volto a frisar uma coisa que disse que e que fui altamente criticado “Somos uma comunidade de profissionais e não uma rede de caridade!” opinião pessoal, Python para mim é trabalho, profissional e eu gostaria de ter as associações que o representam voltadas a esta visão, para permitir que a linguagem e o ecossistema cresça, seja mais respeitado e considerado por grandes empresas e tenha mais emprego, que no final é o que todo mundo quer!

Há também o projeto Natal Animal, no qual foi feito com o Quokka CMS. Conte um pouco sobre a experiência de utilizar esse framework em produção?

NatalAnimal.com.br foi iniciado em 2010 e é um projeto que a cada ano arrecada recursos no modelo “crowfunding” para ajudar abrigos e santuários de animais abandonados ou que sofreram maus tratos, é como um “criança esperança” mas é para os animais não humanos que não costumam ter apoio de grandes empresas ou dos governos.

A versão inicial era feita em web2py mas como em 2013 eu estava desenvolvendo o Quokka desenvolvi fazer a nova versão em Flask com o Quokka e foi super legal, por causa disso desenvolvi o módulo quokka-cart e integrei com meios de pagamentos, desenvolvi tbm o quokka-fundraising e coloquei o projeto no ar meio em cima da hora, o quokka aguentou bem a demanda que cresceu muito neste ano tivemos muitas transações de pagamento e validações que funcionaram com celery e eu fiquei bem feliz de ver o CMS sendo usado para algo além de páginas e blogs.

Flask é um framework sensacional e muito completo apesar de ser micro, o Quokka tem sido uma tentativa de ter um pacote full-stack em cima do flask e tem funcionado muito bem!


Para mais informações, veja em http://brunorocha.org

Anúncios

3 comentários em “#3 Bruno Rocha | Pythonistas que você devia conhecer

  1. Realmente esse Pythonista todos que desenvolve ou pensa em desenvolver em Python precisa conhecer, trabalhei com ele durante 1 ano na YACOWS e muitas vezes ficava impressionado com as descissões sabeas que ele toma durante o caminhar do projeto!

    Um outro caso que preciso comentar é a experiencia com projetos open source, o cara conhece muito, mas muito mesmo como funciona o fluxo de um projeto open source, eu passava horas e horas conversando com ele sobre.

    Tirando a vida profissional do Bruno ele é um cara extremamente humano e me encinou sobre muitas outras coisas fora da vida de tecnologia…

    O cara é top!

  2. Estou muito feliz em saber que não sou o único programador Python vegano em São Paulo :). Parabéns Bruno, sou novo no mundo python e já tinha visto algumas coisas sobre a sua carreira, agora saber que o menu vegano é obra sua, aumentou ainda mais a minha admiração.

    Grande abraço.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s