;(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

O teletransporte já existe! Só não é tão legal quanto nos filmes...

Isso é tão Black Mirror: Dentro da física quântica, o teletransporte já rolou; mas não é como em Star Trek, infelizmente - Marcel Lisboa/UOL
Isso é tão Black Mirror: Dentro da física quântica, o teletransporte já rolou; mas não é como em Star Trek, infelizmente Imagem: Marcel Lisboa/UOL

João Paulo Vicente

Colaboração para Tilt, em São Paulo

06/09/2019 04h00

Sem tempo, irmão

  • Cientistas conseguiram teletransportar operação lógica quântica entre dois íons distantes
  • Ato é bem distante do imaginário comum sobre teletransporte, mas fascinou pesquisadores
  • Experimentos podem, futuramente, viabilizar a construção de computadores quânticos

Se você sempre sonhou em teletransportar-se, temos boas notícias. Um pequeno o para a humanidade acaba de ser dado. Tá, é um microo. Talvez um nanoo... mas não vamos perder as esperanças.

Um grupo de cientistas do Instituto Nacional de Padrões e Tecnologias (NIST) dos Estados Unidos conseguiu no final de maio um feito inédito: teletransportar uma pequena operação lógica quântica entre dois íons distantes. Você parou de ler depois de teletransportar, certo? Calma que eu te explico.

Trata-se de algo bastante diferente e muito distante do tal sumir em um lugar e reaparecer em outro, como na ficção científica. Ainda assim, é um ótimo exemplo de como de pouquinho em pouquinho a ciência alcança feitos fascinantes.

Dentro da física quântica, o teletransporte já rolou. Foi observado e comprovado dezenas de vezes desde a década de 90 por uma propriedade chamada de entrelaçamento ou emaranhamento (entanglement, em inglês): quando duas partículas estão entrelaçadas, mimetizam o comportamento uma da outra, independentemente da distância entre elas.

Há algumas maneiras de se entrelaçar duas partículas. Em um exemplo bastante simplificado, uma delas é disparar um feixe de luz com essas partículas por um tipo específico de cristal. Quando elas atravessam, estarão emaranhadas. Em geral, estudos com teletransporte quântico vão alguns os além disso.

Para se ter uma ideia, um experimento de 2017 conseguiu teletransportar um fóton (menor partícula que compõe raios eletromagnéticos) de um instituto de pesquisa no Tibete para um satélite 1.400 km distante da Terra.

Ok, isso não é exatamente como na ficção científica...

Não tem matéria, só é feito o transporte de informação. O termo teletransporte é usado corretamente, afinal há o transporte de um ponto a outro sem qualquer interação entre esses dois sistemas. Mas está longe, muito longe de qualquer coisa parecida com Jornada nas Estrelas
Hilma Vasconcelos, professora do Departamento de Engenharia de Teleinformática da Universidade Federal do Ceará (UFC), que participou do estudo

O lance é que a pesquisa mais recente, publicada na revista Science, deu um o além e conseguiu transferir mais que uma informação.

O experimento envolveu dois íons (átomo eletricamente carregado) de magnésio e dois íons de berílio. As partículas de magnésio foram entrelaçadas, e uma delas foi forçada a interagir com um dos íons de berílio. A interação feita no primeiro berílio ocorreu também no segundo, sem que eles tivessem qualquer contato um com outro.

"Então os dois íons emaranhados entre si agiram, digamos, como mediadores, e daí vem o teletransporte não só de uma informação quântica, mas de sistemas. Dessa vez, foi feita uma operação lógica chamada C-NOT Gate", diz a professora.

Mas para o que servem estes experimentos? Para viabilizar a construção de computadores quânticos, capazes de um processamento milhares de vezes superior à computação tradicional a que estamos acostumados. Grosso modo, isso se deve ao fato de que enquanto um bit normal corresponde a uma informação (0 ou 1), cada bit quântico (qubit) é 0 e 1 ao mesmo tempo.

No caso da experiência, cada íon de berílio se comportou como um desses qubits. Um computador quântico, por sua vez, precisaria de milhões de bits e fazer com que eles se comunicassem por teletransporte reduziria a necessidade de conexões mecânicas em larga escala.

Talvez não dê um bom filme de ficção científica, mas pode mudar a maneira como entendemos a inteligência artificial, por exemplo, daqui há algumas décadas.

Tá. Mas e eu? Quando me teletransporto?

Bom, nunca. Os descendentes, quem sabe. Na realidade, vislumbrar teletransportes de matéria ainda está num campo bastante especulativo em relação ao teletransporte quântico de informações.

Uma das possibilidades seria transformar uma pessoa em informação, enviar essa informação para outro local, e reconstruí-la com uma espécie de impressora 3D biológico, o que não é uma má ideia.

Em 2013, um grupo de estudantes da Universidade de Leicester, na Inglaterra, calculou que todas as células humanas seriam o equivalente a 2,6 elevado a 42 bits, ou seja 2,6 seguido de 42 zeros. Com uma internet de velocidade média, essa quantidade de dados levaria por baixo um pouquinho menos de 5 milhões de anos para ser transmitida.

Mesmo assim, um cientista americano chamado Michio Kaku insiste que em um séculos teremos descoberto uma maneira de nos teletransportar. A internet só precisa dar uma aceleradinha.

Como o computador quântico vai solucionar problemões

Leia mais

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

As invenções recentes