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

Experimenta

Nossos repórteres am pelas mais diversas experiências e contam como foi


Experimenta

Fiquei um minuto em silêncio em frente a um estranho na webcam e adorei

Tentei não rir, mas não consegui; site oferece 1 minuto em silêncio com outra pessoa ao redor do mundo - Reprodução
Tentei não rir, mas não consegui; site oferece 1 minuto em silêncio com outra pessoa ao redor do mundo Imagem: Reprodução

Marcos Candido

De Universa

06/04/2020 04h00

O UOL continua em esquema de home office e meus editores acharam que eu precisava interagir com mais pessoas além do meu gato. O desafio foi ficar cara a cara com uma pessoa completamente estranha na webcam. Como não tenho para onde ir, topei a empreitada. Ao final da aventura, me senti uma pessoa mais preparada para interagir com outros seres humanos quando tudo isso acabar.

No site Humans Online, pessoas do mundo todo permanecem em silêncio durante um minuto com outra pessoa. É só ficar parado de frente para a câmera do computador, desfrutando do olhar de um estranho como se a pandemia global não existisse. De acordo com o site, a experiência não é um desafio sobre quem pisca primeiro. Ao contrário, é uma proposta para "conectar-se", "desacelerar" e "conhecer a si mesmo".

Jornalismo introvertido

Sou jornalista, mas também sou introvertido. Não fico nervoso para falar para uma câmera ou diante de uma multidão, mas já congelei ao manter uma conversa individual e informal fora do trabalho.

Com o tempo desenvolvi técnicas para melhorar essa situação. Por exemplo, durante um diálogo eu olho nas sobrancelhas da pessoa com quem estou conversando. A tática me ajuda a prestar mais atenção, a ar mais confiança e a ficar menos nervoso. É um combo maravilhoso que usei para mais este desafio.

Brasileiro desrespeita proposta

O primeiro rapaz a aparecer no meu experimento no Human Online, que tinha mais de mil pessoas conectadas na última sexta, me mostrou uma camiseta amarela do Brasil e tentou puxar papo comigo. A tentativa de conversar não faz parte da proposta, mas ele é brasileiro e caloroso. Como o chat não reproduz o áudio do microfone, ficou um silêncio terrível, mas tudo bem. O cara logo se constrangeu de me assistir imóvel enquanto eu olhava para ele e desligou.

Uma outra conversa foi menos empolgante. Uma mulher deitada, que devia ter por volta de 40 anos, olhou para a câmera por dois segundos e jogou o celular em cima da cama. Por trinta segundos olhei para o teto da casa dela, que aliás tinha um pé-direito lindíssimo.

Eu só consegui seguir a proposta do site com um rapaz. Ele vestia uma camiseta azul onde se lia uma frase em português. O rapaz se manteve firme: não sorriu, não mexeu a sobrancelha e nem nada. Já próximo do final da interação, apenas deu um ha e desapareceu diante dos meus olhos.

Brasileiro não se conteve e mostrou camiseta verde e amarela que representa nosso país; site tem a proposta de ficar 1 minuto em silência - Reprodução - Reprodução
Brasileiro não se conteve e mostrou camiseta verde e amarela que representa nosso país; site tem a proposta de ficar 1 minuto em silência
Imagem: Reprodução

A última interação foi a mais interessante. Eu realmente senti a minha falta de maturidade. Uma mulher que eu poderia julgar brasileira se conectou comigo, mas ficou no contra luz da janela onde estava. Só pude enxergar uma silhueta escura, que lembrava a de um dementador do Harry Potter.

Logo a mulher percebeu o problema foi para um canto com menos luminosidade e ficamos compenetrados, em uma valsa de olhares. Eu tentei. Juro que tentei, mas fiquei com muita vontade de rir. Sabe quando você tem vontade de rir e não pode? Tipo quando você é parado pela polícia ou ao tirar uma foto para documento e te pedem para ficar sério? Pois é.

Nossos olhos se mantiveram um no outro até que eu caísse na risada. Ri como não rio há muito tempo. A mulher também não conseguiu evitar a gargalhada. Ficamos os dois rindo nos segundos que restaram.

Vamos viver em casa no futuro?

Muitos analistas sugerem que a humanidade conversa muito, mas se comunica muito mal. A proposta do silêncio e de olhar com calma nos olhos do próximo é uma das principais performances da artista Marina Abramovic. Quem sentava-se à frente da artista chorava como se contasse sobre abandono familiar a um terapeuta.

Na experiência online, não consegui me concentrar do mesmo jeito, tampouco humanizar a presença de outra pessoa em um notebook. Percebi que muitos rostos — e as histórias por trás deles — podem ter ado por mim sem que eu os notasse ou me desse o trabalho de conhecê-los quando as coisas estavam, er, mais tranquilas.

É bem possível que o futuro após a pandemia torne parte da humanidade ainda mais caseira. Alguns números, como a queda na poluição do ar, combate à propagação de doenças e entregas por aplicativos e streaming, são bons estímulos para manter a gente cada vez mais em casa.

Confesso que fiquei nervoso de interagir com um estranho após todos esses dias de isolamento; e isso me fez perceber o quanto é precioso é o contato próximo com nossos colegas. E com suas sobrancelhas.

Experimenta