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

Reitor da Universidade de Rosário desconhece doutorado de ministro do MEC

Do UOL, em São Paulo

26/06/2020 15h05Atualizada em 29/06/2020 14h25

O reitor da Universidade de Rosário, Franco Bartolacci, afirmou hoje via Twitter não reconhecer o título de doutor do novo ministro da Educação, Carlos Alberto Decotelli da Silva.

Em post de ontem, o presidente Jair Bolsonaro (sem partido) afirmou, ao anunciar o economista como o titular da pasta, que Decotelli é bacharel em Ciências Econômicas pela UERJ, Mestre pela FGV, Doutor pela Universidade de Rosário, na Argentina, e Pós-Doutor pela Universidade de Wuppertal, na Alemanha.

"Nos vemos na necessidade de esclarecer que Carlos Alberto Decotelli da Silva não obteve nenhuma titulação de doutor na Universidade Rosário mencionada nesta comunicação", escreveu Bartolacci na rede social, compartilhando o post de Bolsonaro.

Em seu currículo lattes, que foi atualizado hoje, Decotelli afirma que fez doutorado de istração na universidade argentina entre 2007 e 2009. De acordo com ele, o título da tese defendida foi "Gestão de Riscos na Modelagem dos Preços da Soja" e seu orientador foi Antônio de Araújo Freitas Júnior.

Pró-reitor da FGV (Fundação Getulio Vargas), é o atual presidente da Câmara de Ensino Superior do CNE (Conselho Nacional de Educação), órgão colegiado ligado ao MEC. Seu nome foi um dos ventilados para ocupar o cargo de ministro da Educação após a saída de Abraham Weintraub.

Em seu lattes, Decotelli se apresenta como "ex-presidente do Fundo Nacional de Desenvolvimento da Educação, autarquia federal responsável pela execução de políticas educacionais do Ministério da Educação - MEC".

"Realizou seu Pós-Doutorado na Bergische Universität Wuppertal, na Alemanha, Doutorado em istração pela Universidade Nacional de Rosário (Argentina), Mestre em istração pela FGV EBAPE, MBA em istração pela FGV/EBAPE/EPGE. Graduado em Ciências Econômicas pela UERJ. Intendente honorário da Marinha do Brasil", acrescenta.

O UOL entrou em contato com a assessoria do MEC para confirmar a informação, mas ainda não obteve retorno.

Na condição de oficial da Marinha, Decotelli é tido como uma nomeação de confiança do núcleo militar do governo. Ao mesmo tempo, é alinhado com o presidente da República em questões ideológicas e se mostra "fiel aos conceitos de guerra cultural", o que pode agradar aos "olavistas" (ala de adeptos do ideólogo Olavo de Carvalho).

Decotelli, primeiro negro a assumir cargo de ministro no governo Bolsonaro, será o responsável por fazer "a conexão da academia" com a gestão que os militares constataram que faltava na gestão Weintraub.