21 de set. de 2017

A-Z Reference Guide for an Ongoing Data-Oriented World


The data volumes are blowing up. More data has been created in the past two years than in the entire previous history of the humankind. Moreover, solely along 2017, a wide and growing range of data coming from all type of industries: financial, IoT, healthcare, automotive, astronomy, biotech, cybersecurity, social media, entertainment, amongst several others, can make even higher these impressive numbers. 

Nonetheless, researches has found that less than 0.5 percent of that data is actually being analyzed for operational and business decision making.

By the year 2020, about 1.7 megabytes of new information will be created every second for every human being on the planet.
By then, our accumulated digital universe of data will grow from 4.4 zettabytes today to around 44 zettabytes, or 44 trillion gigabytes.

According to IDC, the number of connected devices within IoT universe will be 30 billion by 2020 and forecast is a potential market estimated in 7.3 billion dollars yet in 2017.

This huge data mass is what everyone is talking about and that with proper handling can bring significant results and changes for all those industries and for human life.


Analytics has emerged as a catch-all term for a variety of different business intelligence (BI) - and application-related initiatives. For some, it is the process of analyzing information from a particular domain, such as website analytics. For others, it is applying the breadth of BI capabilities to a specific content area (for example, sales, service, supply chain and so on). In particular, BI vendors use the “analytics” moniker to differentiate their products from the competition. Increasingly, “analytics” is used to describe statistical and mathematical data analysis that clusters, segments, scores and predicts what scenarios are most likely to happen. Whatever the use cases, “analytics” has moved deeper into the business vernacular. Analytics has garnered a burgeoning interest from business and IT professionals looking to exploit huge mounds of internally generated and externally available data.

Artificial Intelligence is the science and engineering of making intelligent machines, especially intelligent computer programs. It is related to the similar task of using computers to understand human intelligence, but AI does not have to confine itself to methods that are biologically observable.

Big Data is a term that describes the large volume of data – both structured and unstructured – that inundates a business on a day-to-day basis. However, it’s not the amount of data that’s important. It’s what organizations do with the data that matters. Big data can be analyzed for insights that lead to better decisions and strategic business moves.

Business Analytics is one aspect of business intelligence, which is the sum of all your research tools and information infrastructure. Due to this close relationship, the terms business intelligence and business analytics are sometimes used interchangeably. Strictly speaking, business analytics focuses on statistical analysis of the information provided by business intelligence.

Business intelligence (BI) refers to the procedural and technical infrastructure that collects, stores and analyzes the data produced by a company’s activities. Business intelligence is a broad term that encompasses data mining, process analysis, performance benchmarking, descriptive analytics, and so on. Business intelligence is meant to take in all the data being generated by a business and present easy to digest performance measures and trends that will inform management decisions.

Clustering is the task of dividing the population or data points into a number of groups such that data points in the same groups are more similar to other data points in the same group than those in other groups. In simple words, the aim is to segregate groups with similar traits and assign them into clusters.

A business intelligence Dashboard is a data visualization tool that displays the current status of metrics and key performance indicators (KPIs) for an enterprise. Dashboards consolidate and arrange numbers, metrics and sometimes performance scorecards on a single screen. They may be tailored for a specific role and display metrics targeted for a single point of view or department. The essential features of a BI dashboard product include a customizable interface and the ability to pull real-time data from multiple sources.

Data Grids are in-memory distributed databases designed for scalability and fast access to large volumes of data. More than just a distributed caching solution, data grids also offer additional functionality such as map/reduce, querying, processing for streaming data, and transaction capabilities.

Data Mining is the practice of automatically searching large stores of data to discover patterns and trends that go beyond simple analysis. Data mining uses sophisticated mathematical algorithms to segment the data and evaluate the probability of future events. Data mining is also known as Knowledge Discovery in Data (KDD).

Data Science is an interdisciplinary field about scientific methods, processes, and systems to extract knowledge or insights from data in various forms, either structured or unstructured, similar to data mining. It's a concept to unify statistics, data analysis and their related methods in order to understand and analyze actual phenomena with data. It employs techniques and theories drawn from many fields within the broad areas of mathematics, statistics, information science, and computer science, in particular from the subdomains of machine learning, classification, cluster analysis, data mining, databases, and visualization.

