Traçar novos caminhos
MC Carol | Por Helton Simões Gomes e Ismael dos Anjos
;(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(); })();
MC Carol | Por Helton Simões Gomes e Ismael dos Anjos
O exame de DNA se popularizou. Mais barato e fácil de fazer, ele virou uma importante ferramenta para resgatar a ancestralidade negra do povo brasileiro. Tilt propôs, e 20 personalidades toparam fazer o teste e olhar para essa cicatriz histórica gerada pela escravidão no Brasil (veja abaixo). Se você quer entender o papel da ferramenta genética e como o Estado brasileiro moeu memórias, leia o texto "Quando o DNA diz de onde vim", que dá início ao projeto documental Origens. Agora, é hora de elas contarem o que descobriram e de onde vieram. Com a palavra, MC Carol:
Agora eu quero ir lá ver como é a parada [nos países africanos]. Acho que vou ficar, não prometo voltar"
Este é um capítulo da série
Quem não sabe de onde veio não sabe para onde vai?
capítulo 1
capítulo 2
capítulo 3
capítulo 4
capítulo 5
capítulo 6
capítulo 7
capítulo 8
capítulo 9
capítulo 10
capítulo 11
capítulo 12
capítulo 13
capítulo 14
capítulo 15
capítulo 16
capítulo 17
capítulo 18
capítulo 19
capítulo 20
capítulo 21
capítulo 22
Dona de letras que vão da reflexão histórica (Ninguém trouxe família / Muito menos filho / Porque já sabia / Que ia matar vários índios) ao sexo (A piroca não cantou / Muito menos era grossa / Eu caí legal na propaganda enganosa) e não esquecem da violência doméstica que preferimos não ver (Presenciei tudo isso dentro da minha família / Mulher com olho roxo, espancada todo dia), MC Carol, Carol Bandida ou Carolina Lourenço canta o que viveu.
Carol conta que foi o funk que a salvou aos 14 anos. Até então, tinha sido criada pelos bisavós no Morro do Preventório, em Niterói (RJ), mas se viu sozinha ainda adolescente, morando em barraco, ando fome e longe da escola. "Eu vivia numa casa com biscoitinho, quatro refeições. De um dia para o outro, eu tive que me adaptar (...) Graças a Deus, o funk chegou primeiro que o crime", conta. Hoje, ela quer que a irmã mais nova, de 11 anos, vença pelo estudo. E quer o mesmo para outras pessoas próximas.
Agora ligue o som, no canto superior direito.
Gorda e preta, MC Carol, de 26 anos, aprendeu a lidar desde cedo com o racismo, o machismo e a gordofobia. Conta que sempre se sentiu um corpo estranho em lugares como saguões de hotéis ou aeroportos, e mesmo em restaurantes. "É uma parada que dói."
"Me sinto constrangida. É entrar no avião e me sentir desconfortável. Fazer uma viagem internacional e todo mundo ser branco. Descer para o café da manhã do hotel ou entrar no restaurante, todo mundo branco, e a galera olha pra você", explica. Curiosamente, foi seu bisavô (a quem chama de vô) que a preparou desde cedo para o que estava por vir. Detalhe: ele era branco e tinha os olhos azuis.
O bisavô conseguiu. Carol se tornou uma mulher independente e, do seu jeito, fugiu da sina reservada às mulheres da família: cozinhar, ar e limpar. Foi difícil seguir pelo caminho do funk, ela conta que muitas pessoas próximas viraram-lhe as coisas. Mas o exemplo que quer deixar para irmã é parecido: corra dos estereótipos.
Carol já quis ser policial e juíza. Além disso, estudar é um sonho que não morreu, mas hoje ela se realiza no funk. Aos 15 anos, descobriu no palco que podia deixar de ser invisível. Até então, a aluna nota 10 só era notada na escola quando aprontava ou questionava.
Antes do teste de DNA, o mais perto que tinha chegado dos anteados eram as histórias do cemitério de escravizados em Preventório e da casa da princesa Isabel na região do morro. Histórias que, de tão superficiais, a irritavam. Na escola, ao ouvir a versão oficial sobre a chegada de Pedro Álvares Cabral, chegou a comprar briga. Hoje, ela entende a dificuldade de ensinar 40 alunos numa escola pública. Tanto que até procurou a professora para pedir desculpa pela "rebeldia".
A discordância com os livros, no entanto, não foi esquecida. Virou uma de suas músicas mais famosas. Em "Não foi Cabral", ela manda a real sobre o descobrimento do Brasil e exalta a figura de Zumbi e Dandara dos Palmares. "Os livros só mostravam uma foto e um textinho. Não tinha idade, mãe, pai, esposa, avó. E eu queria saber mais."
Carol diz que não botava muita fé no teste de DNA, mas, depois que viu o resultado, foi tomada pela curiosidade de conhecer Angola. "Chegar num lugar onde vou ver uma galera preta, acho que nem volto mais pra cá", diz.
A cantora não deposita no teste a esperança para mudar o futuro de crianças negras, mas enxerga nele um incentivo para outras pessoas se conectarem com suas raízes e descobrirem que o amanhã pode ser mais promissor.
Publicado em 30 de abril de 2021.
Reportagem: Helton Simões Gomes, Ismael dos Anjos e Lola Ferreira
Coordenação e Edição: Fabiana Uchinaka e Helton Simões Gomes
Produção: Barbara Therrie
Arte: Deborah Faleiros
Fotos: Lucas Seixas
Este é um capítulo da série
Quem não sabe de onde veio não sabe para onde vai?
capítulo 1
capítulo 2
capítulo 3
capítulo 4
capítulo 5
capítulo 6
capítulo 7
capítulo 8
capítulo 9
capítulo 10
capítulo 11
capítulo 12
capítulo 13
capítulo 14
capítulo 15
capítulo 16
capítulo 17
capítulo 18
capítulo 19
capítulo 20
capítulo 21
capítulo 22