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

Vasco

Vasco integra grupo de startups com Feyenoord, Cagliari, Peñarol e outros

Presidente do Vasco, Alexandre Campello tem a missão de trazer benefícios oriundos desta parceria - Rafael Ribeiro / Flickr do Vasco
Presidente do Vasco, Alexandre Campello tem a missão de trazer benefícios oriundos desta parceria Imagem: Rafael Ribeiro / Flickr do Vasco

Do UOL, no Rio de Janeiro

19/11/2019 14h17

O Vasco deu um importante o visando os novos investimentos no mercado do futebol e ou a ser integrante de um grupo de desenvolvimento de novas "startups" ligadas ao esporte, as chamadas "sports tech". Estão na aliança clubes como Feyenoord (HOL), Cagliari (ITA), Real Sociedad (ESP), Peñarol (URU), Atlético Nacional (COL), Universidad Católica (CHI), Al-Ittihad (KSA), Sporting Cristal (PER) e Legia Warsaw (POL).

O projeto foi elaborado pelo Real Sociedad e teve a participação do ex-vice-presidente de marketing cruzmaltino, Bruno Maia, ainda quando estava na pasta. O nome dele será "Sport Innovation Alliance".

Em 2018, as startups de esportes movimentaram cerca de 8 bilhões de dólares somente nos Estados Unidos e alguns clubes já têm criado seus "hubs de inovação", caso, por exemplo, do Barcelona. O Liverpool, da Inglaterra, pretende investir cerca de R$ 100 milhões em startups.

O objetivo da "Sport Innovation Alliance" é promover uma troca entre os clubes - que oferecerão o peso de suas marcas - e as startups.

Como clube brasileiro fundador, o Vasco terá a prerrogativa de conhecer em primeira mão os projetos de todo o mundo que queiram se associar ao grupo e a decisão de se relacionar ou não com eles. O clube só investirá alguma verba quando e onde quiser.

"Agradeço a confiança de primeira hora do presidente do Vasco, Alexandre Campello, que seguirá o projeto com a equipe do clube. Uma parceria dessa natureza aponta um protagonismo que o Vasco nunca devia ter deixado de exercer e segue calcando bases para voltar para onde nunca deveria ter deixado de estar", disse Bruno Maia.

O que são "startups"?

Startups são empresas emergentes que têm como objetivo desenvolver ou aprimorar um modelo de negócio, preferencialmente escalável e repetível. Uma startup é uma empresa recém-criada ainda em fase de desenvolvimento, e que é normalmente de base tecnológica.

Vasco