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

França e Nova Zelândia lançam apelo internacional contra ódio na internet

O presidente da França, Emmanuel Macron - Ludovic Marin/AFP
O presidente da França, Emmanuel Macron Imagem: Ludovic Marin/AFP

Da agência RFI

16/05/2019 11h13

O presidente francês Emmanuel Macron e a primeira-ministra da Nova Zelândia, Jacinda Ardern, lançaram nesta quarta-feira (15), em Paris, o "Apelo de Christchurch ", uma mobilização internacional contra a difusão de conteúdos violentos, o ódio e o extremismo na internet. Em resposta às críticas que sofreu após os atentados nas mesquitas, o Facebook anunciou nesta quarta-feira uma restrição do uso da plataforma Live.

O apelo internacional é lançado dois meses após o massacre nas mesquitas da cidade neozelandesa de Christchurch, que deixou 51 fiéis mortos. O evento reúne, além do presidente francês e da primeira-ministra da Nova Zelândia, mais de 80 personalidades, entre eles chefes de Estado e de governo e os principais executivos das gigantes da informática, como Google, Twitter e Facebook.

A cerimônia no Palácio do Eliseu vai começar com a "karanga", um canto tradicional maori para expressar a dor pelos 51 muçulmanos mortos em Christchurch. O massacre de 15 de março contra duas mesquitas foi transmitido ao vivo pelo Facebook. O vídeo de 17 minutos com as cenas de horror foi baixado mais de 1,5 milhão de vezes nas 24 horas seguintes ao atentado.

O objetivo do "Apelo de Christchurch" é mobilizar os governos e países, assim como as líderes das plataformas digitais, a tomarem medidas e lutarem contra a violência, o terrorismo e o extremismo na internet. "Não nos contentaremos com nossa dor, nós queremos ações concretas", disse à imprensa a primeira-ministra progressista, de 38 anos. "Meu combate é contra o ódio", reiterou.

Facebook restringe uso da plataforma Live

O Facebook anunciou nesta quarta-feira uma restrição do uso da plataforma Live, de vídeos ao vivo, que foi utilizada pelo autor dos atentados nas mesquitas de Christchurch. A rede social foi muito criticada por ter demorado a interromper a transmissão e tinha prometido revisar as condições de uso do Live.

A primeira-ministra neozelandesa, Jacinda Ardern, disse em Paris, antes de participar do lançamento da mobilização internacional ao lado do presidente francês Emmanuel Macron, que a decisão da empresa é um bom começo. "O supremacista Brenton Tarrant deixou evidente a forma como a transmissão ao vivo pode ser mal utilizada para propagar o ódio. O Facebook deu um primeiro o concreto para impedir que este ato se repita em sua plataforma", declarou Ardern.

Com as restrições, os usuários que violarem as regras de uso da rede social, em particular as que proíbem "organizações e indivíduos perigosos", serão suspensos do Facebook por um determinado período, a partir da primeira infração. Rosen também citou o exemplo de uma pessoa que compartilha um link com o comunicado de um grupo terrorista, sem contextualizar a mensagem. O Facebook também planeja impedir, nas próximas semanas, que os infratores divulguem anúncios na rede.

Além disso, o grupo reiterou que, no caso de Christchurch, enfrentou um desafio técnico: seus sistemas tiveram dificuldades para identificar as diferentes versões e montagens das imagens do vídeo original. A empresa anunciou um investimento de US$ 7,5 bilhões em associações com três universidades para melhorar a análise de imagens e vídeos.

A empresa assinou um acordo com a Universidade de Harvard e o MIT para o aperfeiçoamento dos algoritmos da rede, visando identificar quem deturpa conteúdos de vídeo, áudio e texto e bloquear usuários que propagam mensagens de racismo, ódio e apologia ao terrorismo.