;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Fim do pen drive? Futuro em que DNA guardará arquivos digitais está próximo

Seus textos no Word pode virar tiras de DNA, e isso não está tão longe quanto parece - iStock
Seus textos no Word pode virar tiras de DNA, e isso não está tão longe quanto parece Imagem: iStock

Helton Simões Gomes

Do UOL, em São Paulo

14/05/2019 04h00Atualizada em 21/05/2019 12h26

Resumo da notícia

  • A produção de dados digitais já é maior que a capacidade de guardá-los
  • Por que não resolver o problema guardando dados no DNA?
  • Afinal, ele é denso (guarda muita informação) e ocupa pouco espaço
  • A ideia parece maluca, mas já está bastante avançada
  • Foi criada uma máquina capaz de inscrever dados no DNA e recuperá-los

Onde você guardaria suas músicas se não houvessem CDs ou fitas K7? Okay, isso soou coisa de tio. Já que os tempos são outros, essas canções devem estar no seu celular ou nos servidores por trás da nuvem da qual você é cliente. Ainda assim, elas estão armazenadas em algum lugar. Só que, lamento informar, o ser humano já produz muito mais dados do que é possível armazenar.

Agora que você sabe disso, o que vai fazer? Apagar as faixas de gravações caseiras dos Los Hermanos? Deletar o álbum remasterizado do Roberto Carlos? Não né. O problema é maior. Tão maior que a saída encontrada é coisa de filme: colocar dados digitais no DNA -- afinal se esse código possui instruções para seres vivos altamente complexos se desenvolverem, por que não guardaria alguns bits?

É no que acredita a Microsoft, que aposta em outras características do DNA que a gente não aprende na escola. Só que o que tinha cara de ficção científica há alguns anos está perto de virar realidade, porque uma máquina capaz inscrever dados no DNA e lê-los automaticamente acabou de ganhar vida.

O problema

Black Mirror: quão distante estamos do futuro da série tecno-paranoica?

As invenções recentes

Guardar todas as informações digitais produzidas não é um algo complicado. As mídias ópticas ou magnéticas de que dispomos dariam conta. O problema é que elas ocupam espaço -- e, no ritmo em que estamos, vamos precisar de muito espaço. Nossa produção, hoje na casa dos 33 zettabytes, vai chegar a 175 zettabytes em 2025, segundo a Seagate, empresa que cria tecnologias de armazenamento. É aí que entra o DNA.

Diante do ime, a Microsoft começou a estudar em 2015 como incluir dado neles. O motivo? Ele é bastante denso: em um milímetro cúbico cabem um exabyte. Isso é capacidade suficiente para guardar aproximadamente o conteúdo de 2 milhões de iPhones XR, de 512 GB.

As possibilidades no futuro são enormes, já que não estamos falando apenas sobre músicas, mas sobre qualquer coisa que pode ser transformada em arquivo digital, como filmes, séries, livros e aplicativos.

A Microsoft está vendo essa iminente crise de não conseguir guardar informação e por isso estamos investindo em uma tecnologia que pode revolucionar o jeito de pensamos o armazenamento de dados
Doug Carmean, arquiteto de processamento de dados da Microsoft

Quatro anos depois do pontapé inicial das pesquisas, a Microsoft e pesquisadores da Universidade de Washington descreveram em um artigo publicado no "Nature Scientific Reports" em março como funciona a primeira máquina a realizar sozinha todo o trabalho.

Mas, antes de explicar como a geringonça funciona, é bom ter mente duas coisas.

Primeiro, o DNA. Ele é um composto orgânico formando por moléculas menores, chamadas de bases nitrogenadas. Elas recebem os nomes de adenina, citosina, guanina e timina, e são identificadas, respectivamente, pelas letras A, C, G e T. É o encadeamento delas que constitui as informações genéticas que irão definir características físicas dos seres vivos, da cor dos olhos ao número de patas.

A grosso modo, a primeira etapa máquina da Microsoft é converter os arquivos digitais nessas letras. Isso nos traz ao segundo ponto, a linguagem binária na qual todos esses arquivos são escritos. Essa é uma forma de codificar informações em 0s e 1s.

