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

Sufoco: Ronnie Von conta história de fã que apontou arma e exigiu música

Colaboração para Splash, do Rio

28/06/2022 14h09

Vida de artista não é fácil. Convidado do "OtaLab" desta semana, Ronnie Von lembrou disso ao contar um caso acontecido há 55 anos na cidade de Bacabal, no Maranhão.

Otaviano Costa havia aproveitado que Ronnie é um beatlemaníaco de primeira hora para perguntar: "Qual foi o momento em que você gritou 'Help'?", citando um dos hits dos Beatles.

Aos 78 anos, Ronnie confessou que teria "inúmeras histórias para contar neste sentido", mas escolheu a de Bacabal por ter sido "o help mais complexo".

Em 1967, Ronnie Von precisava de uma música para fechar o repertório de seu novo disco. Ele ouviu uma canção de Bobby Darin, "If I were a Carpenter" e, apesar de achar a letra ingênua, resolveu gravá-la. "Foi feita uma versão e deram o nome de 'O Carpinteiro'".

Há 55 anos, não havia internet, telefone celular ou e-mail para fazer as notícias correrem. Portanto, Ronnie não sabia que "O Carpinteiro" havia sido lançado como lado B de um compacto vendido apenas no Norte e Nordeste do Brasil.

Foi um sucesso monumental. Só que aqui ninguém sabia! Eu também não. E fui fazer um show numa cidade do interior do Maranhão chamada Bacabal.

Ronnie lembrou que era um show grande, para 30 mil pessoas ou mais, com um palco que ficava bem próximo à plateia. E bem em frente ao artista estava um senhor. "Aquele que vai perturbar está sempre na primeira fila", constatou o artista.

O homem gritava uma coisa só: "CANTE O CAPINTEIRO, CANTE!". E insistia nisso. "Eu não lembrava a letra e a banda não sabia tocar", disse Ronnie. "E a coisa foi piorando. Ele dizia: 'ele é uma fraude, é um mentiroso, um sósia do Ronnie!'"

E então ele disse: Se você for Ronnie, CANTE 'O CARPINTEIRO!'. Tirou um revólver e apontou pra mim.

"E o que aconteceu?", perguntou Ota, totalmente envolvido pela história. "Eu gritei 'help'! A história é essa. A polícia e a segurança vieram e levaram o cara, que estava completamente mamado", riu. Mas ficou a experiência:

A partir daí, em todo show que eu fazia acima do Espírito Santo pra cima, a abertura do show era sempre 'O Carpinteiro'.

Décadas depois, a música continua a surpreender Ronnie Von. "De repente, recebo um vídeo com Ivete Sangalo, marido e filho dançando 'O Carpinteiro'. A música viralizou! Gravei em 1967 e virou sucesso de novo".

OtaLab

O "OtaLab", o programa de internet que parece TV, pode ser acompanhado pelos canais do Splash no YouTube, Twitter e Facebook. Você pode assistir a toda a programação do Canal UOL aqui.