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

CNPq: Após dias de sistemas fora do ar, ministro Pontes nega perda de dados

14.jan.2021 - O ministro da Ciência e Tecnologia, Marcos Pontes, durante reunião em seu gabinete, em Brasília (DF) - Wallace Martins/Futura Press/Estadão Conteúdo
14.jan.2021 - O ministro da Ciência e Tecnologia, Marcos Pontes, durante reunião em seu gabinete, em Brasília (DF) Imagem: Wallace Martins/Futura Press/Estadão Conteúdo

Guilherme Tagiaroli*

De Tilt, em São Paulo

28/07/2021 11h56Atualizada em 28/07/2021 14h26

Desde sábado (24), cientistas brasileiros estão com dificuldades para ar sistemas do CNPq (Conselho Nacional de Desenvolvimento Científico e Tecnológico). Em vídeo publicado na manhã nesta quarta-feira (28) o ministro Marcos Pontes, do MCTI (Ministério de Ciência, Tecnologia e Inovação), disse que o problema já está sendo resolvido, e que os pesquisadores não devem se preocupar, pois não houve perda de dados nem haverá prejuízos para pagamento de bolsas.

"Teve um problema no componente de um dos computadores, que causou uma falta de o de interface. Por isso, não dá para ter contato com os dados", explicou Pontes em vídeo publicado em seu Instagram. "Não teve prejuízo de dados e todos os dados do Lattes foram preservados".

O ministro se referia à plataforma Lattes, que é uma espécie de "Linkedin dos cientistas", e que faz parte dos sistemas do CNPq que sofreu um apagão. Nela, há informações detalhadas sobre formação e campo de trabalho dos pesquisadores — o que é importante nesta época do ano, pois é quando costuma ocorrer a seleção de alunos de pós-graduação. O sistema leva o nome do cientista brasileiro César Lattes, que ajudou a criar o CNPq na década de 1950.

Dentre os sistemas que ficaram fora do ar do CNPq estão: Diretório de Grupos de Pesquisa, Diretório de Instituições e Extrator e da da Plataforma Carlos Chagas.

Ainda segundo o ministro Pontes, o problema de TI não era previsível e o comparou com o "pneu furado de um carro". Mesmo assim, diz, uma empresa já foi contratada para o conserto e, em breve, deve voltar tudo ao normal. "O mais importante é que não foi perdido nenhum dado — imagine ter o trabalho gigantesco de incluir todas essas informações novamente".

Na tarde de ontem, o CNPq já havia informado que o pagamento das bolsas implementadas pelo órgão não será afetado e que os prazos de ações relacionadas ao fomento do Conselho, como prestação de contas, estão suspensos.

Diante das falhas de sistema, pesquisadores ouvidos por Tiltseguem com receio de atrasos em pesquisas e perda de dados, como a pró-reitora de extensão da UnB (Universidade de Brasília), Olgamir Ferreira.

"Ainda temos poucas informações [sobre o que houve]. O CNPq encaminhou mensagem tentando tranquilizar a todas as pessoas, mas há muitas informações desencontradas. Caso essas informações sejam perdidas certamente que a situação será gravíssima. É impensável essa situação", diz Ferreira.

A equipe do Lapis (Laboratório de Processamento de Imagens de Satélite) da Ufal (Universidade Federal de Alagoas), por exemplo, tenta desde o sábado ar os dados de um certificado do INPI (Instituto Nacional da Propriedade Industrial) referente a um projeto pioneiro sobre a influência do clima na sazonalidade do novo coronavírus e outros patógenos (organismos que podem causar doenças).

"A informação do registro do programa certificado é parte da atividade do meu projeto da Capes [Coordenação de Aperfeiçoamento de Pessoal de Nível Superior]. Desde o fim de semana, eu e minha equipe tentamos registrar o certificado no Lattes, sem sucesso", conta o cientista Humberto Barbosa, coordenador do Lapis.

"Vamos aguardar e ver quanto tempo esse problema vai demorar para ser resolvido. Dependemos dessas plataformas para submissão, prestação de contas e controle de projetos", afirma Carlos Teixeira, pesquisador do Instituto de Ciências do Mar da UFC (Universidade Federal do Ceará).

Para o futuro, Marcos Pontes diz que vai propor ao Conselho Diretor do CNPq o investimento em sistemas redundantes — assim, em caso de alguma indisponibilidade, um outro computador entra em cena, sem prejudicar o o.

Caso aprovado, o dinheiro para isso deve sair dos R$ 5,1 bilhões do FNDCT (Fundo Nacional de Desenvolvimento Científico e Tecnológico), uma verba que estava contingenciada e só foi liberada em junho. Esta é atualmente uma das principais fontes de recursos de ciência e tecnologia do país.

A repercussão nas redes sociais:

*Com informações de Carlos Madeiro e BBC Brasil

Errata: este conteúdo foi atualizado
Diferente do informado, os sistemas da Fundação Carlos Chagas não foram prejudicados, mas sim da Plataforma Carlos Chagas, do CNPq. A informação já foi corrigida.