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

Mauricio Stycer

OPINIÃO

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

João faz história no BBB ao falar de racismo e deixa a Globo sem palavras

João chora ao falar do comentário de Rodolffo sobre o seu cabelo - Reprodução
João chora ao falar do comentário de Rodolffo sobre o seu cabelo Imagem: Reprodução

Colunista do UOL

06/04/2021 01h08Atualizada em 06/04/2021 11h56

Numa edição em que Gilberto já expôs publicamente o preconceito contra homossexuais, coube a João deixar a sua marca neste "BBB 21" com uma denúncia de racismo.

Comentando a comparação que Rodolffo fez entre a peruca usada no monstro e o seu cabelo, João disse nesta segunda-feira (05), no jogo da discórdia:

"Lá dentro, no quarto, me calei, fiquei calado, mas você não sabe o quanto aquilo que você falou me machucou. Machucou muito. E não adianta você vir com o discurso que não teve a intenção porque eu tô cansado de ouvir isso, não é só aqui dentro. É lá fora também. Nunca ninguém tem a intenção de machucar. Nunca ninguém tem a intenção de fazer as coisas com a gente."

Camilla de Lucas complementou o protesto de João dizendo para Rodolffo: "Hoje eu uso peruca porque eu quero voltar com o meu cabelo natural, que é igual ao do João. Isso que você fez com ele me deixou mal. O que cansa a gente não é essa coisa de você não saber, mas porque as justificativas são sempre as mesmas. Magoa. A gente está em 2021. Você não está isolado. Você tem conhecimento. Pesquisem. Estamos cansados de explicar sobre nosso tom de pele, sobre nosso cabelo. Entendo que você possa não ter feito por mal. Mas a gente também está cansado de ouvir que não foi a intenção".

A direção do "BBB" perdeu mais uma vez a oportunidade de explorar um assunto dessa importância. Como escrevi, o programa de domingo ignorou completamente o problema que aflorou no sábado. Mr. Edição não deu ênfase para as palavras da cantora Ludmilla sobre o assunto, durante o show que fez naquela noite. "A próxima música que vou cantar agora fala sobre uma coisa que o mundo está precisando, que é respeito. Respeita o nosso funk, respeita a nossa cor, respeita o nosso cabelo. Respeita caral**!"

Até a sonolenta Pocah se deu conta disso após o jogo da discórdia: "Foi por isso que a Lud falou do cabelo", disse ela. E ainda deu uma bronca em Rodolffo: "O mínimo que você pode fazer é pedir desculpas."

Nesta segunda-feira, mais uma vez, o programa mostrou estar despreparado para uma situação desta importância e gravidade. Tiago Leifert só disse platitudes. Ao final do emocionante discurso de João, o apresentador falou: "Vamos dar um tempo para eles se acalmarem. João vai beber uma água. Eles vão precisar conversar mais. Mas o jogo tem que continuar".

Na volta do intervalo, Leifert observou que o assunto estava "engasgado" e "explodiu agora, no nosso joguinho". E quando o programa terminou, o apresentador tratou a denúncia de racismo como "assunto relevante". Disse ele: "Isso é exatamente o Big Brother. Hoje foi um episódio clássico de Big Brother. Tem fogo no parquinho? Tem. Mas tem assuntos relevantes, assuntos que estão em pauta na sociedade, que acabam aparecendo dentro da casa também e que eles tratam do jeito deles."

Foi mais do que um assunto relevante. Bem mais.

Não é a primeira vez que racismo é pauta no Big Brother Brasil. O documentário "BBB: Casos de Polícia", produzido pelo UOL, mostra outros casos dentro programa, como a discussão na qual Marcela Mama, do BBB 4, faz chacota com o cabelo de Solange. O vídeo também relembra a trajetória de Paula Sperling, do BBB 19, que mesmo acusada de intolerância religiosa ganhou a edição. Assista: