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

Teles criam site para governos monitorarem isolamento com dados de celular

Antenas de celular no topo de prédios na capital de São Paulo - Rivaldo Gomes/Folhapress
Antenas de celular no topo de prédios na capital de São Paulo Imagem: Rivaldo Gomes/Folhapress

Helton Simões Gomes

De Tilt, em São Paulo

23/04/2020 04h00

Sem tempo, irmão

  • Durante a pandemia de coronavírus, teles vêm sendo procuradas para ceder dados de celulares
  • Para evitar várias abordagens, elas criaram site único que mostrará concentração de pessoas
  • Serviço de Claro, Oi, TIM e Vivo será destinado a estados e cidades com mais de 500 mil cidadãos
  • Plataforma vai comparar ainda índice de isolamento de um local em relação a outros

As operadoras de telefonia Claro, TIM, Oi e Vivo criaram um serviço único em que governos estaduais, municipais e federal poderão ver "mapas de calor" dos locais onde os brasileiros mais se aglomeram nesta pandemia de coronavírus, usando dados de celulares.

A medida vem para evitar que sejam criadas novas plataformas do tipo a cada pedido do poder público. O serviço mostrará o índice de isolamento social de cada região e dará aos governantes a capacidade de comparar essas taxas com as de outras localidades do Brasil.

A plataforma ficou pronta nesta terça-feira (21), segundo Marcos Ferrari, presidente do Sinditelebrasil (sindicato das teles). Ela foi construída pela ABR Telecom, que já desenvolve diversos serviços que integram dados das empresas, como o da portabilidade numérica.

Segundo Ferrari, já há interessados, como os estados do Consórcio do Nordeste (Alagoas, Bahia, Ceará, Maranhão, Paraíba, Pernambuco, Piauí, Rio Grande do Norte e Sergipe), além de Rio Grande do Sul, Rio de Janeiro, Espírito Santo, Minas Gerais, Goiás e o Distrito Federal.

Capitais e outros municípios também poderão ar a plataforma, desde que tenham mais de 500 mil habitantes. Campinas (SP) e Porto Alegre (RS) também procuraram as teles.

Já começou

De forma parecida com o que já rola no estado de São Paulo, o monitoramento centralizado reunirá as informações de clientes das empresas de telefonia celular. Esses dados serão usados para criar "manchas de calor" sobre os mapas das localidades. Regiões onde há maior concentração de pessoas são tingidas de vermelho, e aquelas com menor, pintadas de verde.

O monitoramento de celulares foi adotado em grande escala na Coreia do Sul para combater a crise do coronavírus. Chegou ao Brasil quando a prefeitura do Rio firmou uma parceria com a TIM. Depois veio a funcionar em SP. Com algumas variações, também foi usado no Recife e no Parará. O governo Jair Bolsonaro iria lançar um monitoramento em escala nacional, mas o suspendeu.

Como deve funcionar o sistema

Diferentemente do que ocorre em SP, onde os mapas só podem ser conferidos no Palácio dos Bandeirantes, sede do governo, a plataforma única criada pelas teles poderá ser ada por meio de uma página na internet.

No primeiro o, os governantes serão apresentados a um termo de cooperação e um de responsabilidade. O primeiro documento indica o que a plataforma oferece, suas limitações técnicas e até quando as informações serão oferecidas —segundo Ferrari, até quando vigorar o estado de calamidade pública decretado pelo governo federal.

O segundo documento aponta as leis que a plataforma está submetida e quais são seus parâmetros de segurança.

A chave de o solicitada apenas pelas istrações públicas não pode ser compartilhada com pessoas fora dessas esferas. Sendo assim, cidadãos comuns não estão autorizados a entrar na plataforma.

Essas regras, diz Ferrari, não estão abertas a discussão e valem para todos que quiserem participar. "A gente está aplicando o princípio da isonomia. Ou aceita ou não aceita", diz. As chaves de o à plataforma serão fornecidas 48 horas após a dos dois termos.

Privacidade

O presidente do Sinditelebrasil bate na tecla de que os dados do site são anonimizados, ou seja, não podem ser usados para identificar clientes das quatro operadoras. Não é possível saber gênero, nome ou número de celular dessas pessoas.

"É estatística apenas. É como se fosse uma catraca de Metrô. As pessoas vão ando e a roleta vai registrando o número de pessoas. No fim do dia, a estação vai olhar a catraca e saber quantas pessoas aram por ali, mas não sabe quem ou", diz Ferrari.

Alguns especialistas argumentam que é possível individualizar um dado submetido a processos de anonimização ao cruzá-lo com outras informações, como padrões de comportamento. Assim, seria possível obter uma informação pessoal, algo protegido pelo Marco Civil da Internet e a LGPD, Lei Geral de Proteção de Dados que deve vigorar em 2021.

"É impossível fazer qualquer reversão. Não tem como saber o que ou na catraca, você só sabe que ou", defende Ferrari.

Outra preocupação de ativistas é quanto ao tratamento que governantes podem dar aos dados. Ferrari diz que a plataforma única das teles não permite que as informações sejam extraídas ou mesmo manipuladas.

O próprio site efetua uma camada de cruzamento para fazer comparações entre os níveis de isolamento social. Por exemplo: um prefeito pode ver o índice de sua cidade em relação ao do estado ou do país.

Essa iniciativa é diferente daquela implantada pela medida provisória 954/2020, assinada pelo presidente Bolsonaro na última sexta-feira (17) para liberar o compartilhamento de dados das operadoras de telefonia com o IBGE (Instituto Brasileiro de Geografia e Estatística) para a realização da Pnad (Pesquisa Nacional por Amostra de Domicílios) Contínua, que mede o desemprego no país.

No caso da MP, os dados não são anonimizados. Pelo contrário: indicam nome, números de telefone e os endereços de clientes de telefonia fixa e móvel.