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

Afonso Henriques de Lima Barreto Escritor fluminense

13/5/1881, Rio de Janeiro (RJ)

1/11/1922, Rio de Janeiro (RJ)

Da Página 3 Pedagogia & Comunicação

04/09/2005 16h18

Afonso Henriques de Lima Barreto era mestiço, filho de um tipógrafo e de uma professora , que morreu quando ele tinha apenas sete anos. Estudou no Colégio Pedro 2o e depois cursou engenharia na Escola Politécnica. Ainda estudante, começou a publicar seus textos em pequenos jornais e revistas estudantis.

Com o agravamento do estado de saúde de seu pai, que sofria de problemas mentais, abandonou a faculdade e ou a trabalhar na Secretaria de Guerra, ocupando um cargo burocrático. Grande cronista de costumes do Rio de Janeiro, Lima Barreto ou a colaborar para diversas revistas literárias, como "Careta", "Fon-Fon" e "O Malho".

Seu primeiro romance, "Recordações do Escrivão Isaías Caminha", foi parcialmente publicado em 1907, na Revista Floreal, que ele mesmo havia fundado. Dois anos depois, o romance foi editado pela Livraria Clássica Editora. Em 1911, Lima Barreto publicou um de seus melhores romances, "Triste Fim de Policarpo Quaresma", e em 1915, a sátira política "Numa e a Ninfa".

Lima Barreto militou na imprensa, durante este período, lutando contra as injustiças sociais e os preconceitos de raça, de que ele próprio era vítima. Em 1914 ou dois meses internado no Hospício Nacional, para tratamento do alcoolismo. Neste mesmo ano foi aposentado do serviço público por um decreto presidencial.

Em 1919 o escritor foi internado novamente num sanatório. As experiências deste período foram narradas pelo próprio Lima Barreto no livro "Cemitério dos Vivos". Nesse mesmo ano publicou a sátira "Vida e Morte de M. J. Gonzaga de Sá", inspirada no Barão do Rio Branco, e ambientada no Rio de Janeiro.

Lima Barreto candidatou-se em duas ocasiões à Academia Brasileira de Letras. Não obteve a vaga, mas chegou a receber uma menção honrosa. Em 1922 o estado de saúde de Lima Barreto deteriorou-se rapidamente, culminando com um ataque cardíaco. O escritor morreu aos 41 anos, deixando uma obra de dezessete volumes, entre contos, crônicas e ensaios, além de crítica literária, memórias e uma vasta correspondência. Grande parte de seus escritos foi publicada postumamente.