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

Nina Lemos

OPINIÃO

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

'Não Olhe para Cima': mulher não é ouvida nem quando pode salvar o mundo

Jennifer Lawrence no filme "Não Olhe para Cima" - Reprodução / Internet
Jennifer Lawrence no filme "Não Olhe para Cima" Imagem: Reprodução / Internet

Colunista do UOL

27/12/2021 13h02

A cientista Kate Dibiasky, interpretada por Jennifer Lawrence, descobre que um cometa vai se chocar com a Terra em poucos meses. Apavorada com a descoberta, ela tenta junto de seu professor, Randall Mindy (Leonardo DiCaprio), alertar o mundo sobre o risco iminente de extinção da humanidade.

Esse é um resumo muito básico do filme "Não Olhe para Cima", de Adam McKay, que estourou no mundo todo desde que foi lançado na Netflix.

Só se fala disso e, principalmente, da semelhança da história com a realidade destes tempos pandêmicos e de ameaça de tragédia climática.

De fato, o filme é uma sátira e tanto dos dias atuais. Temos ali uma presidente negacionista inspirada em Donald Trump, tiktokers famosos e por aí vai. E também uma amostra de como homens e mulheres são tratados nas redes sociais e do bullying que nós, mulheres, sofremos todos os dias. Claro, essa parte do "apocalipse" não podia ficar de fora.

Enquanto assistia, ria de nervoso ao ver o tratamento que Kate recebeu ao tentar alertar a população sobre os riscos de um fim de mundo iminente.

Explico (atenção, contém spoilers): depois de ver que a presidente não a levou a sério, a dupla de cientistas resolve usar a mídia para alertar a população. Já na primeira parada, em um programa de TV, Kate perde a paciência ao ver os apresentadores falando absurdos e abre o jogo: "Vocês vão morrer", ela diz.

Pronto, a cientista viraliza nas redes sociais como "a louca do fim do mundo". Todo tipo de montagem e de memes são feitos sobre ela, que é transformada em demônio e em bichos. Enquanto isso, o professor vira imediatamente o "cientista sexy". Vai parar em capas de revistas como o homem do ano e mulheres caem em cima dele. Já ela é xingada nas ruas.

Risos de nervoso. Não é exatamente assim que acontece na realidade? Homens, em geral, são preocupados, mulheres, histéricas.

E mulheres, em geral, não são ouvidas, por mais credenciais que tenham, mesmo se forem capazes de descobrir um cometa. Para se fazer ouvir, muitas vezes têm que gritar. E, nesse caso, am a ser chamadas de loucas e histéricas.

Já pensou se a tarefa de anunciar que o fim está iminente coubesse a uma mulher? Alguém acreditaria nela?

Provavelmente, assim como Kate, ela seria chamada de louca. Bem, na verdade, isso já acontece. Um exemplo famoso é a ativista climática Greta Thumberg, que já foi atacada até pelo próprio Trump.

No filme, tudo isso é transformado em humor ácido. E fica engraçado mesmo. Mas não deixa de ser triste que a gente não seja deixada em paz nem no fim dos tempos.