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

Prevista para ir a Marte, nave Starship da SpaceX explode em teste de novo

Explosão de voo de teste da Starship, da SpaceX - Reprodução
Explosão de voo de teste da Starship, da SpaceX Imagem: Reprodução

Marcella Duarte

Colaboração para Tilt

03/02/2021 11h33

Mais um teste da nave Starship, da SpaceX de Elon Musk, deu errado. O protótipo SN9 explodiu na tarde desta terça-feira (2), após cair durante um teste de voo. Algo bem parecido aconteceu com o SN8, em dezembro.

A nave de aço decolou da base da Starship em Boca Chica, no Texas (EUA), às 17h30 (horário de Brasília). O lançamento correu bem, e os motores foram diminuindo com sucesso até a nave atingir uma altitude de 10 quilômetros. Algumas manobras foram realizadas, incluindo um giro na posição horizontal ("belly flop"), que ajuda na redução da velocidade de reentrada.

Quando foi retornar à posição vertical, para iniciar os procedimentos de pouso, os problemas começaram. Ainda não há um diagnóstico mas, pelo que vemos no vídeo, a nave desceu muito rápido e em um ângulo abrupto. Ela atingiu o chão bruscamente e explodiu em uma enorme bola de fogo, com chamas laranja e uma nuvem de fumaça.

Tudo foi transmitido ao vivo. "Mais uma vez tivemos um ótimo voo", disse um funcionário da SpaceX durante a transmissão. "Só temos de trabalhar um pouquinho neste pouso."

Não havia tripulantes e o fogo não se espalhou em solo; ninguém ficou ferido.

Starship

A Starship é a nave gigante e reutilizável em que Elon Musk pretende levar pessoas ao planeta Marte. Ela terá 120 metros de altura, e deve carregar até 100 ageiros e 100 toneladas de carga.

A SN9 é praticamente igual à sua antecessora, SN8, que também foi destruída no pouso de seu primeiro voo. A pressão insuficiente em um dos tanques de combustível causou falha nos propulsores, que não conseguiram segurar a descida da nave. Assim como o que ocorreu nesta terça, ela explodiu ao tocar o solo.

Os atuais protótipos ainda são em tamanho reduzido, mas já têm o design oficial, com as pequenas asas e o nariz característico. A Starship SN10 já está na base de lançamentos para os próximos testes —até esta semana, duas naves estavam "estacionadas" lá.

O grande plano do bilionário é criar uma frota de 1.000 Starships nas próximas décadas, para viagens espaciais de ageiros e astronautas pelo Sistema Solar. Ele estima que, até 2024, a nave irá pousar na Lua —mas ainda não há previsão de testes em órbita.

Até 2050, Musk quer construir uma cidade para um milhão de pessoas no Planeta Vermelho. "Precisamos melhorar nossa taxa de inovação ou, com base nas tendências anteriores, com certeza estarei morto antes de Marte", disse em uma conferência no ano ado.