;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Guedes anuncia novos nomes para secretarias

O economista Adolfo Sachsida - André Dusek/Estadão Conteúdo
O economista Adolfo Sachsida Imagem: André Dusek/Estadão Conteúdo

Adriana Fernandes e Idiana Tomazelli

Brasília

27/12/2018 07h10

O economista do Ipea Adolfo Sachsida vai comandar a Secretaria de Política Econômica (SPE) do ministério da Economia do governo Jair Bolsonaro. Ligado ao movimento liberal no Brasil, ele faz parte do grupo de transição que assessora Paulo Guedes, o futuro ministro da Economia. Sachsida integrou também o núcleo principal de economistas voluntários que assessoram Guedes durante a campanha eleitoral de Jair Bolsonaro.

A SPE, que ficará vinculada à Secretaria Especial de Fazenda do novo ministério, terá como objetivo central formular a política econômica do governo federal e preparar as "narrativas" técnicas que vão sustentar as medidas a serem adotadas pela equipe de Guedes.

Doutor em Economia pela Universidade de Brasília (UNB) e com pós-doutorado pela Universidade do Alabama, Sachsida lecionou economia na Universidade do Texas e foi consultor do Banco Mundial para Angola. O economista também é autor de vários livros e artigos técnicos sobre política econômica, política monetária, política fiscal, avaliação de políticas públicas e tributação.

Emprego

Já o atual secretário de Desenvolvimento e Competitividade Industrial do Ministério da Indústria, Comércio Exterior e Serviços, Igor Calvet, será o número dois da Secretaria Especial de Produtividade, Emprego e Competitividade no futuro Ministério da Economia. Ele foi escolhido como secretário adjunto de Carlos Alexandre da Costa, já confirmado como secretário especial da área.

A informação foi divulgada ontem pela assessoria de imprensa do atual Ministério de Desenvolvimento, Indústria e Comércio Exterior (Mdic). Até então, todos os anúncios de formação de equipe vinham sendo feitos pela assessoria de Paulo Guedes.

Calvet foi um dos formuladores da nova política de incentivos para o setor automotivo, o Rota 2030, sancionado neste mês pelo presidente Michel Temer.

De acordo com a nota, ele foi escolhido pelas "importantes entregas apresentadas como o programa Brasil Mais Produtivo, cujas eficiência e eficácia foram atestadas pela Comissão Econômica para a América Latina e o Caribe das Nações Unidas (Cepal) e pelo Instituto de Pesquisa Econômica Aplicada (Ipea)".

Calvet é funcionário público na carreira e especialista em Políticas Públicas e Gestão Governamental. É bacharel em Relações Internacionais, mestre e doutorando em Ciência Política. "Sua atuação como técnico é reconhecida pela boa articulação com o setor produtivo e com o Congresso Nacional", informou a nota. As informações são do jornal O Estado de S. Paulo.