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

Nasa cria cápsula do tempo com mensagem de famosos para futuros terráqueos

Lucy terá como missão estudar asteroides que orbitam Júpiter - Divulgação / Nasa
Lucy terá como missão estudar asteroides que orbitam Júpiter Imagem: Divulgação / Nasa

Colaboração para o UOL, em Santos

14/07/2021 12h19

Engenheiros da Nasa instalaram uma cápsula do tempo na espaçonave Lucy, no final da semana ada, com o objetivo de permitir que terráqueos possam, no futuro, recuperar e interpretar as mensagens que ela carrega.

A cápsula do tempo é uma placa que inclui mensagens de ganhadores do Prêmio Nobel, poetas laureados e músicos, entre outras personalidades, bem como uma representação da configuração do sistema solar em 16 de outubro de 2021, data prevista para o lançamento da espaçonave.

Como as sondas Pioneer e Voyager, Lucy levará uma mensagem para quem puder, no futuro, interceptar a nave. Mas, embora as sondas anteriores tenham mensagens destinadas a alienígenas, já que foram lançadas em direção ao espaço interestelar, Lucy permanecerá dentro do sistema solar.

Sua cápsula do tempo foi criada para que os futuros humanos possam recuperá-la, segundo explicou a NASA.

A placa foi instalada na Lucy no Colorado (EUA) em 9 de julho, onde a nave está ando pelos preparativos finais antes de seu lançamento em outubro.

A placa inclui citações do líder dos direitos civis Martin Luther King Jr; autores e poetas como Orhan Pamuk, Louise Glück, Amanda Gorman, Joy Harjo e Rita Dove; cientistas como Albert Einstein e Carl Sagan; e músicos, incluindo os integrantes dos Beatles e do Queen. As mensagens discutem esperança, amor, o céu, memória cultural e eternidade. Uma lista completa pode ser encontrada no site da NASA, com detalhes sobre a missão.

A missão de Lucy se concentra nos asteroides troianos, um grupo de rochas espaciais que orbitam o Sol além do anel do cinturão de asteroides, que se revezam na órbita de Júpiter ou seguem o gigante gasoso em sua própria órbita solar.

Os asteroides troianos são aqueles que compartilham uma órbita com um planeta e muitas vezes são subprodutos da formação desse planeta, mas o termo mais comumente se aplica àqueles envolvidos com Júpiter.

O planeta gasoso tem uma falange de troianos, mas Lucy (batizada com o nome do fóssil do hominídeo que recebeu o nome da música dos Beatles Lucy in the Sky with Diamonds), tem como alvo apenas sete deles para sobrevoos ao longo de 12 anos.

Os asteroides são intrigantes porque, na opinião de cientistas, eles se formaram no início do sistema solar. Assim como o fóssil Lucy ajudou os paleoantropólogos a entender a evolução humana, a esperança é que a espaçonave Lucy informe a NASA sobre a evolução do sistema solar.