A solução

Hospital do futuro terá inteligência artificial e muitos dados

Leia mais

O DNA usado na experiência é sintético, ou seja, feito em laboratório - não vai ser dessa vez que você poderá guardar a sua música favorita em um fio de cabelo. Até colocar a máquina para funcionar, os cientistas superaram diversos desafios. Um deles foi a inclusão de arquivos digitais grandes em uma sequência de DNA. Chegaram a uma carga de 1 Gigabyte.

A construção da máquina é o o mais ousado, porque até agora todo processo era feito manualmente e necessitava de mão de obra altamente especializada. Agora, tudo isso é feito automaticamente, seguindo os seguintes os:

  • os dados têm de ser transformados de 0s e 1s em As, Cs, Ts e Gs (isso é feito por um software)
  • as bases que carregam as informações digitais são sintetizadas em moléculas de DNA
  • o DNA sintético é guardado em um recipiente, o que encerra o processo de inscrição
  • quando alguém quer ler os dados digitais presentes, o DNA armazenado é transformado em bases genéticas por um sequenciador de DNA
  • o software decodificador lê pequenos trechos da base e transforma dado genético em código binário. Nesse processo, já corrige qualquer erro
  • essa decodificação extrai o arquivo original, mas o processo só é considerado correto se o software encontrar um código verificador.
DNA - Divulgação/Microsoft - Divulgação/Microsoft
Máquina que inscreve dados digitais em DNA sintético e é capaz de lê-los no código genético
Imagem: Divulgação/Microsoft

O aparelho responsável por tudo isso custa US$ 10 mil, segundo descreveram os acadêmicos Christopher Takahashi e Luis Ceze e os pesquisadores Bichler Nguyen e Karin Strauss, da Microsoft.

Apesar de ser um avanço, o maquinário ainda é rudimentar e não a de uma prova de conceito. Sua potência não é lá essas coisas -- foi capaz de extrair pouca informação. No experimento descrito, os cientistas converteram em DNA um arquivo que guardava uma única palavra - "HELLO" (olá, em inglês), que equivalia a cinco bytes (ou 01001000, 01000101, 01001100, 01001100, 01001111 em bits).

Conheça Rico Malvar, o brasileiro que fala com máquinas e lidera inovação na Microsoft

Leia mais

Mas nem isso foi fácil. A sequência de DNA testada possuía muito mais informação a ser extraída. O sequenciador de DNA conseguiu 3.469 leituras, das quais 1.973 possuíam uma sequência com elementos que podiam ser decodificados em código binário pelo software. Dessas quase 2.000 amostras, no entanto, só 30 possuíam, de fato, áreas que abrigavam algum arquivo digital - ou seja, todo o resto eram falsos positivos. Dessas três dezenas, apenas uma sequência pode ser totalmente recuperada sem ter alguma informação corrompida - foi justamente a do "hello".

Agilidade também não é uma característica da máquina. Todo o processo durou 21 horas, desde criar tiras de DNA com informação embutida até processá-las para traduzir a mensagem. A maior parte desse tempo foi consumido por reações químicas, necessárias para inscrever os dados no DNA e para preparar as bases genéticas a serem sequenciadas.

Ainda que os desafios a serem superados sejam muitos, a Microsoft já planeja usar essa nova tecnologia para guardar dados. Mas não espere um pen drive feito de DNA nos próximos anos. A empresa pretende aplicar essa inovação em plataformas de computação em nuvem - afinal, ela é dona do Azure.

O nosso objetivo principal é colocar em produção um sistema que, para o usuário final, pareça muito com qualquer outro serviço de armazenamento na nuvem -- bits são mandados para um datacenter e armazenados lá e, quando os consumidores os querem, eles apenas aparecem. Para fazer isso, nós precisamos provar que isso é prático do ponto de vista da automação
Karin Strauss, pesquisadora da Microsoft

Ainda há um longo caminho até que seus textos no Word ou suas planilhas no Excel sejam guardados em tiras de DNA, mas talvez isso não esteja tão longe. Afinal de contas, há quatro anos, o DNA não era nem de longe um concorrente mesmo que distante de um HD externo.