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

Dennis DJ comemora sucesso: 'Tudo o que tenho hoje veio do funk'

Dennis DJ fez recentemente uma live exclusiva para uma rede de faculdades - Reprodução/Youtube
Dennis DJ fez recentemente uma live exclusiva para uma rede de faculdades Imagem: Reprodução/Youtube

Colaboração para o Splash, em São Paulo

09/03/2021 08h07

Com mais de 20 anos de carreira, Dennis DJ se tornou um dos maiores sucessos do gênero ao produzir artistas cariocas e apostar no funk melody. No Dia Internacional do DJ, ele falou sobre a vida pessoal e profissional, e revelou que se policia para que seu trabalho não invada sua rotina dentro de casa.

"Tenho que tomar cuidado para o trabalho não tomar conta de tudo. Sempre fui muito caseiro e família. E agora, na quarentena, eu tive a felicidade de acompanhar uma fase muito gostosa do meu filho. Pude vê-lo engatinhando, falando as primeiras palavras. Fico me perguntando se eu tivesse trabalhando fora se eu estaria presenciando tudo isso?", disse o artista em entrevista ao "Gshow".

Dennis fez parte do icônico "Furacão 2000", celeiro de novos talentos do funk. Ele considera a sua saída da produtora como um dos momentos mais difíceis de sua vida profissional. "Eu tinha toda estrutura de rádio e TV. E eu fazia muita música, tinha os bailes para tocar. Eu sabia que seria difícil quando pedi demissão, mas comecei um novo capítulo da minha vida. Continuava fazendo minhas produções, mas não tinha um canal de divulgação. E de 2009 para cá as coisas foram mudando", comentou.

Nessa época, ele contou com a ajuda de sua mulher, Bárbara Falcão, que continua sendo sua maior incentivadora. "Ela me ajudou muito com a questão do meu visual e foi a minha primeira personal stylist. Bárbara foi minha primeira diretora de videoclipe, a pessoa que coreografou tudo. Ela me ajudou a cuidar das minhas filhas. Minha mulher me ajuda demais", elogiou.

Conhecer a Bárbara foi a melhor coisa que aconteceu na minha vida. A vida do artista não é a vida de um trabalhador comum. Então seu companheiro tem que estar muito disposto a ar tudo aquilo com você. E ela me encoraja em todas decisões profissionais.

Funk para a comunidade

Já consagrado na área, Dennis DJ disse ter o desejo de dar às crianças de comunidade a mesma oportunidade que ele teve em sua carreira. "Eu tenho o sonho de ajudar outras pessoas através do funk, porque tudo o que tenho hoje veio do funk. Meu sonho é ar isso para outros meninos de comunidade, de dividir com eles um pouco da minha experiência. O funk tem esse poder", contou.

A música tem o poder de trazer a memória afetiva no momento de caos. Toda música leva a gente para um ado bom. Fico muito feliz de saber que pude levar alegria para as pessoas durante a quarentena.

Por fim, Dennis celebrou o fato dos DJs ganharem mais espaço. "Fico muito feliz que o DJ está ganhando o seu espaço. Ter esse reconhecimento é muito mágico. E toda vez que chega esta data as pessoas postam momentos comigo e isso é muito bacana. Eu tracei o meu caminho e sempre penso positivo. Eu imaginava que iria chegar aqui. E só eu sei a dedicação do meu trabalho. Fazer música, fazer som, é o que eu amo. Mirei e tive essa ambição", frisou.