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

Ana Paula Xongani

OPINIÃO

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

Diário de viagem: o melhor é se conectar com quem produz a arte local

Ana Paula Xongani na Feira da Estação de Trem de Machu Picchu, no Peru - Arquivo Pessoal
Ana Paula Xongani na Feira da Estação de Trem de Machu Picchu, no Peru Imagem: Arquivo Pessoal

Colunista do UOL

23/06/2022 04h00

Na semana ada, fiz uma viagem para o Peru e, lá, estive em Cusco, Machu Picchu e no Vale Sagrado. Sempre que viajo e conheço lugares novos, tenho muito interesse em conhecer os processos artesanais dos lugares que vou. Antes de sair do Brasil, eu já sabia que encontraria trabalhos artísticos artesanais e de moda, então estava muito feliz e animada com isso.

Fui com o grupo de creators e a gente visitou três lugares espetaculares:

Feira da Estação de Trem de Machu Picchu
Fica perto da estação onde a gente desembarca para entrar em Machu Picchu, cidade considerada sagrada, um dos monumentos arquitetônicos e arqueológicos mais importantes do mundo, e tem uma feira artesanal bem grande e dedicada aos turistas, com muitas coisas incríveis. O material principal que é usado é o pelo da alpaca transformado em vários outros materiais: lã, feltro, tecido, linha, barbante, pompons. É tudo muito lindo, muito colorido, com cores vibrantes, o que deixa o visual do lugar incrível.

Feira da Estação de Trem de Machu Picchu - Arquivo Pessoal - Arquivo Pessoal
Feira da Estação de Trem de Machu Picchu
Imagem: Arquivo Pessoal

Mercado Artesanal Pisac
Fica no Vale Sagrado dos Incas, localizado nos Andes peruanos, região com muitos monumentos arqueológicos, bastante habitada por povoados indígenas. Apesar dos produtos se repetirem, você encontra preciosidades. Tinha muita prataria tradicional com os desenhos Incas, muitas blusas de frio e cachecóis, sempre trabalhados no crochê, tricô e tear.

Mercado Artesanal Pisac - Arquivo Pessoal - Arquivo Pessoal
Mercado Artesanal Pisac
Imagem: Arquivo Pessoal

Chinchero
Fica na região de Cusco, no caminho do Vale Sagrado. Para mim, este lugar foi o mais emocionante de todos, conhecer as mulheres do Chinchero e onde elas produzem os tecidos e, principalmente, as linhas coloridas para a produção dos tecidos.

Chinchero - Arquivo Pessoal - Arquivo Pessoal
Chinchero foi o mais emocionante para mim
Imagem: Arquivo Pessoal

Lá, fomos recebidas com música por essas mulheres e aprendemos todas as técnicas de produção de um tecido, desde a retirada dos pelos das alpacas até a transformação deles em linha, lã, tecido, o tingimento natural que é feito com vários materiais orgânicos e a técnica de tear, em que se formam os desenhos geométricos com as linhas já tingidas anteriormente. Tudo sempre valorizando muito a ancestralidade.

Se liga nesse vídeo! Dá para acompanhar as comprinhas e todas essas coisas lindas que mencionei que vi por lá.

Gosto demais e acho bem importante a gente se conectar com o que é local quando viajamos, os trabalhos artesanais, as artes feitas pelas pessoas, principalmente quando a gente está em outra cultura, outra cidade, outro país. Pra mim, isso é fundamental: ver as mãos que fazem a arte daquele lugar.

Se faz parte dos seus sonhos, dos seus planos e dos seus desejos ir para o Peru, anote estas dicas. Você vai amar todas as conexões que fará por lá.