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

Esse conteúdo é antigo

O que se sabe do 'apagão do CNPq' que deixou cientistas sem o Lattes

Nas redes sociais, os cientistas estão usando o termo "apagão do CNPq" para se manifestar sobre a situação e contar como o trabalho deles é prejudicado por essa indisponibilidade - Delmaine Donson/iStock
Nas redes sociais, os cientistas estão usando o termo 'apagão do CNPq' para se manifestar sobre a situação e contar como o trabalho deles é prejudicado por essa indisponibilidade Imagem: Delmaine Donson/iStock

André Biernath - @andre_biernath - Da BBC News Brasil em São Paulo

27/07/2021 18h50

Desde 24 de junho, cientistas brasileiros relatam dificuldade para ar o currículo Lattes e diversos sistemas de informática do Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq).

O órgão, vinculado ao Ministério de Ciência, Tecnologia e Inovação (MCTI), está entre as principais agências de fomento à pesquisa no país e suas plataformas online são essenciais para a concessão de bolsas aos estudantes e para a coordenação de estudos entre diferentes grupos espalhados pelo Brasil e pelo mundo.

Nas redes sociais, os cientistas estão usando o termo "apagão do CNPq" para se manifestar sobre a situação e contar como o trabalho deles é prejudicado por essa indisponibilidade.

O neurocientista Stevens Rehen, da Universidade Federal do Rio de Janeiro (UFRJ), por exemplo, disse no Twitter que a situação representa "uma metáfora cruel para o que vive toda a comunidade científica brasileira diante de um governo que não acredita em ciência".

Em nota enviada à BBC News Brasil, o CNPq informou que já identificou a causa do problema e que está tomando as providências para resolver a pane.

Qual o tamanho do problema?

Entre todos os sistemas afetados, aquele que vem gerando a maior comoção entre os especialistas é a indisponibilidade da Plataforma Lattes.

Descrita genericamente como um "Linkedin dos cientistas", trata-se de um site que reúne toda a trajetória acadêmica dos pesquisadores brasileiros (ou de estrangeiros que têm alguma relação com nosso país).

Professores e estudantes cadastram ali as informações sobre a produção acadêmica, as pesquisas em andamento ou finalizadas, os artigos publicados, as bolsas conquistadas, entre muitos outros detalhes.

Ter esse currículo atualizado costuma ser uma das primeiras exigências a todos que integram a área acadêmica, especialmente na hora de se candidatar a projetos e vagas de iniciação científica, mestrado e doutorado.

Vale lembrar que estamos no meio do ano, período em que muitas instituições abrem as seleções de novos estudantes de pós-graduação, em que geralmente são avaliados os currículos Lattes dos candidatos.

O nome da plataforma é uma homenagem ao cientista brasileiro César Lattes, que fez importantes descobertas no campo da Física Atômica e foi um dos criadores do CNPq na década de 1950.

Mas o currículo não é o único sistema a sair do ar. A Plataforma Carlos Chagas, que reúne informações de grupos de pesquisa e bolsistas do CNPq, também está indisponível.

O mesmo vale para o Diretório dos Grupos de Pesquisa no Brasil, outra base de dados importante para conhecer quais especialistas estão trabalhando em cada área.

Há outros sistemas internos do CNPq que parecem ter sido atingidos, mas ainda não há confirmação oficial desse fato.

Será que tinha backup?

Outro ponto que tem afligido os cientistas brasileiros é o risco de perder todas as informações armazenadas nas plataformas durante as últimas décadas? Boatos compartilhados em redes sociais e grupos de WhatsApp diziam que não havia backup, ou uma cópia segura, dos arquivos.

A BBC News Brasil questionou o CNPq sobre a extensão do problema e se há previsão de retorno à normalidade.

Em nota, o CNPq informou que já diagnosticou o problema que causou a pane nos sistemas e "os procedimentos para reparação foram iniciados".

Também esclareceu que o pagamento de bolsas não será afetado e todos os prazos relacionados a projetos e entregas de relatórios serão prorrogados.

O órgão assegurou que existem, sim, backups de todas as informações e que não aconteceram perdas.

"O CNPq dispõe de novos equipamentos de TI e a migração dos dados foi iniciada antes do ocorrido [a indisponibilidade dos sistemas]."

Não se sabe, porém, quando toda a situação será regularizada e voltará ao normal.

Procurado pela reportagem, o MCTI não respondeu nossas tentativas de contato por telefone e e-mail.