Por quê usar Python e Django

{ 24 de Julho de 2008 }

Essa pergunta tem passado pela minha cabeça com uma certa freqüência ultimamente. Resolvi enumerar abaixo algumas razões.

1. Porque, segundo a Wired, é cool:

Expired: ASP.NET, Tired: PHP, Wired: Django

2. Porque, segundo o Bruce Eckel, guru do Java, é legal.

“I think I’ve been using Python for close to 12 years now, and it’s been my favorite language for much of that time…” “I think the combination of choices offered by Django + TurboGears covers people’s needs better than a single monolithic approach, and Django appears to be the right solution for a large portion of the applications out there.”

3. Porque, segundo o xkcd, é sensacional:

4. Porque, segundo o Matt Waite, jornalista que aprendeu a programar, é fácil:

“But what makes Django an even greater work of art is that knuckle-dragging, mouth-breathing, not-very-good journalism graduates from small midwestern states (ahem) can learn just enough to build something they can be proud of.”

5. Porque Guido van Rossum, criador do Python, gosta do Django:

“My personal favorite — and I expect that that will remain a personal favorite for a long time — is something named Django. … I highly recommend it.”

6. Porque o Google (onde o Guido trabalha) resolveu apostar pesado em Python+Django com o AppEngine:

“With Google’s employment of Python and Django as a first class citizen in its AppEngine infrastructure [...] this development has the potential of trusting Python into the limelight.”[fonte]

7. Porque Python é uma das linguagens cuja adoção tem crescido constantemente pelo mundo:

Ocupa a 7ª colocação no ranking do índice Tiobe de julho de 2008, com quase 5% do total de linhas de código escritas.

8. Porque Django é um framework cada vez mais estável e confiável:

“Django 1.0 will be released in early September.” (dia 2 para ser mais exato)

9. Porque segundo o Adrian Holovaty, o Django tem tudo a ver com jornalismo:

“Because journalism and computer science don’t normally go together, I’ve had some success in this silly little niche of employing Web development in news organizations — ‘journalism via computer programming.’”

10. E finalmente, porque Django ajuda a resolver as coisas rápido:

A apresentação é um passo a passo de como a pesquisa de um repórter em tabelas do Word pode se tornar uma aplicação web interativa com mapas e gráficos em apenas dois dias. O James Bennett usa Python e Django pra isso.”

Posted in django, jornalista-programador, python ~ 3 comentários

Muita gente já comentou o lançamento do EveryBlock, um site sensacional feito em Django por um dos criadores do próprio Django. Mas uma coisa que ainda não vi ninguém comentar e que achei interessante foi a ausência do Google Maps nele.

Tenho pensado em trocar o Google Maps por algo mais leve há algum tempo, e com o EveryBlock vi que existe um concorrente a altura, o OpenLayers. Não sei detalhes de como o Holovaty implementou, mas cada imagem que compõe o mapa é servida por um arquivo Python (tilecache.py).

Esse fato é significativo porque demonstra que o Google Maps não é mais unanimidade para a construção de mash-ups geográficos, moda iniciada pelo próprio Holovaty usando Gmaps em 2004 com o chicagocrime.org.

Outra surpresa interessante é que o EveryBlock usa jQuery. Como eu também tenho me dedicado a Django e a jQuery é bom saber que os dois frameworks andam conversando bem por aí.

Posted in Jornalismo, Mapas, django, jornalista-programador, jquery ~ Um comentário

Todo blog que se preze tem listas de 10 mais, seja de que tópico for. Então resolvi postar algumas relacionadas com jornalismo de base de dados ou que nome tenha o “data journalism” que falam por aí. Reproduzo livremente e com licenças tradutórias do artigo original de Rich Gordon para o Readership Institute, que achei bem interessante.

A primeira lista é baseada em conclusões do grupo jornalístico Gannett Co. que implementou o information center, um tipo de central de coleta de dados:

Porque os dados devem ser a força motriz do jornalismo

  • Dados não perdem a validade
    Depois de 24 horas o valor deles para o usuário não diminui.
  • Dados podem ser pessoais
    A proximidade com o leitor se torna muito maior e mais fácil de ser atingida.
  • Dados são melhor distribuídos em um meio sem limitações de espaço
    As melhores bases de dados são grandes demais para serem impressas na íntegra. A web além disso ainda tem a vantagem de possibilitar buscas, reordenação e todo tipo de filtragem.
  • Dados se aproveitam das maneiras que as pessoas usam a web
    É um meio que se presta mais ao comportamento ativo, de pesquisar e interagir, do que passivo, de ler e assistir.
  • Dados, depois de coletados, podem ser utilizados no meio impresso
    Depois de coletar, armazenar e permitir o acesso aos dados, é fácil utilizá-los em outros meios.

O jornal The Indianapolis Star, do grupo Gannet, é um dos que melhor aplica os itens acima, segundo o autor. E baseado na experiência deles surgiu a lista a seguir, que mostra…

