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

Elon Musk posta memes com Kanye West e Donald Trump, mas logo apaga

Com memes no Twitter, Musk demonstra apoio aos conservadores Kanye West e Donald Trump, com suas redes Parler e Trota Social - Repodução/Twitter
Com memes no Twitter, Musk demonstra apoio aos conservadores Kanye West e Donald Trump, com suas redes Parler e Trota Social Imagem: Repodução/Twitter

Nicole D'Almeida

Colaboração para Tilt, de São Paulo

19/10/2022 13h45

Elon Musk está repleto de ideias para quando o Twitter finalmente estiver em suas mãos. E algumas parecem incluir seus colegas conservadores, como o ex-presidente Donald Trump e o rapper Kanye West (hoje chamado 'Ye'), que recentemente anunciou o desejo de adquirir a rede social Parler — conhecida por sua moderação frouxa e política de "vale tudo".

Nesta semana, Musk postou alguns tuítes polêmicos — e os apagou logo depois. Mas a internet guarda tudo.

A mais recente publicação, de ontem (18), era uma montagem de si mesmo, Ye e Trump, como 'Os Três Mosqueteiros'. Cada espada representava uma rede: a misteriosa plataforma X (que Musk planeja criar), o Parler e a Truth Social (do ex-presidente dos EUA, que flopou).

"Em retrospecto, era inevitável", dizia a legenda.

Horas antes da publicação deste tuíte, Musk já havia excluído um post de segunda-feira (17), no qual demonstrava seu apoio à compra do Parler e insinuava uma possível colaboração entre eles.

Era um meme da "Dança da Fusão", do anime Dragon Ball Z, em que os personagens — no caso, o próprio Musk e Ye — se fundem temporariamente com o objetivo de se tornarem um ser superior e mais poderoso.

Em suas roupas, estavam estampados os nomes das redes sociais (Parler e Twitter), e um título dizia "Espere por isso". O bilionário ainda escreveu "Tempos divertidos pela frente!!".

Compra do Parler

No início do mês, o rapper teve suas contas do Instagram e do Twitter suspensas após publicação de conteúdo antissemita, incluindo um tweet, agora deletado, no qual afirmava que atacaria judeus, violando as regras da rede social.

Estas penalizações fizeram com que Kanye West, em um ímpeto digno de Musk, "decidisse" comprar a rede social.

Ele disse que "em um mundo onde as opiniões conservadoras são consideradas controversas, temos que nos certificar de que temos o direito de nos expressar livremente".

O Parler ganhou destaque em 2021, quando extremistas usaram a plataforma para publicação de conteúdo violento e até para incitar a invasão ao Capitólio. Na época, o aplicativo foi banido das lojas do Google e Apple, retornando alguns meses depois.