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

Astrônomos rastreiam sinal de rádio no espaço e chegam a origem misteriosa

De Tilt, em São Paulo

07/01/2020 12h16Atualizada em 07/01/2020 16h10

Astrônomos conseguiram rastrear um misterioso sinal de rádio repetido no espaço, revelado no ano ado. Essa é a quinta vez que uma descoberta do tipo acontece. Mas, pela primeira vez, a galáxia de origem do sinal está fazendo cientistas repensarem as suposições sobre como essas ondas são geradas. Isso porque, de acordo com a revista científica "Nature", a suposta galáxia de origem do sinal é diferente de qualquer outra reconhecida anteriormente.

O sinal de rádio teria surgido em uma galáxia espiral, a 500 milhões de anos-luz da Terra, no local que parece ser a fonte mais próxima do que os astrônomos conhecem por explosões rápidas de rádio (FRBs).

"A localização deste objeto é radicalmente diferente de todas as FRBs estudadas anteriormente", anunciou o astrônomo Kenzie Nimmo, da Universidade de Amsterdã, na Holanda.

Explosões rápidas de rádio estão entre os maiores mistérios do Universo —elas são picos extremamente rápidos na radiação eletromagnética detectada por radiotelescópios, com duração de no máximo alguns milissegundos. Mas, nesse período, eles podem descarregar mais energia do que 500 milhões de sóis.

A maioria das FRBs detectadas até o momento apareceram apenas uma vez. É impossível prever, o que os torna extremamente difíceis de rastrear. Até o momento, apenas três tiveram sua origem localizada em uma galáxia.

Busca por vida extraterrestre

A Nasa anunciou na segunda-feira (6) que seu Satélite de Pesquisas de Exoplanetas em Trânsito (Tess, sigla em inglês) descobriu um planeta do tamanho da Terra a uma distância intermediária de sua estrela, o que permitiria a presença de água em estado líquido. Mas, desde o final do ano ado, o Tess também está colaborando com astrônomos dedicados à busca por inteligência extraterrestre.

O projeto Breakthrough Listen, que tem este objetivo, foi fundado em 2015 pelo bilionário russo e pioneiro da internet Yuri Milner e ganhou apoio da Nasa em seu trabalho, o que elevou o status do grupo de pesquisa.

Dois avanços ajudaram esse campo a ultraar o domínio da ficção científica: o primeiro foi a descoberta, em 1995, do primeiro exoplaneta (planeta fora do nosso sistema estelar), que acabou de ser recompensada com o prêmio Nobel, e a posterior confirmação de mais de 4.000 outros exoplanetas. O segundo foi a descoberta de extremófilos, organismos capazes de sobreviver em condições extremas de temperatura ou pressão.

SIGA TILT NAS REDES SOCIAIS