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

Olhar Olímpico

OPINIÃO

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

Atletismo dificulta índices olímpicos e dá superpoder a cartolas

Thiago Braz na final do Mundial de Atletismo de 2022 - Carol Coelho/CBAt
Thiago Braz na final do Mundial de Atletismo de 2022 Imagem: Carol Coelho/CBAt

23/12/2022 18h52

A World Athletics, federação internacional de atletismo, anunciou esta semana os índices exigidos para os atletas se classificarem automaticamente para os Jogos Olímpicos de Paris, os chamados índices olímpicos. Eles são significativamente mais fortes, mais difíceis de serem alcançados, do que em ciclos ados.

É natural que os índices fiquem mais duros a cada quatro anos, refletindo a evolução do esporte. Mas o atletismo foi muito mais radical. Só 50% das vagas olímpicas em provas individuais serão distribuídas a atletas que atingiram os índices mínimos. As restantes serão distribuídas a partir de um ranking, que foi criado há mais ou menos quatro anos.

Esse ranking é diferente do tradicional, em que são considerados apenas as marcas dos atletas. No ranking do atletismo, cada apresentação de um atleta rende a ele uma pontuação, que considera a marca, a classificação no evento, e o nível do evento. Vale a média dos cinco melhores resultados de cada atleta.

A ideia da World Athletics é valorizar quem alcança seus melhores resultados nas competições mais importantes, o que é louvável. Mas isso tem promovido as mais diversas injustiças, porque a participação nos eventos que mais distribuem pontos depende de fatores políticos.

Vamos pegar dois corredores de 100 metros como exemplo. O índice é 10s00, o equivalente ao recorde brasileiro. Se um brasileiro vencer o meeting mais importante do calendário sul-americano, o GP Brasil, com 10s01, ganhará 60 pontos de bônus e terá 1.263. Mas se o segundo colocado do Brisbane Track Classic, na Nova Zelândia, o mais importante da Oceania, fizer 10s06, ele terá 80 pontos extras e fica à frente do sul-americano no ranking, com 1.266.

Mesmo fazendo tempo pior e alcançando uma posição pior, um atleta da Oceania teria prioridade em uma vaga olímpica sobre um corredor da América do Sul, pelo único fato de que o torneio mais importante da Oceania é mais valioso que o mais importante da América do Sul, porque a World Athletics quis assim.

Regionalmente o problema também é enorme. Mais um exemplo: em 2022, um colombiano ou um uruguaio não tiveram nenhum meeting internacional para competir em casa. Um argentino teve três torneios nível "D". O brasileiro, um evento "C", um "D" e um "E", porque a World Athletics deu essas notas aos torneios apresentados por cada um desses países.

Para o colombiano pontuar no ranking, só viajando, algo que também acontece em outras modalidades, é verdade. Mas no atletismo as inscrições são por convite, que são usados como peças de um jogo de xadrez.

Em uma prova em que um brasileiro e um colombiano disputam uma vaga olímpica pelo ranking, os organizadores dos torneios brasileiros podem não inscrever o estrangeiro, abrindo o caminho para o atleta da casa pontuar com três vitórias. Ao colombiano, restaria buscar vaga em competições na Europa ou nos Estados Unidos, mais distantes, que dependem de maior investimento, e com menor chance de bônus por vitória, dada à competitividade.

Em muitos casos, incluindo o Brasil, as competições internacionais são geridas pela confederação, que ao mesmo tempo que é promotora de evento, tem seus objetivos esportivos, entre eles classificar o maior número de atletas possível.

Dois exemplos práticos: a ausência de Thiago Braz e Darlan Romani no Troféu Brasil e em competições como os Jogos Sul-Americanos abre espaço para atletas que não são os melhores do país em suas provas conquistarem vitórias importantes e somarem mais pontos no ranking do que somariam se competissem contra Thiago e Darlan —- e naturalmente fossem superados por eles. Tanto nos Troféu Brasil quanto no Sula, o campeão ganha 20 pontos a mais que o vice.

No arremesso de peso, William Dourado conseguiu vaga no Mundial do ano ado ando a linha de corte por 10 pontos (na média de cinco resultado). No salto com vara, Augusto Dutra superou o sarrafo para ir ao Mundial por 15 pontos.

Não que tenha sido o caso de um brasileiro ajudar outro, mas poderia ser. A CBAt tem as peças na mão para fazer esse xadrez, assim como outras confederações. E o problema é esse. Não deveria ser assim. O sonho de chegar à Olimpíada é grande demais, para todos os atletas do mundo, para ser realizado ou não por um movimento de xadrez de um grupo de cartolas.