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

Chico Alves

Weintraub ainda controla ministério, diz deputada, sobre novos conselheiros

15.maio.2019 - EX-ministro da Educação, Abraham Weintraub - Reuters
15.maio.2019 - EX-ministro da Educação, Abraham Weintraub Imagem: Reuters

Colunista do UOL

10/07/2020 16h53

Mesmo depois de deixar o Ministério da Educação, onde teve desempenho catastrófico, segundo vários especialistas da área, Abraham Weintraub vai manter forte influência na pasta. A conclusão é da deputada Professora Dorinha Seabra (DEM-TO) após a nomeação dos novos integrantes do Conselho Nacional de Educação (CNE) pelo presidente Jair Bolsonaro. Dos 13 nomeados hoje, 11 foram indicados por Weintraub. Entre os novos conselheiros, nenhum saiu das sugestões feitas pelo Conselho de Secretários Estaduais de Educação (Consed) e pela União Nacional dos Dirigentes Municipais de Educação (Undime).

"A lista tinha sido divulgada no apagar das luzes do ministro Weintraub, e houve protesto sobre essa relação que parece que não adiantou muito", diz Dorinha, presidente do Instituto Educatores, que congrega ex-secretários estaduais de educação. "Ele continua controlando o MEC".

A deputada classifica a relação de novos conselheiros como "lamentável". Segundo ela, vários membros do conselho que não foram reconduzidos vinham fazendo um bom trabalho e têm conhecimento acumulado que seria muito útil nesse momento de grande indefinição por causa da pandemia.

"O conselho de um país como o nosso, que tem um sistema federativo em que estados e municípios respondem pela educação básica de mais de 40 milhões de alunos e não tem uma representação dessas entidades comprova desconhecimento e até falta de compromisso com a educação", critica ela.

O Consed e a Udime fizeram indicações em uma lista tríplice e nenhum dos nomes encaminhados foi escolhido. O Conselho Nacional de Educação organiza normas e diretrizes para o sistema de ensino e a educação básica para escolas que, em 90% dos casos, estão sob responsabilidade de estados e municípios. "Você legislar e dar diretriz para um sistema nacional e não ouvir esses entes é um equívoco", lamenta Dorinha, que é relatora da PEC que torna o Fundeb permanente.

Ela avalia a situação como tão preocupante que sugere a revisão das nomeações. "Transformar um órgão que é altamente técnico e representativo em um espaço ideológico e enviesado é um erro grave. Na minha opinião isso deveria ser revisto, isso já aconteceu quando a presidente Dilma saiu e entrou o presidente Temer".

Diante dos critérios utilizados pelo governo para composição do conselho, Consed e o Udime emitiram nota de protesto. "Quando diálogo, reconhecimento e respeito mútuos são valores essenciais para nossa relação com o MEC, desconsiderar as sugestões dos gestores da educação pública de todo o país para a composição de um colegiado tão importante como o CNE transmite uma mensagem negativa e preocupante".