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

Starship aterrissa com sucesso após 4 tentativas frustradas; veja imagens

Lançamento de foguete Starship da SpaceX - SpaceX/Divulgação
Lançamento de foguete Starship da SpaceX Imagem: SpaceX/Divulgação

De Tilt, em São Paulo*

06/05/2021 15h42

A SpaceX aterrissou com sucesso seu foguete Starship em sua quinta tentativa, como mostrou a transmissão ao vivo da empresa americana do momento nesta quarta-feira (5).

O foguete, nomeado de SN15, foi lançado na base de Boca Chica, no sul do Texas, por volta das 17h25 locais (19h25 de Brasília), antes de alcançar os 10 km de altitude e realizar uma série de manobras de voo.

O voo de testes bem-sucedido durou apenas cinco minutos, mas representou uma grande vitória para a companhia de Elon Musk após as últimas quatro tentativas terminarem em explosões.

Confira o vídeo do lançamento:

"Aterrissagem da nave nominal", tuitou Musk. "Nominal" significa normal nos termos dos voos espaciais.

Starship landing nominal!

-- Elon Musk (@elonmusk) May 5, 2021

O teste não foi totalmente perfeito, pois houve um pequeno incêndio na base do foguete de 50 metros de altura pouco após o pouso.

O locutor da SpaceX John Insprucker explicou que isto "não é incomum com o combustível de metano" usado pelo foguete e acrescentou que os engenheiros ainda estavam resolvendo problemas de projeto.

Funcionários da empresa apagaram rapidamente as chamas com um canhão d'água, segundo foi mostrado nas imagens.

O teste acontece pouco mais de um mês depois que o protótipo SN11 explodiu durante o voo, também em Boca Chica. Em 30 de março, o foguete foi lançado e explodiu cinco minutos depois, na descida, deixando um rastro de destroços nas instalações da SpaceX.

Além do S11, 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.

O SN5 e o 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.

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.

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.

* Com informações da AFP

Errata: este conteúdo foi atualizado
Em uma versão anterior do texto, foi colocada uma foto que não era do foguete Starship, e sim de um foguete da missão Starlink. O erro já foi corrigido.