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

Tardígrado, o animal que sobreviveria à extinção maciça na Terra

Eye Of Science/SPL
Imagem: Eye Of Science/SPL

Em Paris

17/07/2017 11h00

Se uma rocha espacial gigante cair no nosso planeta ou se a radiação de uma estrela explodindo ferver nossos oceanos, os seres humanos e a maioria das outras formas de vida desaparecerão.

Mas uma criatura certamente sobreviverá, e continuará existindo enquanto o Sol não se apagar - pelo menos mais 10 bilhões de anos -, de acordo com um estudo publicado nesta sexta-feira na revista Scientific Reports.

A espécie em questão é o tardígrado, um animal microscópico de oito patas que pode viver na água ou na terra, e em alta ou baixa pressão.

Também conhecido como urso-d'água, ele pode ar o calor ou frio extremos, alta radiação, 30 anos sem alimentos e até um estado de desidratação.

Apesar de ter menos de um milímetro, é considerado o animal mais resistente do mundo.

O tardígrado vai sobreviver a todas as catástrofes astrofísicas previsíveis - colisões de asteroides, explosões de estrelas (supernovas) ou rajadas de raios gama - e "estar por aqui por pelo menos 10 bilhões de anos", disseram pesquisadores das universidades de Oxford e Harvard.

"Sem a proteção da nossa tecnologia, os seres humanos são uma espécie muito sensível. Mudanças sutis em nosso ambiente nos impactam dramaticamente", disse Rafael Alves Batista, da Universidade de Oxford, coautor do estudo.

"Há muitas espécies mais resilientes na Terra. A vida neste planeta pode continuar muito depois que os humanos se forem", acrescentou.

Batista e uma equipe buscavam determinar que tipo de catástrofe seria necessária para eliminar todas as formas de vida da Terra, e descobriram que isso é praticamente impossível - uma vez que a vida se enraíza, é surpreendentemente difícil erradicá-la.

Explosões de supernovas ou de raios gama, assim como explosões eletromagnéticas que ocorrem em outras galáxias, poderiam esgotar a camada de ozônio que protege a Terra da radiação. Porém, a vida poderia continuar debaixo do solo e nas profundidades do oceano.

Mesmo uma perda completa de atmosfera não afetaria espécies no fundo do oceano.

Uma grande colisão de asteroides poderia cobrir a Terra com uma nuvem de pó capaz de bloquear a luz solar, provocando uma queda de temperaturas e um efeito meteorológico chamado de "inverno de impacto".

As criaturas dependentes da luz morreriam, mas nas aberturas vulcânicas no oceano profundo, a vida continuaria.

O único evento que mataria os tardígrados seria a morte do Sol.

A extrema resiliência do tardígrado aponta também para a possibilidade de existência de vida em outras partes do Sistema Solar, em lugares hoje considerados hostis demais para isso.