Monday, March 26, 2012

Adeus @luciano, olá @ramalhoorg

Estou abandonando gradualmente minha conta @luciano no Twitter e começando a usar @ramalhoorg. A partir de 27/mar/2012, a conta @luciano vai publicar somente retweets do @ramalhoorg, e avisos periódicos para que as pessoas sigam a nova conta.

Para lembrar, é fácil: meu email pessoal termina com ramalho.org (e o Twitter não aceita ponto no nome).

PORQUE ESTOU MUDANDO O NOME

Parece ótimo ter um nome simples como @luciano no Twitter. O problema é que @luciano é um nome comum, e tem uns lucianos mais famosos do que eu, parece que um até apresenta um programa de auditório, imaginem só.

Muita gente não sabe que no Twitter o espaço em branco é importante. Se você manda um recado para "@luciano bla", o Sr. Bla nunca vai saber, e eu vou receber o recado. Eu recebo centenas de recados de outras pessoas todo dia no Twitter.

E a minha lista de menções é inútil: a maioria das vezes que @luciano aparece no Twitter, eu não sou a pessoa que queriam mencionar. Com isso eu muitas vezes não vejo mensagens que seriam para mim.

Então, meus amigos, por gentileza sigam o @ramalhoorg e esqueçam o @luciano, OK?

Tuesday, November 15, 2011

Curso Online: Python para quem sabe Python

Este mini-curso de 12h destina-se a pessoas que já estudaram ou até já usam Python no dia-a-dia, mas querem conhecer mais profundamente como a linguagem funciona, como o Django e outros frameworks conseguem fazer certas coisas que parecem mágica, e como aproveitar recursos de Python que não existem em outras linguagens.

Tópicos


  • pérolas sub-utilizadas da biblioteca padrão
  • sobrecarga de operadores: usos benéficos
  • iteráveis e iteradores, geradores
  • comando with e gerenciadores de contexto
  • programação funcional e decoradores de funções
  • acesso, criação, remoção dinâmica de atributos
  • propridades e descritores
  • tratamento de acessos não previstos (ex. como "method_missing" de Ruby)
  • criação dinâmica de classes e monkeypatching
  • metaclasses

Formato

  • Instrutor: Luciano Ramalho
  • Curso online, com aulas interativas
  • Carga horária total: 12h
  • Preço: R$ 250
  • Vagas limitadas

Datas e Horários

Uma das opções a seguir será escolhida pela maioria dos interessados:
  • Sábados, 10h-13h (dias: novembro 26, dezembro 3, 10 e 17)
  • 2ª e 4ª-feira, 17h30-19h30 (dias: novembro 28 e 30, dezembro 5, 7, 12, 14)
  • 3ª e 5ª-feira, 21h-23h (dias: novembro 29, dezembro 1, 6, 8, 13, 15)

Para se inscrever

INSCRIÇÕES ENCERRADAS, EM 2012 TEM MAIS!
Se você tem interesse em participar deste curso, preencha o formulário cujo link aparece abaixo. Lá você terá a oportunidade de escolher o horário mais conveniente, e propor outros temas a serem tratados. Verifique com cuidado seu e-mail: eu vou entrar em contato pessoalmente com cada interessado para dar mais informações e esclarecer eventuais dúvidas.
Formulário de pré-inscrição (sem compromisso)


PS. O nome deste mini-curso foi inspirado no título de um livro de PHP do Juliano Niederauer, publicado pela editora Novatec. Mandou bem, Juliano!

Monday, October 31, 2011

Academia Python: de 0 a 100 em 3½ meses

Quem me conhece sabe que eu adoro lecionar, e nos últimos anos tenho trabalhado como desenvolvedor de sistemas usando a elegante e poderosa linguagem Python, a minha favorita no momento.

Agora estou unindo essas duas paixões, lançando em parceria com a Globalcode a Academia Python, uma formação completa para programadores, que leva do básico ao avançado nesta linguagem, em 3 meses e meio de aulas, 2 vezes por semana.

Porque Python é especial

Python é uma linguagem muito simples para começar a aprender, mas ao mesmo tempo é largamente utilizada para inovação em uma grande variedade de empresas, como YouTube, Industrial Light & Magic, Globo.com e Dropbox.

Existem outras linguagens simples de aprender, mas elas costumam ter limitações práticas que atrapalham seu uso em ambientes profissionais, e existem outras linguagens usadas profissionalmente, mas nenhuma é tão fácil de aprender quanto Python.

