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

Elon Musk oferece R$ 500 mi para melhor tecnologia de captura de carbono

Elon Musk, CEO da Tesla e da SpaceX - Getty Images
Elon Musk, CEO da Tesla e da SpaceX Imagem: Getty Images

Marcella Duarte

Colaboração para Tilt

22/01/2021 18h21

O bilionário Elon Musk, chefe da Tesla e da SpaceX, prometeu dar um prêmio de US$ 100 milhões (R$ 530 milhões, na cotação atual) para quem desenvolver a "melhor" tecnologia para capturar dióxido de carbono (CO2) do ar.

Reduzir os gases do efeito estufa, que causam o aquecimento global, é essencial para evitar graves mudanças climáticas na Terra. Mas ainda há poucas tecnologias dedicadas a resolver esse problema. A maior parte dos esforços foca em diminuir as emissões —e não em retirar o que já está no ar, o que é mais difícil e, obviamente, caro.

A IEA (Agência Internacional de Energia) declarou, no final de 2020, que seria necessário um grande aumento na implantação de sistemas de captura de CO2, para que os países possam cumprir a meta de emissão zero de carbono nos próximos anos.

Elon Musk respondeu ao apelo:

"Vou doar US$ 100 milhões para o prêmio de melhor tecnologia de captura de carbono", disse nesta quinta-feira (21) à noite, no Twitter. Um segundo tuíte prometeu "detalhes na próxima semana".

Pacto global

O recém-empossado presidente dos Estados Unidos, Joe Biden, também se comprometeu a acelerar o desenvolvimento de tecnologias de remoção de dióxido de carbono do ar, como parte de seu amplo plano para combater as mudanças climáticas.

Horas após assumir, Biden recolocou os EUA no Acordo de Paris —do qual havia se retirado por Donald Trump—, um pacto global assinado em 2015 para reverter a crise climática. Os países-membros se comprometem a reduzir suas emissões de carbono na atmosfera, até chegar a zero, e a frear o desmatamento, entre outras ações.

O Brasil, em tese, faz parte do acordo, mas não tem cumprido suas metas. Com emissões em alta, é o quinto maior poluidor do mundo, de acordo com o Sistema de Estimativas de Emissões e Remoções de Gases de Efeito Estufa (SEEG).

Uma verdadeira estufa

O efeito estufa acontece desde os primórdios da Terra e foi essencial para o surgimento de vida, mantendo a temperatura do planeta mais quente e impedindo que o calor escape para o espaço. Mas ele se tornou mais potente graças à ação humana nas últimas décadas, causando mudanças climáticas como o aquecimento global e o derretimento de calotas polares.

Os principais gases do efeito estufa presentes na nossa atmosfera são o dióxido de carbono (CO2), o metano (CH4), o óxido nitroso (N2O), os perfluorcarbonetos (PFC's ) e também o vapor de água. Eles retêm a radiação infravermelha, como se fossem o vidro de uma estufa em volta da Terra. O primeiro é o mais prejudicial —e também o mais emitido pelas atividades humanas, principalmente a queima de combustíveis fósseis na indústria e transportes.