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

'Não gosto de dizer adeus': Como foi o último show de Taylor Hawkins no FF

Maurício Dehò

De Splash, em São Paulo

27/03/2022 08h38Atualizada em 27/03/2022 10h32

Taylor Hawkins morreu em turnê, fazendo o que mais gostava, que era tocar bateria. O norte-americano, de 50 anos, havia tocado no Lollapalooza Argentina, no domingo (20), e sua falta foi sentida na hora de o Foo Fighters se encaminhar para o festival Estéreo Picnic, em Bogotá, na Colômbia.

O show na Argentina teve a força que é comum ao Foo Fighters e foi fechado com o clássico "Everlong", além de promessas de Dave Grohl de que a banda retornaria e que, portanto, ele não se despediria com um "adeus" - e agora remetendo à outra tragédia que marcou Grohl, a perda de Kurt Cobain.

A morte de Taylor Hawkins, por suspeita de overdose, já que foram encontradas dez substâncias entorpecentes em seu sangue, aconteceu dois dias antes do Lollapalooza Brasil, onde ele voltaria a tocar em São Paulo. O show foi cancelado pela organização, que colocou no lugar Planet Hemp e Emicida, com uma série de convidados, além de um tributo ao baterista.

O show na Argentina

Taylor e o Foo Fighters subiram ao palco do Hipódromo de San Isidro com um set list bem parecido com o do Lolla do Chile, dois dias antes, mas com um bônus para os argentinos, que também ouviram "This is a Call".

Antes da apresentação, a produção postou uma imagem dos "irmãos" Grohl e Taylor juntos, mostrando a proximidade da dupla.

A banda enfileirou hits como "Times Like These", "Learn To Fly" e "My Hero", mesclando com canções mais novas, a exemplo de "No Son of Mine" e "The Sky is a Neighborhood".

No meio do repertório, há um momento mais relaxado, com solos, covers e a apreseentação dos músicos. "My Generation", do The Who, e "Blitzkrieg Bop", do Ramones, estiveram entre os escolhidos.

Foi depois disso que Taylor teve os holofotes para si, como já é comum em muitos shows: ele assumiu o microfone para cantar "Somebody To Love", do Queen, com Grohl indo para a bateria.

Taylor canta em sua banda solo e virou uma tradição cantar ao menos uma música nos shows do Foo Fighters. O baterista iniciou sua trajetória também cantando eventualmente na banda com "Cold Day In The Sun", do disco "In Your Honor".

O show ainda teve uma participação de peso, com Perry Farrell, do Jane's Addiction, cantando "Been Caught Stealing".

Sem adeus

Dave Grohl e companhia encerraram o show com "Everlong" e o líder da banda prometendo um retorno - que agora pode se complicar; o Foo Fighters ainda não anunciou se seguirá carreira após a perda de Taylor.

"Eu não digo adeus", disse Dave Grohl. "Eu não gosto de dizer adeus. Eu sei que vamos voltar. Se vocês voltarem, nós vamos voltar. Vocês vão voltar? Se voltarem, nós também, então não precisamos dizer adeus."

Taylor jogou suas baquetas para a plateia e foi ovacionado junto ao grupo, em sua última apresentação.

Homenagem

Antes da morte, Dave Grohl disse à Rolling Stone que não consegue enxergar como seria sua carreira sem Taylor e que via o colega diminuindo sua importância na banda, injustamente.

"Eu acho que Taylor se subestima muito sobre sua importância na banda. Talvez por não ter sido o baterista original. Mas, meu deus, o que seríamos sem Taylor Hawkins? Você consegue imaginar? Seria algo completamente diferente", afirmou Grohl na reportagem de capa da revista.