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

Lula conseguiu o que queria, mostrou ao Brasil que o BC está nu

Roberto Campos Neto e Lula - Reuters
Roberto Campos Neto e Lula Imagem: Reuters

Colunista do UOL

14/02/2023 15h30

Um dos mais conhecidos contos do autor dinamarquês Hans Christian Andersen foi escrito na primeira metade do século 19. Descreve como um trapaceiro espertalhão enganou um rei e sua corte vendendo ao monarca uma roupa que não existia.

Para faturar alto, o malandro explorou a vaidade do rei e de seus seguidores. Recebeu o pagamento e não fez nada. Aos que perguntavam onde estavam as roupas, ele respondia que só podia enxergá-las quem tivesse grande inteligência e capacidade. A partir daí, todos, inclusive o monarca, aram a dizer que conseguiam ver as novas vestimentas reais — que, na verdade, não existiam.

Querendo ser reconhecido como o mais inteligente de todos, o rei marcou um desfile em que apresentaria as novas roupas a seus súditos. Assim fez: foi para o alto de um carro para exibir o novo figurino. Recebeu o aplauso de todos.

Até que um menino pequeno que assistia ao desfile gritou para a mãe: "Coitado do rei! O rei está nu!".

A partir daí, todos aram a acreditar nos próprios olhos e concordaram com a criança. Não havia roupa nenhuma, o rei realmente estava nu.

O desprendimento do menino fez com que os súditos e os conselheiros do rei entendessem que estavam fazendo papel de idiotas.

Se Andersen vivesse no Brasil de hoje, poderia fazer um conto semelhante com a taxa de juros fixada pelo Banco Central. Há muito tempo, a equipe do BC faz as maiores barbeiragens, com a empáfia de quem se acredita dona da razão. E sob a condescendência da imprensa.

Essa certeza sofreu agora um sério abalo.

Como o menino que apontou que o rei está nu, o presidente Lula usou o peso do cargo para chamar atenção para a aberração: o país tem a maior taxa de juros do planeta e não há nenhum motivo para isso.

Os críticos de sempre continuam tentando desqualificar o alerta do presidente da República, invocam uma propalada superioridade técnica do BC para tratar do assunto, mas Lula não voltou atrás.

Trouxe Roberto Campos Neto, o chefão do Banco Central, para o centro das atenções. Desde que esse debate começou, há algumas semanas, espera-se que ele dê explicações convincentes para a manutenção dos juros nas alturas. Até agora, nada.

Na noite de ontem, Campos Neto teve uma ótima oportunidade para provar que tem razão. Por quase duas horas foi entrevistado no programa Roda Viva. Ao fim da entrevista, porém, os brasileiros continuaram sem saber por quais motivos somos os recordistas mundiais de juros.

Lula não está mais sozinho nessa cruzada, alguns economistas importantes se juntaram a ele e a discussão está quente.

O presidente conseguiu o que queria. Quebrou o silêncio em torno do assunto. Alerta que as decisões do BC podem levar o país à recessão e causar desemprego, justamente os males que deveria evitar.

Esse é um raro momento em que o pensamento único dos banqueiros e operadores financeiros, que geralmente norteiam a imprensa, está sendo contraditado.

Não se sabe quando e se as taxas de juros vão efetivamente baixar.

Mas uma coisa é certa, Lula está conseguindo mostrar ao país que o Banco Central está pelado.

É o primeiro o para a mudança.