A Data Warehouse is a storage architecture designed to hold data extracted from transaction systems, operational data stores and external sources. The warehouse then combines that data in an aggregate, summary form suitable for enterprise-wide data analysis and reporting for predefined business needs.

ETL tools perform three functions to move data from one place to another: Extract data from sources such as ERP or CRM applications; Transform that data into a common format that fits with other data in the warehouse; and, Load the data into the data warehouse for analysis.
Microsoft Excel is a software program that allows users to organize, format and calculate data with formulas using a spreadsheet system.

Fact tables are the foundation of the data warehouse. They contain the fundamental measurements of the enterprise, and they are the ultimate target of most data warehouse queries. The real purpose of the fact table is to be the repository of the numeric facts that are observed during the measurement event.

Google Analytics is a Web analytics service that provides statistics and basic analytical tools for search engine optimization (SEO) and marketing purposes.

The Apache Hadoop project develops open-source software library framework for reliable, scalable, distributed computing that allows for the processing of large data sets across clusters of computers using simple programming models. Other Hadoop-related projects at Apache includes Ambari, Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop.

The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL.

Histogram is a graphical representation, similar to a bar chart in structure that organizes a group of data points into user-specified ranges. The histogram condenses a data series into an easily interpreted visual by taking many data points and grouping them into logical ranges or bins.

Julia is a high-level, high-performance dynamic programming language for numerical computing. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.

K-means is one of the oldest and most commonly used clustering algorithms. It is a prototype based clustering technique defining the prototype in terms of a centroid that is considered to be the mean of a group of points and is applicable to objects in a continuous n-dimensional space.

Machine Learning is a core subarea of artificial intelligence that studies computer algorithms for learning to do stuff automatically without human intervention or assistance. The learning that is being done is always based on some sort of observations or data, such as examples, direct experience, or instruction. So in general, machine learning is about learning to do better in the future based on what was experienced in the past. Although a subarea of AI, machine learning also intersects broadly with other fields, especially statistics, but also mathematics, physics, theoretical computer science and more.

MATLAB (matrix laboratory) is a multi-paradigm numerical computing environment and fourth-generation programming language developed by MathWorks, that allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages, including C, C++, C#, Java, Fortran and Python.

MongoDB is an open-source document-based database system. It's name derives from the word “humongous” because of the database’s ability to scale up with ease and hold very large amounts of data. MongoDB stores documents in collections within databases.

By Natural Language, we mean a language that is used for everyday communication by humans; languages like English, Hindi or Portuguese. We can understand Natural Language Processing — or NLP for short — in a wide sense to cover any kind of computer manipulation of natural language. Providing more natural human-machine interfaces, and more sophisticated access to stored information, technologies based on NLP are becoming increasingly widespread (e.g. phones and handheld computers support predictive text and handwriting recognition; machine translation allows us to retrieve texts written in Chinese and read them in Spanish; text analysis enables us to detect sentiment in tweets and blogs). 

NoSQL (Not Only SQL) describe an approach to database design that implements a key-value store, document store, column store or graph format for data. NoSQL databases especially target large sets of distributed data. Nowadays, there are more than 225 NoSQL databases, mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable.

OLAP (Online Analytical Processing) is the technology behind many Business Intelligence (BI) applications. OLAP is a powerful technology for data discovery, including capabilities for limitless report viewing, complex analytical calculations, trend analysis, sophisticated data modeling and predictive “what if” scenario (budget, forecast) planning.

Power BI is a suite of business analytics tools to analyze data and share insights.

Predictive Analytics is the use of statistics and modeling to determine future performance based on current and historical data. Predictive analytics look at patterns in data to determine if those patterns are likely to emerge again, what allows businesses and investors to adjust where they use their resources in order to take advantage of possible future events.

