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

Vídeochamada de Bolsonaro para exibir 5G "puro" durou menos de 10 minutos

Justin Tallis/AFP
Imagem: Justin Tallis/AFP

Bruna Souza Cruz

De Tilt, em São Paulo

09/04/2021 16h00Atualizada em 09/04/2021 20h08

O presidente Jair Bolsonaro (sem partido) realizou nesta sexta-feira (9) a primeira chamada de vídeo pública com o ministro das Comunicações, Fábio Faria, usando o chamado "5G puro". A demonstração durou menos de dez minutos e propagandeou a estrutura da finlandesa Nokia —além de exibir aparelho da operadora Vivo.

Para o teste, a Nokia instalou antenas 5G no Palácio do Planalto, em Brasília (DF), onde estava Bolsonaro. Faria estava nas instalações da fabricante em São Paulo.

O 5G standalone ou "5G puro" usa estruturas 100% criadas para esta tecnologia. Ou seja, não é como no caso do 5G DSS que algumas operadoras já oferecem, que fornece a quinta geração usando a infraestrutura do 4G. O 5G "puro" é uma das obrigações que as teles precisam cumprir, de acordo com o edital do leilão, até 31 de julho de 2022 em grandes cidades.

A antena usada no teste é quatro vezes menor do que a antena do 4G atual, quatro vezes mais leve e gasta quatro vezes menos energia, de acordo com o ministro. No entanto, quem estava assistindo à transmissão não notou nada de muito diferente. Seria necessário mostrar alguns testes de velocidade e latência (tempo de resposta entre o envio de um comando e sua execução) que exemplificassem a diferença, o que não aconteceu na breve conversa.

Em nota, o ministério afirmou que tem se aproximado de fabricantes de equipamentos 5G para conhecer as tecnologias de perto. Depois da "Missão 5G", comitiva governamental que visitou sedes de empresas na China, Coreia do Sul, Japão, Suécia e Finlândia, Faria participou em março da inauguração da linha de produção de placas 5G da empresa Ericsson, em São José dos Campos (SP).

Nos últimos meses, o governo brasileiro tentou encontrar formas de impedir a participação da fabricante chinesa Huawei no leilão do 5G, alegando suspeitas de espionagem nunca provadas. Também foi pressionado pelas operadoras brasileiras para não tirar de cena a líder do setor, porque isso terá um alto impacto de custo e o tempo para troca de equipamentos da chinesa que já funcionam no Brasil há anos.

Quem quiser a frequência de 3,5 GHz, a mais cobiçada, terá que construir uma rede privada para o Governo Federal dedicada a segurança de dados e defesa nacional —e só podem oferecer este serviço companhias que, segundo o editam, seguem a "padrões de governança corporativa compatíveis com exigidos no mercado acionário brasileiro". Algumas fontes acreditam que esse critério só é seguido por empresas de capital aberto —o que não é o caso da Huawei.

Edital do 5G na mira do TCU

O Tribunal de Contas da União (TCU) está no processo de análise do edital do leilão do 5G. No momento, a área técnica aguarda respostas do Mcom para esclarecer se as contrapartidas exigidas das empresas de telecomunicação não são estratégias para driblar o teto de gastos da União.

Algumas das exigências criadas foram a construção da rede exclusiva para órgãos públicos e o programa que prevê a conexão por fibra ótica de regiões isoladas do país. Para técnicos do TCU, as contrapartidas entrariam na categoria de despesas públicas, mas seriam executadas fora do Orçamento por empresas privadas.

Durante o leilão, as empresas darão lances para adquirir as faixas de frequência do 5G. Mas algumas dessas exigências do Governo Federal estão como condições para as operadoras comprarem as bandas que desejarem.

* Colaborou Guilherme Tagiaroli