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

SpaceX anuncia primeira missão tripulada ao espaço só com "pessoas comuns"

Em simulação da Nasa e da SpaceX, Crew Dragon se acopla à Estação Espacial Internacional - Nasa
Em simulação da Nasa e da SpaceX, Crew Dragon se acopla à Estação Espacial Internacional Imagem: Nasa

Lucas Carvalho

De Tilt, em São Paulo

01/02/2021 20h24Atualizada em 02/02/2021 08h42

A SpaceX, do bilionário Elon Musk, anunciou nesta segunda-feira (1) planos para realizar ainda em 2021 a primeira missão tripulada ao espaço só com civis —isto é, sem militares, astronautas de carreira ou servidores de agências espaciais governamentais a bordo da nave espacial.

A missão, batizada de Inspiration4, é comandada e bancada por Jared Isaacman, o bilionário de 37 anos que fundou a Shift4 Payments, e que vai selecionar, junto com a SpaceX, três pessoas para acompanhá-lo em uma volta até a órbita da Terra na cápsula Crew Dragon no final deste ano.

O empresário, que também tem formação como piloto, bancou a missão em solidariedade ao Hospital St. Jude Children's Research, nos Estados Unidos, que trata crianças com doenças graves de graça. Um dos ageiros na viagem ao espaço será um funcionário do centro médico que não teve a identidade divulgada.

Um segundo assento será dado a um cidadão comum numa rifa com o objetivo de arrematar US$ 200 milhões em doações ao hospital St. Jude. Não é preciso fazer uma doação para concorrer, mas cada dólar doado ao centro médico é convertido em 10 entradas na rifa, limitado a 10 mil entradas.

Outro assento na Crew Dragon será dado a um empreendedor que vencer um concurso da Shift4, a empresa de Isaacman, e que adquirir um dos planos de comércio online vendido pela companhia. Nesse concurso, será premiada a "melhor história de liderança". O bilionário, porém, diz que está procurando pequenos empresários, e não super ricos como ele.

O último assento na nave vai para o próprio Isaacman, que será o piloto. As inscrições terminam no dia 28 fevereiro.

O lançamento deve ocorrer no último trimestre de 2021, a partir do Kennedy Space Center, na Flórida, com um foguete Falcon 9, também da SpaceX.

A cápsula vai voar até a órbita da Terra, onde ficará por três ou quatro dias —o tempo exato ainda não foi definido. Mas a tripulação não vai ficar lá só curtindo a microgravidade. A SpaceX diz que os civis serão treinados para conduzir alguns experimentos enquanto estiverem vendo a Terra do espaço.

Isaacman, que diz ter doado do próprio bolso US$ 200 milhões ao Hospital St. Jude como pontapé inicial da campanha, não revela quanto pagou pela viagem ao espaço. Mas três pessoas já pagaram US$ 55 milhões cada uma por um eio turístico à Estação Espacial Internacional, pegando carona num foguete da SpaceX, numa missão a ser realizada em 2022.