You are browsing the archive for d3.

Nossos projetos open source: tudo o que você precisa saber para participar.

- January 16, 2019 in código aberto, Conhecimento Livre, css, d3, Destaque, Gastos Abertos, Gastos Públicos, governo aberto, html, jekyll, Open Knowledge Brasil, Open Source, Python, transparência, visualização de dados

Por Pedro Vilanova Se você acompanha projetos de tecnologia – ou trabalha no mercado, independente da área de atuação, provavelmente já ouviu falar sobre projetos open source. Mesmo em crescimento, porém, o universo de projetos de código aberto ainda gera muitas dúvidas até mesmo em profissionais. Esse texto é para facilitar um pouco o entendimento e ajudar as pessoas a colocarem em prática um dos principais conceitos do open source: participação.

O que é Open Source?

Na prática, um projeto open source nada mais é do que um trabalho cujo código é aberto. Isto é, tem seu licenciamento livre, com o conteúdo do software disponível para quem quiser modificar, copiar, estudar e fazer os mais diversos tipo de experiência, inclusive trabalhando e ganhando dinheiro com isso. Apesar do caráter de troca de conhecimento e experiência, se engana quem pensa que a comunidade de código aberto é composta apenas por estudantes e acadêmicos. As maiores empresas do mundo, como IBM e Microsoft, mantém participação ativa e olhos bem abertos sobre iniciativas de código aberto. Isso acaba por trazer mais profissionais experientes para a comunidade e movimentar um maior investimento.

A importância do open source para a ciência.

Projetos em código aberto proporcionam o que chamamos de trabalhos derivados. Qualquer pessoa pode ter acesso e aprimorar o que já foi feito. Qualquer pessoa. Com isso, as possibilidades de melhoria são infinitas. Além disso, em geral, quem contribui com projetos open source também tem muito a ganhar em termos de conhecimento e oportunidades profissionais.

A importância do open source para a democracia.

Dentro da Open Knowledge Brasil, trabalhamos muito com código aberto voltado para iniciativas políticas. Isso porque acreditamos que essa é uma das principais vocações de se trabalhar com software livre. Um projeto que busca democracia precisa ser, acima de tudo, democrático.

Nossas iniciativas open source facilitam o acompanhamento, a transparência e auditoria do nosso trabalho, pilares do que acreditamos ser o conhecimento livre. Isso sem falar no engajamento. Em um país grande e diverso como o Brasil, trabalhar de forma aberta é dar a oportunidade do código passar por todo o país, sendo agregado, adaptado a diferentes realidades e servindo a democracia em seu potencial máximo.

Ok. E como vocês ganham dinheiro com isso?

Se engana quem acha que trabalhar com open source é sinônimo de trabalho voluntário. É bem verdade que muito do universo de código aberto é voluntário, mas o mercado só cresce globalmente, reunindo cada vez mais profissionais experientes e chamando a atenção de grandes empresas. A diferença é que, por não gerar custos em torno da licença, o mercado de código aberto gera maior valor no conhecimento, com investimentos em serviço e formação. Existem algumas formas clássicas de capitalização de trabalhos open source, como por exemplo:
  • Doações: alguns projetos open source servem a um propósito muito forte, o que faz com que pessoas – técnicas ou não – se mobilizem em torno da causa, contribuindo com doações em dinheiro. As plataformas de financiamento coletivo estão repletas de projetos incríveis que alcançaram seus objetivos financeiros para serem desenvolvidos.

  • Desenvolvendo para grandes empresas: é bastante comum que grandes empresas adaptem softwares open source para suas necessidades ou até mesmo internalizem algumas iniciativas. Com a entrada de companhias maiores nesse mercado, a tendência é que tenhamos cada vez mais código aberto dentro de grandes organizações, o que movimenta muito a comunidade financeiramente.

  • Conhecimento: o mercado de open source movimenta muito investimento em conhecimento. Linguagens e softwares open source abrem espaço para aulas, consultorias e demais serviços. Não se paga licença, mas se vê alto valor na aplicação da tecnologia dentro do conhecimento.

Nossos principais projetos open source.

Como falamos ali em cima, a OKBr atualmente conta com várias iniciativas open source prontinhas para receber participação. Confira algumas delas:

Serenata de Amor

Linguagens utilizadas: Python (e HTML/CSS com Jekyll). O que o projeto entrega: inteligência artificial para auditoria de gastos com a cota parlamentar. Como contribuir: o Serenata possui três grandes repositórios: o principal, o website e o tool box. No primeiro, é possível contribuir com a Rosie, inteligência artificial que analisa os gastos públicos, melhorando sua performance, e em outras diversas tarefas essenciais para o funcionamento do projeto. Nesse repositório está também o Jarbas, que é nosso painel de visualização desses dados todos.

Perfil Político

Linguagens utilizadas: Python (com Django na API) e Javascript (com D3 no frontend). O que o projeto entrega: perfis detalhados de todos os candidatos a cargos eleitorais no Brasil. Como contribuir: o Perfil possui três repositórios: o principal (API) e o de frontend. O primeiro é um prato cheio para jornalistas de dados: ali são coletadas, tratadas e organizados em um banco de dados único informações de candidatos a diversos cargos, vários deles eleitos, prontos para serem analisadas. O frontend, por sua vez, traz a parte visual, oferecendo uma melhor usabilidade e apresentação dos dados a partir da nossa API. O Perfil é mais um projeto aberto para diferentes perfis profissionais que queiram contribuir.

Vítimas da intolerância

