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

Danilo Lavieri

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Cuca volta ao Atlético-MG com receio de reviver frustração no Palmeiras-17

Cuca orienta jogadores do Atlético-MG no duelo contra o Bragantino - CRISTIANE MATTOS/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO
Cuca orienta jogadores do Atlético-MG no duelo contra o Bragantino Imagem: CRISTIANE MATTOS/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO

Colunista do UOL

26/07/2022 15h47

Receba os novos posts desta coluna no seu e-mail

Email inválido

Cuca se reapresentou hoje (26) ao Atlético-MG como unanimidade em Belo Horizonte. Depois de meio ano parado, ele retorna ao clube onde foi campeão do Brasileirão e da Copa do Brasil. A história é tão parecida com a que ele mesmo viveu no Palmeiras em 2017 que até o próprio tem medo de a situação se repetir em 2022.

O retorno foi motivo de conversas entre o técnico, sua comissão técnica e a diretoria do Galo. No entendimento deles após esse papo, a situação de hoje é diferente do que aconteceu há cinco anos. Esse foi um dos grandes pontos de questionamento quando Rodrigo Caetano fez a ligação, além do sonho do técnico de assumir a seleção.

Em 2016, Cuca foi campeão do Brasileirão com o Palmeiras e pediu para sair por problemas pessoas no final da temporada. Mesma coisa que fez em 2021, para menos de um ano depois voltar. Em 2017, ele não teve sucesso, saiu ainda antes do término da temporada e viu Alberto Valentim ser vice-campeão. Agora, em 2022, ele tenta fazer diferente.

Apesar querer mudar, no discurso, há muitas semelhanças. Nas suas duas coletivas de retorno, ele mesmo faz questão de ressaltar que recebeu um chamado após sair por motivos pessoais. Nas duas coletivas ele cita que é muito difícil repetir o sucesso anterior e tenta tirar o peso que ele mesmo colocou nos seus ombros ao dizer em 2016 que o Palmeiras seria campeão.

Cuca gosta de trazer alguns atletas de sua confiança quando chega a um clube, mas desta vez ele pode encontrar dificuldades, já que o Atlético-MG já teve uma atuação forte na janela de transferência com contratações caras e de peso.

Seu grande desafio é fazer o time estrelado funcionar na expectativa que a torcida criou de continuar a maré vencedora iniciada no ano ado, sem poder contar com um Hulk tão inspirado como no ado. Como se não bastasse, há outro elemento de pressão.

O próprio tenta esconder, mas também trabalha com a ideia de que ir bem nestes seis meses é fundamental para ter seu nome lembrado na sucessão de Tite na seleção brasileira. Isso sem nem contar no grande problema que é ter sido condenado por violência sexual contra uma menina de 13 anos.

Siga também as opiniões de Danilo Lavieri no Twitter, no Instagram e no TikTok