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

Tim Vickery: No Brasil atual, sobra parcialidade e falta bom senso

Para colunista, "é ingênuo ou mal-intencionado pensar que um partido tenha monopólio em atos ilícitos" - Nelson Almeida - 13.mar.2016/AFP
Para colunista, "é ingênuo ou mal-intencionado pensar que um partido tenha monopólio em atos ilícitos" Imagem: Nelson Almeida - 13.mar.2016/AFP

Tim Vickery*

Colunista da BBC Brasil

18/03/2016 16h40

Uma das minhas histórias preferidas é sobre as últimas palavras de um general inglês no século 19. Ele estava visitando um forte, creio eu, no Afeganistão.

No lado de fora, as tribos locais eram muito hostis. Avisaram ao general que era melhor baixar a cabeça para se proteger das balas. "Bobagem", respondeu. "Eles não acertariam nem um elefante a esta distân…"

Fazer previsões normalmente não é uma questão de vida ou morte. Mas é algo que pode nos fazer ar por tolos. Tenho um velho livro, Brazil On The Move, por John Dos os, um escritor americano bastante conceituado.

Fundamentado em várias visitas ao país, e nos primeiros anos de Brasília, Dos os pinta um retrato de progresso que ele imaginava que iria continuar. Ele aborda uma certa turbulência política, mas conclui que "the Brazilians have retained a respect for the legal way of doing things that seems more English than Mediterranean" ("os brasileiros desenvolveram um respeito pelo modo legalizado de se fazer as coisas que parece mais inglês do que mediterrâneo", em tradução livre).

O livro foi publicado em 1963, e imagino que tenha tido vida curta nas prateleiras.

Como ele errou tanto? Em parte, por causa da imprevisibilidade dos eventos.

Mas a própria biografia de os ajuda a explicar o erro. Ele cresceu um esquerdista convicto. Foi com seu amigo Ernest Hemingway lutar contra os fascistas na Guerra Civil da Espanha. Lá, ficou totalmente desiludido com os comunistas – e, como um homem traído, ele se voltou contra sua ex-amante de forma violenta. Nos seus últimos anos, até fez campanha por Richard Nixon (presidente conservador dos EUA).

A sua análise sobre o Brasil é obcecada com a ameaça comunista – sua influência, sua popularidade. Ele é fascinado por Carlos Lacerda como o homem para vencê-la. os estava olhando somente em uma direção, portanto era incapaz de enxergar que o perigo real vinha da outra.

Mais de meio século depois, temos bastante a aprender com o erro dele. No cenário atual, sobra parcialidade, mas o bom senso às vezes parece estar em falta. Por exemplo, a relação que os manifestantes tentam fazer entre a corrupção e o PT é perigosa.

Tem que ser muito ingênuo ou mal-intencionado para pensar que um partido tenha monopólio em atos ilícitos. Se uma investigação só olha para um lado, corre o risco de virar jogo de uma disputa política. O debate deveria ter mais enfoque em temas fundamentais – como, por exemplo, se o sistema político atual, com o seu excesso de partidos, funciona como um convite à corrupção, pois a governabilidade vira um balcão de interesses particulares.

Será que, em meio ao ódio e a recriminações da turbulência atual, a maior oportunidade não está sendo desperdiçada – aquela de buscar um sistema político mais eficaz?

Tem enganos também no outro lado da rua. Se o PT não inventou a corrupção, tampouco salvou a pátria sozinho. O discurso de "nunca antes na história deste país" sempre ignorou um fato inconveniente: o boom do consumo na última década não teria sido possível sem o Plano Real – projeto tucano que, na época, o PT atacava.

O fim da hiperinflação acabou trazendo milhões para o sistema financeiro e possibilitando a venda maciça por meio do aumento do crédito – fundamental para os anos dourados do governo do PT.

John Dos os, então, mostra os perigos de uma visão parcial da situação. Mesmo assim, seu livro tem vários aspectos interessantes. Captura um momento de certa euforia. Cita um jantar em Brasília no início dos anos 60, no qual alguém fala que a arquitetura logo vai substituir o futebol como o esporte nacional – uma piada, mas fundamentada no progresso que estava acontecendo, com as oportunidades de se criar um novo ambiente.

Pensei nesse trecho no livro na semana ada, sentado num ônibus no Rio que estava indo para a Rocinha, a grande favela. Ao meu lado duas mulheres se encontraram, conhecidas se vendo pela primeira vez em algumas semanas. As duas, de meia-idade, nordestinas, pareciam ser empregadas domésticas. A conversa fluiu sobre as suas famílias, ilustrada com fotos de seus celulares. Uma, toda boba, mostrou uma foto de sua filha, que estava estudando engenharia de produção.

Desci do ônibus bem mais leve, carregando provas de que a situação não está tão preta quanto alguns estão pintando. Duvido que muitas conversas deste tipo rolassem 22 anos atrás, quando cheguei aqui.

John Dos os não estava totalmente equivocado. Apesar de tudo, "Brazil is still on the move" - o Brasil continua em movimento. Mas não ouso fazer previsões a curto prazo.

*Tim Vickery é colunista da BBC Brasil e formado em História e Política pela Universidade de Warwick