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

Pedro Antunes

Não é ficção: sócio da Prevent Senior fez música de "esperança" na pandemia

Eduardo Parras (centro) é o vocalista do Armored Dawn e também responsável técnico e sócio da Prevent Senior - Montagem: Pedro Antunes
Eduardo Parras (centro) é o vocalista do Armored Dawn e também responsável técnico e sócio da Prevent Senior Imagem: Montagem: Pedro Antunes

Colunista do UOL

29/09/2021 11h43

Abril de 2021, Brasil. A segunda onda da Covid-19 dilacerou um País esfacelado.

No dia 8 daquele mês, foram registrados 4.249 mortes pelo vírus no País, a pior marca brasileira de toda a pandemia.

Seis dias depois, em 16 de abril, quando outras 3.305 vidas se perdiam pela Covid, uma banda de rock viking (pois é, isso existe) chamada Armored Dawn lançava uma música de nome "Strong Together".

Segundo o release enviado para este colunista por email naquela data (e só aberto até a manhã de hoje - ito que perdi o controle da minha caixa de entrada há algum tempo), a faixa apresentava uma "mensagem de esperança para todos que precisam se reerguer nesse momento de incerteza".

O texto de apresentação da música ainda dizia coisas como "a letra (...) reforça a importância das pessoas que dividem umas com as outras o peso de dias tão difíceis. Nessa nova realidade da sociedade, a maior prova de afeto por outro ser humano é manter a distância".

Com três álbuns de estúdio, o grupo se preparava para gravar o quarto disco celebrava a boa fase pré-pandemia em que faria uma turnê com outros nomes do heavy metal brasileiro, como Dr. Sin, Korzus e Jimmy & Rats, a "Armored Dawn Convida".

De volta à "Strong Together", a letra da canção tem, por exemplo, uma estrofe como esta:

"Feel the hope within us
Feel it in your soul
I know they can't beat us 'cause
We're gonna rule the world"

Em tradução livre, a música diz algo como: "Sinta a esperança dentro nós, sinta em sua alma, eu sei que eles não conseguem nos derrotar porque nós governaremos o mundo."

A música ostenta bons números - no Spotify (são 67.175 de plays) e 426.998 views no YouTube - é assinada por toda a banda, assim como outras composições como "Zombie Viking" e "Ragnarok" - perceba a temática nórdica.

No e-mail, o vocalista do grupo Eduardo Parras comentava o "conceito lírico" da canção.

"Um por todos e todos por um, não importa o que digam ou o que aconteça. Juntos podemos muito mais e nada pode nos derrubar."

A pandemia afetou a arte e a arte refletiu a pandemia. De Caetano Veloso à banda de esquina que tem nem sequer um single nas plataformas digitais. O que faz do rock viking de Armored Dawn aparecer aqui é que Eduardo Parras, o vocalista do grupo, é também o Dr. Eduardo Fagundes Parrillo, o responsável técnico pela Prevent Senior e um dos sócios da empresa que está sob a mira da I da Covid.

E esta não é a primeira banda de Parrillo a aparecer nesta coluna.

Há alguns dias contei como ele e o irmão, Fernando, sócio- da Prevent Senior e vocalista da Doctor Pheabes, patrocinavam grandes shows (de Rolling Stones, Guns N' Roses e Black Sabbath) e festivais (como Lollapalooza e Rock in Rio) e itiam usar desta posição para tocar nestes eventos.

Sugiro, agora, que volte e releia este texto com a informação de quem é o vocalista de Armored Dawn.

Eu sei, parece ficção - e gostaria que fosse -, mas não é.

Você pode reclamar comigo aqui, no Instagram (@poantunes), no Twitter (também @poantunes) ou no TikTok (@poantunes, evidentemente).