As lições aprendidas pelo Star

  • Tenha um plano
    Antes de montar a Central de Dados, pessoas-chave da redação criaram uma lista de assuntos que poderiam render bons dados e que seriam úteis para os leitores. Essa lista guiou todo o desenvolvimento das aplicações.
  • Envolva especialistas em Reportagem Assistida por Computador (RAC)
    Repórteres e editores que já utilizam RAC têm o maior conhecimento de onde fuçar para encontrar dados importantes, que dados estão disponíveis e como lidar com buracos e inconsistências nas bases de dados.
  • Monte uma equipe
    São necessárias as habilidades jornalísticas e analíticas de um especialista em RAC , o entendimento de pesquisa de bibliotecários de notícias, habilidades de desenvolvimento e HTML de programadores e o bom gosto visual e habilidade multimídia do departamento de arte. Embora seja difícil, é possível encontrar quem consiga acumular duas ou mais destas funções.
  • Aumente a importância do “arquivo” de notícias
    Com a digitalização, jornais têm abandonado a clipagem manual e catalogação diária do jornal. Mas para que a central de dados funcione a contento, é importante que a área de armazenamento e pesquisa também esteja funcionando bem.
  • Encontre ferramentas que tornem a publicação fácil
    Existem soluções de código aberto excelentes para esse tipo de central de dados. Django, um framework escrito na linguagem de programação Python, é o destaque. Nasceu das necessidades de um jornal e amadureceu dentro de uma redação, sendo moldado para permitir a produção de aplicações no ritmo da pauleira do fechamento.
  • Publique apenas o que tiver valor de notícia
    As bases de dados com maior valor são aquelas apresentadas dentro de um contexto jornalístico claro. Tem que haver relação entre o que é notícia e os dados que são mostrados.

Para encerrar esse post que já está ficando comprido, uma última listinha, desta vez mostrando uma hierarquia dos tipos de projetos possíveis de se executar com uma central de dados na redação. A lista segue em ordem de complexidade:

  1. Entrega de dados
    É o modelo mais simples. Você coleta os dados e mostra a tabela para os leitores.
  2. Busca de dados
    É o modelo mais comum. Espera-se que o leitor encontre alguma coisa fazendo uma busca num campo de texto e alguns filtros, no caso de buscas avançadas.
  3. Exploração de dados
    Aqui começa a ficar mais divertido. É o modelo usado pelo chicagocrime.com chicagocrime.org. Além da busca, tudo é link e pode ser clicado e a cada tela novas opções de navegação são sugeridas, melhorando a experiência do usuário. A apresentação do conteúdo e arquitetura da informação obedecem a critérios jornalísticos.
  4. Experiências com dados e com narrativas
    É o casamento entre os dados e a notícia, integrando também elementos de redes sociais como comentários e elementos de narrativas multimídia como áudio e vídeo. O importante aqui é que deve existir uma integração de verdade. Não basta jogar um vídeo, uma tabela e umas notícias numa página para dizer que funcionou.
    Dois dos exemplos mais avançados deste modelo saíram do NY Times e do Star Tribune. Vale a pena dar uma olhada.

Posted in Geral, Jornalismo, Multimídia, django, jornalista-programador ~ Nenhum comentário

A inovação pertence às redações

{ 8 de Novembro de 2007 }

Derek Willis escreveu um post bem interessante com o título acima:  Innovation Belongs in the Newsroom.

“News organizations: find your innovators and liberate them inside the newsroom”.

É mais um indício de que os jornais americanos estão acordando pro fato de que jornalistas-programadores, ou News Technologists, ou Data-Delivery Editors são peça chave na evolução do jornalismo na internet.

Quem é jornalista e sabe criar aplicações na web “com as próprias mãos” é artigo de luxo nos EUA. Dá vontade de botar o currículo debaixo do braço e correr pra lá.

Será que os jornais brasileiros vão demorar muito pra também se dar conta disso?

Posted in Jornalismo, Mapas, Multimídia, django, jornalista-programador ~ Um comentário

Imagine uma redação com mais de 100 pessoas espalhadas pelo mundo. Durante três dias, todos se reúnem, alguns ao vivo e alguns virtualmente para fechar uma edição de uma revista. Virar a noite fazendo um “pescoção”, tão comum nas revistas tradicionais. Como organizar esse pessoal? Como distribuir tarefas? Como coordenar o fuso horário dos neozelandezes com o dos tailandeses, poloneses, brasileiros, peruanos e americanos que se dispuseram a participar do fechamento?

A grande maioria dessas pessoas nunca se viu, nunca conversou. O nível de conhecimento e de experiência varia enormemente, assim como o domínio do inglês, único dialeto comum entre todos. São editores-chefes misturados com repórteres, fotógrafos, designers, alunos do segundo grau e curiosos bem-intencionados. Seria um encontro no mínimo interessante de se acompanhar.

Este fechamento vai acontecer amanhã, dia 14, e pode se estender para o fim de semana. Mas não é com jornalistas, e não é para finalizar uma edição de uma revista.

É um negócio que programadores chamam de “sprint de desenvolvimento”, onde voluntários se juntam por uns dias para trabalhar em algum projeto de código aberto. Nesse esforço de fechamento, o objetivo é resolver bugs, implementar novas funcionalidades e atualizar a documentação, entre outras tarefas. Normalmente todos se reúnem em algum lugar fixo, como um castelo na Áustria, mas pelo jeito também pode acontecer à distância. Caso o esforço renda bastante, pode até virar uma nova versão, a tal “edição da revista” da minha analogia jornalística.

E o projeto no qual o pessoal vai trabalhar é o Django, software feito na linguagem Python que já venho falando bem faz um tempo. Me meti a participar, mesmo sendo novato no uso do projeto e na linguagem. E pelo que vi, até para quem não sabe nada de programação, trabalho não vai faltar. Muitos tutoriais precisam ser traduzidos e muita documentação também precisa ser adaptada para a versão brasileira.

Como nunca participei de um esforço colaborativo desse tamanho também quero ver como o pessoal vai se organizar e se entender :)

Ficou curioso? Tem mais informações na página convocatória pro sprint e no grupo dos desenvolvedores brasileiros de Django.

Posted in django, jornalista-programador ~ Um comentário