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

Cultivando uma discreta primavera entre a Copa América e os protestos

Pássaro e abelha disputam sementes - BoukeAtema/Getty Images/iStockphoto
Pássaro e abelha disputam sementes Imagem: BoukeAtema/Getty Images/iStockphoto

01/06/2021 06h00

Tudo parece ruim e não há possibilidade de fugir. Não falo de viajar em tempos pandêmicos, mas de visitar um amigo ali na esquina ou procurar o generoso colo materno sem carregar consigo a culpa de contaminá-los com covid-19.

Resta-nos, no entanto, sempre a opção de dar um pulo no ado. O ado possível é o lugar quentinho do qual nossa memória guarda os mais intensos e melhores momentos, varrendo para debaixo do tapete outras lembranças menos memoráveis.

Por exemplo, fecho os olhos agora e visualizo meu avô Fausto, já batendo na casa dos 80 anos, audição sofrível, mas assistindo filmes de "bangue-bangue" no último volume e tomando infinitos cafezinhos — cujas xícaras deixava espalhadas por todos os cantos da terra, inclusive no banheiro. Meu avô Fausto, que adorava "mexer com madeira" no barracão dos fundos da sua casa, na cidadezinha onde me criei. Meu avô Fausto filho de um italiano, dono de loja de móveis, em Jaú, falido na crise de 1929.

Não há, nessas memórias que visito sem máscara PFF 2 ou álcool em gel, um familiar muito próximo ando por insegurança alimentar ou um familiar muito próximo internado há oito dias na UTI sofrendo com uma peste terrível da qual o presidente faz troça e sorri ao contar seus mortos.

Pode ser apenas minha memória gentil escondendo os dias difíceis do ado embaixo do tapete, mas tenho a sensação de que estávamos melhores em uma tarde qualquer do distante ano de 1994.

Se as notícias para os meus não são boas, quando abro os olhos de volta a 2021, há algum cheiro de esperança que emana junto ao aroma do café do meu velho avô Fausto. Há gente nas ruas que acredita em construir um país melhor, apesar das más notícias. Há gente cansada de contar seus mortos.

1 - Hygino Vasconcellos/Colaboração para o UOL - Hygino Vasconcellos/Colaboração para o UOL
29.mai.2021 - A professora Viviane Vasconcellos, 34 anos, foi à manifestação em Porto Alegre com seu pet, a Chelsea, de nove anos, que a acompanha em protestos desde 2016. "É um governo genocida. Não tem como não estar aqui", disse
Imagem: Hygino Vasconcellos/Colaboração para o UOL

Mas nem tudo são viagens ao ado, para os que estão em casa. Quando minha vontade de consertar o mundo esbarra na realidade, procuro consertar meu quarteirão, meu quintal, ao menos.

Se hoje acordei sem muitas notícias boas dos outros, contento-me em instalar a porta do armário que foi do meu avô há uns 100 anos. Madeira sólida, que ficava na casa de minha bisavó Rita e estava com o espelho quebrado há décadas.

Consertar este armário que não desmancha com o tempo, me dá uma minúscula sensação de reconstrução. Acredito nas pessoas que têm caráter e fibra sólidos como a madeira que minha mão acaricia e que outrora foi acariciada por meu avô. Lembro me dele falando alto, praguejando em italiano, cozinhando lentamente o molho de tomates no domingo. Ele que lutou na Constitucionalista de 1932, que ou pela epidemia de Tifo de 1918 - 1922, que mudou de cidade algumas vezes para recomeçar a vida do zero quantas vezes foi necessário. Essas visitas ao ado solidificam minhas raízes.

Volto ao presente e penso em Maiakovski que escreveu "Fechem os olhos dos jornais", quando leio que o Brasil vai abrigar a Copa América em plena pandemia de covid-19 que já matou quase meio milhão de brasileiros. Olho para o armário, para os trabalhos que preciso fazer, para as redes de solidariedade nas quais procuro enredar-me.

Penso que só há primavera porque alguém ou o inverno espalhando sementes. Que enquanto houver pássaros e insetos que sobrevivem aos invernos, haverá sempre primavera. Mesmo que os pássaros sejam tão frágeis e os insetos quase invisíveis.