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

OPINIÃO

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

BBB 23 descalço: Por que é tão importante eliminar o Sapato hoje

Colunista do UOL

28/02/2023 10h04

Receba os novos posts desta coluna no seu e-mail

Email inválido

O BBB é especialmente apaixonante por ser um programa cuja salvação está sempre ao alcance das nossas mãos. Enquanto uma novela como Travessia você só pode criticar na expectativa de tocar o coração dos responsáveis, mas no final das contas, é tudo com eles, um reality show de votação popular é diferente.

"Uma vida melhor é possível, mas custa caríssimo", é o que se lê em uma almofada na mansão de Chiquinho Scarpa. Para quem ama o Big Brother, uma vida melhor é grátis, custa apenas algum investimento de tempo e energia no GShow.

Pois bem. O BBB 23 encontra-se em uma bifurcação. O paredão que coloca frente a frente Sapato e Fred Nicácio é um daqueles pontos-chave de uma jornada, e por isso é tão relevante a atenção da audiência para tomar a melhor decisão em prol de si mesma.

A eliminação de Fred Nicácio representa a falência do entretenimento. A partir disso, o quarto deserto, que é melhor organizado e mais coeso, não terá mais qualquer dúvida sobre suas interpretações equivocadas acerca do adversário —e de várias outras narrativas dentro do programa.

Vai empoderar a postura agressiva de Bruna, vai dar força para as tentativas de narrativas artificiais de Amanda e manterá Fred Boco Roso tranquilo, vitorioso mesmo que na horizontal na maior parte do tempo. Ou seja, a injustiça vai reinar.

Sapato precisa ir embora até como uma lição de humildade para seus aliados. Eles não se permitem imaginar que Fred Nicácio tenha qualidades elogiáveis pelo público, e conseguem apenas vê-lo em termos pouco alvissareiros. Até quando ele vai cuidar de um machucado da Amanda são capazes de enxergar maldade.

A saída do lutador é a única medida que pode brecar a ascensão do seu grupo como uma espécie de régua moral da temporada, medindo quem está 'melhorando', 'piorando' ou merecendo algum tipo de chance, como se fossem representantes do público na casa.

Para que o BBB 23 continue firme como uma das melhores edições de todos os tempos, nunca foi tão importante tomar a decisão correta. Acerte onde Gloria Perez está errando!

Concordas? Qual sua opinião sobre o paredão de hoje? Escreva nos comentários.

Voltamos a qualquer momento com novas informações.