Python is a high-level interpreted programming language. Provides constructs intended to enable writing clear small and large-scale programs. It features a dynamic type system and automatic memory management, supports multiple programming paradigms, including object-oriented, imperative, functional programming, and procedural styles. Interpreters are available for many operating systems, allowing Python code to run on a wide variety of systems.

R is a language and environment for statistical computing and graphics. It is a GNU project and provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering) and graphical techniques, and is highly extensible.

SPSS Statistics is a software package used for logical batched and non-batched statistical analysis.  Software name originally stood for Statistical Package for the Social Sciences reflecting the original market, although the software is now popular in other fields being used by used by market researchers, health researchers, survey companies, government, education researchers, marketing organizations, data miners and others. Acquired by IBM in 2009, current versions are officially named IBM SPSS Statistics.

What-If Analysis is the process of changing the values in cells to see how those changes will affect the outcome of formulas on the worksheet. Three kinds of What-If Analysis tools come with MS Excel: Scenarios, Goal Seek, and Data Tables. Scenarios and Data tables take sets of input values and determine possible results. A Data Table works with only one or two variables, but it can accept many different values for those variables. A Scenario can have multiple variables, but it can only accommodate up to 32 values. Goal Seek works differently from Scenarios and Data Tables in that it takes a result and determines possible input values that produce that result.

XML for Analysis (XMLA) is a SOAP-based XML protocol, designed specifically for universal data access to any standard multidimensional data source that can be accessed over an HTTP connection

Now, it’s up to you! Bookmark this page and get back whenever you need!

19 de set. de 2017

Cientista de Dados: a profissão do futuro

Fonte: TI Especialistas

Cientista de Dados: a profissão do futuro

Atualmente, o cientista de dados é um dos profissionais mais requisitados no mercado de trabalho. Uma pesquisa feita pela Michael Page, líder mundial em recrutamento de executivos, aponta que os gestores de negócios em Business Intelligence e Big Data, juntamente com os cientistas de dados, serão os especialistas mais procurados no segmento de Tecnologia da Informação nos próximos dois anos, com salários variando entre R$ 12 mil e R$ 30 mil.
A procura crescente por esse especialista deve-se em parte pela grande popularidade que a subárea da Inteligência Artificial, chamada de Aprendizagem de Máquina (Machine Learning em inglês), ganhou nos últimos anos. Uma pesquisa feita pela MIT Technology Review e pela Google Cloud, publicada em março de 2017, indica que 26% das empresas entrevistadas planejam alocar mais de 15% do seu orçamento no setor.
Associado a isso, como a área de Big Data está em foco na indústria de tecnologia, Machine Learning tornou-se essencial por permitir que se façam previsões com base em grandes volumes de dados.
Dentre os exemplos mais comuns de Machine Learning estão: os algoritmos da Netflix que fazem sugestões de filmes de acordo com as preferências do espectador, os algoritmos da Amazon que recomendam livros com base nas últimas compras do usuário e os algoritmos adotados pelo Facebook que analisam atualizações de status para definir o conteúdo do seu feed.
O cientista de dados deve aplicar princípios, processos e técnicas para criar soluções inteligentes para problemas de negócios por meio da análise automática de informações. Para tanto, é preciso possuir sólidos conhecimentos em:
  • Machine Learning: é uma subárea da Inteligência Artificial baseada em algoritmos matemáticos e sua automação, permitindo que uma máquina aprenda e/ou aperfeiçoe o seu desempenho em alguma tarefa. Os principais algoritmos envolvidos no processo são: árvore de decisão, redes neurais artificiais, técnicas de agrupamento e associação de dados, regressão linear e regressão logística.
  • Sistemas de programação como Python, R, Scala ou o conhecimento de linguagens de consulta e tecnologias associadas como SQL, MySQL, PostgreSQL, Cassandra, MongoDB são fundamentais. Além disso, é importante saber trabalhar com bibliotecas e ferramentas de Machine Learning, tais como RapidMiner,TensorFlowPower BI e Anaconda. Para o Big Data é essencial ter familiaridade com o HadoopMapReduce, Spark, Pig e Hive, por exemplo.
  • Visualização: o foco aqui é o Visual Analytics, ou seja, a representação apropriada de dados complexos por meio de imagens e gráficos para facilitar o desenvolvimento de análises. É importante conhecer algumas das ferramentas como D3, Tableau e Qlikview.
