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

Por que a China reclamou de Elon Musk à ONU por risco de tragédia

Dono da SpaceX foi alvo de intensas críticas nas redes sociais chinesas depois que estação espacial do país teve dois "encontros imediatos" com os satélites Starlink neste ano, afirmou Pequim - Getty Images
Dono da SpaceX foi alvo de intensas críticas nas redes sociais chinesas depois que estação espacial do país teve dois "encontros imediatos" com os satélites Starlink neste ano, afirmou Pequim Imagem: Getty Images

28/12/2021 11h18Atualizada em 30/12/2021 12h02

O sul-africano Elon Musk, dono da Tesla e homem mais rico do mundo, foi alvo de intensas críticas nas redes sociais chinesas, depois que a China reclamou que a sua estação espacial foi forçada a evitar colisões com satélites lançados pelo projeto do bilionário, Starlink Internet Services.

A estação espacial do país teve dois "encontros imediatos" com os satélites Starlink neste ano, afirmou Pequim.

Os incidentes por trás das queixas, apresentadas à agência espacial da ONU, ainda não foram verificados de forma independente.

Starlink é uma rede de Internet via satélite operada pela SpaceX, de Musk.

Musk é bem conhecido na China, embora sua montadora de carros elétricos Tesla esteja sob crescente escrutínio dos reguladores.

Os incidentes ocorreram nos dias 1º de julho e 21 de outubro, de acordo com um documento apresentado pela China neste mês ao Escritório das Nações Unidas para Assuntos do Espaço Exterior (Unoosa).

"Por razões de segurança, a Estação Espacial China implementou um controle preventivo de prevenção de colisões", disse Pequim no documento publicado no site da agência.

A SpaceX não respondeu imediatamente a um pedido de comentário da BBC.

Depois que a reclamação foi tornada pública, Musk, Starlink e os EUA foram duramente criticados na plataforma chinesa de microblog Weibo, semelhante ao Twitter.

Um usuário descreveu os satélites da Starlink como "apenas uma pilha de lixo espacial".

Os satélites são "armas americanas de guerra espacial" e "Musk é uma nova 'arma' criada pelo governo e militares dos EUA", disseram outros.

Um usuário postou: "Os riscos da Starlink estão sendo gradualmente expostos, toda a raça humana pagará por suas atividades comerciais."

A China também acusou os EUA de colocar os astronautas em perigo por ignorar as obrigações sob os tratados do espaço sideral.

O porta-voz do Ministério das Relações Exteriores, Zhao Lijian, disse que a China está pedindo aos EUA que ajam com responsabilidade.

Cientistas expressaram preocupação sobre os riscos de colisões no espaço e pediram aos governos mundiais que compartilhassem informações sobre os estimados 30 mil satélites e outros detritos espaciais que orbitam a Terra.

A SpaceX já lançou quase 1,9 mil satélites como parte da rede Starlink e planeja implantar outros milhares.

No mês ado, a Nasa, a agência espacial americana, adiou abruptamente uma caminhada no espaço saindo da Estação Espacial Internacional por causa de preocupações com detritos espaciais.