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

Físico propõe roubar energia da órbita de Júpiter para 'salvar a Terra'

Roubar energia da órbita de Júpiter seria a única salvação da Terra daqui a 1 bilhão de anos, de acordo com físico - Reprodução/Nasa/ESA/Goddard Space Flight Center/University of California
Roubar energia da órbita de Júpiter seria a única salvação da Terra daqui a 1 bilhão de anos, de acordo com físico Imagem: Reprodução/Nasa/ESA/Goddard Space Flight Center/University of California

Colaboração para o UOL, em Santos

20/08/2021 13h15Atualizada em 20/08/2021 13h17

A Terra vai se incendiar, a menos que os humanos consigam roubar energia da órbita de Júpiter. Pelo menos é no que acredita um ex-cientista da Nasa, David Holz, que tornou público um plano audacioso para evitar a destruição da Terra daqui a 1 bilhão de anos, quando, em seu caminho natural como estrela, o Sol se expandir e multiplicar seu tamanho.

Físico e empresário, Holz disse que devemos "roubar" energia da órbita de Júpiter usando um asteroide gigante para aumentar a órbita da Terra. Isso expandiria nossa distância do Sol e preservaria a existência da humanidade por "pelo menos" mais 5 bilhões de anos, disse ele.

Holz itiu que sua ideia precisa primeiro de uma boa quantidade de melhorias tecnológicas.

Ele publicou no Twitter capturas de tela de um novo artigo acadêmico publicado por professores da NASA, da Universidade da Califórnia e da Universidade de Michigan, intitulado "Engenharia astronômica: uma estratégia para modificar órbitas planetárias".

"A Terra queimará em um bilhão de anos, quando o sol se expandir. A menos que roubemos energia de Júpiter para expandir gradualmente a órbita da Terra", explica o físico em um dos posts.

"Podemos fazer isso desviando um grande asteroide (0,01% do tamanho da Lua) para ar entre a Terra e Júpiter a cada 6.000 anos", acrescentou ele.

Isso significa que o processo deve ser repetido a cada 6.000 anos para impedir que a Terra se aproxime do Sol novamente - e seja incinerada. Nesse ponto no futuro - cerca de um bilhão de anos a partir de agora - o Sol estará muito quente e a Terra muito vulnerável para a humanidade sobreviver à sua distância atual.

Quando um cético perguntou a David se esse era um plano realista, sua resposta foi clara. "Nós sabemos como fazer. É apenas uma questão de dimensionar a tecnologia ao tamanho do asteroide. No momento, não temos infraestrutura no espaço para formar um asteroide tão grande, mas está dentro do escopo de nossa capacidade como espécie".