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

Xan Ravelli

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Proibidões: vamos ouvir funk e rap cantados por mulheres e para mulheres

A MC Rebecca - Divulgação
A MC Rebecca Imagem: Divulgação

Colunista de Universa

11/04/2021 04h00

Você também cresceu ouvindo e dançando "I like big butts and I cannot lie" ou o famoso "Quebra ordinária"? Eu também. Nenhum ritmo musical é machista ou misógino por si só. Mas é inegável a facilidade dos homens em ar e prosperar na indústria fonográfica, compondo letras machistas e com histórias contadas sob um único ponto de vista.

Vamos falar aqui sobre o rap e o funk porque quero exaltar o quanto é gratificante ouvir outras mulheres cantando sobre sexo, sexualidade e poder de uma forma ousada, sem medo. E silenciando assim estigmas sobre mulheres não gostarem tanto de sexo quanto homens, sobre mulheres estarem sempre atrás de romance entre outras histórias que o patriarcado nos conta como verdade.

Mas é preciso salientar que, assim como existem artistas consagrados na MPB, no rock, no samba e no sertanejo cantando seus machismos e misoginias, existem mulheres nesses ritmos cantando suas histórias e na maior parte do tempo não recebendo tanta notoriedade. Tirem as crianças do post e vem sem moralismos

1- Propaganda Enganosa (MC Carol)

Mc Carol de Niterói canta as desventuras de uma noite de sexo ruim com um homem lindo, de corpo escultural que só contava vantagem, no refrão: "Sem fofoca, sem caô, sem cutcharra e mimimi, me comeu mal pra c... eu gemi pra te iludir" - quem nunca, né?!

Cardi B - TodaTeen - TodaTeen
Cardi B: a rainha dos challenges nas redes sociais
Imagem: TodaTeen

2- Up - Cardi B

Febre dos Challenges, nessa música Cardi ostenta sem medo de exaltar suas marcas favoritas - bolsas Birkin, Balenciaga, seu Bentley Bentayga enquanto enfatiza seus atributos físico em detrimento as outras "bitches", caras malas que não merecem transar ou como ela canta "Broke boys don't deserve no pussy" , mas ouçam Wap também - hino!

3- Festa na Baru - Valesca Popozuda

Você já foi convidada para uma festinha na casa do boy, chegou lá e era uma suruba? Pois a Valesca já... e aí é se divertir.

4- Teoria da Branca de Neve - Mc Mayara

Porque tem fases na vida que a gente não quer romance, só quer sexo mesmo: "Teoria da Branca de Neve, porque só ter um se eu posso ter 7"

5- Cai de Boca - Mc Rebecca

Hino de exaltação a uma boa chupada, no refrão: "Cai de boca no meu b... tão"em várias entonações

6- Chifrudo - Lia Clark/Pepita

Lia Clark - Reprodução / Internet - Reprodução / Internet
Lia Clark (Divulgação)
Imagem: Reprodução / Internet

Resposta bem vingativa a todas as músicas que já cantamos e dançamos sobre homens que deixam suas esposas para cair na noite.

7- Prostituto - Deize Tigrona/ Jaloo

AMO ESSA! Deize não tem meias palavras pra descrever um encontro com um boy que cantava vantagem e chega na hora faz nada, a Tigrona não deixa por menos e dá uma aula de como se faz

8- Make Love - Inês Brasil

Rainha dos todos os memes canta "Se você não me linguar, hoje eu não vou te dar"entre outras pérolas, risadas garantidas.

9- EGO - Beyoncé

Não poderia faltar Queen B nessa lista, porque antes de cantar que "se ele me f... direito eu levo ele pro shopping pra comprar os Jordans quiser" em Formation, a rainha já cantava que "é muito grande, é muito largo, é muito duro, não vai caber" em EGO.

Beyoncé - Reprodução / Internet - Reprodução / Internet
Beyoncé
Imagem: Reprodução / Internet

10- Only - Nicky Minaj/ Chris Brown, Drake e Lil Wayne

Dificil descolher uma música de Nicky Minaj porque em todas as letras, mas essa entrou para lista porque a maravilhosa canta explicitamente sobre seus companheiros de dueto: "Ei, eu nunca transei com o Wayne, eu nunca transei com o Drake. Se tivesse transado, nós faríamos um ménage e deixaria eles comerem meu c... como um cupcake"