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

Pesquisadores criam game que funciona como 'vacina' para fake news

Do TAB, em São Paulo

05/07/2019 15h54

Pesquisadores da Universidade de Cambridge, na Inglaterra, criaram uma "vacina" para prevenir fake news. Trata-se de "Get Bad News" ("receba más notícias", em tradução livre), um game que educa indivíduos a reconhecer o mecanismo por trás da produção de informações falsas.

O game coloca a pessoa no lugar de um criador de fake news cujo objetivo é enganar seus seguidores no Twitter para ganhar mais seguidores e credibilidade. Entendendo como funciona a mentalidade de quem mente, o jogador aprende a reconhecer as mentiras na vida real. Você pode jogá-lo (em inglês) aqui - uma partida dura aproximadamente 15 minutos.

O jogo foi apresentado a um grupo de 15 mil pessoas. Os desenvolvedores perceberam que, após jogar, os indivíduos estavam mais bem preparados para identificar informações falsas. Os resultados foram apresentados na revista Nature. "Quando você vai a um show de mágica, pode ser enganado pelo truque porque não sabe como funciona. Mas, uma vez que entende o truque, não será mais enganado", defende Sander van der Linden, um dos desenvolvedores, à CNN.

Os pesquisadores perceberam que é difícil convencer as pessoas a desconstruírem cada mentira e, por isso, é mais produtivo ensiná-las a identificarem traços comuns em todas as notícias falsas.

Imagem do game "Get Bad News" - Reprodução - Reprodução
Imagem do game "Get Bad News"
Imagem: Reprodução

"Já que a desinformação se espalha como um vírus, nós pensamos que a vacina poderia ser um veículo para as pessoas aprenderem e compartilharem algo", disse Van der Linden.

O estudo, no entanto, tem algumas limitações. A maioria dos participantes do grupo de controle eram homens com altos níveis de educação.

Ainda assim, o game chamou a atenção de empresas como Google, WhatsApp e organizações como o Escritório de Relações Exteriores Britânicos e a Comissão Europeia, que estão estudando como usar o jogo.

O WhatsApp, inclusive, ajudou a financiar o jogo e está estudando uma versão especial para o aplicativo.

O Google também procurou os pesquisadores e perguntou sobre a possibilidade de criar um jogo com apelo aos idosos.

Agora, os pesquisadores estão estudando traduzir e atualizar o jogo para diferentes regiões. No Oriente Médio, por exemplo, eles querem usar a criação para combater radicalismos.

Fique por dentro de comportamento e cultura seguindo o TAB no Instagram e tenha conteúdos extras sobre inovação, tecnologia e estilo de vida.