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

'Perseverance' é o nome do próximo veículo da Nasa a explorar Marte

Como os veículos anteriores, Perseverance foi batizado no final de uma competição nacional organizada entre escolas - AFP Photo/NASA
Como os veículos anteriores, Perseverance foi batizado no final de uma competição nacional organizada entre escolas Imagem: AFP Photo/NASA

Da AFP, em Washington

05/03/2020 20h49

A Nasa apresentou nesta quinta-feira (5) o nome do seu próximo veículo de exploração espacial que levará a Marte: Perseverance.

Ele será o quinto veículo exploratório no planeta vermelho e estará equipado com os mesmos pneus que o Sojouner (que chegou a Marte em 1997), Spirit e Opportunity (2004), assim como a Curiosity, que explora o planeta desde 2012.

Seu nome foi anunciado em uma escola em Burke, no estado americano da Virgínia, onde o estudante que escolheu o seu nome foi parabenizado.

"A proposta de Alez captou o espírito de exploração", disse o cientista chefe da Nasa, Thomas Zurbuchen. "Assim como qualquer missão exploratória do ado, Perseverance enfrentará desafios e fará descobertas excepcionais", completou.

Como os veículos anteriores, Perseverance foi batizado no final de uma competição nacional organizada entre escolas. Dos 155 nomes que chegaram às semifinais, escolhidos por quase 4.700 jurados voluntários, como professores e fanáticos pelo espaço, nove foram disponibilizados para a votação pública no site da Nasa.

Além de ter tido a honra de que sua sugestão tenha saído vitoriosa, o jovem foi convidado a ir junto com a família para Cabo Canaveral, na Flórida, para assistir o lançamento programado entre 17 de junho e 5 de agosto.

A chegada da Perseverance a Marte está prevista para fevereiro de 2021, em uma cratera chamada chamada Jezero. A missão tem dois objetivos principais: buscar rastros de vida ada e coletar amostras que serão seladas hermeticamente em tubos dentro do veículo.

"Perseverance" tem o tamanho de um carro (três metros de comprimento por 2,7 metros de largura) e seis rodas, para permitir subir e descer nas rochas.

Equipado com um pequeno reator nuclear que lhe disponibilizará energia, Perseverance tem um braço articulado de 2,2 metros de comprimento e uma furadeira para pulverizar triturar amostras das rochas.

SIGA TILT NAS REDES SOCIAIS