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

35% dos brasileiros se sentem pessimistas ao ver a vida dos outros na rede

Unsplash/Katerina Jerabkova
Imagem: Unsplash/Katerina Jerabkova

20/12/2020 04h01

Se você tem menos de 35 anos, já deve ter ouvido de seus pais que, na época deles, era preciso ralar para se fazer na vida. Marina Roale, millennial e head de pesquisa da Consumoteca, conta que já teve essa conversa com o pai várias vezes. "Ele fala que, na época dele, tinha uma fase de plantar e uma fase de colher. (...) Era um contrato muito claro a ideia de que ele ia ter que ralar em uma fase da vida e que isso ia impactar a qualidade do sono, a qualidade da comida, e que ele ia abrir mão de um monte de coisa para ter uma conquista lá na frente", conta ela, no 6° episódio de CAOScast veiculado aqui em TAB (ouça abaixo a partir de 8:30).

Hoje, essa ideia entra em conflito com a bandeira do bem-estar, e não é para menos. Os níveis de ansiedade vêm crescendo desde a adolescência, e a onda de autocuidado vem com força proporcional em resposta. Mas, se o trabalho e o estudo antes eram os principais motivadores do estresse, agora a própria corrida pelo bem-estar também parece estar causando problemas.

Não é suficiente se sentir bem e estar saudável. É preciso trabalhar na "melhor versão de si mesmo" e ainda por cima metrificá-la, seja com aplicativos que acompanham a qualidade do sono, o tempo diário de exercícios físicos, a alimentação? "A gente vê uma mudança de mindset das pessoas. A lógica do trabalho, meio do empreendedor, que tem que se provar todos os dias e honrar sua vaga 'PJ' para não ser mandado embora, (...) A gente leva essa lógica do trabalho, de precisar se provar todos os dias, para a vida. Só que fica uma coisa muito perversa disso. A gente começa sempre a viver operando um branding de nós mesmos", avalia a pesquisadora Rebeca de Moraes, também no CAOScast (a partir de 9:50).

CAOScast vai ao ar às quintas-feiras.

Em uma pesquisa realizada para o podcast, Moraes relata que 35% dos brasileiros disseram se sentir mais negativos ao acompanhar a vida das outras pessoas nas redes sociais, e 52% seguem algum perfil motivacional. Com isso, a felicidade vira uma competição, e queremos tudo para já. Quem tem tempo de trabalhar duro hoje para colher os frutos daqui a 20 anos?

Na hora de lidar com nossas angústias, um tratamento psicológico que pode durar anos também já não parece bastar. Ganha quem promete resultados rápidos. "Os gurus digitais estão aí se multiplicando a rodo por isso. A gente quer algo que entenda nossa demanda com a urgência do nosso tempo, tudo na nossa mão e tudo pra ontem. A gente quer se entender e se conhecer e evoluir nessa urgência, nesse formato e no tempo que o mercado exige", diz Roale (a partir de 16:58).

Curtiu o tema? Ouça o episódio completo acima.