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

Os que militam contra a ciência são militantes da morte, diz reitor da UFPR

Ricardo Marcelo da Fonseca, reitor da UFPR - Reprodução/UFPRTV
Ricardo Marcelo da Fonseca, reitor da UFPR Imagem: Reprodução/UFPRTV

Lucas Borges Teixeira

Do UOL, em São Paulo

26/04/2021 18h17

O reitor da UFPR (Universidade Federal do Paraná), Ricardo Marcelo da Fonseca, fez duras críticas ao tratamento da ciência no Brasil. Sem mencionar nenhuma pessoa específica, ele disse hoje que quem milita contra a ciência, é "militante da morte".

Fonseca participou de uma coletiva na tarde desta segunda (26) para tratar da vacina contra covid-19 desenvolvida pela instituição e reclamou dos crescentes cortes para pesquisa no país. Até então, a universidade recebeu apenas R$ 230.000 de investimentos federais para o projeto.

Neste momento dramático que vivemos, a ciência tem sido o veículo e a promotora da vida. Mais do que formação, do que civilidade, do que desenvolvimento econômico. Vida. Porque é a ciência que tem dado as condições para saúde e sobrevivência. Os que militam contra a ciência, neste momento, são os militantes da morte na pandemia.
Ricardo Marcelo da Fonseca, reitor da UFPR

Sem citar nomes, Fonseca frisou a ciência é também questão de soberania e deu o exemplo do imunizante em desenvolvimento: com insumos 100% nacionais, a vacina da UFPR não precisaria de IFA (Ingrediente Farmacêutico Ativo) estrangeiro, como acontece com a CoronaVac e a AstraZeneca/Oxford.

"Se tivéssemos tido financiamento consistente, digamos, na última década para ciência e tec no Brasil, quem sabe nesse momento não fôssemos dependentes de tecnologia estrangeira", criticou Fonseca. "Parabenizando mais uma vez os tenazes cientistas que, apesar da carência crescente de recursos, têm feito um trabalho espetacular."

Até então, o imunizante recebeu dois aportes: R$ 230 mil do CNPq (Conselho Nacional de Desenvolvimento Científico e Tecnológico) em parceria com o Ministério da Ciência, Tecnologia, Inovações e Comunicações e R$ 995 mil do governo do estadual.

O investimento federal possibilitou o desenvolvimento até estágio atual da pesquisa, em testes em animais. O estadual será voltado para compra de equipamentos e custeio da próxima etapa da pesquisa e para pagamento de bolsas para pesquisadores em pós-doutorado.

Queria fazer essa homenagem à produção de conhecimento resistente neste país e pedir que a sociedade dê os braços para este grande patrimônio do povo brasileiro que é a universidade pública.
Ricardo Marcelo da Fonseca, reitor da UFPR

O uso de matéria-prima nacional também deixa a vacina paranaense mais barata do que as opções internacionais, entre R$ 5 e R$ 10 por dose. Segundo a universidade, o plano é conseguir fazer o o pedido à Anvisa (Agência Nacional de Vigilância Sanitária) para iniciar os testes em humanos em seis meses.