;(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ãe do 1º lugar no IFRN conta: "pegava livros no lixo e lia para eles"

Primeiro lugar no IFRN, Thompson Vitor, 15, posa ao lado da mãe, Rosângela, que o ensinou a gostar de ler - Arquivo Pessoal
Primeiro lugar no IFRN, Thompson Vitor, 15, posa ao lado da mãe, Rosângela, que o ensinou a gostar de ler Imagem: Arquivo Pessoal

Carlos Madeiro

Do UOL, em Maceió

25/02/2015 06h00Atualizada em 26/02/2015 07h09

A história do adolescente Thompson Vitor, 15, poderia ter ado longe dos estudos. Filho de uma ex-catadora de lixo, o jovem investiu alto na educação e foi aprovado no curso de multimídia do IFRN (Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte). 

Com a nota 846 -- numa escala que vai até 1.000 --, ele foi o primeiro colocado geral na seleção do instituto. A matrícula para o curso ocorreu na terça-feira (24), e as aulas começam no dia seis de maio no campus Cidade Alta, na capital do Rio Grande do Norte.

Filho do meio, Thompson mora em uma pequena casa alugada por R$ 300 no Paço da Pátria, zona leste de Natal. Na infância, a família morava na favela da Maré, uma região ainda mais pobre que a atual e marcada pela violência e pelo tráfico de drogas.

Foi uma atitude da sua mãe que o levou para uma vida voltada aos estudos.

Livros no lixo

Rosangela da Silva Marinho, catadora de lixo. Ela é mãe de Thompson Vitor, 15, estudante que ou em 1º lugar no IFRN (Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte)  - Arquivo Pessoal - Arquivo Pessoal
Rosângela em uma foto da época em que era catadora: pegava livrinhos que os ricos jogavam fora, conta
Imagem: Arquivo Pessoal
“Eu catei lixo por 10 anos e ava sempre pelos locais onde os ricos moravam, ali achava livrinhos. Trazia para eles, os botava sentadinhos. Não sabia ler muito, mas lia o que entendia para eles. Também lia livrinhos que as Testemunhas de Jeová davam, comprava a bíblias infantis. Eu os enchia de leitura, e eles iam aprendendo, foram tomando gosto”, conta a mãe do jovem, Rosângela da Silva Marinho, 40, que cursou apenas até a 5ª série (atual 6º ano).

O jovem Thompson conta que está orgulhoso com o o a um curso num instituto federal, mas se disse surpreso com o resultado. “Se soubesse que tiraria uma nota tão boa teria feito outro curso. Estava inseguro, por isso tentei um curso novo, num campus perto de casa. É uma área que gosto, mas que não conhecia tanto”, diz.

Para chegar à melhor pontuação na seleção do instituto, Thompson afirma que não precisou virar noites de estudo. “Até o ano ado estudava cinco horas por dia, mas ano ado estudei apenas duas. Sempre tive facilidade com aprendizado, gosto de ler”, afirmou. 

Após os quatro anos do curso técnico, ele já planeja estudar direito e, assim, quem sabe, dar uma vida melhor para sua família. “Não vou desistir do curso técnico, vou até o fim. Estou ansioso para começar as aulas e começar a ter novos conhecimentos”, disse.

Segundo o IFRN, a seleção do instituto ofertou, ao todo, 2.400 vagas. O curso escolhido por Thompson teve concorrência de 9,29 por vaga e foi um dos mais disputados.