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

Analista diz que PL das Fake News acabará com decisões pontuais sobre redes

Colaboração para o UOL, em São Paulo

26/04/2023 19h54

Durante entrevista ao UOL News desta quarta-feira (26), o analista Christian Perrone, GovTech do ITS Rio, afirmou que o PL das Fake News será importante para não haver mais decisões pontuais da Justiça. Mais cedo, a Justiça Federal do Espírito Santo suspendeu o Telegram no Brasil.

Olha o pedido que foi feito agora. Queriam dados de todas as pessoas que faziam parte daquele grupo. Pode ser que sejam dados relevantes, mas será que a gente precisa de todos esses dados nesse momento? Essas são perguntas importantes para discutir quais são os limites para atuação da Justiça.

"Por isso o projeto de lei falando sobre esse tipo de questão é importante para termos uma decisão democrática e não tenhamos decisões pontuais da justiça, seja do Espírito Santo ou outros lugares do Brasil", completou

Sakamoto: Denúncias sobre ataques a escolas despencam após prisões e punição a redes

O colunista do UOL Leonardo Sakamoto disse durante sua participação no UOL News que o debate sobre o PL das Fake News aumentou e está tomando copo por conta dos ataques nas escolas e dos boatos gerados nas redes após alguns serem realizados.

Segundo Sakamoto, a quantidade de denúncias despencou após as plataformas de redes sociais começarem a agir.

Falei com o Ministério da Justiça mais cedo e o interessante é que as denúncias dos ataques às escolas, sejam reais ou falsas, despencaram depois que foi anunciado aquela portaria do Ministério da Justiça com aviso de que as redes seriam punidas. Antes, algumas redes como Twitter não queriam atuar, remover postagens que promoviam apologia a esses ataques.

"Dados que eu tenho mostram que no dia 12 de abril, que foi um dos primeiros marcos, quando o pessoal cometeu ataques em massas, teve 1.798 denúncias únicas, e no dia 13, por outro lado, foram reduzidas a 854, e depois foram caindo. E mesmo no dia 20 de abril, um dia importante, aniversário de Columbine e Hitler, pessoal falou que ia ter ataque, o número de denúncias já tinha caído para 248, o que mostra que as próprias redes sociais estavam agindo", completou.

PL das Fake News deve acabar com 'terra de ninguém' online, diz Sakamoto

Leonardo Sakamoto também comentou sobre a importância do PL das Fake News. Segundo o colunista, atualmente a internet é uma "terra de ninguém"

Falo com certo conhecimento de prática porque já fui espancado, tomei garrafada na cabeça, fui cuspido na rua, apanhei várias vezes, ameaçado de morte presencialmente e pessoalmente por processos que começam nas redes sociais.

Sakamoto afirmou que o projeto não está querendo regular o que é verdade e o que não é, mas tentando garantir que as plataformas tenham um comportamento pro-ativo para regular ódio e intolerância nas redes.

Fazer com que elas tomem a decisão, não é para tirar se isso é verdade ou mentira, mas é para tirar material de ódio, material que incite violência contra as mulheres, que faça apologias a ataques terroristas em escolas, conteúdos que promovam um golpe de estado ou incitem a violência contra s as instituições públicas, etc.

***

O UOL News vai ao ar de segunda a sexta-feira em três edições: às 8h, às 12h e às 18h. O programa é sempre ao vivo.

Quando: de segunda a sexta, às 8h, às 12h e 18h.

Onde assistir: Ao vivo na home UOL, UOL no YouTube e Facebook do UOL.

Veja a íntegra do programa: