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

Nova temporada de 'Black Mirror' começa abordando ansiedade sobre inteligência artificial

Nova temporada estreou nesta quinta (15) - Netflix
Nova temporada estreou nesta quinta (15) Imagem: Netflix

15/06/2023 18h09

Na nova temporada da série de ficção científica "Black Mirror", da Netflix, uma gerente de escritório descobre que um serviço de streaming está reproduzindo sua vida usando um avatar da atriz Salma Hayek.

Hayek, no episódio lançado nesta quinta-feira (15), vendeu sua imagem digital para Hollywood para utilização em programações criadas com inteligência artificial (IA).

A história destaca as preocupações reais de atores e roteiristas, disse Annie Murphy, que interpreta a gerente do escritório. O Sindicato dos Roteiristas da America (WGA, na sigla em inglês) entrou em greve no início de maio, em parte devido a preocupações de que os estúdios começariam a usar IA generativa, em vez de humanos, para escrever roteiros.

"Espero que isso traga à tona o que eles estão lutando e por que estão lutando", disse Murphy em uma entrevista.

"Não são apenas os roteiristas sendo reclamões. São eles dizendo: 'Podemos não ser substituídos por computadores?' e isso é uma coisa tão assustadora para os seres humanos terem que perguntar", acrescentou ela.

Os atores têm expressado preocupação após "deepfakes" realistas de estrelas como Tom Cruise, Keanu Reeves e Hayek começarem a circular online. Membros do sindicato de atores SAG-AFTRA estão buscando proteção sobre como suas imagens são usadas em suas negociações com os estúdios de Hollywood.

"Por mais que eu realmente queira que as pessoas dêem boas risadas e aproveitem nosso episódio chocantemente alegre quando se trata de 'Black Mirror', espero que desperte uma conversa adequada, ou várias conversas, sobre as terríveis repercussões que a IA pode ter se sair dos trilhos", disse Murphy.

Murphy disse que ela e Hayek discutiram o assunto durante as filmagens de "Black Mirror".

"A imagem dela tem sido usada de maneiras terríveis e desrespeitosas, então tivemos conversas sobre isso", disse Murphy.

(Reportagem de Rollo Ross)