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

Bernardo Machado

OPINIÃO

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

As festas, 2022 e as promessas de um futuro mais tranquilo

27.abr.2016 - Onda derruba mureta e invade calçadão na Ponta da Praia, em Santos. - Mauricio de Souza/Estadão Conteúdo
27.abr.2016 - Onda derruba mureta e invade calçadão na Ponta da Praia, em Santos. Imagem: Mauricio de Souza/Estadão Conteúdo

Colunista do TAB

31/12/2021 04h00

Contrariando expectativas dos filmes natalinos e das propagandas comemorativas, os finais de ano não são necessariamente pacíficos e destinados a um desfecho feliz. Na experiência cotidiana, os dilemas financeiros assolam os bolsos, as crises familiares incentivam a insônia e as pautas políticas insurgem com (e contra os) ânimos. Particularmente nos últimos quatro anos — 2018, 2019, 2020 e 2021 —, a atmosfera de dezembro parece estar desafinada, produzindo um ruído incômodo.

Pé de guerra

Desde 2018, os festejos foram esfolados por desencontros e desacordos político-eleitorais. Relatos de brigas, silêncios constrangedores e rompimentos incontornáveis deram a tônica nas redes, nos grupos de WhatsApp e nos desabafos pessoais. No ano seguinte, em 2019, com o trauma acumulado, surgiram campanhas para "despolarizar" as conversas, articulistas montaram estratégias para desviar de parentes e veículos de imprensa prepararam orientações para munir as pessoas com dados para fundamentar as discussões que se anunciavam. Mesmo assim, os conflitos épicos continuaram invadindo as festas.

Em comum, os dois anos foram tomados pela hegemonia de Jair Bolsonaro, o epicentro do debate público e pessoal. Já eleito em 2018 e após o primeiro ano do governo, em 2019, a atmosfera nacional centrava-se nas desavenças, no que era incontornável e intolerável. O vocabulário bélico do presidente — bem como suas práticas de ruptura — havia contaminado as relações.

Melancolia

Em dezembro de 2020, com quase 200 mil mortes dilacerando o país e com um atraso para a chegada das vacinas no Brasil, o tom era outro. Enquanto as frases do presidente ainda ecoavam em nossa memória — "gripezinha", "e daí" —, a profunda tristeza se esparramou pelos últimos dias do ano. Na época, as retrospectivas fermentaram em campanhas nas redes e nos meios de comunicação. Além das versões tradicionais dos veículos de imprensa, algumas entidades, movimentos sociais e até empresas aram a produzir suas versões do que consideraram relevante e, com isso, honravam as memórias das vítimas da doença.

A gramática era de uma certa desolação conformada. O clima de guerra, característico do biênio anterior, tornou-se longínquo e a distância sanitária com a qual nos deparávamos tornou as festas mais silenciosas. As relações fizeram falta pela ausência do toque e dos rituais inventados.

Expectativas e imprevistos

Dezembro de 2021 chegou com promessas: os reencontros com festança. Além da ceia, os já famosos protocolos faziam parte do cardápio: "todo mundo vacinado e de máscara", "álcool em gel", "janelas abertas"... Tudo em nome de um abraço represado para vencer a crise sanitária que se instalou. Planos ambiciosos de uma comemoração capaz de retomar as relações que ficaram carentes nesse longo hiato temporal. Um desejo pelos eventos e tudo que simbolizam.

Mas parece que brasileiro não pode se animar muito. A Influenza tipo A do subtipo H3N2 e a nova variante ômicron dão indícios de que a tranquilidade está em risco. Haja paciência e resiliência emocional.

Ansiedade

Mesmo assim, a gramática é outra quando comparada aos dezembros dos anos antecedentes. Não é a guerra ou a retrospectiva, mas uma espécie de impaciência em comemorar e, também, encerrar. Une uma certeza de que 2021 deve acabar, um ano que começou em 2020 (e se arrastou por muito mais de 12 meses) merece terminar e levar consigo os problemas que criou e insistiu. Há um certo cansaço dos protocolos pandêmicos e das guerras políticas que afogaram o país em inflação, miséria e inconsistência programática.

Talvez por isso, as eleições estão antecipadas, seja nas campanhas, seja nas escolhas. Segundo última pesquisa do Datafolha, na intenção de voto espontânea, 64% das pessoas já declaram voto a um candidato e na pesquisa IPEC o número de quem sabe de sua escolha atinge 60% do eleitorado. Certamente não sabemos o que ocorrerá nas votações de 2022, mas parece que hoje há uma parcela significativa de pessoas que quer outubro amanhã. Assim resolve-se o imbróglio e se chega logo a um 2023 repleto de novos ares.

Só tranquilidade

Se há uma espécie de ideia difusa de que as festas são assemelhadas entre si — na atmosfera e nos rituais — os quatro últimos anos demonstraram que elas podem variar (e muito!) e nos fazem sentir falta de tempos mais tranquilos e menos historicamente caóticos. Não necessariamente um retorno para uma tradição estática, mas uma época na qual as relações não precisavam ficar estremecidas e sob o risco, seja de ruptura ou de morte. Um momento em que as relações podiam ser celebradas.