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

Ex-presidente do Ibama critica ação do governo em crise de óleo no Nordeste

Manchas de óleo na praia de Feliz Deserto, em Alagoas - Raquel Grison/Laboratório de Morfologia Sistemática e Ecologia de Aves do Museu de História Natural da Ufal
Manchas de óleo na praia de Feliz Deserto, em Alagoas Imagem: Raquel Grison/Laboratório de Morfologia Sistemática e Ecologia de Aves do Museu de História Natural da Ufal

Do UOL, em São Paulo

22/10/2019 09h53

Em entrevista ao jornal El País publicada ontem (21), Suely Vaz de Araújo, a ex-presidente do Instituto Brasileiro do Meio Ambiente (Ibama), criticou a demora do Governo Bolsonaro em reagir rapidamente à crise ambiental erada pelo vazamento de petróleo no litoral brasileiro.

A ambientalista acredita que o governo não tem atuado de forma efetiva no caso, principalmente como liderança.

"O Ministério do Meio Ambiente é a autoridade máxima na condução dos trabalhos, de acordo com o plano. Mas a sensação é de que falta Governo, falta liderança, na hora de acionar Estados, municípios e comunidades afetadas. Em emergências desse tipo é preciso tornar tudo absolutamente público e transparente. A população pode e deve ajudar, mas deve ser orientada a isso. As ONGs e comunidades locais já estão ajudando, mas é necessário que o Governo atue efetivamente como Governo, como liderança", disse.

Suely Vaz de Araújo afirma que ainda é impossível saber quais serão os efeitos do vazamento de óleo. Ela, no entanto, diz que a situação não voltará completamente ao normal.

"Os danos ao meio ambiente precisam ser estudados e não é algo simples. Você limpa a praia, mas não sabe o que acontece em termos de meio ambiente marinho. É preciso saber a extensão do óleo e o que se conseguiu retirar. Isso demanda estudos para minorar os danos e ver as medidas necessárias. Mas é impossível voltar completamente à situação anterior, algum dano sempre existe", analisa.

A ambientalista aumentou o tom das críticas ao dizer que o governo atual tem uma postura de "desconstrução".

"Esse Governo entra com uma postura de desconstrução do que vinha sendo feito. A lei nacional de política do meio ambiente, de 1981, é um marco importante porque estruturou o sistema nacional do meio ambiente e consagrou o licenciamento ambiental [...] Esse Governo quer romper e reformular tudo isso, mas ainda não estruturou nada para colocar no lugar. Ele está deixando de fazer ações importantes na área de proteção ambiental sem substituir por outras ferramentas. Uma das críticas do atual Governo é que a política ambiental é muito baseada em comando e controle, no que diz respeito a normas e sanções para descumpri-las", disse.