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

Mês da Consciência Negra

Com PretaLab, ela une humanas e exatas e rompe preconceitos na tecnologia

Silvana Bahia, da PretaLab - Inês Bonduki - 4.nov.2015/Folhapress
Silvana Bahia, da PretaLab Imagem: Inês Bonduki - 4.nov.2015/Folhapress

Mandê Agência

Colaboração para Universa

02/11/2019 04h00Atualizada em 05/11/2019 12h01

"Não sei. Sou de humanas." Como jornalista, Silvana Bahia já havia se apoiado algumas vezes nessa afirmação que já é basicamente um bordão na internet. Mas tudo mudou quando ela decidiu fazer algo que pode ser considerado bem coisa do "pessoal de humanas": ouviu sua própria intuição.

"Profissionalmente, eu estava sendo impactada pelas mudanças das tecnologias. A gente tinha jornal, revista, esses formatos mais offline e, de repente, tudo migrou para internet. Eu já tinha interesse em aprender o que tinha para além da tela do computador e essa mudança de cenário foi o incentivo que eu precisava", lembra.

Ela, então, se inscreveu para uma oficina chamada "Rodada Hacker", que ensinava programação com metodologia desenhada para mulheres. Ali, mesmo sem saber, ela já caminhava para a criação da PretaLab, projeto que fomenta o protagonismo de mulheres negras e indígenas nos campos da inovação e tecnologia.

"Naquela época, eu estava trabalhando na comunicação do filme K-Bela, da minha amiga Yasmin Thayná, e tinha que levar para a oficina um projeto a desenvolver. O meu projeto virou o site do K-Bela e aí eu comecei a programar ali", conta a jornalista, que afirma ainda não se considerar uma programadora, mas destaca o quanto este novo conhecimento foi empoderador na sua carreira: "O contato com a tecnologia me fez sentir capaz. Fez com que eu mudasse toda a minha vida e a minha forma de pensar. Pensei: 'eu posso sempre aprender um pouco mais'. Então fui aprendendo".

Hoje, Silvana se dedica a cibersegurança, unindo o seu conhecimento "de humanas" com o "de exatas". Segundo ela, esta fusão é fundamental para o trabalho com tecnologia, pois a essência do negócio não está só no desenvolvimento e na engenharia, está nas pessoas.

Com essa crença, ela chegou, em 2015, na Olabi, empresa de criada em 2014 pela sócia de Silvana, Gabi Agustini, que nasceu com a missão de democratizar o o a tecnologia. "A gente parte de um lugar em que todo mundo é consumidor de tecnologia de alguma forma. Você pode até não se considerar uma pessoa hightech, mas você consome tecnologia", explica Silvana.

E ela está certa: segundo a pesquisa TIC Domicílios, encomendada pelo Centro Regional de Estudos para o Desenvolvimento da Sociedade da Informação, 70% da população brasileira - e isso inclui metade da população rural e das classes D e E - tem o a internet. "É preciso trazer as pessoas para o centro da discussão e não a discussão para o centro. Porque a discussão, ela está no centro, quem não está no centro são as pessoas."

Assumidamente política

Silvana conta que não aprendeu sobre política de maneira institucional. Foi com empatia. "Eu morava no centro do Rio de Janeiro, o centro que já não é o mesmo centro de hoje, mas ainda era o centro. E eu ia trabalhar na favela da Maré todos os dias. Foi ali que me entendi politicamente. Foi ali que me veio: 'eu sou uma mulher negra, caramba'. E então me perguntei por que outras mulheres negras não estavam no mesmo universo que eu, da tecnologia. Ser uma exceção não é bom."

Desse questionamento, nasceu a PretaLab, que atua desde 2017, dentro da Olabi, no apoio e inserção de mulheres negras no mercado da tecnologia. Segundo levantamento do projeto, no Brasil há pouco mais de 600 mulheres negras ativas no setor, todas com sua importância expressiva, mas minoria em questão de números e representação.

Já em 2018, a PretaLab realizou um levantamento de dados sobre mercado de trabalho e tecnologia que demonstra cenários duplamente opressores para mulheres negras, pelo racismo e pelo sexismo. A pesquisa do Centro de Inovação e Talento, por exemplo, aponta que, no um mercado brasileiro da tecnologia, ainda majoritariamente masculino e branco, 77% das mulheres negras entrevistadas se sentiam mais pressionadas a mostrarem resultados do que seus colegas.

Tanto a PretaLab quanto a Silvana sabem o que afasta as mulheres negras da tecnologia. A missão é, então, descobrir como tornar o setor mais humano e atraí-las para ele.

"O meu trabalho está muito mais dentro desse universo, de olhar para essas ferramentas e para esses impactos. Descobrir o que a tecnologia tem a ver com arte, com direitos humanos. Dirijo uma organização que trabalha com tecnologia, inovação e diversidade, então pautar e trabalhar por uma transformação social é um ato extremamente político", afirma ela.

Mês da Consciência Negra