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

Josias de Souza

OPINIÃO

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

Sete candidatos da 3ª via não dão um Bolsonaro

Colunista do UOL

25/11/2021 09h01

Receba os novos posts desta coluna no seu e-mail

Email inválido

O que mais chama atenção no atual cenário eleitoral do Brasil não é a resistência nas pesquisas de Bolsonaro nem a pujança de Lula. O que impressiona é a debilidade daqueles que se apresentam como alternativa à polarização. Na sondagem mais recente, divulgada pelo site Poder 360, sete candidatos da chamada terceira via não dão um Bolsonaro. Seria razoável esperar que, numa conjuntura marcada pelo desgoverno de um personagem com os dois pés fincados no atraso, seus adversários estivessem numa situação mais favorável.

Lula se mantém na liderança. Se a eleição fosse hoje, chegaria na frente no primeiro turno, oscilando entre 34% e 36% das intenções de voto, conforme o cenário. Prevaleceria no segundo round sobre todos os rivais. Bolsonaro continua ostentando a segunda posição, variando de 27% a 29%. Não há um candidato competitivo na região que se convencionou chamar de centro. Juntos, os sete candidatos que ralam nessa área somam 25%.

Os presidenciáveis da terceira via só alcançam Bolsonaro se for adicionado ao congestionamento o percentual atribuído ao folclórico Cabo Daciolo, que oscila entre 2% e 3%. Aglomeram-se num intervalo que varia de zero a 9% Ciro Gomes, Sergio Moro, João Doria, Eduardo Leite, Henrique Mandetta, Alessandro Vieira e Rodrigo Pacheco.

Tocqueville ensina na sua obra "O Antigo Regime e a Revolução" o seguinte: "Não é indo sempre de mal a pior que se cai numa revolução." Significa dizer que a sociedade a qualquer infortúnio quando não enxerga uma porta de saída.

Por enquanto, afora a saída pela esquerda oferecida por Lula, o que há diante do eleitorado é uma via que conduz a um paredão. O fato de existirem vários candidatos dispostos a bater com a cabeça na parede para tirar Bolsonaro do segundo turno não significa que a parede vai virar uma porta.

Na política, sempre há a alternativa do diálogo. Mas as duas principais características da terceira via são o excesso de cabeças e a carência de miolos.