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

"Terror do Vale do Silício" é cética sobre planos de gigantes da tecnologia

Margrethe Vestager, comissária de concorrência da União Europeia, fala no festival de inovação South by Southwest, nos EUA - Jacqueline Lafloufa/UOL
Margrethe Vestager, comissária de concorrência da União Europeia, fala no festival de inovação South by Southwest, nos EUA Imagem: Jacqueline Lafloufa/UOL

Jacqueline Lafloufa

Colaboração para o TAB, em Austin (EUA)

12/03/2019 04h02

Vivemos hoje em um mundo digital dominado por titãs - pense em empresas como Amazon, Google, Facebook e Apple. É preciso que alguém esteja sempre atento às movimentações desses titãs, que se não forem devidamente vigiados e regulamentados, podem extinguir qualquer chance de competitividade em seus setores. A mão de ferro que hoje se esmera em garantir esse equilíbrio é a de Margrethe Vestager, comissária de concorrência da União Europeia.

Ao ser entrevistada ao vivo no último domingo no palco do South by Southwest, um das principais conferências do mundo sobre inovação e cultura e que ocorre anualmente em Austin, Vestager demonstrou enxergar as propostas das grandes empresas com bastante ceticismo.

"São muitas as promessas da tecnologia, mas só podemos confiar nelas se o lado sombrio estiver sendo vigiado", enfatizou, logo depois reforçando acreditar que são as sociedades que devem decidir os rumos dos seus mercados, exigindo mais transparência das plataformas sobre a contribuição de impostos e a privacidade dos dados dos usuários.

Vestager causa medo no Vale do Silício, especialmente devido às elevadas multas que já aplicou em gigantes como a Google, condenada a pagar mais de US$ 4,3 bilhões (cerca de R$ 19 bilhões) por abuso de posição dominante do sistema operacional móvel Android. A preocupação da comissária não tem a ver com o tamanho da empresa em si, mas com a falta de outros players que possam atender ao mesmo mercado. "Claro que as empresas podem ser bem sucedidas, podem crescer, fazer fusões. Mas se você é uma grande empresa, também tem responsabilidades. Uma delas é garantir que existe alguém capaz de competir com você", ressaltou.

Talvez precisemos ficar mais atentos às fusões, para que, caso as coisas deem errado, saibamos como corrigir

Margrethe Vestager, comissária de concorrência da União Europeia

A entrevistadora Meredith Artley, editora executiva da CNN, não usou meias palavras para questionar Vestager sobre a projeção global que ela tem conquistado com as medidas que lidera na Europa. Ainda que o foco do trabalho da comissária seja o consumidor europeu, Artley lembrou que as iniciativas tomadas na região impactam também a legislação de outros países, como o Brasil.

"Eu tenho um mandato e uma tarefa: servir os europeus. Já me parece um trabalho grande o suficiente", desviou, com elegância, sobre os impactos globais das suas decisões. No entanto, é fato que a Europa tem se tornado uma grande exportadora de modelos regulatórios na área de tecnologia. "O GDPR (sigla em inglês para Regulamento Geral de Proteção de Dados) é até agora um dos mais bem sucedidos [modelos]", explica Ronaldo Lemos, diretor do Instituto de Tecnologia e Sociedade e um dos idealizadores do Marco Civil da Internet, em entrevista ao TAB. "O regulamento europeu está tendo um efeito viral e provocando vários outros países a seguirem uma matriz semelhante", completa.

Segundo Lemos, a adequação da lei brasileira ao GDPR não é garantida, pois está em tramitação uma medida provisória do fim de 2018 que faz uma série de alterações, desviando o modelo brasileiro, conhecido como LGPD, da proposta europeia. Enquanto no Brasil a preocupação é manter a consistência com a inspiração vinda da Europa - o que garantiria a livre transferência de dados entre Brasil e Europa - Vestager está mais interessada em ajustar as regulações para que elas funcionem em uma economia de plataformas e que incentivem a inovação sem criar monopólios. "Queremos que a inovação aconteça com mais foco nas pessoas, voltadas a servirem aos cidadãos e aos consumidores", sintetizou.

Provocada sobre o quanto a pressão da Comissão Europeia estaria por trás da mais recente promessa de Mark Zuckerberg de apostar em futuro voltado à privacidade nas suas plataformas de mensagens, Vestager foi bastante categórica. Na visão da comissária, as empresas precisam se responsabilizar pelos seus algoritmos e pelos impactos que eles podem vir a causar no futuro. "Meu mandato tem como objetivo garantir que tenhamos uma competição justa. São as empresas que têm que compreender os impactos dos seus códigos e garantirem que eles ofereçam uma concorrência justa", afirmou.