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

Fernando de Noronha desiste de diferenciar VIPs, nativos e turistas comuns

Carlos Madeiro

Colaboração para o Nossa

18/08/2021 19h47

A Ilha de Fernando de Noronha, pertencente ao estado de Pernambuco, anunciou hoje que desistiu de implantar o sistema de pulseiras eletrônicas com uso de cores para distinguir moradores, turistas com mais ou menos dinheiro e convidados VIPs.

A mudança de rumo no projeto "Um novo jeito de viver Noronha" ocorreu após uma série de críticas que se multiplicou nas redes sociais dando conta de uma suposta segregação de público. O projeto era uma parceria do site "Sou Noronha" com a istração da ilha, a plataforma digital Meep e o PagSeguro.

A ideia apresentada era de que as pessoas que estivessem na ilha fossem diferenciadas por cores de pulseiras, que distinguiriam moradores, turistas com até R$ 10 mil, turistas com mais de R$ 10 mil e "celebridades", que seriam artistas e influencers, por exemplo. Os órios seriam utilizados para realizar pagamentos nos estabelecimentos locais. Havia ainda uma quinta cor para turistas que desejassem levar a pulseira como recordação da viagem.

Em nota, o site Sou Noronha informou que a pulseira eletrônica foi lançada para "facilitar as formas de pagamento na Ilha de Fernando de Noronha separada por categorias e cores se tratava de uma ideia inicial e que não será implementada."

O princípio financeiro no entanto, será mantido. Mas, a partir de agora a identificação será restrita a consumidores e comerciantes, por pulseiras verde e cinza. "Dessa forma, usuários vão conseguir detectar de forma fácil quem está habilitado para a venda de créditos", diz. A iniciativa ainda garante não ter havido prejuízo aos cofres públicos, uma vez que, segundo eles, "como as pulseiras estão em fase de produção, nenhum material foi distribuído a comerciantes ou usuários."

O modelo que entraria em vigor foi abandonado apenas após ser alvo de uma enxurrada de críticas nas redes sociais.

Críticas antigas

O projeto das pulseiras foi desenvolvido para dar "facilidade e segurança nos meios de pagamento de Fernando de Noronha, atendendo turistas e movimentando ainda mais o comércio local."

Uma das críticas recorrentes de turistas que visitavam era que a instabilidade na Internet causaria dificuldade para pagamentos por meio eletrônicos, como cartões de crédito e débito. Segundo a istração da Ilha, esse tipo de uso é responsável por 90% dos pagamentos.

Com a nova medida, os turistas vão receber a pulseira de forma gratuita no desembarque, quando já será possível inserir créditos, através de cartões ou do Pix. Eles também poderão inserir créditos em outros pontos físicos espalhados pela ilha.

Com o sistema, os turistas ficam com os créditos salvos nas pulseiras eletrônicas. Elas vão funcionar de forma off-line, ou seja, sem a necessidade de o à Internet. Apesar de não haver mais distinção de cor, o turista que quiser poderá pagar R$ 20 e levar a pulseira consigo como recordação.

Não foi informada a data que o sistema vai entrar em operação.