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

Racismo ambiental

Por que algumas comunidades são mais afetadas por problemas ambientais? Futuro depende do fim da desigualdade

Diana Carvalho e Fernanda Schimidt De Ecoa, em São Paulo Avener Prado/Folhapress

Imagine acordar num dia e notar uma movimentação estranha na vizinhança. Carros que não costumam frequentar a região vão e vem em um trajeto suspeito, repetido inúmeras vezes. O ar é tomado pela apreensão. Um grupo de moradores se reúne e decide seguir um dos veículos para descobrir o que está acontecendo. Encontram homens trabalhando: quebrando pedras, fotografando o espaço, retirando amostras para pesquisa. Uma máquina prepara-se para perfurar o solo, outra está a postos para abrir uma estrada em meio às árvores. "Queremos comprar essa área, temos dinheiro", ouvem de um deles.

A cena poderia ter saído do filme "Bacurau", de Kleber Mendonça Filho e Juliano Dornelles, mas se trata de uma história vivida pela advogada Rafaela Eduarda Miranda Santos, na comunidade quilombola de Porto Velho, no Vale do Ribeira, interior de São Paulo. Os intrusos eram funcionários de uma empresa de mineração que havia recebido uma autorização do então Departamento Nacional de Produção Mineral para fazer pesquisas no local, sem consulta à população, que ali reside desde o século 18. "Eles apenas consultaram fazendeiros que se encontravam no entorno e alguns que ainda não foram desapropriados do nosso território. É lamentável a gente viver situações como essa. Consultaram essas pessoas e não a nossa comunidade detentora do território", explica ela, que integra a Equipe de Articulação e Assessoria às Comunidades Negras (Eaacone) no Vale do Ribeira.

Invasões ao território para extração de recursos não são o único problema enfrentado pelas comunidades brasileiras mais vulnerabilizadas. o a água limpa e tratada, rede de esgoto e coleta de lixo são alguns dos direitos básicos historicamente negados a uma grande parcela da população brasileira.

A pandemia de Covid-19 acionou o alerta para como a desigualdade estrutural opera em todas as esferas, inclusive ao ditar quem serão suas principais vítimas. Esta realidade, no entanto, é global e deve ser agravada ano após ano com a intensificação da crise climática, que inclui aumento da temperatura atmosférica a índices insalubres, maior incidência de tempestades e enchentes, entre outros fatores.

"Essas comunidades são historicamente excluídas dos processos de participação política e dos processos legislativos. São empobrecidas, vulnerabilizadas com a falta de saneamento básico, com a expulsão de seus territórios, com o não reconhecimento e a não efetivação de seus direitos, com a marginalização e com a invisibilização, com a contaminação e a destruição de seus territórios, do solo e a da água", explica Miranda.

Há um termo que define por que certas comunidades são afetadas de maneira desproporcional por problemas ambientais: racismo ambiental.

Fazer com que as pessoas compreendam esse problema costuma ser fácil se você pedir para que pensem para onde elas não gostariam de se mudar. Onde estão as fábricas na sua cidade? Em que lugares a água é mais suja? Agora se pergunte quem mora lá. É quase sempre o grupo de pessoas mais pobre e de pele mais escura

Kerry Ard, doutora em Sociologia e professora de Meio Ambiente e Recursos Naturais na Ohio State University

Daniel Marenco/Folhapress Daniel Marenco/Folhapress

"É inissível um lixão na zona sul. E por quê">

Publicado em 3 agosto de 2020.

Edição: Fernanda Schimidt; Ilustração: Guilherme Zamarioli; Reportagem: Diana Carvalho e Fernanda Schimidt;