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

Matheus Pichonelli

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Cop26 mostrou o papel da geração de 'Enzo Gabriel' na salvação do mundo

Ativista da Ocean Rebellion protesta contra a pesca de arrasto antes da COP26 em Glasgow, Escócia - Dylan Martinez/Reuters
Ativista da Ocean Rebellion protesta contra a pesca de arrasto antes da COP26 em Glasgow, Escócia Imagem: Dylan Martinez/Reuters

Colunista do UOL

06/11/2021 04h00

Por causa da pandemia, ou batida, meses atrás, a celebração dos 20 anos da nossa formatura no ensino médio. Não houve festa nem reencontro. Não houve nada. Não fazia sentido pensar em comemorar qualquer coisa no contexto de isolamento social.

Fui o orador da minha turma e mal consigo lembrar o que falei aos meus amigos, e aos pais dos meus amigos naquele dia. Não tenho mais comigo o papel, rabiscado até o último momento, e o único registro da formatura está em uma fita de VHS. Que já não tem onde rodar. Melhor assim.

Daquela festa lembro que minha maior preocupação era com o jogo do Palmeiras, que disputaria a finalíssima da Copa Mercosul, contra o Vasco, bem na hora do jantar. Para não perder os lances, levei uma mini-TV a pilha e com antena, nossa companheira no fundo da sala em dias de jogos de manhã. Levei também uma peruca verde para celebrar o título — que não veio. Ela ornava com a indumentária que fazia moda na época, com gravatas e calções, a certa altura expostos, cheios de personagens dos Looney Tunes.

Não é que não houvesse preocupações no dia seguinte àquela festa, também conhecido como vida real. Expectativas existiam. Mas ninguém esperava que salvássemos o mundo.

O mundo, como recebemos (ao menos aqueles meninos de classe média que iam e voltavam de carro para a escola), parecia um direito natural, dado e preservado. As estruturas que nos levaram até ali pareciam bem fundadas — estudar ou trabalhar aos 12 anos definitivamente não estava em questão, muito menos aceitar que a saída para o futuro estava na fórmula de um ado engessado e que impedia nossos pais e tios de votar para presidente durante 21 anos. Os traumas da ditadura eram recentes, mas sua reedição parecia mais distante do que hoje.

Isso tudo reverberava, pela omissão, no meu discurso, uma peça de museu do nosso escapismo inconsciente. Um sobrevivente das guerras e outras lutas daquele século que se encerrava teria razão em nos chamar de alienados.

A irreverência, impressa nas gravatas e cabelos coloridos, era uma marca daquela turma. Em termos estéticos, estávamos mais para a capa do CD do Mamonas do que para o "Brave New World" do Iron Maiden, lançado naquele mesmo ano. Nosso filme favorito era "American Pie". Crescer era lidar com hormônios aflorados e peripécias afetivas. E conseguir um bom trabalho, se possível.

Na música Enzo Gabriel, Caetano Veloso faz uma referência ao nome composto, típico da geração Z, para perguntar qual seria o papel desse novo sujeito político na salvação do mundo. E orienta: "olhe para o céu, não faças só como eu e o meu coração vagabundo".

O meu coração, confesso, achou que a guerra estava ganha até ver os soldados inimigos desfilarem com seus coturnos no peito de tudo o que considerávamos inegociável. As contingências de um mundo em estado de emergência, que deixamos ser destroçados por acreditar que ele seria indestrutível, levam agora uma multidão de Enzo Gabriel a encararem o futuro com a seriedade que não tivemos.

E é o que dá para perceber quando vemos a efervescência do protagonismo dos jovens que circulam hoje por Glasgow, o centro cultural da Escócia que recebe a Conferência do Clima das Nações Unidas (ONU). Foi para lá que um grupo de adolescentes brasileiros viajou para cobrar, por meio de um manifesto, que a educação climática faça parte do currículo escolar. Greta Thunberg, representante da turma, não está sozinha. Taxai Suruí é a hora e a vez de um país que revela ao mundo o seu grito de alerta. (Estranho pensar que até pouquíssimo tempo, a maioria de nós ainda babava na gravata do Pernalonga, pensando que nossos tios ou primos mais velhos já haviam quebrado todos os pedregulhos do caminho nos protestos pelas Diretas Já, o impeachment do Fernando Collor ou nos gritos da Eco 92).

Não é preciso ir até Glasgow para perceber essa efervescência. Na cidade onde nasci (e me formei), o discurso da minha cunhada em sua festa de formatura, realizada com um ano de atraso por causa do coronavírus, deu o tom de como pessoas como ela encaram este mundo à beira do colapso.

Em vez de piadas internas, como fizemos na nossa festa, há 20 anos, ela preferiu falar sobre luto. Sem a euforia ingênua que marcou minha geração, ela dedicou a fala a todos que perderam alguém na pandemia. "Uma parte de nós está com essa pessoa assim como uma parte dela está conosco. O legado dessa pessoa somos nós".

Lembrando que não estavam sozinhos, ela desejou força aos amigos e disse que força é também itir que precisamos de ajuda. E fez questão de recordar que o foco na produtividade, já sentido naquela esquina da vida adulta, não poderia privá-los de sentir. "Não somos engrenagens, somos emaranhado de emoções que criamos e que precisam ser desatados. E isso leva tempo", disse.

Ela só tem 18 anos.

Na música em homenagem a Enzo Gabriel, Caetano diz saber que a luz é sutil. Mas ela e seus amigos de geração parecem já saber, desde muito cedo, o que é nascer no Brasil.