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

Foguete da SpaceX que vai a Marte explode em teste; veja últimas imagens

Protótipo SN11 conseguiu decolar e voar, mas sofreu uma falha durante a descida - SpaceX/Divulgação
Protótipo SN11 conseguiu decolar e voar, mas sofreu uma falha durante a descida Imagem: SpaceX/Divulgação

Marcella Duarte

Colaboração para Tilt

30/03/2021 15h46Atualizada em 30/03/2021 19h54

Mais uma nave Starship, da empresa de exploração espacial SpaceX, chefiada por Elon Musk, explodiu em um teste de voo. Já é a quarta vez que isso acontece. O protótipo SN11 conseguiu decolar e voar nesta terça-feira (30), mas sofreu uma falha catastrófica durante a descida.

A SpaceX transmitiu ao vivo o procedimento, realizado na base da Starship em Boca Chica, nos EUA. Porém, aos 5 minutos e 49 segundos do teste, a imagem da câmera na parte de baixo da nave congelou, e a transmissão foi interrompida pouco tempo depois, sem maiores explicações.

Mas, no vídeo abaixo, do canal Nasa Spaceflight, é possível acompanhar os momentos finais do SN11. Dá para ver o vulto da nave e ouvir uma forte explosão, acompanhada por uma chuva de destroços. Porém, a neblina na região e a fumaça dos motores não nos permitem ver claramente.

O lançamento correu bem, e a nave atingiu uma altitude de cerca de 10 quilômetros. Foram realizadas algumas manobras e testes dos sistemas autônomos. Depois, os motores foram diminuindo para voltar ao solo. Na hora que um deles foi reacendido para preparar a posição de pouso, algo deu errado e a Starship entortou e caiu sobre a própria base.

Não havia tripulantes e fogo não se espalhou em solo; não há relatos de ninguém ferido pelos destroços. Os protótipos SN8, SN9 e SN10 também explodiram em testes de voo de altitude, nos últimos meses, por diferentes falhas. Alguns deles renderam impressionantes imagens da nave em chamas.

Apenas o SN5 e SN6, que ainda eram versões miniatura, sobreviveram a pequenos saltos de 150 metros de altura. O SN7 foi destruído propositalmente em um teste de pressurização.

Starship

A Starship é a reluzente nave de aço, gigante e reutilizável com a qual Elon Musk pretende colonizar Marte. Com 55 metros de altura, poderá carregar até 100 ageiros e 100 toneladas de carga. Ela será lançada pelo também enorme e reutilizável foguete Super Heavy.

Após as explosões, a SpaceX iniciará a próxima etapa do desenvolvimento da nave. Os próximos testes acontecem com os protótipos SN15, SN16 e SN17 - SN12, SN13 e SN14 foram cancelados antes mesmo de serem completamente construídos.

A Starship tem motores poderosos, para conseguir voltar à Terra e até voar sozinha entre a Lua e Marte - mas precisa do super foguete para conseguir sair de nosso planeta. O primeiro protótipo do Super Heavy, chamado BN1, também deve ser testado nas próximas semanas.

Os primeiros testes orbitais do sistema com o Super Heavy e a Starship estão previstos para julho deste ano. Mas cumprir esse cronograma já parece impossível, visto o ritmo do desenvolvimento e as falhas nos testes da Starship, que computa sua quarta explosão.

Até 2050, Musk quer construir uma cidade para um milhão de pessoas em Marte. "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.

A ambiciosa meta do bilionário é, até 2024, pousar na Lua. Depois, criar uma frota de 1.000 Starships nas próximas décadas, para viagens espaciais de ageiros e astronautas pelo Sistema Solar.