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

Turbine seu cérebro

Dicas para usar melhor a sua mente


Turbine seu cérebro

Ano Novo, vida nova: 5 dicas de como tirar do papel as resoluções para 2020

Denis Freitas / VivaBem
Imagem: Denis Freitas / VivaBem

Colaboração para o VivaBem

30/12/2019 04h00

Todo ano fazemos tudo igual: roupas brancas para ar a meia-noite do 31 de dezembro e uma nova lista de promessas para o ano que nasce. O 1° de janeiro e os dias que o seguem não parecem fundamentalmente diferentes daqueles de dezembro, ainda assim, o clima de esperança e de planos para a vida nova toma conta desse período.

Se o mundo não muda com a agem do ano no calendário, tem algum sentido essa esperança de renovação a cada ano?

Neurocientistas dizem que sim, há razões para essa euforia. Nosso cérebro gosta de novidade e a ideia de finalizar um ciclo e começar outro aumenta a motivação para colocar em marcha um projeto.

O sistema nervoso está sempre buscando o que é novidade para avaliar se aquilo oferece risco ou oportunidade Fernando Louzada, neurocientista do Laboratório de Cronobiologia Humana da UFPR (Universidade Federal do Paraná)

Ainda que o tempo biológico seja um ciclo marcado por mudanças que se repetem, como as estações do ano, e que não haja um momento exato de início ou de fim de cada etapa, "nós criamos marcações de início e fim, início do verão, fim do verão, início do ano. É completamente cultural, mas acaba tendo uma influência forte em nosso corpo", complementa o pesquisador.

A pergunta que vale um milhão é então: como fazer para tirar do papel as resoluções e realmente mudar em 2020? Confira cinco dicas:

  • Denis Freitas / VivaBem

    Escreva seus planos

    O primeiro o é parar e escrever as resoluções para o ano que entra. Dedique um tempo para pensar em quais são os objetivos para 2020, quais as razões para colocar aquele projeto em prática e onde aquele plano vai levá-lo, recomenda Carla Tieppo, neurocientista e pesquisadora da Faculdade de Ciências Médicas da Santa Casa de São Paulo. Não vale escrever em um pedaço de papel e guardar no fundo de uma gaveta, como se a missão terminasse ali. O objetivo é usar o momento de reflexão para criar um plano de ataque real e aproveitar para checar consigo mesmo o que importa e o que são as projeções dos outros ou pressões da sociedade sobre você.

  • Denis Freitas / VivaBem

    Priorize

    De nada adianta criar uma lista com mais resoluções do que se pode cumprir. Imaginar que no ano novo você terá tempo para trabalhar mais, fazer faculdade, aprender uma nova língua, sair mais com seus amigos, fazer esportes, manter sua relação amorosa em dia e ainda relaxar pode ser irreal. "O fato é que quando você faz muitos planos, você acaba dividindo o seu foco e sua atenção em muitas coisas. O ideal é que você escolha sua prioridade e ataque uma coisa de cada vez. Quando você consegue ter sucesso em uma coisa, isso ajuda você a se motivar para mudar outras esferas da vida também. De outro lado, se você mantém muitos planos e eles parecem não se realizar, isso pode provocar ansiedade e colocar tudo a perder", afirma Tieppo. Para criar uma hierarquia de projetos, use cores diferentes na hora de escrever planos em diversas esferas da vida --trabalho, estudos, alimentação, amor -- ou tamanhos distintos de letra conforme a importância da resolução.

  • Denis Freitas / VivaBem

    Dê cara e emoção para cada meta

    Definidas as prioridades do ano, vale a pena guardar um momento para imaginar as consequências positivas para a sua vida daquele seu projeto. "Na hora de fazer planos, usamos estruturais neurais mais ligadas à racionalidade, capazes de criar conexões lógicas de causa e consequência. No entanto, a tomada de decisão feita no nosso dia a dia e que vai determinar se colocamos o projeto em prática está mais relacionada com áreas [do cérebro] fundamentalmente ligadas ao emocional", explica a neurocientista. Assim, o importante é colocar uma dinâmica emocional a serviço do projeto. Então, se o objetivo é encontrar um emprego mais próximo de casa, imagine como você aproveitaria o tempo extra para ficar com sua família ou amigos. Se a ideia é comer melhor, visualize o momento de partilha enquanto está cozinhando com alguém, por exemplo. "O ideal é você tornar as coisas mais concretas, porque é na concretude que a emocionalidade trabalha", analisa Carla Tieppo.

  • Denis Freitas / VivaBem

    Defina etapas até o objetivo final

    "Na hora de escolher o que fazer, a intenção de curto prazo tem mais peso que a intenção de longo prazo. É assim que acabamos vencidos pela procrastinação, escolhendo um prazer efêmero agora em vez de um prazer maior mais tarde", lembra a pesquisadora da Santa Casa de São Paulo. Para fugir dessa armadilha, fracione seus projetos em etapas mais curtas. Isso ajuda a tornar o objetivo mais próximo e a manter a motivação em dia para planos de longo prazo. Não é à toa que jogos de videogame são divididos em fases e, assim, nos mantêm interessados por tanto tempo.

  • Denis Freitas / VivaBem

    Celebre cada conquista

    Criar um ritual de comemoração para cada objetivo conquistado é importante para motivação, mas também para a criação de memórias positivas. "Marcos são importantes para a memória e eles fazem mais sentido quando elas ganham um colorido emocional, quando você se vincula emocionalmente ao evento", comenta Louzada, da UFPR. O ritual escolhido vai depender de cada um: pode ser uma reunião com os amigos ou com a família, pode ser um eio ou qualquer coisa importante para você.

Turbine seu cérebro