Embora seja uma discussão atual, ainda não existe curso de graduação em Ciência de Dados. Assim, aos que desejam investir na área, é recomendado que procurem por cursos que contemplem e tenham em suas estruturas curriculares uma linha de formação voltada ao setor, com disciplinas como: Estatística, Análise Exploratória de Dados, Inteligência Artificial, Mineração de Dados ou Data MiningMachine Learning, Banco de Dados estruturados e não estruturados, Desempenho de Negócio e Big Data.
A capacitação pode ser realizada na pós-graduação, em que há um grande número de cursos lato sensu e MBA que contribui para a formação dos cientistas de dados, bem como programas de pós-graduação stricto sensu, como um mestrado ou doutorado. O caminho para se tornar um especialista envolve uma jornada de estudos e programas de formação, além do uso da Metodologia de Pesquisa aplicada na análise e solução de problemas reais.

25 de ago. de 2017

Why I do not support Bitcoin (or any other cryptocurrency)?

Nevertheless, there is no doubt Blockchain is the innovative disruption breaking all the rules and generating wealth now and in the upcoming years.

See the full article by clicking here.

9 de fev. de 2017

Ok, Google: conheça comandos de voz para usar com o Google no celular

Fonte: Olhar Digital

GUSTAVO SUMARES 08/02/2017 17H45h

Algumas pessoas acreditam que, no futuro, todos os dispositivos eletrônicos serão controlados por voz. Essa realidade pode ainda estar bem distante, mas, se você tem um smartphone Android, já tem muitas coisas que pode fazer sem precisar sequer encostar nele.
Isso é graças ao Google Now, o assistente pessoal do Google que é integrado ao buscador. Ele consegue analisar dados do aparelho, das suas contas do Google e da sua região para dar respostas e sugestões ao comando da sua voz. E ele é capaz de fazer algumas coisas bem surpreendentes.
Para ativá-lo, basta dizer "Ok, Google". Se isso não funcionar, abra o aplicativo do Google e aperte o botão de microfone do lado direito da barra de busca. Com isso, o aplicativo começará a te ouvir. Em seguida, diga a ele o comando que você quiser, e ele o realizará.
Abaixo, listamos 58 comandos de voz que funcionam com o Google Now. Quando um termo estiver entre colchetes [assim], ele deve ser substituído por algo dessa categoria. Comandos menos claros são esclarecidos com exemplos em seguida. Assim que você perder a vergonha de falar com seu celular, verá que às vezes é muito mais fácil pedir que ele faça algo para você do que fazê-lo você mesmo. Confira:


"abra [aplicativo]"
"entre no site [nome do site]"
"ligue para [nome do contato]"
"envie uma mensagem para [contato]" (você também pode falar: "Envie uma mensagem pelo [aplicativo] para [contato]". Por exemplo: "Envie uma mensagem pelo WhatsApp para o Marcelo")
"Mande um e-mail para [contato]" (por padrão, o Google usa o Gmail)
"Marque um alarme para [horário]"
"Marque um timer para daqui a [tempo]"
"Me lembre de [fazer algo] [em algum horário] [em algum lugar]" (por exemplo: "Me lembre de ligar para o Marcelo amanhã às 10 da manhã", ou: "Me lembre de comprar manteiga quando eu estiver no supermercado". No primeiro caso, o lembrete fica vinculado ao horário; no segundo, à sua localização)
"Me mostre fotos de [local ou objeto ou pessoa]" (por exemplo: "Me mostre fotos da Kim Kardashian"; "me mostre fotos de Berlim"; "me mostre fotos de melancias quadradas")


