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

Faltam 9 países para ele conquistar o mundo, mas a covid-19 barrou a missão

Pedersen estava na missão de visitar todos os países do mundo até que o novo coronavírus surgiu - Arquivo pessoal
Pedersen estava na missão de visitar todos os países do mundo até que o novo coronavírus surgiu Imagem: Arquivo pessoal

De Nossa

23/04/2020 11h33

Há mais de seis anos, o dinamarquês Torbjørn "Thor" Pedersen, 41 anos, iniciou uma jornada ousada: viajar por todos os países do mundo sem pegar um único voo e com um orçamento de US$ 20 por dia. Faltavam apenas nove nações para ele completar a sua missão, mas o novo coronavírus acabou interrompendo seus planos.

Atualmente, Pedersen está "preso" em Hong Kong e não sabe quais serão os próximos os de sua viagem pelo mundo, de acordo com informações da CNN Travel.

A mudança correu enquanto ele se preparava para embarcar em um navio rumo ao próximo destino, o arquipélago Palau, no Oceano Pacífico. O surto do novo coronavírus ganhou força e medidas restritivas de viagens foram determinadas em Hong Kong.

Apesar do adiamento dos planos, o viajante, que também é embaixador da Cruz Vermelha, decidiu encarar mais esse desafio. Afinal, não há outro jeito.

"Todo dia que o em Hong Kong é mais um dia em que não estou progredindo. Estou perdendo tempo, mas tentando tirar o melhor proveito", disse Pedersen à CNN Travel.

"Com o que está acontecendo no mundo levará pelo menos mais um ano para terminar. Desistir é algo a se considerar. Estou cansado de viajar e pronto para ir para casa. Mas também sou teimoso e motivado", acrescentou.

A viagem pelo mundo de Pedersen começou em 2013. Após receber um artigo de seu pai, ele descobriu que realmente era possível visitar todos os países. "Nunca havia pensado nisso antes", lembrou.

Foram 10 meses de planejamento e a jornada começou pela Europa, seguiu pela América do Norte, América do Sul, Caribe, África, Mediterrâneo, Oriente Médio, Europa Oriental, Ásia e ilhas do Pacífico.

"Como eu trabalhava no transporte e logística, eu estava acostumado a ter várias coisas no ar ao mesmo tempo, encontrar soluções e tornar tudo mais eficiente. Isso ajudou muito em um projeto como este. Pode demorar 20 anos se você não tomar cuidado", afirmou na reportagem.

Entre as regras que determinou para si está a de ar pelo menos 24 horas em cada um dos países que visitar. Segundo ele, as viagens ocorrem por meio de navios (de carga também), trens, táxis, ônibus, carros compartilhados, balsas etc.

De acordo com a reportagem, o dinamarquês já ou por 194 nações. Agora, faltam Palau, Vanuatu, Tonga, Samoa, Tuvalu, Nova Zelândia, Austrália, Sri Lanka e a grande final nas Maldivas— acompanhe aqui os detalhes de como está sendo a jornada de Pedersen.

Depois de chegar ao último país, ele pretende celebrar com sua noiva (que acabou o visitando em alguns lugares do mundo). Até o coronavírus, os dois planejavam se casar na Nova Zelândia.

"Seria fácil ir ao aeroporto e voar para casa. Às vezes penso nisso. Mas, em algum momento, esse projeto deixou de ser sobre mim e começou a ser sobre outras pessoas", ressaltou sobre pensar em desistir por conta da pandemia.