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

Julio Gomes

OPINIÃO

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

Um novo e raro herói salva a pouca honra que restou à Portuguesa

Goleiro Thomazella foi eleito o craque do jogo que salvou a Portuguesa do rebaixamento  - Divulgação/Portuguesa
Goleiro Thomazella foi eleito o craque do jogo que salvou a Portuguesa do rebaixamento Imagem: Divulgação/Portuguesa

06/03/2023 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Ele faz aniversário no dia 18 de agosto. Pertinho da Lusa, que nasceu em um dia 14 do mesmo agosto. Ele pensou em parar de jogar bola porque o filhinho Gustavo, de 3 anos, foi diagnosticado com um câncer raro no intestino. Mas a torcida da Lusa gritou o nome de Gustavinho a cada partida. Fez faixas para ele. Ele pensou que o retorno à elite tinha sido em vão e a Lusa havia batido na Série A1 para voltar. Se não pensou, nós pensamos. Nós todos pensamos. Eu já nem tinha esperanças, já tinha absorvido o luto.

Ele se chama Carlos Eduardo Lecciolle Thomazella. Nasceu em Botucatu há 32 anos e era um bebê quando eu via Dener em campo e achava que a Lusa teria um novo Pelé. A Portuguesa é o clube do "e se". E se Dener tivesse jogado lá a vida inteira. E se tivessem marcado aquele pênalti. E se não tivesse levado aquele gol. E se não tivessem roubado até a última gota de riqueza do clube. São poucos os milagres ou fatos estranhos de um jogo de futebol que caíram para o lado da Portuguesa. Dá para contar nos dedos.

Nos dedos de Thomazella. Foi ele quem manteve a Portuguesa na primeira divisão. Até 2002, a Lusa nunca tinha sido rebaixada. De 2013 para cá, foi rebaixada quatro vezes. Só subiu uma. A do ano ado, com Thomazella, técnico e time identificados com a torcida. Mas os cartolas, as famílias, os clãs, os inescrupulosos não largam o osso na Portuguesa, não é mesmo? Destruíram tudo, construíram nada. A incompetência, a ganância e os esquemas seguem lá, são os ingredientes que nunca faltam no clube. Como não faltam os torcedores malucos que insistem, persistem, insistem, persistem.

Hoje, a Portuguesa é a grande história do dia. Com todo o respeito do mundo, que se dane mais um Gre-Nal, que se dane mais uma derrota do Flamengo, que se dane o pódio do Alonso, que se dane tudo. Hoje foi nosso dia.

A lista de grandes craques e nomes do futebol que aram pela Portuguesa é enorme. Mas a lista de heróis, esta é minúscula. Ínfima.

Thomazella entrou nesta pequena lista hoje, no estádio José Maria de Campos Maia, em Mirassol, a exatos 450 km do Canindé. Entrou nesta lista porque fez duas defesas à la Banks e uma outra milagrosa, aos 52 minutos do segundo tempo. Defendeu as bolas que salvaram a Lusa de mais um rebaixamento, mais uma humilhação, mais um dia de tristeza, mais um dia de luto, mais um dia de desesperança.

É preciso, sem dúvidas, mandar um forte abraço ao camisa 6 do Mirassol, o lateral Guilherme Biro, que conseguiu chutar para fora do gol uma bola que já estava praticamente dentro dele. E outro grande abraço a um "patrício", o técnico português Pedro Caixinha. Afinal, o Bragantino dele meteu 3 a 0 no São Bento, placar que fez com que a Lusa superasse o time de Sorocaba no saldo de gols. E, mais do que isso, o Bragantino havia sido o único time capaz de perder da Portuguesa no campeonato - e ainda por cima de 3 a 0! Obrigado Biro, obrigado Caixinha. Vocês moram em nossos corações.

A alegria inesperada deste domingo não apaga o nojo que foi o time montado pela Portuguesa para um dos momentos mais importantes de sua história. O clube precisa ser vendido. Precisa virar SAF. As pessoas que lá estão - e sempre estiveram - precisam sumir, desaparecer.

Enquanto este dia não vem, nos sobram as migalhas. Os pequenos grandes momentos. Lampejos de alegria. Nos sobra erguer um monumento, dar nome aos filhos que estão para nascer e lembrar dele para sempre. Nós te amamos, Thomazella!