"[palavras chave]" (diga uma sequência de palavras e o Google pesquisará aquilo)
"Quando é/foi/vai ser [evento]?" (por exemplo: "Quando é o próximo jogo do Corinthians?" ou: "Quando foi a Segunda Guerra Mundial?" ou: "Quando vai ser a Páscoa?")
"O que significa [palavra]?" (o Google lerá para você a definição daquela palavra)
"De onde vem a palavra [palavra]?" (o Google lerá para você a melhor explicação que ele encontrar)
"O que significa [sigla]?" (por exemplo: "O que significa PMDB?")
"Como vai ser o tempo amanhã?" (frases parecidas, como "eu vou precisar de um guarda-chuva amanhã?", também funcionam)
"Qual o preço das ações da [empresa]?"
"Quanto está valendo o/a [moeda]?" (por exemplo: "Quanto está valendo o dólar?" ou "quanto está valendo a libra?")
"[cálculos matemáticos]?" (por exemplo: "Quanto é 15 vezes 3?", "quanto é 762.634 dividido por 734?", "quanto é 666 elevado ao cubo?", "qual é a raiz quadrada de 7?", "quanto é 11% de 11?")
"Quem é [pessoa famosa]? (por exemplo: "Quem é Barack Obama?", "quem é Lady Gaga?", "quem é Aaron Turner?", "quem é Mano Brown?", ou ainda: "Quem é a irmã da Kim Kardashian?", "quem é o pai do Luke Skywalker?")
"Quem fez [ação]?" (por exemplo: "Quem escreveu 'Dom Casmurro'?", "quem pintou o quadro 'Guernica'?", "quem inventou o avião?", "quem fundou a Anistia Internacional?", "quem dirigiu o filme 'A Criada'?", "quem projetou Brasília?")
"Qual é a idade de [pessoa famosa]?"
"Quantos anos tem [monumento]?"
"Qual é a altura de [pessoa famosa]?"
"Qual é a altura de [prédio/monumento famoso]?"
"Como faz [receita]?" (por exemplo: "Como faz caipirinha?" ou: "Como faz feijoada?")
"Que som faz um [animal]?" (por exemplo: "Que som faz um gato?")


"Me mostre o caminho para [endereço]" (se tiver definido anteriormente o endereço da sua casa, por exemplo, você também pode simplesmente falar: "Me mostre o caminho para casa")
"Me mostre o mapa de [cidade, bairro ou região]"
"Onde fica o [serviço] mais próximo?" (por exemplo: "Onde fica a pizzaria mais perto daqui?" ou: "Onde fica o supermercado mais próximo de onde eu estou?")
"Onde fica o [lugar específico]?" (por exemplo: "Onde fica o estádio do Pacaembu?" ou: "Onde fica o mercado da Lapa?")
"Como eu faço para chegar em [lugar] de [meio de transporte]?" (por exemplo: "Como eu faço para chegar no Maracanã de ônibus?" ou: "Como eu faço para ir de bicicleta até o Flamengo?" ou: "Como eu vou de metrô até Copacabana?")
"A que distância fica [cidade, bairro, região ou lugar]?"
"Me mostre as atrações próximas daqui" (o Google mostrará lugares interessantes num raio de 5 quilômetros de onde você está)


"Contra quem o [time] vai jogar em seguida?" (mostra qual será o próximo jogo do time)
"Quanto foi o último jogo do [time]?"
"[nome de time ou de um jogador]" (isso fará com que o Google mostre informações básicas sobre um time ou jogador)
"Me mostre o trailer de [filme]"
"Me mostre um vídeo de [qualquer coisa]" (por exemplo: "Me mostre um vídeo de como se fabricam sapatos", "me mostre um vídeo de um casamento indiano", "me mostre um vídeo de alguém abrindo uma garrafa de cerveja com o suvaco". O Google pesquisará por vídeos disso no YouTube e mostrará os resultados mais relevantes)
"Toca música" (abre o seu aplicativo de música mais usado e inicia uma playlist aleatória)
"Toca [banda ou artista]" (às vezes não funciona com bandas ou artistas com nome em inglês)
"Programação do [nome do cinema]" (mostra os filmes e os horários que estão passando naquele cinema)
"Programação de [filme]" (mostra os horários e locais onde o filme está passando)

