O que o zope pode aprender do mozilla? (uma citação)
Link: http://philikon.wordpress.com/2008/09/17/what-zope-can-learn-from-mozilla/
This isn’t to say that the Component Architecture isn’t useful or elegant because it is. But after having spent nearly two years helping create a framework that tries to hide the complexity of CA (over)use, I think it’s time to change gears a bit. The Repoze guys have pioneered it, now it’s time that Zope itself embraced it. If I were to pick, the publisher, its publication machinery and the traversal code would be the first to undergo this treatment, and Martijn seems to have those on his list as well. But Zope is bigger than just the two of us.
Será que desse mato sai coelho? Será que um dia eu vou entender o porquê dessa Arquitetura de Componentes?
Novos Rumos

Essa semana comecei uma nova etapa na vida. Desde que cheguei em Brasília, trabalhei no Ministério das Cidades. Fiz bastante coisa legal lá, conheci muita gente boa. Na foto, está o pessoal do ministério. Da esquerda para a direita: James, Igor, Júnior, eu e o Renatto. Além da Raquel que não estava na hora da foto, teve muita gente que já passou por lá, e com quem foi muito bacana trabalhar: o Diogo, Ricardo, Gisele, os nossos estágiarios: Thiago, Douglas, Daiane, Clézia, Fábio, Vitor...
Foi uma época muito boa, que se encerrou, curiosamente, exatamente 3 anos depois que eu cheguei em Brasília.
Agora estou trabalhando com Zope e Plone, na threepointsweb. Desejem-me sorte!
Plone, Archetypes e a misteriosa data que só funciona corretamente a partir do dia 13
Num portal plone que nossa equipe gerencia, surgiu uma pequena: a data das notícias estava aparecendo com o formato mes-dia-ano (mm-dd-yy), quando na verdade o desejado era o formato padrão usado no Brasil: dia/mês/ano (dd/mm/YYYY). Após seguir o how-to sobre configuração do formato de data no plone.org, aparentemente tudo estava funcionando bem, com uma exceção interessante: as datas inferiores ao dia 13 mostravam invertidas, por exemplo: 12/02/2008 estava sendo exibida como 02/12/2008.
Após alguns minutos pesquisando, me deparo com o seguinte trecho de código no meu template:
toLocalizedTime(here.getData_noticia().strftime('%d/%m/%Y'))
Logo de início, esse strftime não me cheirou bem. Mesmo eu não conhecendo a API, a premissa me parece simples: se tudo está encapsulado por toLocalizedTime, não preciso passar uma data já localizada.
Uma forma simples de ver o que está acontecendo, usando o zopectl debug (para os que não estão familiarizados, é semelhante ao debug do rails ou do pylons: você carrega um interpretador da linguagem junto com o ambiente da sua aplicação).
>>> data = DateTime('12/02/2008')
>>> data.day()
2
>>> data.day()
2
>>> data.month()
12
>>>
Após uma verificação em CMFPlone/i18nl10n.py, no método ulocalized_time eu vejo que minha suspeita está correta:
# convert to DateTime instances. Either a date string or
# a DateTime instance needs to be passed.
try:
time = DateTime(time)
except:
log('Failed to convert %s to a DateTime object' % time,
severity=logging.DEBUG)
return None
Minhas suspeitas se confirmaram, e agora eu já sei como corrigir o problema. Com isso, meu template ficou apenas:
toLocalizedTime(here.getData_noticia())
Alguns links interessantes:
PyCon 2006
Na quinta e sexta-feira passadas, participei da PyCon 2006. O encontro aconteceu aqui em Brasília, no Interlegis. E estando praticamente do lado do Interlegis (trabalho no Ministério das Cidades, não poderia ficar de fora dessa).
Finalmente, estou tendo um contato mais profundo com python, embora conheça a linguagem há algum tempo. O problema era que sempre tinha algo mais urgente que me fazia adiar o meu aprendizado de python.
Porém, fui liberado para participar apenas no período da manhã. O evento estava estruturado em duas frentes: no anfiteatro, aconteciam as diversas palestras; em uma sala menor, houve alguns treinamentos. Como eu ficaria apenas pelas manhãs, optei por participar de treinamentos no primeiro dia e palestras no segundo.
1º Dia
No primeiro dia eu participei do treinamento de PyGTK, que era o que eu estava mais ansioso para participar. O instrutor era o Adriano Monteiro Marques. O treinamento foi básico, porém bem produtivo. O Adriano me paeceu muito confiante, tanto que fiquei interessado em participar das duas palestras que ele ia dar mais tarde (Ganhando mais dinheiro com Python e Otimizando com List Comprehensions), o que infelizmente não foi possível. O conteúdo abrangeu a explicação do que é o GTK, um pouco de glade, e é claro, python.
Logo em seguida, veio o treinamento 'Desvendando o Django'. Embora o Rodolfo aparentasse um pouco de nervosismo, e o firewall tenha nos atrasado um pouco para instalar o Django, o treinamento me deixou muito impressionado. O Django é um framework para desenvolvimento web, inspirado nas mesmas idéias do ruby on rails. Porém, o Django já inclui um sistema de autenticação integrado, um painel administrativo e outras coisas mais. Como no treinamento a gente tinha de copiar algumas coisas de um projetor, e o grau do meu óculos não ajuda a distinguir mais um ponto de uma vírgula depois de uma certa distância, o Henrique, que estava sentado do meu lado acabou digitando uma parte e nós acamos ficando 'conhecidos', o que rendeu algumas boas conversas depois.
2º Dia
Ia ser a continuação do treinamento de PyGTK, mas como eu queria aproveitar um pouco mais e pegar uma visão um pouco mais geral da coisa, fui pro auditório. Só estava um pouco triste porque a palestra do Osvaldo sobre Python 3000 era a tarde. No meio do caminho pro auditório, caí de (ou sem?) pára-quedas numa conversa que um pessoal tava tendo sobre Lua - uma linguagem que eu particularmente aprecio muito. Só espero que não tenham me achado entrão 
Confesso que eu fiquei boiando na palestra de Archetypes, já que tenho conhecimento quase zero de Zope. Logo depois, alguém começou a se preparar para fazer uma palestra, e surpresa: a palestra do Osvaldo tinha sido transferida para a parte da manhã, e a palestra do Rudá ('Porque o Python é tão lento?') tinha sido transferida para a tarde. Eu não sabia se ficava alegre ou triste! Mas acabei vendo a palestra do Rudá via streaming do Ministério mesmo
. Gostei muito da palestra do Osvaldo, que foi sobre o que vai mudar e o que não vai mudar no Python 3.0 . Embora não tenha programado extensivamente com essa linguagem, o rumo que ela está tomando parece muito bom (sem contar que essa é a PRIMEIRA quebra de compatibilidade grande em 15 anos). Como o Osvaldo, vejo programar como uma diversão, e quebras de compatibilidade não me afetarão muito, eu espero
. De qualquer forma, fico com as boas práticas na cabeça, pra quando for botar a mão na massa. Ouvir sobre a evolução do python me fez sentir como eu me sinto quando leio a história da linguagem Lua - ambas as linguagens evoluem de uma forma bonita e planejada (e não como PHP, que me faz sentir como se a linguagem fosse um monte de remendos feitos para que todos, sem exceção, se sintam em casa com o PHP).
Depois veio a palestra do Senra, que me decepcionou um pouco. Não que a palestra fosse ruim, mas para uma palestra chamado "Show Pyrotécnico" você tende a ir com grandes expectativas
. Na palestra, o Senra (que depois eu descobri que era o cara com o qual eu tinha falado sobre Lua lá no saguão), mostrou como o Python e outras linguagens estão no mercado. na palestra ele falou um pouco sobre os generators, Fibonacci (um tema que eu adoro) e outras coisas. Junto com a do Osvaldo, foi pra mim uma das melhores palestras.
Na palestra do André Ferreira, sobre Arch2RDF e web semântica, a única coisa que atrapalhou foi o nervosismo dele meesmo, embora o assunto de como tornar os conteúdos web mais legíveis para usuários não humanos e mecanismos de busca seja interessantíssimo.
Saí da palestra impressionado com o Django (e um pouco decepcionado com o PHP, que é com o que eu ganho o meu pão), surpreendido com as mudanças do Python 3.000, e acima de tudo, empolgado com a linguagem. Gostei também da comunidade, que nesse pouco contato se mostrou muito simpática e receptiva. Só faltou, quem sabe, uma palestra sobre PL/python, que é algo que estou usando muito atualmente. Quem sabe no ano que vem?
Pra completar, olha eu na foto!
http://pyconbrasil.com.br/sobre/noticias/balanco-final/image/image_view_fullscreen
(o de camisa laranja, com cara de que tá sacando tudo no canto inferior esquerdo)
