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

Nina Lemos

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Turismo da vacina: viajar por desespero é compreensível, mas ostentar, não

Roberto Justus comemora vacinação contra covid-19 em Miami e incentiva outros brasileiros a fazerem o mesmo - Reprodução/Instagram
Roberto Justus comemora vacinação contra covid-19 em Miami e incentiva outros brasileiros a fazerem o mesmo Imagem: Reprodução/Instagram

Colunista de Universa

19/05/2021 04h00

Quando você imaginou uma situação mais "Black Mirror" do que essa? O país em que você vive não tem previsão de conseguir vacinar rapidamente todos os cidadãos no meio de uma pandemia mundial. Desesperadas, algumas pessoas mais abastadas decidem viajar para outros países para se imunizar. No meio do caminho, eles postam fotos em praias paradisíacas com bons drinques.

Essa é a realidade do momento para privilegiados economicamente no Brasil. O "turismo da vacina" é um negócio real. Empresas estão vendendo pacotes para países que oferecem vacinas para turistas, principalmente para os Estados Unidos, com uma agem de duas semanas em praias paradisíacas do México — pacotes custam a partir de R$ 14 mil e alguns podem ser parcelados.

A maioria dos brasileiros ainda está proibida de entrar nos EUA sem antes fazer quarentena. Por enquanto, dar uma parada no México é a maneira mais "prática" de entrar nos Estados Unidos. A tática já foi utilizada, por exemplo, pelo empresário Roberto Justus. E as praias do México se tornaram muito frequentes no Instagram dos famosos não à toa, mas pelo fato de que o país é "onde dá para ir", com a Europa e boa parte do mundo fechados para viajantes do Brasil.

Sair correndo para outro país para se vacinar porque pode pagar por um lado parece uma atitude totalmente Odete Roitman, a vilã de "Vale Tudo", que odiava o Brasil.

Ao mesmo tempo, dá para compreender quem decide viajar para se vacinar porque está desesperado e sem perspectiva. Outro dia, no Twitter, um cara de 40 anos me disse que iria se vacinar nos EUA assim que a entrada de brasileiros fosse liberada sem escala. "Não quero que aconteça comigo o mesmo que rolou com o Paulo Gustavo", ele disse. Se eu entendo? Completamente!

Minha condição no momento é muito privilegiada. Moro na Alemanha, onde tomei a primeira dose semana ada e tenho a segunda dose marcada para julho. Se eu estivesse sem perspectiva e tivesse dinheiro, eu tentaria me vacinar em outro país? Não sei. Mas entendo o desespero.

ageiros do Titanic

É difícil entender quem faz isso de maneira festiva, como se fosse uma situação normal. Como você consegue viajar para tomar uma vacina que não sabe quando teria o no seu país, onde mais de 450 mil pessoas já morreram, e achar que isso são dias de férias comuns? E ainda postar fotos da sua viagem em tom de celebração? Tem ostentação maior do que ostentar o risco menor de morrer do que o dos outros, principalmente quando é algo que você "comprou"?

Como alguém transforma uma viagem dessas em uma viagem normal, alegre? Calma, gente, você saiu do seu país porque lá não tinha vacina. Você está em uma situação parecida com a de um ageiro do Titanic que pega um bote e sai remando. Você não é a turista do filme "Comer Rezar e Amar" nem as personagens de "Sex and The City" de rolê na Tailândia.

Como diria Keila Mellman, personagem da atriz Ilana Kaplan que dá "dicas de etiqueta" em tempos de pandemia: "Quer postar, posta. Mas é de bom tom?"