Qual é o segredo deste mistério? As principais idéias de Python vêm da linguagem ABC, desenvolvida ao longo de 10 anos de pesquisa científica e testes com usuários para chegar a uma linguagem amigável e prática. Por exemplo, o laço for do Python é o mais simples possível:

>>> for letra in 'Python':
...     print letra
... 
P
y
t
h
o
n

Ao mesmo tempo, é uma linguagem que oferece recursos avançados e modernos de programação, como Orientação a Objetos com sobrecarga de operadores e meta-classes, iteradores, co-rotinas, meta-programação. O resultado é que Python vem sendo cada vez mais usada como primeira linguagem em cursos de computação ao redor do mundo (da FATEC ao MIT), e ao mesmo tempo é usada em grandes sites como Google, YouTube, Globo.com, nas principais empresas computação gráfica, como Industrial Light & Magic, The Foundry, e Autodesk. Python vem pré-instalada no Mac OSX e em praticamente qualquerLinux, e é fácil de instalar no Windows.

Porque fazer uma Academia na Globalcode

A Globalcode é uma empresa que tem tido muito sucesso oferecendo cursos sobre Java há 10 anos. Uma das fórmulas desse sucesso tem sido as Academias: formações completas com mais de 100 horas de aula (para comparar, uma disciplina típica de computação na USP tem 60 horas). Enquanto muitos cursos livres concentram conteúdo em turmas intensivas de curta duração, as Academias oferecem 8 horas de aula por semana, assim os alunos têm tempo para absorver, exercitar e aplicar o que foi visto no curso. A Academia Python tem 112 horas, o que dá 14 semanas (sem contar feriados). São três meses e meio de convívio entre alunos e o instrutor, uma vivência muito mais rica do que um curso rápido pode oferecer.

Como é a Academia Python

A estrutura da Academia Python reflete as próprias características da linguagem: começa com um módulo básico de 16 horas, acessível para qualquer pessoa que saiba programar em qualquer linguagem, mas chega ao quinto módulo abordando tópicos avançados como bancos de dados não-relacionais, programação assíncrona de alto desempenho e arquiteturas de sistemas distribuídos na nuvem (cloud computing).

Os módulos são:

  1. Introdução à linguagem Python: dominando a sintaxe, tipos de dados e funções básicas através de tarefas práticas de conversão de arquivos (16h)
  2. Orientação a Objetos e frameworks: exemplos em Django (framework Web) e Tkinter (desktop GUI) para demonstrar para que servem e como usar os conceitos de encapsulamento, herança e polimorfismo (24h)
  3. Desenvolvimento Web com Django e JQuery: como construir uma aplicação Web moderna usando Django, framework adotado pela Globo.com e JQuery, a biblioteca JavaScript mais importante do momento (32h)
  4. Django profissional: tópicos avançados de desenvolvimento Web com Django, incluindo testes automatizados, deployment com Apache e lighttpd, migração de modelos de dados e geração de relatórios em PDF, entre outros (20h)
  5. Cloud, NoSQL e novas arquiteturas: Google App Engine, MongoDB e programação assíncrona com para sites altamente escaláveis (20h)

Para saber mais

A primeira turna da Academia Python está prevista para começar dia 8 de novembro, com aulas 3ª e 5ª de 19h a 23h na Globalcode de São Paulo (metrô Paraíso). Mais detalhes, preços e matrícula na página da Academia Python na Globalcode.

Dia 1º de novembro vamos oferecer um mini-curso gratuito de Introdução à Programação Orientada a Objetos em Python na Globalcode de São Paulo (metrô Paraíso) e também via Webcast. Inscrições pelo site da Globalcode.

Saturday, June 18, 2011

Dorneles Treméa, o grande Déo

Hoje é aniversário do Déo: #dornelesday.

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

Hoje à noite, de 20h âs 22h30 no Garoa Hacker Clube em São Paulo [1] apresentarei a minha aula favorita de Python, "OO em Python".

[1] http://garoa.net.br/wiki/Garoa_Hacker_Clube:Sede

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)
e até, se der tempo...
  • 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

Conforme eu previa, em algum momento de 2009 a lista django-brasil ultrapassou em número de assinantes a lista zope-pt. Alguém sabe exatamente quando foi?

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.