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

Maqui Nóbrega

BBB 21: parece diverso, mas nao é

Os 20 participantes do "Big Brother Brasil 21" foram revelados nesta terça-feira (19)                              - TV GLOBO/DIVULGAÇÃO
Os 20 participantes do 'Big Brother Brasil 21' foram revelados nesta terça-feira (19) Imagem: TV GLOBO/DIVULGAÇÃO

Colunista de Universa

21/01/2021 04h00

Eu tô put@ porque eu jurei que não precisaria escrever esse texto! A editora da minha coluna me perguntou mais cedo se eu pretendia falar essa semana sobre a falta de diversidade de corpos no elenco do BBB 21 e eu respondi "imagina, a Globo já tá ligada, não vão botar só gente magra na casa". Eu juro pra vocês, realmente não achei que tivesse como fazer um reality show em 2021 com tanta gente parecida fisicamente. Não tem um gordo, não tem ninguém acima dos 35 anos, zero pessoas trans, nenhuma com deficiência.

As brincadeiras no Twitter são muitas e com razão. Dizem que o Big Brother virou o Jogo dos Clones, programa apresentado pela Sabrina Sato na Amazon Prime em que 7 pretendentes idênticos disputam o "amor" de uma pessoa. Tem também o meme do cara que participa de todas as edições do BBB. Os participantes homens são tão parecidos todo ano que é difícil distinguir um do outro. Mas porra, esse não é o Brasil!

Eu tô put@ porque é um saco ter que bater na mesma tecla milhares de vezes. Quem acha que representatividade em um reality show não é importante, não viu as pessoas vibrando e chamando o BBB de Big BLACK Brasil. A edição 21 tem o maior número de participantes negros da história do programa, o que deve ser comemorado, mas em que ano todos nós poderemos ter essa sensação? Eu acho que vou morrer esperando ter a sensação de não ser só uma cota.

De acordo com uma pesquisa do IBGE, 60% da população adulta brasileira está acima do peso. SESSENTA POR CENTO. E não tem UMA dentro do programa de realidade mais assistido do país? Esquece o que você pensa sobre pessoas gordas, se você odeia, se acha que elas tem que emagrecer, se você não quer isso pra você: o fato é que elas existem. Elas existem em todos os lugares, menos nos programas de TV que dizem retratar a realidade.

"Ai, mas isso é mimimi, ano ado teve o Babu e o Victor Hugo, na Fazenda teve a Jojo Todynho, vocês nunca estão satisfeitos!". Só o fato de todo mundo conseguir nomear e contar nos dedos os participantes gordos em realities no Brasil, já prova a teoria.

O meu sentimento, e de muitas outras pessoas, é um misto de decepção com "quem mandou eu esperar isso também?". Dá raiva, mas ao mesmo tempo não dá. Você se sente mal, mas não liga, porque já ou por isso tantas vezes que não é mais novidade. Você se sente chata por questionar e burra por esperar algo diferente, mas no fundo sabe que não é. É um sentimento esquisito esperar se ver, de alguma forma, como parte de verdade da sociedade e, dia após dia, entender que a sociedade escolhe não te enxergar.

Mas beleza, o jogo vai começar e os corpos serão expostos, analisados, criticados, exaltados. Muitas das mulheres vão sair e fazer lipo, harmonização facial, botar silicone e botox, pra se encaixar 100% no padrão global de beleza.

É...no fim, talvez essa seja a representação perfeita do Brasil!