Linguagens utilizadas: Python (com Sanic) O que o projeto entrega: mapeamento de casos de violência com fundo político.   Como contribuir: no repositório do Vítimas é possível conferir todo o código e todos os casos levantados até agora, onde os contribuidores podem adicionar, analisar e melhorar a leitura de dados desenvolvida até agora.

Queremos Saber

Linguagens utilizadas: Python (Django) O que o projeto entrega: possibilidade de fazer pedidos de informação dentro da lei sem revelar sua identidade.   Como contribuir: acesse o repositório do Queremos Saber no GitHub e veja a lista de tarefas em aberto. Em especial, as marcadas como “good first issue” são as que consideramos boas para alguém que ainda está se familiarizando com o código-fonte.

 

Querido Diário

Linguagens utilizadas: Python O que o projeto entrega: raspagem e análise de dados de compras emitidas nos diários oficiais municipais. Como contribuir: os diários oficiais mudam bastante e o Brasil é um país com milhares de municípios. Quem entrar no repositório do Querido Diário encontra tarefas e a documentação necessária para atuar com dados no seu município e fazer a sua parte pelo controle social no país. Por que não criamos uma grande rede e contemplamos o Brasil todo com essa tecnologia? Participe de iniciativas open source. Contribua com os nossos projetos e faça parte da comunidade. Se você não é da parte técnica e quer ajudar a manter os nossos projetos, pode contribuir com o apoia.se/serenata.   Flattr this!

Data Roundup, 11 February

- February 11, 2014 in accurat, course, d3, Data Roundup, giorgia lupi, handbook, infographics, olympics, portuguese, winter

Stephen Thomas – Earth

Tools, Events, Courses Those of you who have fallen in love with d3.js should absolutely follow d3noob.org, an interesting blog where you can get useful tips and two free e-books on d3 and leaflet.js. Ekuatorial is a new website built to display environmental changes through digital cartography. Read more about this ‘geo-journalism’ experiment in this introduction on Visualoop. Did you know that Randy Krum, founder of Cool Infographics, is on tour for a series of events on data visualization? Check out his roadmap and don’t miss the date. A new course on data journalism is about to start next week at Wits Journalism in Johannesburg. The course begins on Monday 17 and will be held by New York Time’s Ron Nixon. Data Stories San Valentine is getting closer: give yourself a minute to read this curious infographic on its origin and on how it is celebrated around the world. The Sochi winter Olympics just started, and Twitter Data already published a visualization on it. See Tweets about #Sochi2014 on datawrapper. You might also want to scroll down this infographic on which winter Olympic sport would you play? posted on Visually. The Global Investigative Journalism Network recently posted a graph on last week’s most popular data journalism links. If you wonder what topic recently captured data-addicted attention around the world, you should absolutely see it or play with the interactive version. Data Sources Accurat is an Italian information design agency which surely represents the avant garde in the data visualization market. If you are curious about how it works and what’s its operating model watch the interview with one of its co-founder, Giorgia Lupi, at the New York School of Visual Arts. The Online Journalism Blog of Paul Bradshaw is always a gold mine of good informations. If you are looking for some tips and suggestions on data journalism, here you may find some. Finally, we remind you that the Portuguese version of The Data Journalism Handbook is now available here. flattr this!

An Introduction to Cargo-Culting D3 Visualizations

- September 2, 2013 in d3, HowTo, javascript, tech, Tinkering, underscore, visualisation



D3 is a fantastic framework for visualization – besides its beautiful outputs, the framework itself is elegantly designed. However, its elegance and combination of several technologies (javascript + svg + DOM manipulations) make it very hard to learn D3. Luckily, there is a huge range of D3 examples out there. Cargo-Cults to the rescue… Cargo Cults were the way Melanesians responded when they suddenly were confronted with military forces in the second world war: strangers arrived wearing colorful clothes, marched up and down strips of land and suddenly: parachutes with cargo-crates were dropped. After the strangers left, the islanders were convinced that, if they just behaved like the strangers, cargo would come to them. As the islanders, we don’t have to understand the intricate details of D3 – we just have to perform the right rituals to be able to do the same visualizations… Let’s for example try to re-create a Reingold-Tilford tree of the Goldman Sachs network.
Things I’ll work with:
The Reingold-Tilford tree example
the Goldman Sachs Network over at Opencorporates (you can get the data in their json format) The first thing I always look at is: how is the data formatted for the example: Most of the examples provide data with it that help you to understand how the data is layed-out for this specific example. This also means: if we bring our data into the same shape, we’ll be able to use our data in the example. So let’s look at the “flare.json” format, that is used in the example. It is a very simple json format where each entry has two attributes: a name and an array of children – this forms the tree for our tree layout. The data we have from Open Corporates looks different, here we always have parent and child – but let’s bring this into the same form. First, I’ll get the javascript bits I’ll need: d3 and underscore (I like underscore for its functions that make working with data a lot nicer), then I’ll create an HTML page similar to the example. I’ll check in the code where the “flare.json” file is loaded and put my own json in it (the one from opencorporates linked above) (commit note- that changes later on, since opencorporates does not do CORS…). I then convert the data using a javascript function (in our case a recursive one, that crawls down the tree)
 var getChildren = function(r,parent) {
    c=_.filter(r,function(x) {return x.parent_name == parent})
    if (c.length) {
      return ({"name":parent,
        children: _.map(c,function(x) {return (getChildren(r,x.child_name))})})
      }
    else {
      return ({"name":parent })
    }
  }
  root=getChildren(root,"GOLDMAN SACHS HOLDINGS (U.K.)")
Finally, I adjust the layout a bit to make space for the labels etc The final result on githubfull repository flattr this!