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

São Bernardo - Graciliano Ramos narra com primor trajeto existencial

Oscar D'Ambrosio, Especial para a Página 3 Pedagogia & Comunicação

O que mais impressiona no romance "São Bernardo" (1934), de Graciliano Ramos (1892-1953), é a forma como o protagonista, Paulo Honório, narra a sua caminhada, desde a progressiva ascensão até a decadência. Isso é contado numa linguagem que não se perde na melancolia ou nos adjetivos, mas se caracteriza por uma extrema concisão.

A sua história é marcada pela solidão. Abandonado pelos pais e criado por uma negra doceira, trabalhou na roça e, em busca de seu objetivo, o poder econômico, com uma arma na mão e a mentalidade de enriquecer de qualquer modo na cabeça, conseguiu adquirir a fazenda São Bernardo, em Viçosa, Estado de Alagoas, onde fora empregado.

Fingindo-se amigo de Luís Padilha, o dono da fazenda, emprestando dinheiro e dando propositalmente maus conselhos, ele logo torna-se o novo proprietário. Isso, no entanto, não lhe basta. Com pequenas e grandes violências e trapaças, consegue reunir uma equipe de comparsas que o ajuda a conquistar o que deseja. São estabelecidos elos entre o capanga Casimiro Lopes, o jornalista Gondim, o Padre Silvestre e políticos locais para atingir a riqueza.
 

Oposição de visões de mundo

Ao alcançar o poder almejado, vem a necessidade de ter um filho, que será o herdeiro de seus bens. Essa é a principal razão para o casamento com Madalena, professora da vila. Intelectual e com um pensamento de esquerda, ela ajuda os empregados no que pode e ainda tenta melhorar a escola, onde o ex-proprietário da fazenda, Luis Padilha, é agora dono.

A oposição de visões de mundo e de temperamento evidencia-se gradativamente. Ele se impõe pela violência e pelas ordens autoritárias; ela tenta ser suave e solidária com os funcionários e coerente com seu ideal de educação. Paulo Honório vai perdendo o controle da situação e o ato de duvidar da fidelidade dela pode ser considerado apenas o resultado de sua própria insegurança.

A espiral de decadência se instaura. Madalena não encontra meios de combater a agressividade e o desejo de posse do marido. Cada vez mais triste e fraca, praticamente ignora o filho que tem com o dono de São Bernardo, e acaba por cometer suicídio. O marido sente o baque e começa a duvidar da própria possibilidade de reação perante o mundo.

 

Derrocada econômica e emocional

O marco econômico da derrocada, paralelo ao emocional da perda da esposa, é a Revolução de 1930, em que a indústria surge como alternativa ao trabalho agrícola. Sozinho, sem alguns de seus asseclas, Paulo mergulha em profunda solidão.

Longe das pessoas, sem nenhum envolvimento com o filho de três anos, e cada vez com menos bens materiais, consumidos pela crise em que afundara, ele busca ajustar as contas com si mesmo. A forma escolhida é a redação de um romance.

A obra, por um lado, pode ser vista como regionalista, pela maneira como realiza uma crítica à vida agreste do sertão; por outro, há nela uma autêntica aula de escrita ao conseguir mostrar como Paulo Honório vai se "humanizando" pelo próprio ato de construir seu romance, refletindo sobre os erros que cometeu em sua busca desmedida pelo poder.