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

Ricardo Feltrin

OPINIÃO

Patrícia x Manoel: Globo precisa intervir ou pensar em novo programa

Manoel Soares e Patrícia Poeta na estreia - Globo/Fábio Rocha
Manoel Soares e Patrícia Poeta na estreia Imagem: Globo/Fábio Rocha

Colunista do UOL

13/04/2023 11h25

Em julho do ano ado, a Globo estreou uma nova fase do programa Encontro. No lugar de Fátima Bernardes, colocou Patrícia Poeta.

Como "parceiro" de Patrícia, escalou Manoel Soares, que já havia feito quadros nos tempos de Fátima (que ou dez anos na função).

Como telespectador, não tive dúvida desde o primeiro dia: aquele formato não ia funcionar.

Motivo: ele foi feito sob medida para Fátima. Ficou parecendo uma roupa ajustada para outra pessoa.

Globo vacilou

O primeiro erro da Globo foi que ela deveria ter criado um novo programa. Mudar tudo: nome, formato, quadros.

Mas, parece que foi feito tudo às pressas e com objetivo de reduzir custos.

O segundo erro foi deixar Soares com uma função, a meu ver, nebulosa. Ele é o quê, afinal? Coapresentador? Coadjuvante? Comentarista? Assistente? O nome do programa, inclusive, é Encontro com Patrícia Poeta.

O terceiro erro foi que, aparentemente, a Globo não fez pilotos suficientes antes de colocar o programa no ar.

Se tivesse feito, teria visto o óbvio. Incrível que ninguém lá dentro levantou a mão, pediu a palavra e disse com todas as letras: "Gente, com essa dupla não vai funcionar!"

Não funciona nem na frente das câmeras e muito menos atrás delas.

Clima pesadíssimo

Uma fonte da coluna, veterana da Globo, disse que nunca viu uma produção em que os apresentadores se detestassem tanto.

Soares e Poeta, diz ela, nem sequer olham na cara nos bastidores.

Fora do ar, a coisa está ainda mais pesada.

As torcidas de um e de outro, como é praxe na internet, transformaram o assunto numa "guerra de gêneros e de identitarismo", com direito a ofensas etc.

Por exemplo, tenho visto inúmeras postagens de fãs do apresentador acusando Patrícia de racismo. Não tem nada disso.

São simplesmente duas pessoas que não combinam, dois apresentadores sem a menor réstia de sintonia; duas personalidades absolutamente diferentes; dois bicudos que não se bicam.

Chance perdida

Aliás, talvez, se tivesse apostado nessas diferenças, a Globo hoje tivesse um programa que chamasse a atenção e repercutisse na imprensa pelo conteúdo, e não pelas picuinhas nos bastidores.

A única saída hoje seria uma intervenção da direção artística: fazer esses dois seres humanos sentarem e acertarem suas diferenças de uma vez por todas.

Fazer uma espécie de DR profissional, e sem hora para acabar. Até tudo ficar certo entre eles. A Globo não vai conseguir segurar essa batata quente por muito tempo.

Ou conserta tudo agora ou a a régua e pensa em um novo programa.

Curiosamente, o Encontro tem ido muito bem de ibope, sempre dando médias acima de 7 pontos, até 8 na Grande São Paulo.

Só não é possível saber se esse público está ali para assistir ao programa mesmo, ou só esperando mais um arranca-rabo em rede nacional.

Outro lado

Procurada pela coluna, a Globo não se manifestou. Emissora foi questionada para comentar sobre o clima nos bastidores, fora dele e nas redes sociais, envolvendo os dois apresentadores.

Ricardo Feltrin no Twitter, Facebook, Instagram, site Ooops e YouTube