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

"Não entro mais em polêmica", diz Paola Carosella em tweet de Felipe Neto

Paola Carosella: chef cansou das discussões on-line - Reprodução/Band
Paola Carosella: chef cansou das discussões on-line Imagem: Reprodução/Band

De Nossa

23/09/2020 16h58

Usuária ativa do Twitter, a chef Paola Carosella divulgou na terça (22) uma decisão que pegou muita gente surpresa: "Não entro mais em polêmica".

A jurada do MasterChef, que não raro usava a rede social para fazer críticas políticas e expor opiniões sobre a indústria alimentícia, afirmou que não será mais radical com nada, ao menos no mundo digital.

Ela completa: "Nem contra o Voldemort do planalto. Nada", diz.

O depoimento foi uma resposta ao tweet publicado por Felipe Neto. "As redes sociais e os algoritmos potencializaram os extremos. A cada dia que a, os moderados perdem voz, abafados por gritos e cancelamentos. Assustados, correm ou tornam-se, eles, radicais, para que assim possam sentir acolhimento. Eu não vejo qualquer solução para isso", afirmou o youtuber.

Enquanto muitos seguidores compreenderam a posição da cozinheira, alguns contestaram: "Quem tem a capacidade de falar para um grande número de pessoas, como vocês "celebridades", não devem nunca se calar, ao contrário, devem gritar cada vez mais forte".

Felipe Neto se mostrou interessado no veredito da chef e disse: "É um experimento válido que vou analisar de perto".

O frango que levou Paola ao cancelamento

Um dos momentos épicos na conta da chef aconteceu no fim de julho, quando ela postou uma crítica à rede KFC, que anunciou o lançamento de um nugget impresso em 3D. "Olha que linda sua comida do futuro. Parabéns aos envolvidos! Continuemos assim, que o futuro vai ter gosto de papelão molhado em cloroquina radioativa", escreveu ela.

A publicação feita pela chef causou alvoroço no Twitter. Muitos criticaram a postura da cozinheira, salientando que o alimento em questão não envolvia sacrifício animal e ao meio ambiente. O argumento foi rebatido pela jurada do MasterChef.

"Me responde por favor: é feito de alimento ou de commodities? É feito por pessoas e suas famílias ou máquinas? Se é feito de commodities como você acha que foi produzido? Com agroecologia ou monocultura fertilizada? Esse tipo de agricultura planta água? Você sabia que a água se planta?", escreveu.

O "cancelamento", citado pela própria Paola em outro tweet na sequência, aconteceu após algumas pessoas denunciarem "gordofobia" nas falas da chef em trocas de tweets com seguidores.

Ela se explicou: "Eu falei obesos, não gordos. Você acompanha os índices de obesidade das crianças no Brasil? A ONU a define como a "nova fome" crianças obesas, diabéticas e subnutridas. Intoxicadas com comida de merda! Não estou falando de padrões de beleza aqui".

"Eu estava falando do impacto na saúde causado pelo consumo de alimentos ultra processados. Eu deveria, então, ter me referido aos impactos na saúde causados pelo consumo de ultra processados, sendo muitos deles o ganho excessivo de peso, subnutrição, diabetes, hipertensão depressão", complementou.

A discussão teve fim só quando Paola decidiu abandonar o debate no Twitter e após alegar ter sido mal interpretada e reforçando, mais uma vez, seu ponto de vista.