Dicas e truques:

"Me dê ideias de presente de [feriado ou data comemorativa]"
"What does the fox say?"
"Metrônomo" (ativa um metrônomo)
"O que é/ quais são os sintomas de [doença]?"
"Quantas calorias tem [quantidade] de [comida]?"
"Do a Barrel Roll"

Controle do smartphone:

"Tire uma foto"
"Ative a lanterna"
"Ligue o Wi-Fi/Bluetooth/NFC/GPS"
"Aumente/diminua o brilho da tela"
"Aumente/diminua o volume"
"Desative o som"


"Como se diz [frase] em [língua]?" (por exemplo: "Como se diz 'eu quero ir para casa' em inglês?" ou: "Como se diz 'onde fica o banheiro?' em japonês?")
"Que horas são em [cidade]?"
"Quanto vale [valor em uma moeda] em [outra moeda]?" (por exemplo: "Quanto dá 60 euros em reais?")

"Me mostre informações sobre meu voo" (se houver informações sobre seu voo no Gmail, o Google as lerá para você)

30 de jan. de 2017

Disputa Oracle versus Google vai a novo round e pode afetar o futuro do software

Disputa Oracle versus Google vai a novo round e pode afetar o futuro do software

Na sua opinião, faria sentido se um restaurante que tem em seu cardápio o item “hambúrguer” abrisse processo contra outros restaurantes que também vendem hambúrgueres? Ou uma fábrica que faz cabeças de martelo entre com uma ação contra outras que produzem peças do mesmo item?
Pois se essas analogias parecem tanto simplórias quanto óbvias, o caso Oracle v. Google, a respeito de patentes sobre a API do Java, pode te surpreender. Esses foram alguns dos argumentos e analogias feitas para contextualizar o que são APIs e reimplementações de software para um júri de leigos.
Um júri cuja decisão pode colocar em risco o futuro do desenvolvimento de software no mundo.

O quê, onde e por quê?

Em 2007, o Google lançou sua primeira versão do Android, com a reimplementação de partes  do código fonte da linguagem de programação Java. Essa linguagem é proprietária, e naquele momento, era de posse da Sun Microsystems.
Três anos de prosperidade e crescimento da plataforma Android depois, a Sun foi adquirida pela Oracle, e com isso, todos os direitos relacionados ao Java. Meses depois, foi aberto o processo da Oracle contra o Google, por infringimento de patentes das tecnologias Java.
Desde 2010 já foram tomadas três decisões judiciais nesse processo: primeiro, a favor do Google, e em seguida, da Oracle.  Em novo processo, aberto em maio de 2016, o Google ganhou novamente.
Essa terceira decisão foi feita há cerca de três meses, em maio. E neste mês, os advogados da Oracle voltaram a entrar com pedido para um novo julgamento. Será mais uma fase da batalha, que já tem até um novo capítulo marcado para o dia 22 de setembro: na data, será debatida a divulgação de informações financeiras confidenciais feita pela advogada da Oracle em janeiro – o Google quer que sejam aplicadas sansões à advogada.
Nesse meio tempo, a Oracle também toma medidas agressivas, como afirmar-se como uma das financiadoras do “The Google Transparency Project”, grupo que tem como objetivo investigar lobbies da gigante de buscas no governo americano.
O contexto do Processo
Trocando em miúdos, o processo original era por infringimento de patentes. A Oracle alegava que o Google havia utilizado a linguagem Java indevidamente, para criar o sistema Android, com base em lucro.
É claro que o Google não fez um Ctrl C, Ctrl V das APIs do Java, e colocou tudo dentro do Android. O que eles fizeram na criação do sistema  operacional foi reimplementar a API, usando uma forma semelhante, com protótipos parecidos para os métodos e uma lógica e estrutura geral que seguia a mesma linha.
Assim, a aceitação por parte de novos desenvolvedores da plataforma Android seria praticamente imediata: qualquer um que soubesse Java automaticamente saberia programar para Android também. A compatibilidade de ferramentas e recursos também seria facilitada.
Ainda mais: na época em que o Android começou a ser desenvolvido, o CEO da Sun Microsystems, Jonathan Shwartz, parabenizou o Google pelo Android, dizendo que era um grande passo para a comunidade, já que o Java era livre e gratuito para o uso. Isso ocorreu em 2007, anos antes de a Sun ser comprada pela Oracle.
Porém, somente alguns meses depois da aquisição, o processo foi aberto. No total, a Oracle afirmava que havia 37 diferentes infrações às APIs do Java, incluindo a estrutura e implementação do Java. Também estava evidente que a estratégia da Oracle em relação ao Java já era bem diferente da forma com que a Sun encarava sua linguagem.

