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

Nasa pagará US$ 5 mi à SpaceX para que funcionários não usem maconha

Elon Musk, CEO da Tesla e da SpaceX, fumou maconha após revelar planos de avião elétrico. - Reprodução/YouTube
Elon Musk, CEO da Tesla e da SpaceX, fumou maconha após revelar planos de avião elétrico. Imagem: Reprodução/YouTube

Rodrigo Trindade

De Tilt, em São Paulo

18/10/2019 17h06

Sem tempo, irmão

  • Após Elon Musk fumar maconha ao vivo, funcionários da SpaceX arão por treinamento
  • Procedimento é exigido para empresas fornecedoras do governo americano
  • Processo será custeado pela Nasa e também será exigido à Boeing

A SpaceX, empresa de tecnologia aeroespacial de Elon Musk, recebeu US$ 5 milhões da Nasa para garantir que seus funcionários não façam o mesmo que o chefe: fumem maconha. Segundo o site Politico, o dinheiro da agência espacial faz parte de um acordo feito em maio, que prevê um retreinamento de quem trabalha na SpaceX.

O procedimento tratará de educar os funcionários às regras rígidas de fornecedores do governo federal americano, que proíbem o uso de drogas ilegais. Nos Estados Unidos, o uso de maconha não é considerado legal a nível federal, embora diversos estados, entre eles a Califórnia, onde Musk vive e a SpaceX está sediada.

Por conta do incidente protagonizado por Musk, outras parceiras da Nasa precisarão ar pelo mesmo retreinamento que a SpaceX, mas com uma diferença fundamental. Em vez da agência americana custear o processo, empresas como a Boeing terão que pagar com seus próprios recursos.

Essa diferença no tratamento dado à SpaceX, que não precisará pagar pelo curso aos seus funcionários, gerou polêmica. A Boeing confirmou que não recebeu recursos para esta exigência da Nasa.

O incidente que motivou tudo isso ocorreu em setembro de 2018, em uma aparição de Elon Musk no podcast de Joe Rogan, um dos mais populares programas do gênero nos Estados Unidos. Durante a entrevista ao vivo, o chefão de Tesla e SpaceX bebeu uísque e fumou maconha, ação que repercutiu negativamente nas ações da Tesla e não agradou a Nasa.

No mês de novembro seguinte, a Nasa afirmou que Musk não repetirá a ação em público. A justificativa é a mesma para o programa de retreinamento. Como a SpaceX é fornecedora da Nasa, há a expectativa que seja mantido um programa para que "a força de trabalho esteja livre de drogas e álcool".

Sobre outras polêmicas...

O uso e brincadeiras sobre maconha não foram as únicas tretas que Musk se envolveu em 2018. Outra delas foi no resgate dos meninos tailandeses que ficaram presos em uma caverna, quando o executivo chamou um dos mergulhadores envolvidos na missão de socorro de pedófilo.

Processado pelo mergulhador, Musk afirmou que não tem liquidez financeira, embora seja o 38º mais rico do mundo, segundo a Bloomberg. A fortuna de Musk é avaliada em US$ 23,6 bilhões, mas "apenas" US$ 200 milhões desse total não correspondem às ações da SpaceX (US$ 14,6 bilhões) e Tesla (US$ 8,8 bilhões)