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

Paulo Anshowinhas

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Corrida de skate de rua irá ocupar o Centro Histórico de SP neste domingo

Skatistas reunidos em corrida de skate de rua, a Skate Run em São Paulo - Raphael Kumbrevicius/ Skate Run - divulgação
Skatistas reunidos em corrida de skate de rua, a Skate Run em São Paulo Imagem: Raphael Kumbrevicius/ Skate Run - divulgação

Colunista do UOL

04/11/2022 04h00

O Centro Histórico de São Paulo irá parar neste domingo, dia 06 de novembro, para abrir agem para milhares de skatistas que irão participar da Skate Run, tradicional corrida de skate de rua, considerada a maior do mundo, que retoma as atividades pós-pandemia.

Cerca de 2 mil participantes irão se reunir a partir das 7 horas na Praça do Patriarca, em frente à sede da Prefeitura de São Paulo e do Viaduto do Chá (local da largada), para a concentração, de onde partem com seus skates a partir das 8h da manhã.

Serão dois percursos. O primeiro, para a prova de Competição, com 6 km de extensão para skatistas mais experientes, e outro menor de 3 km para as provas de Família, com tempo estimado de prova de cerca de duas horas. O percurso inicial seria de 8 km, mas teve de sofrer alterações nesta quinta-feira (3).

O trajeto irá circundar o Centro Histórico da capital e atravessar ruas importantes como Avenida Ipiranga, Avenida São João, Rua Maria Paula e ar por pontos como Largo São Francisco, Praça da Sé, antes de retornar ao Viaduto do Chá.

Na parte competitiva, os três primeiros colocados, tanto na categoria masculina quanto feminina, irão receber R$ 14 mil em prêmios em dinheiro, sendo R$ 4 mil para o vencedor (a), R$ 2 mil para o segundo posto e R$ 1 mil para o terceiro. Nas categorias de eio, os três primeiros recebem troféus e o 4º e 5º colocados receberão medalhas. Na categoria de Família, todos os cinco primeiros receberão medalhas.

As inscrições são gratuitas e se encerram nesta sexta-feira (04), ou até que atinja se o limite de 2 mil inscritos neste link. Todos os participantes devem obrigatoriamente vestir capacetes - não fornecidos pela organização.

skate run - Raphael Kumbrevicius/ Skate Run - Divulgação - Raphael Kumbrevicius/ Skate Run - Divulgação
Skatistas reunidos em concentração da Skate Run em frente ao Ibirapuera
Imagem: Raphael Kumbrevicius/ Skate Run - Divulgação

Evento já rodou pelo Pacaembu, Minhocão e 23 de Maio antes de ir para o Centro

Para Dárcio França, diretor da agência Youp, organizadora da Skate Run, "o propósito do evento foi sempre possibilitar para todos aqueles que, independentemente do gênero, idade, nível técnico, cor ou nacionalidade, possam andar e se divertir na democracia do skate".

O evento, que se transformou em festa familiar, surgiu por iniciativa do pentacampeão brasileiro de downhill slide, Fernando Amaral, mais conhecido como Fernandinho Batman, de 53 anos, que em 2013 realizou sua primeira corrida dentro da Virada Esportiva, com um trajeto no Pacaembu, que atravessou o Minhocão até o Memorial da América Latina.

skate run - Skate Run/ Divulgacão - Skate Run/ Divulgacão
Skatistas durante prova da Skate Run na Avenida 23 de Maio
Imagem: Skate Run/ Divulgacão

A prova foi repetida em 2014 no mesmo percurso, e em 2015 foi realizado ao redor do Parque do Ibirapuera, onde se fechou a 23 de maio para a execução da prova.

Em 2017 foi para o centro de Santo André, cidade onde nasceu o campeão mundial de skate vertical Sandro Dias, o Mineirinho, que também participou do evento e teve ainda shows ao vivo e demonstração de FMX (free style motocross), com o campeão Fred Kyrilos.

Fernandinho, que é osmólogo (lida com odores e aromas olfativos) e CEO da empresa WNF, considera que "a Skate Run mexe com a vida do skatista, porque a cidade fica fechada e o skatista toma posse de pedaços como Ibirapuera, 23 de Maio, (e agora Centro Histórico), tudo fechado para andar de skate, sem carros, e oferece um poder de individualidade - esse sentimento de posse do percurso que é a coisa mais impressionante da corrida", afirma.