A primeira decisão

Em 2012, o juri decidiu que APIs, por seu caráter altamente funcional, não poderiam ser alvo de patentes. A Lei de Patentes dos EUA (Copyright Act) indica que processos, métodos e sistemas de produção não podem ser patenteados, e as APIs alvo do processo se encaixariam nessa definição.
Nesse momento, chegamos à primeira grande dúvida e discussão aberta por todo esse processo: o que são APIs, do ponto de vista criativo, produtivo e, é claro, judicial? São métodos? São obras criativas, como é a arte?
Ou será que somente a estrutura e organização da API pode ser patenteada? Ou as APIs são como qualquer outro tipo de software, e devem ser protegidas contra cópias e pirataria?
Em particular, chega-se a um impasse, já que esse tipo de discussão ainda não avançou fortemente em praticamente nenhum tribunal do mundo.
Nos Estados Unidos, a maioria das decisões em casos anteriores, envolvendo disputas em torno de software, haviam sido tomadas com base no Copyright Act, encaixando o software (ou a cópia) em casos de plágio de obras criativas tradicionais, como se decide a respeito de cópias de obras de arte ou processos industriais.

A segunda decisão

Após a primeira decisão, houve apelação por parte da Oracle, no circuito Federal de Tribunais dos EUA, que decidiu a favor da Oracle com base na mesma lei. A prerrogativa usada foi que APIs são um trabalho de criação original, e que assim, a estrutura, sequência e organizaçãodesse tipo de software podem ser objeto de patente.
Essa decisão, tomada em maio de 2014, colocou o Google contra a parede, obrigando-os a usar a defesa do “Uso Justo” (Fair Use) como último recurso.
Dentro da legislação estadounidense, o Fair Use possibilita o uso criativo de trabalhos anteriores, desde que certas condições sejam satisfeitas. Por exemplo, um filme que faça paródia de outro, ou textos que contenham citações e trechos copiados (com a devida fonte, é claro).
Assim, o processo de patentes se transformou em um processo de Fair Use. Isso não apenas deixou a questão do infringimento das patentes no ar, como abriu uma discussão totalmente nova: a reimplementação de uma API é considerada uma cópia? Uma inspiração? Um novo trabalho criativo?
Nesse contexto, chegamos à terceira e final (por enquanto) dessa disputa judicial.

A terceira decisão

Uma nova disputa foi aberta, dessa vez com a tentativa de defesa do Google, baseada no Fair Use. Esse julgamento ocorreu esse ano, em maio. A Oracle procurava ressarcimento de 9 bilhões de dólares.
Esse novo julgamento deixou tudo ainda mais confuso. A política de Fair Use dificilmente seria adequada para um debate sobre software, ainda mais um software de interface de linguagem de programação, como foi o caso.
O julgamento mostrou muita criatividade dos advogados que apelaram para descrições e analogias como as que coloquei na Introdução. A defesa do Google se sustentou sobre exemplos cotidianos, como o mesmo nome para pratos em diferentes restaurantes, o que também acontece nas duas implementações da API Java.
Por exemplo, a biblioteca java.security existe tanto na implementação do Android quanto da Oracle, e mostra ao desenvolvedor que ele irá encontrar métodos para proteger e transferir dados de forma segura.
Nessa lógica, um processo sobre uma API faria tanto sentido quanto uma empresa que produz parafusos processar outra que esteja lucrando com a venda de uma máquina montada com esses parafusos.
Afinal, eles têm forma de parafuso e função de parafuso, porque são parafusos.
Não é o mesmo código, não são idênticos, mas têm forma e função parecidos, porque é assim que deveria ser. Com essa argumentação, o Google procurou mostrar que estava usando o conceito de Fair Use para gerar novas criações.
Juridicamente, a decisão sobre algo ser coberto pelo Fair Use recai sobre certos questionamentos, que envolvem tanto o trabalho criado originalmente quanto o modificado. Por exemplo:
  • Quão grande foi a modificação do trabalho original?
  • O trabalho original foi impactado em seu mercado ou oportunidades geradas para seus criadores?
  • A cópia teve fins comerciais?
