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

São Paulo

Diniz aciona modo 'sincerão' no SPFC para proteger time: 'Futebol é moedor'

O técnico Fernando Diniz durante treino do São Paulo - Marcello Zambrana/AGIF
O técnico Fernando Diniz durante treino do São Paulo Imagem: Marcello Zambrana/AGIF

José Eduardo Martins

Do UOL, em São Paulo

15/09/2020 04h00

Para Fernando Diniz, o sistema do futebol é um "moedor de carne" que não para. Cobrados pela imprensa e torcedores, técnicos viram "idiotas" e jogadores cobrados por falhas. O pensamento do treinador do São Paulo chamou a atenção ao ser exposto em coletiva após o clássico com o Santos, no último fim de semana. Quem convive com o treinador sabe de sua filosofia, mas recentemente ele ou a mostrar ainda mais o seu raciocínio para proteger o time.

Como o Tricolor paulista não conquista um título desde a Copa Sul-Americana de 2012, a pressão é grande no clube. Para complicar ainda mais a situação, o elenco atual conta com muitos jovens, que ainda não têm a experiência suficiente para lidar com tal responsabilidade.

Por isso, o treinador sabe que é importante também deixar claro para o público que está ao lado dos seus pupilos. Após a partida contra o Atlético-MG, por exemplo, mesmo sem ser questionado, Diniz quis destacar o trabalho desenvolvido por Igor Gomes durante a semana de treinamento.

Neste fim de semana, ele sabia que as críticas negativas seriam endereçadas ao goleiro Tiago Volpi, por causa do segundo gol santista. Por isso, ele quis usar Gabriel Sara como referência. Afinal, o meio campista tinha sido bastante questionado recentemente e deu a volta por cima ao deixar a Vila Belmiro como herói do Tricolor por marcar dois gols.

Diniz já trabalha o lado emocional dos seus jogadores desde quando fora contratado pelo São Paulo, em setembro do ano ado. Formado em psicologia, ele gosta de conversar individualmente com os atletas e funcionários.

Antes da pandemia, em um bate-papo informal com os jornalistas, ele demonstrou já a sua preocupação com a formação dos jogadores de futebol, com o trabalho de base. Na visão dele, o Brasil falha na hora de preparar o atleta, por ser se esquecer do ser humano, que deixa a sua casa muito cedo para se dedicar a algo que talvez nem dê certo.

O treinador acredita que o jogador precise tirar esse peso da responsabilidade, da pressão das redes sociais e da torcida, para focar apenas no campo, onde ele realmente pode decidir. O elenco tem visto com bons olhos esse cuidado do comandante, que deve seguir dando os seus recados e tendo as suas conversas com os atletas no CT da Barra Funda.

São Paulo