Perfil
Sobre mim
Turicas (aka Álvaro Justen) é programador e professor de programação. Ativista de software livre desde 2004 e programador Python desde 2005, atualmente trabalha capturando, convertendo, limpando e analisando dados em diversos projetos jornalísticos brasileiros; é fundador do portal de dados abertos acessíveis Brasil.IO, desenvolvedor-chefe do ImpactoJOR (aplicação que mede o impacto do jornalismo na socidade), professor da Escola de Dados e está sempre viajando para congressos, libertando dados
Eventos
5º Cerveja com Dados de Curitiba
A Escola de Dados organiza, desde 2016, encontros da comunidade de jornalistas de dados e programadores. Voltado a quem trabalha com dados abertos, programadores, jornalistas, advogados, cientistas sociais, designers e outros públicos interessados, o Cerveja com Dados funciona assim: 3 ou 4 participantes compartilham metodologias de trabalho em breves apresentações, para dar início às trocas entre o grupo. A ideia é integrar diferentes grupos interessados em trocar conhecimentos sobre jornalismo, ciência de dados e programação. O Cerveja com Dados acontece em diversas cidades do Brasil e sua quinta edição em Curitiba será no dia 16 de setembro de 2019, de 19:00 às 22:00 na cervejaria Hop n Roll (Rua Mateus Leme 950 - Centro Cívico, Curitiba/PR).
Submeta sua proposta de palestra (até 20min de apresentação).
Além das palestras, teremos uma rodada de apresentações (para que os participantes se conheçam), um intervalo para networking e, caso existam interessados, uma sessão de palestras relâmpago (lightning talks), que são palestras de 5 minutos (inscrições feitas na hora).
4º Cerveja com Dados de Curitiba
A Escola de Dados organiza, desde 2016, encontros da comunidade de jornalistas de dados e programadores. Voltado a quem trabalha com dados abertos, programadores, jornalistas e outros públicos interessados, o Cerveja com Dados funciona assim: 3 ou 4 participantes compartilham metodologias de trabalho em breves apresentações, para dar início às trocas entre o grupo. A ideia é integrar diferentes grupos interessados em trocar conhecimentos sobre jornalismo, ciência de dados e programação. O Cerveja com Dados acontece em diversas cidades do Brasil e sua quarta edição em Curitiba será no dia 29 de abril de 201à9 às19:00 na cervejaria Hop n Roll.
Submeta sua proposta de palestra (até 20min de apresentação).
3º Cerveja com Dados de Curitiba
A Escola de Dados organiza, desde 2016, encontros da comunidade de jornalistas de dados e programadores. Voltado a quem trabalha com dados abertos, programadores, jornalistas e outros públicos interessados, o Cerveja com Dados funciona assim: 3 ou 4 participantes compartilham metodologias de trabalho em breves apresentações, para dar início às trocas entre o grupo. A ideia é integrar diferentes grupos interessados em trocar conhecimentos sobre jornalismo, ciência de dados e programação. O Cerveja com Dados acontece em diversas cidades do Brasil e sua terceira edição em Curitiba será no dia 10 de dezembro de 2018 às 19:30 na cervejaria Hop n Roll.
Submeta sua proposta de palestra (até 20min de apresentação). Não se esqueça de confirmar presença no evento (é gratuito!).
Propostas
[4h] Capturando dados com Python
Capturando Dados com Python
O Problema
Dada a imensa quantidade de informação disponível na Web de forma distribuída e não padronizada, é comum a necessidade de capturar e converter/normalizar esses dados antes de começar o trabalho desejado em cima deles: análise e visualização. As etapas de captura e normalização tiram o foco do projeto de análise e visualização e podem ser bastante trabalhosas.
O objetivo desse tutorial é apresentar ferramentas para facilitar/automatizar ao máximo as etapas de captura e normalização de dados.
Captura de Dados
Essa é a etapa onde baixamos a informação desejada, mesmo que ainda esteja em um formato não amigável para fazer análise. Exploraremos o uso das seguintes bibliotecas:
Normalização de Dados
Após feita a captura precisamos normalizar os dados, colocando-os em formatos amigáveis à etapa de análise.
O processo de normalização tende a ser bastante trabalhoso e passível de inúmeros erros, dado que nem sempre os dados estão padronizados ou amigáveis à análise. Nessa etapa veremos o funcionamento da biblioteca rows (desenvolvida por Álvaro Justen) que visa automatizar ao máximo o parsing de formatos de dados tabulares (como CSV, HTML, XLS, dentre outros), bem como a extração para outros formatos.
Brasil.IO: Dados abertos para mais democracia
A quantidade de dados públicos brasileiros que fica disponível a cada dia na Web só cresce, mas com ela cresce a complexidade de estruturar e fazer com que essas bases de dados se comuniquem.
O Brasil.IO nasceu para resolver esse problema: é uma comunidade de desenvolvedores que criam scripts para capturar, limpar e estruturar bases de dados de interesse público, que ficam disponíveis no site para download e para acesso através de uma API.
O projeto é software livre e já está sendo utilizado por diversos jornais brasileiros para criar matérias guiadas por dados, bem como em outras áreas (como no direito).
Brasil.IO: Integrando dados não estruturados de diversos órgãos
A quantidade de dados públicos brasileiros disponibilizada na Web só cresce, mas com ela cresce a complexidade de estruturar e cruzar essas bases de dados, dado que a qualidade e acessibilidade desses dados é muito baixa (muitos estão disponíveis em formatos não estruturados, dispersos em diversas páginas, de forma desnormalizada etc.).
O Brasil.IO nasceu para resolver esse problema: é uma comunidade de programadores que libertam dados de interesse público (criam scripts para capturar, limpar e estruturar esses dados). Na plataforma leigos conseguem filtrar, cruzar e baixar recortes desses dados entre as bases disponíveis facilmente; programadores conseguem também acessar os dados através de uma API. O projeto é software livre, está recebendo diversas colaborações e sendo utilizado por diversos veículos de notícia brasileiros (que estão criando matérias guiadas por dados) e por outras áreas.
Brasil.IO & rows: ajudando na abertura de dados abertos brasileiros
Os processos de captura, conversão e limpeza de dados tomam muito tempo em qualquer projeto de análise de dados - e costuma ser pior nos casos de dados públicos, onde os dados estão muito dispersos e disponíveis em formatos não legíveis por máquina. Foram criados dois projetos para ajudar a resolver esse problema:
- A biblioteca (e interface de linha de comando) rows foi criada para ajudar a automatizar esse processo (é possível, com um comando, converter PDFs para CSV, por exemplo);
- A plataforma Brasil.IO, que é um repositório de dados abertos já disponíveis em formatos mais acessíveis, incluindo filtros e uma API.
Ambos projetos foram criados em Python e são software livre. Durante essa sprint Álvaro Justen (criador dos projetos) estará disponível para ajudar aos que querem colaborar pela primeira vez e parear com os demais para resolver bugs e criar novas funcionalidades.
Capturando dados abertos sem dor de cabeça
Desde a criação de Lei de Acesso à Informação (LAI[1]) vários órgãos públicos estão disponibilizando dados que antes não tínhamos acesso, porém nem sempre os dados estão facilmente acessíveis: são públicos, mas estão disponíveis em formatos não próprios para fazer análises, muitas vezes contendo erros de formatação e falta de metadados. Quanto menos acessível um dado está, apesar de público, mais perto de um dado fechado ele está.
Nesse tutorial Turicas apresentará diversas bases de dados abertas com as quais já trabalhou, os problemas que enfrentou e técnicas/metodologias para facilitar o uso desses dados, para que você não perca tempo das próximas vezes. Também serão mostrados exemplos de resultados (e código!) desse trabalho de jornalismo de dados no projeto Gênero e Número[2], em que analisamos as questões de gênero no Brasil (e para isso precisamos acessar as mais distintas bases de dados públicas: algumas disponíveis apenas em tabelas HTML, outras em CSVs de gigabytes de tamanho ou mesmo em formatos não padronizados). Ao final, discutiremos como desenvolvedores podem colaborar entre si na utilização de dados abertos mais acessíveis, para evitar retrabalho de captura, limpeza e conversão de dados.
Nota: esse NÃO é um tutorial para iniciantes em Python!
[1]: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm
[2]: http://generonumero.media/
Capturando dados abertos sem dor de cabeça
Desde a criação de Lei de Acesso à Informação (LAI[1]) vários órgãos públicos estão disponibilizando dados que antes não tínhamos acesso, porém nem sempre os dados estão facilmente acessíveis: são públicos, mas estão disponíveis em formatos não próprios para fazer análises, muitas vezes contendo erros de formatação e falta de metadados. Quanto menos acessível um dado está, apesar de público, mais perto de um dado fechado ele está.
Nesse tutorial Turicas apresentará diversas bases de dados abertas com as quais já trabalhou, os problemas que enfrentou e técnicas/metodologias para facilitar o uso desses dados, para que você não perca tempo das próximas vezes. Também serão mostrados exemplos de resultados (e código!) desse trabalho de jornalismo de dados no projeto Gênero e Número[2], em que analisamos as questões de gênero no Brasil (e para isso precisamos acessar as mais distintas bases de dados públicas: algumas disponíveis apenas em tabelas HTML, outras em CSVs de gigabytes de tamanho ou mesmo em formatos não padronizados). Ao final, discutiremos como desenvolvedores podem colaborar entre si na utilização de dados abertos mais acessíveis, para evitar retrabalho de captura, limpeza e conversão de dados.
Nota: esse NÃO é um tutorial para iniciantes em Python!
[1]: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm
[2]: http://generonumero.media/
Ciência de Dados no Terminal
Apesar de muito poderosa, a interface de linha de comando (terminal) nem sempre é conhecida profundamente por pessoas que desenvolvem software e por isso é bastante subutilizada. Nesse contexto, existem diversos programas que podem auxiliar e agilizar o dia-a-dia de uma cientista de dados: alguns antigos, que mimetizam os criados pelo UNIX no fim da década de 1960 até mais modernos, que interagem com novos formatos de dados e protocolos.
Nessa palestra será apresentada uma introdução ao terminal (para os que não conhecem) e também diversas ferramentas (todas livres) que são úteis no trabalho com dados; serão apresentados os principais problemas relacionados ao trabalho com dados e exemplos práticos de como resolvê-los com essas ferramentas no processo de download, conversão, limpeza e análise de dados (incluindo uma criada pelo próprio palestrante, chamada rows).
Dados Tabulares: A Maneira Pythônica
Dados tabulares estão presentes em todos os lugares, em diversos formatos: CSV, XLS, ODS, HTML, JSON, bancos de dados etc. Porém as APIs das bibliotecas são completamenta diferentes, que dificulta bastante o intercâmbio de dados e acesso para análises.
Nesse tutorial será apresentada a biblioteca rows: desde seus usos mais básicos até suas entranhas; a biblioteca rows tem como objetivo prover uma API simples, direta e unificada para trabalhar com dados tabulares, suportando inúmeros formatos. Além da API, será abordada a interface de linha de comando (CLI), que facilita conversões e análises iniciais. Como a biblioteca é software livre, também serão apresentadas as melhores formas de colaborar com o projeto.
Para participar você deve levar um notebook com os seguintes softwares instalados:
- Python 2.7.x
- rows e todas suas dependências (pip install rows[all])
- Clone do repostiório rows que está disponível no GitHub do autor (git clone https://github.com/turicas/rows)
Dados Tabulares: A Maneira Pythônica
Dados tabulares estão presentes em todos os lugares, em diversos formatos: CSV, XLS, ODS, HTML, JSON, bancos de dados etc. Porém, apesar de todos os formatos organizarem os dados em tabelas, cada coluna com um tipo, as APIs das bibliotecas para acessá-los são completamenta diferentes.
A biblioteca rows tem como objetivo prover uma API simples, direta e unificada para trabalhar com dados tabulares, suportando inúmeros formatos. Além da API, será abordada a CLI (command-line interface), que facilita conversões e consultas rápidas, e as vantagens e desvantagens de cada formato apresentado.
Libertando bases de dados públicas
Diversas bases de dados estão disponíveis publicamente na Web, principalmente as que são de interesse público - e desde a criação da Lei de Acesso à Informação[1] esse número só cresce (por conta, também, de pressão popular).
Infelizmente, muitos desses dados não estão em formatos acessíveis a leigos e em boa parte das vezes é necessária a criação de softwares personalizados para conversão e limpeza.
Nesse tutorial serão demonstrados exemplos de código que Álvaro Justen desenvolveu para libertar várias dessas bases de dados, como os salários dos magistrados brasileiros e os sócios das empresas brasileiras.
[1]: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm
rows: extraindo, normalizando e salvando dados tabulares
Dados tabulares estão presentes em todos os lugares, em diversos formatos: CSV, XLS, ODS, HTML, JSON, bancos de dados etc. Porém as APIs das bibliotecas são completamenta diferentes. A biblioteca rows tem como objetivo prover uma API simples, direta e unificada para trabalhar com dados tabulares, suportando inúmeros formatos e tornando o trabalho de análise e conversão de dados fácil e rápido.
Esse tutorial será totalmente mão-na-massa e apresentará as principais funcionalidades da biblioteca, sua CLI (command-line interface) e mostrará formas de utilizar a biblioteca para conversão automática de dados e como criar plugins para novos formatos.
rows: tornando a biblioteca mais pythônica
A biblioteca rows é utilizada para extração, conversão e análise de dados tabulares e suporta diversos formatos, como CSV, TXT, XLS, XLSX, HTML, SQLite e outros. O projeto é desenvolvido de maneira colaborativa, é software livre e usa a licença GPLv3. O projeto já está sendo usado em diversas empresas e projetos e diversas funcionalidades e melhorias foram pensadas; algumas delas - as de maior prioridade - foram separadas para essa sprint:
- Melhorar a documentação/site do projeto (com um tutorial)
- Melhorar testes automatizados já existentes e aumentar a cobertura
- Repensar a estrutura da command-line interface e torná-la genérica para novos plugins
- Desenvolvimento de novos plugins
Antes do evento será feito um vídeo por Álvaro Justen (autor da biblioteca) contendo informações sobre como se preparar para a sprint para que sua colaboração possa ser a melhor possível!