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

Fred Di Giacomo

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Marcha de mortos-vivos do 07/09 não representa Brasil que insiste no sonho

Manifestantes participam da 2ª Marcha Nacional das Mulheres Indígenas pelas ruas de Brasília  - João Gabriel Alves/Enquadrar/Estadão Conteúdo
Manifestantes participam da 2ª Marcha Nacional das Mulheres Indígenas pelas ruas de Brasília Imagem: João Gabriel Alves/Enquadrar/Estadão Conteúdo

11/09/2021 06h00

Assim como você, fiquei chocado com a marcha de ódio e rancor que se espalhou por Brasília e por São Paulo no dia 7 de setembro. Assim como você, me cansou, mais uma vez, ouvir nosso presidente, que deveria se preocupar em resolver problemas urgentes como fome e inflação, atacando o STF e pregando seu discurso anti-democrático para salvar os filhos de investigações que devem botá-los na cadeia por crimes comuns.

Mas, assim como você, respirei um tanto aliviado pela bravata do presidente ter sido menor do que ele mesmo imaginava. Pelo tiro golpista ter saído pela culatra -- pelo menos por enquanto. Assim como você, me emocionei com a Marcha das Mulheres Indígenas, talvez a base da pirâmide desse país, acontecendo em Brasília, no mesmo dia em que a eata zumbi dos bolsonaristas repetia palavras de ordem desconexas e teorias da conspiração protagonizadas por espantalhos imaginários. Isso me deu esperança de que essa tempestade de ódio que atravessa o Brasil, desde 2016, possa ter um fim. Se não este ano, ao menos em 2022.

A inflação, a fome, o desemprego, a crise climática, a violência urbana, o genocídio da população negra e indígena são temas urgentes. Precisamos de cidadãos que ocupem desse tema para existirmos com um mínimo de dignidade. Chega de bravatas, o que importa no país é o povo, não meia dúzia de grandes fazendeiros que não entendem que se insistirem em cultivar sem respeitar a natureza e os povos originários não conseguirão nem mesmo exportar seus produtos no mercado internacional.

Dizia o intelectual e político Darcy Ribeiro, um dos gênios que nosso país pariu, que "não há lugar melhor pra fazer um país do que esse". Não é à toa que quando aportou por essas plagas junto às naus de Cabral, o escrivão Pero Vaz de Caminha cravou que nessa terra fértil "dar-se-á nela tudo" que se plantasse. Disso a parte do agro que apoiou os protestos de 07/09 sabe, mas Darcy nos lembra que "o que importa aqui é criança e povo".

Ou seja, não adianta "os donos do poder", pensando em Raymundo Faoro, manterem o pensamento de sugar o máximo possível da terra e dos povos que aqui moram. Por mais que os bolsonaros, os imperadores e militares que aqui governaram tenham insistido em matar, torturar e escravizar estes povos que aqui habitavam (as diversas nações indígenas), os povos que para cá foram trazidos na marra (as diversas nações africanas) e os povos que vieram para cá fugindo de fome e das guerras (judeus, sírios, libaneses, japoneses, bolivianos, italianos, espanhóis, etc), estes mesmos povos conseguiram driblar o dragão da maldade e resistir através da solidariedade, da criatividade e da esperança.

E quando falo isso, penso, especialmente, nas mulheres e nos pobres. Por que quando, na periferia, a coisa aperta, não é o homem que dá no pé deixando a mãe segurar as pontas sozinha? Por que quando, no país, a coisa aperta, não é a elite que pica a mula e vai para Europa ou para os Estados Unidos e deixa o povo segurar as pontas?

Eu deposito minha esperança na solidariedade popular que já me ajudou tantas vezes quando estive em momentos difíceis no nosso Brasil. De onde você menos espera é que a ajuda vem. E para o que Darcy Ribeiro chamava de uma classe dominante "ruim, medíocre, azeda, mesquinha", eu dedico a animação abaixo, feita em protesto aos mortos-vivos que marcharam no dia 7/09 sonhando com um país do ado que já morreu.

Que vivamos sem tempos mortos o porvir que vem sendo adiado há tantos séculos, deixando para o ado a podridão que faz parte do ado. Ou seremos, como escreveu Oswald de Andrade na peça "A Morta", "(...) um imenso cadáver gangrenado".

** Este texto não reflete, necessariamente, a opinião do UOL