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

Ex-vendedor de cocadas conquista cinco diplomas e vira servidor público

Cristian Santos vendia cocada para comprar livros e e de ônibus - Arquivo pessoal
Cristian Santos vendia cocada para comprar livros e e de ônibus Imagem: Arquivo pessoal

Jéssica Nascimento

Do UOL, em Brasília

10/08/2015 12h56

Ele é graduado em filosofia, tradução, biblioteconomia, teologia e letras (Língua e Literatura sas) pela UnB (Universidade de Brasília). Sua dissertação de mestrado foi premiada no Concurso Latino-americano “Fernando Báez” do Centro Argentino de Informação Cientifica e Tecnológica. A tese doutoral virou um livro e foi indicado para o prêmio Jabuti deste ano. Todas essas conquistas não foram em vão. O brasiliense Cristian Santos, 38, vendeu cocada dos nove aos 19 anos para comprar livros, materiais escolares, e de ônibus e ainda ajudar em casa.

O pai de Cristian era carpinteiro e a mãe dona de casa. Era ela que preparava os doces para que ele pudesse vender no centro de Brazlândia, região localizada a 32 quilômetros de Brasília. “Sempre estudei em escola pública e mesmo assim sofria preconceito por vender cocadas. Fazer isso explicitava minha condição de mais pobre, acrescido ao fato de nem sempre possuir o material didático exigido pelos professores”.

Santos conta que sempre foi um leitor precoce. Adorava frequentar a biblioteca comunitária de onde morava. O que mais lhe chamava atenção não era apenas a coleção de livros – ele adorava consultar verbetes na Barsa e Larousse –, mas o pequeno jardim de inverno, o mobiliário confortável e as canecas de alumínio areadas. “Tornou-se uma espécie de refúgio frente à pobreza em que vivia”, desabafa.

De vendedor de cocadas até servidor público

Segundo Cristian, a necessidade de se dedicar mais intensamente aos estudos foi despertada no ensino médio, quando era estudante do colégio público Elefante Branco, na Asa sul. “As diferenças sociais entre os colegas de sala eram mais explícitas e isso me impactou enormemente”.

Ele acordava diariamente às 4h da manhã, preparava o café e limpava a casa para facilitar o dia de sua mãe, na época diabética e hipertensa. Depois pegava o ônibus lotado (linha 413) às 5h10, rumo ao Elefante Branco.

“Levava na mochila um pão francês amanhecido besuntado em margarina. Às 7h o devorava sentado no banco gélido de concreto, em frente à biblioteca da escola. Era a única refeição até o almoço das 15h. No caminho, lia literatura brasileira. Consumia as tardes na Biblioteca Érico Veríssimo”.

Aos 17 anos ele foi aprovado no curso de biblioteconomia da UnB. A escolha do curso veio devido a uma palestra que assistiu no colégio. “Notei que a formação de um bibliotecário envolvia uma multiplicidade de conhecimentos, uma verdadeira síntese de tudo o que adorava: biblioteca, línguas, artes, literatura, filosofia”.

Nos dois primeiros anos de UnB, Cristian continuou vendendo cocadas na vizinhança, especialmente para pagar os es escolares, o bandejão da UnB (R$ 0,50 por refeição) e as cópias dos textos obrigatórios. Mesmo alcançando a primeira graduação ele não parou de estudar.

Hoje, Cristian é bibliotecário da Câmara dos Deputados. Atuou em diversos setores no Parlamento, todos vinculados à cultura e aos direitos humanos. Academicamente se dedica a pesquisar as relações entre literatura e sagrado, em particular os fenômenos da mística e do anticlericalismo.

“No ano ado iniciei o pós-doutorado em história pela Casa de Rui Barbosa, onde tenho analisado as charges anticlericais publicadas na imprensa brasileira. Nos últimos anos tenho sido convidado a ministrar palestras em diversas regiões, abordando os desafios e perspectivas das instituições de cultura em nosso país, em particular as bibliotecas, museus e arquivos”.

Questionado sobre qual o segredo de alcançar o sucesso, Cristian não hesita. Diz que o mais importante é sonhar. “Nem tudo o que desejamos se concretizará, mas os fracassos podem nos ajudar a reconfigurar estes mesmos projetos, tornando-os mais plausíveis”.