Aplicar o Fair Use é afirmar que o material em questão é protegido por copyright, mas que seu uso não autorizado serve a uma necessidade pública maior.
O problema é que aplicar esse conceito a APIs não é uma das melhores ideias, porque APIs são elementos funcionais: mesmo após implementadas, se não estão sendo usadas, não servem para nada, mesmo que o sistema por trás (o Java, no caso) esteja em funcionamento.
Sendo assim, o Fair Use, criado para proteção de trabalhos criativos sobre cópias não autorizadas não se encaixa bem, porque APIs são essencialmente funcionais.
Mas como as APIs do processo já haviam sido declaradas patenteáveis (e houve código patenteado parcialmente copiado pelo Google) em 2012, essa era a única forma de defesa das acusações da Oracle.
Em 26 de maio de 2016, o juri responsável pela decisão deu ganho de causa para o Google, já que sua reimplementação servia ao caso de Fair Use.
E é claro, a Oracle pretende apelar, como já fez após a primeira decisão.

E por que devo me importar com isso?

A vitória da Oracle poderia abrir precedentes para casos bastante complicados no mundo do TI. E isso poderia afetar de forma imprevisível toda a economia mundial.
Afinal de contas, reimplementações de APIs são comuns desde que APIs existem. A própria Oracle já lançou mão dessa estratégia de engenharia de software, tendo produtos com reimplementações do SQL (linguagem para buscas em bancos de dados), vindas de código originalmente criado pela IBM.
Até as  próprias APIs do Java, criadas pela Oracle, são reimplementações de linguagens de programação como Perl 5 e C.
Irônico, não?
O resultado favorável à Oracle poderia dar o poder de limitar, através de processos judiciais, diversas startups e projetos open source, com a liberdade de derrubar tais projetos.
Há vários outros exemplos, que foram usados pelo Google em sua defesa, para indicar que essa é uma prática comum e recorrente no mercado, e que sua proibição seria uma quebra de paradigmas nunca antes vista, colocando em risco toda a estrutura de TI conhecido.
Se reimplementações são infrações às patentes de APIs, toda a indústria de tecnologia e API passará a ter as mãos sujas. Dificilmente os grandes negócios sobreviveriam.
A inovação possivelmente seria interrompida ou teria sua velocidade fortemente reduzida, no que envolve diferentes implementações e integrações entre software.
Startups e projetos de código aberto provavelmente não teriam a inércia necessária para saírem do papel.
O futuro do software e de muito da economia pode depender disso. No primeiro julgamento no circuito Federal de Tribunais, a decisão foi a favor da Oracle. E agora?
Só o futuro dirá. Mas por ora, é bem possível que a relevância de Java no cenário de desenvolvimento diminua, e já vemos alguma movimentação em direção a outras linguagens, sendo o Node.js uma delas.
Outra tendência é que as APIs tenham seus termos de uso e condições jurídicas bem esclarecidas. Já falamos sobre isso no post do blog da Sensedia: Blocos de Construção para Exposição de APIs.
Antes a dúvida pairava somente se o fornecedor da API poderia mudar a interface dela sem avisar, causando uma quebra do seu código. Agora, é necessário também avaliar mais cuidadosamente se você realmente pode usar essa API, sob quais regras e para qual finalidade.
Autor: Luiz Piovesana
Publicado em TI Especialistas