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

Chico Alves

OPINIÃO

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

Presidenciáveis mostraram muitas caras e bocas, mas pouco conteúdo

Colunista do UOL

16/10/2022 22h48

No debate que teve, enfim, o esperado confronto direto entre Luiz Inácio Lula da Silva (PT) e Jair Bolsonaro (PL), os dois produziram um grande anticlímax. Os presidenciáveis se preocuparam mais com caras e bocas e com o ângulo da câmera do que com o conteúdo do que falaram ao espectador. Repisaram muito o ado, fizeram duelo de pegadinhas, mas não apresentaram nenhuma proposta concreta para o futuro.

É verdade que há muito tempo os debates não são propícios à apresentação de boas ideias de governo, já que nas últimas eleições os candidatos usaram esse espaço para lavar roupa suja em público. Mas ao menos uma proposta ou outra sempre surgia. Dessa vez, nem isso.

Lula teve seus melhores momentos no primeiro bloco, ao tratar de Educação e perguntar a Bolsonaro quantas universidades o presidente atual construiu em seu mandato. Ele desconversou o tempo todo. Foi o próprio Lula quem respondeu: Bolsonaro inaugurou apenas uma universidade (mesmo assim, encaminhada pelo governo de Dilma Rousseff), enquanto o petista fez 18 nas duas vezes que ocupou a Presidência.

Já Bolsonaro se saiu melhor no segundo bloco do confronto direto, quando levantou o tema corrupção. Nesse momento, ao falar de Petrolão, Lula pareceu perder o prumo e deixou de controlar o tempo - algo contraproducente no modelo de debate de ontem, onde cada candidato teve 15 minutos para istrar. O resultado foi que no final Bolsonaro teve mais de cinco minutos para falar como quis.

Os principais temas do debate foram pautados pelas perguntas dos jornalistas: a ideia esdrúxula de aumentar o número de ministro do Supremo Tribunal Federal (STF), a sugestão de criar punição rigorosa para agentes públicos que disseminarem fake news, propostas para tentar reduzir o déficit educacional criado na pandemia e o questionamento ao modelo de compra de deputados do Centrão em troca da tal governabilidade.

Na maior parte das vezes, os candidatos se esquivaram de responder. Mas Vera Magalhães conseguiu arranjar de Bolsonaro uma quase promessa de que não vai mudar a configuração do STF e Josias de Souza arrancou de Lula a issão de que tudo continuará como está.

No mais, os dois presidenciáveis ficaram devendo ao eleitor.