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

Zuckerberg rebate ex-funcionária de Facebook e diz que não privilegia lucro

Mark Zuckerberg - Reprodução
Mark Zuckerberg Imagem: Reprodução

Matheus Piovesana

São Paulo

06/10/2021 11h13

Em um texto direcionado aos funcionários do Facebook e republicado em sua própria página na rede social, o fundador e presidente da plataforma, Mark Zuckerberg, afirma que pesquisas internas que mostram danos que o Instagram causaria ao bem-estar de adolescentes foram retiradas de contexto para criar uma narrativa de que a empresa não se importa com o tema. O executivo também disse que não é verdade que o Facebook priorize o lucro em detrimento da segurança dos usuários, e que é "ilógico" afirmar que a companhia dê mais impulso a conteúdos que geram polarização política e social.

O texto vem a público em meio à mais recente crise de imagem do Facebook. Documentos internos da companhia obtidos pelo Wall Street Journal mostram que pesquisas do próprio Facebook constataram que o Instagram produziria danos à saúde mental de adolescentes, em especial meninas, e que a empresa resistiu a fazer mudanças em algoritmos que favoreciam a difusão de informações falsas.

Nesta terça-feira, 5, s Haugen, ex-funcionária do Facebook que foi a responsável por trazer as pesquisas a público, disse, em audiência no Senado americano, que o Facebook priorizou o crescimento e os lucros em detrimento da segurança dos usuários. Sem citá-la, Zuckerberg rebate a acusação.

"No coração dessas acusações está a ideia de que priorizamos o lucro em detrimento da segurança e do bem-estar (dos usuários). Isso simplesmente não é verdade", escreveu. O executivo usa como exemplo a mudança no feed de notícias do Facebook, anos atrás, que favoreceu conteúdos de amigos dos usuários, tirando espaço de vídeos virais e conteúdos de empresas. Segundo ele, a rede social fez a mudança mesmo sabendo que isso reduziria o tempo de uso do site.

Além disso, segundo Zuckerberg, é ilógico afirmar que o Facebook dá mais espaço a conteúdos polarizadores para aumentar o engajamento dos usuários. "Ganhamos dinheiro através de publicidade, e os anunciantes têm nos dito de forma constante que não querem seus anúncios próximos de conteúdos prejudiciais ou raivosos", disse ele. "E eu não conheço nenhuma empresa de tecnologia que parte para a construção de produtos que deixam as pessoas com raiva ou depressivas."

Zuckerberg afirmou que as pesquisas internas que vieram a público precisam ser visualizadas "com a foto completa", e que foram retiradas de contexto ao serem lidas individualmente. Ele defendeu que o Congresso americano atualize a regulamentação sobre plataformas de internet para aumentar a segurança dos usuários, em especial crianças e adolescentes, mas se disse preocupado com "os incentivos que estão sendo criados" a partir da divulgação dos documentos.

"Se atacarmos organizações que se esforçam para estudar seu impacto no mundo, estaremos efetivamente mandando a mensagem de que é mais seguro não olhar para este impacto, caso você encontre algo que poderia ser usado contra você", afirmou.