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

Matheus Pichonelli

OPINIÃO

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

Boneca da encruzilhada em Recife alerta forasteiros: se for, vá na paz

Boneca colocada no meio da rua - Divulgação/Twitter/Matheus Fatta
Boneca colocada no meio da rua Imagem: Divulgação/Twitter/Matheus Fatta

Colunista do UOL

04/09/2021 04h00

O automóvel cruza a pista de paralelepípedos e desacelera perto da encruzilhada no bairro Afogados, em Recife (PE).

O avanço lento logo é interrompido. À frente, sentada numa cadeira cor-de-rosa e iluminada pelos postes da rua, uma boneca despenteada sorri como se olhasse para as câmeras de um filme de terror. O veículo, então, recua e desaparece na noite.

O terror não ado pela câmera no rosto de quem o conduzia é uma elipse digna de grandes mestres do cinema.

A cena é gravada por um morador, que não contém a risada nem a satisfação. A tática funcionou.

Quem acompanhou algumas das principais produções cinematográficas do país nos últimos dez anos certamente associou a versão recifense da Annabelle com alguma tática do segurança Clodoaldo, personagem interpretado por Irandhir Santos no filme "O Som ao Redor".

Lançado em 2012, o filme de Kleber Mendonça Filho antecipa uma espécie de distopia miliciana que sufoca pelas beiradas eletrificadas os herdeiros e antigos jagunços da Casa Grande em outro bairro da capital pernambucana. Calcada na paranoia, o que parece oferta de segurança ali é uma grande armadilha com notas de um acerto de contas. O filme tem quase dez anos, mas não vamos dar spoiler.

Os cenários da ficção e o da encruzilhada da boneca vigilante, colocada ali para espantar possíveis assaltantes, estão distantes cerca de 7 quilômetros. Entre um ponto e outro cabe um mundo.

Na vida real, quem não tem Clodoaldo caça com Annabelle.

Na distopia concreta do país em que o presidente manda a população trocar feijão por fuzis, a pobre boneca tem assustado motoristas desatentos e senhoras insones que resolvem ear com seus cachorros pela rua Albatroz, nome popular da maior ave voadora do mundo — e, por ironia, homônimo de uma grande empresa de segurança.

A boneca não faria arranhão à caravana armada até os dentes que detonam caixas de banco, espalham explosivos pela cidade e na fuga penduram reféns no capô dos veículos pelo interior do país.

Mais uma vez, a realidade compete com a ficção.

A de Kleber Mendonça tem pelo menos três momentos-chave antecipados na última década. Em nenhuma delas os prédios construídos pela milícia desmoronam em sua literalidade.

"Aquarius", seu segundo longa, volta à praia de Boa Viagem para mostrar os dentes destrutivos das engrenagens da especulação imobiliária sobre modos de vida a caminho do desaparecimento. A 3.250 quilômetros dali, em Balneário Camboriú (SC) uma montanha de concreto armado forçou o alargamento da faixa de areia em direção ao mar. A praia já não tinha o ao sol.

Clara, a personagem de Sônia Braga que peitou um empreendimento milionário e se negou a ser fagocitada em troca de dinheiro, já teria sido jogada aos tubarões no Brasil de 2021.

Mas, entre armas, canhões e a voracidade dos participantes do safári humano que se converteu o país, nenhuma distopia parece mais conectada ao espírito do tempo atual do que "Bacurau", filme dirigido por Kleber Mendonça em parceria com Juliano Dornelles.

Em uma de suas cenas mais famosas, dois motoqueiros da região Sul abrem armados as trilhas do caminho para supremacistas estrangeiros apagarem do mapa, a tiros, uma pequena cidade do Nordeste. Com ela, sua história, seus modos de vida, sua gente.

"Somos diferentes deles, temos ancestrais europeus e somos mais parecidos com vocês", dizem os entreguistas, que provavelmente não se constrangeriam em fazer símbolo racista para as câmeras, tomar copo de leite em homenagem aos supremacistas ou emular o chefe da propaganda nazista em pronunciamento nacional. No filme, são os primeiros a serem engolidos pela tragédia que ajudaram a pavimentar.

Assistir em sequência aos três filmes é como assistir a um trailer do que o país se tornaria — e já estava se tornando. Um país onde um diálogo traduzido por dispositivo eletrônico reforça um imperativo diário em forma de pergunta: "Você quer viver ou morrer?"

A chegada da vacina, na ficção e na realidade, não é uma imagem meramente ilustrativa.

A ingênua e assustadora boneca numa encruzilhada de Recife é a arma possível, quase um alívio cômico, em tempos de paranoia — como a tensão de "O Som ao Redor" já capturava.

Nem Kleber Mendonça, que já imaginou até sua cidade natal ser invadida pela neve, iria tão longe. Se for de noite à rua Albatroz, no bairro dos Afogados, em Recife, melhor ir na paz.

Na encruzilhada também borrada entre ficção e realidade, a tela do pernambucano Cícero Dias, pintada em guache em 1926, se revitaliza em atualidade: "Eu vi o mundo... Ele começava no Recife".