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

Tem ideias? Bilionário que vai à ISS quer testar coisas bobas no espaço

O bilionário japonês, Yusaku Maezawa, o primeiro ageiro que já pagou pela viagem da SpaceX, de Elon Musk, à Lua em 2023 - Toshifumi Kitamura/AFP
O bilionário japonês, Yusaku Maezawa, o primeiro ageiro que já pagou pela viagem da SpaceX, de Elon Musk, à Lua em 2023 Imagem: Toshifumi Kitamura/AFP

Sarah Alves

Colaboração para Tilt

21/05/2021 12h20

Você tem curiosidades sobre o que é possível fazer no espaço? Se a resposta é sim, vai aí uma dica: o bilionário japonês Yusaku Maezawa, que vai conhecer a ISS (Estação Espacial Internacional) em dezembro, criou um concurso para que as pessoas enviem ideias — principalmente bobas — para ele reproduzir.

"Você se move para frente quando solta um pum no espaço? O que acontece quando você joga Pokémon GO? Ligar para alguém na Terra do espaço?", disse o bilionário.

Em um site exclusivo para a iniciativa, Maezawa informou que vai selecionar 100 experiências e gravá-las para seu canal no YouTube. A viagem de 12 dias com espaçonave russa Soyuz está marcada para 8 de dezembro. Ele será acompanhado pelo seu assistente Yozo Hirano.

"De todas as coisas sérias a perguntas bobas que você tinha medo de fazer aos astronautas, qualquer pergunta é bem-vinda", completou o magnata, convocando os internautas a ajudá-lo a desvendar os mistérios do espaço e tornar a experiência coletiva.

Como participar

Para participar, é preciso preencher um formulário informando dados pessoais e explicar se a atividade depende de algum equipamento. As inscrições vão até o dia 30 de maio.

Quem for selecionado vai receber um certificado de missão personalizado com o nome. O anúncio será feito em junho.

Quem é Yusaku Maezawa?

O bilionário japonês de 45 anos tem fortuna avaliada em R$ 15 bilhões e é conhecido no mercado de moda do país. É fundador do Zozotown, marketplace de marcas japoneses e estrangeiras.

Para ser aprovado à viagem pela ISS, Maezawa já ou por exames médicos e, em junho, começa um treinamento de 100 dias no Centro de Treinamento de Cosmonautas Yuri Gagarin, na Rússia.

Além da expedição em dezembro, o bilionário comprou um tour na lua com previsão para acontecer em 2023 com a SpaceX, empresa de Elon Musk. Ele abriu um concurso para levar oito pessoas e recebeu mais de 500 mil pedidos. O Brasil foi o 15º país com maior número de inscrições — o primeiro colocado foi a Índia.