;(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; // 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(); })();
Topo
Notícias

OPINIÃO

Sakamoto: 'Patriota' Nikolas põe Trump em 1º, e brasileiro que se lasque

do UOL

Colaboração para o UOL

29/05/2025 12h19

O deputado federal Nikolas Ferreira (PL-MG) exibiu um patriotismo questionável ao defender a suspensão de vistos para estudantes brasileiros pelos Estados Unidos, avaliou o colunista Leonardo Sakamoto no UOL News hoje.

Ontem, durante reunião de uma comissão na Câmara, Nikolas apoiou a medida anunciada pelo governo de Donald Trump para evitar que "comunistinha de meia tigela" tenha visto para estudar nos EUA. A fala do deputado foi feita diante do chanceler Mauro Vieira.

Uma coisa é o direito de os EUA concederem vistos a quem eles quiserem. Outra coisa é uma autoridade brasileira, que diz representar os interesses do Brasil, falar que os EUA estão certos porque revogaram ou não concederam vistos a estudantes brasileiros.

A diplomacia brasileira sempre foi muito elogiada pelo mundo ao longo de décadas devido à independência e por colocar o interesse nacional à frente do estrangeiro. O 'patriota' Nikolas defende uma sanção de Trump diante de jovens brasileiros. Entre Trump e jovens brasileiros, ele fica ao lado do primeiro.

Nikolas justifica dizendo que são 'comunistas', que criticam a política norte-americana. Ou seja: 'essas pessoas têm uma opinião com a qual eu não concordo, então podem ser punidas por um governo estrangeiro'. Entendem o tamanho dessa maluquice? Leonardo Sakamoto, colunista do UOL

Sakamoto criticou a postura de Nikolas por se dizer um defensor da liberdade de expressão, mas desde que ela esteja de acordo com sua ideologia e sem espaço para o diálogo.

Nikolas é uma pessoa que empunha a bandeira da liberdade de expressão para que as pessoas tenham o direito de defender o que elas quiserem, mas, pelo visto, desde que isso vá ao encontro daquilo com o qual ele concorda. Caso contrário, essa pessoa terá que ser punida pelo estrangeiro ao não poder entrar em um determinado país.

Não importa a ideologia, um cidadão deve ter seus interesses defendidos por uma autoridade brasileira. O que Nikolas fez vai ao encontro do que o bolsonarismo já fez ao deixar claro que Trump tem o direito de deportar quem eles quiserem. Eles têm esse direito mesmo, mas brasileiros defendendo isso é como o cachorro defendendo a carrocinha. Isso sem contar a forma com a qual a deportação é feita, com brasileiros algemados e maltratando crianças.

Que tipo de autoridade é essa que, na verdade, coloca o interesse estrangeiro à frente do nacional? É o pessoal que põe o boné do 'Make America Great Again'. Ou seja: EUA primeiro e o Brasil que se lasque. Leonardo Sakamoto, colunista do UOL

O UOL News vai ao ar de segunda a sexta-feira em duas edições: às 10h, com apresentação de Fabíola Cidral, e às 17h, com Diego Sarza. Aos sábados, o programa é exibido às 11h e 17h, e aos domingos, às 17h.

Onde assistir: Ao vivo na home UOL, UOL no YouTube e Facebook do UOL. O Canal UOL também está disponível na Claro (canal nº 549), Vivo TV (canal nº 613), Sky (canal nº 88), Oi TV (canal nº 140), TVRO Embratel (canal nº 546), Zapping (canal nº 64), Samsung TV Plus (canal nº 2074) e no UOL Play.

Veja a íntegra do programa:

Notícias