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

Ana Paula Xongani

OPINIÃO

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

Por que o YouTube decidiu investir nos criadores negros da plataforma

Incentivo impacta todo o ecossistema de criatividade e desenvolvimento de narrativas sobre vivências negras - Getty Images
Incentivo impacta todo o ecossistema de criatividade e desenvolvimento de narrativas sobre vivências negras Imagem: Getty Images

Colunista de Universa

18/06/2021 04h00

É inegável o quanto a internet é importante para os comunicadores negros que, embora ainda se deparem com muitas barreiras nas mais diversas plataformas, também encontram nas redes um lugar de contra-narrativa, espaço para produzir saberes, entretenimento e muitas outras obras a partir de nossos pontos de vista.

Hoje, se compreendem que pessoas negras são diversas entre si, que queremos e podemos falar sobre os mais variados temas, é também porque o nosso conteúdo na internet existe. Não sem críticas, já até falei dos problemas dos algoritmos aqui nesta mesma coluna. Entretanto, com cuidado e responsabilidade, esse território também é nosso e precisa ser ocupado.

Transformações acontecem quando estamos presentes e é por isso que eu defendo que, sim, temos que desenhar os nossos caminhos e os nossos veículos de mídia, mas também ocupar as plataformas que já existem, onde tudo acontece.

A minha presença nas redes sociais abriu muitas portas para mim — inclusive, se tenho esta coluna hoje em Universa, foi porque tudo começou em algum lugar e é importante reconhecer isso.

Não é sempre que a gente se sente pertencente nesses espaços (na verdade, a gente se sente pertencente a pouquíssimos lugares em um país com a estrutura social como a nossa), mas existem iniciativas que vem mudando isso. E elas se relacionam com as nossas reivindicações.

Nós, criadores negros, e vários outros ativistas que ali somaram, conseguimos fazer o YouTube Black acontecer. Nesta mesma plataforma, conseguimos mudar o nome da Blacklist (lista negra), que era o apelido dado ao conjunto de termos proibidos para que os vídeos não fossem banidos.

Gosto de lembrar que empresas e marcas são feitas de pessoas e essas pessoas, assim como nós, são também resultado da estrutura racista. Para que aconteça toda e qualquer mudança, é necessário o diálogo e escuta ativa

Nesse sentido, acredito que uma iniciativa como o Fundo Vozes Negras, que abrirá inscrições para a turma de 2022, é resultado da conversa que o YouTube Brasil tem aberto com criadores.

Fui contemplada na primeira edição, que está em andamento este ano, e a participação foi fundamental para otimizar a minha produção de conteúdo, já que ele distribui dinheiro (isso mesmo, dinheiro) e equipamentos para que a gente continue trabalhando, seja no YouTube, seja em outros canais. Você pode usar a verba e os conhecimentos da forma que entender como mais adequada para criar o seu material.

O que espero que sirva de aprendizado para outras plataformas de mídia é que esta iniciativa nasceu quando a empresa entendeu que havia um problema e, além de identificá-lo, criou uma alternativa para somar em sua solução.

Criadores negros não partem dos mesmos lugares que criadores brancos e tal incentivo permite que a gente possa criar com um pouco mais de tranquilidade. Os resultados, por sua vez, impactam em todo um ecossistema de criatividade e desenvolvimento de narrativas sobre vivências negras

Eu sugiro, de verdade, que você, criador de conteúdo, não perca a oportunidade de receber apoio constante para contar a sua história de forma original. No primeiro ano, o Fundo Vozes Negras apoiou mais de 130 criadores, artistas e compositores negros do Brasil, Quênia, Reino Unido, da Austrália. Nigéria, África do Sul e dos EUA.

As inscrições para a turma de 2022 estão abertas e os creators selecionados terão o ao e dedicado de um gerente de conta, investimento financeiro, workshops educativos, além de o a programas exclusivos da comunidade. Você encontra todas as informações aqui e poderá se inscrever de 21 de junho até 9 de julho. Eu quero ver o seu conteúdo bombando no ano que vem!