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

Pedro e Paulo Markun

OPINIÃO

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

Metaverso já tem loja que vende cannabis e polícia para atender avatares

Policia de Ajman, nos Emirados Árabes Unidos, usa metaverso para atender avatar da população - Divulgação
Policia de Ajman, nos Emirados Árabes Unidos, usa metaverso para atender avatar da população Imagem: Divulgação

Pedro e Paulo Markun

Colunistas do UOL

15/06/2022 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

As possibilidades do metaverso estão atraindo gente (e também empresas e instituições) de todo tipo. Nos Estados Unidos, várias companhias que comercializam produtos a base de cannabis já estão nesse território virtual. E, no emirado de Ajman (o menor membro dos Emirados Árabes Unidos), a própria polícia abriu uma delegacia para avatares.

Cannabis: mil visitantes por dia

Tanto a plataforma Decentraland quanto a Voxels já trabalham com empresas de cannabis.

Como o metaverso será necessariamente descentralizado, esses anunciantes podem discutir as vantagens de seus produtos com muito mais liberdade do que oferece o Facebook, por exemplo, acredita Lisa Buffo, fundadora e CEO da Associação de Marketing de Cannabis.

Desde dezembro, a Higher Life CBD Dispensary LLC tem uma loja aberta no Voxels, uma plataforma criada em 2008 e que opera com criptomoeda e NFTs.

A Higher Life informa em seu site que oferece "uma linha de produtos de CBD e cânhamo de alta qualidade formulados para que o usuário experimente uma gama completa de benefícios saudáveis, proporcionando uma sensação de relaxamento completo".

Fisicamente, ela está numa rua central da cidade de Indianápolis, em Indiana, mas também pode ser ada pelo segundo andar de uma loja virtual na Voxels. Ali, avatar nenhum adquire os produtos da companhia, mas se tocarem no registro de vendas são teletransportados para o site, onde é possível encomendar uma gama de derivados da planta.

De acordo com Brandon Howard, CEO da Higher Life, mil pessoas visitam a loja digital diariamente.

Nos próximos anos, confiam os entusiastas, será possível comprar maconha diretamente no metaverso, apostando na redução das restrições que ainda cercam o produto e derivados nos Estados Unidos.

No Decentraland, quem dá as cartas é Kandy Girl, uma marca que produz balas mastigáveis aditivadas com THC e que podem ser entregues em boa parte dos Estados Unidos.

Kandy Girl - Reprodução - Reprodução
Kandy Girl é uma empresa no metaverso que produz balas mastigáveis com THC
Imagem: Reprodução

A Kandy Girl também já faturou US$ 30 mil em NFTs oferecendo wearables virtuais (ou, em português, "vestíveis"), como penas que mais parecem folhas de maconha.

Mas a plataforma destaca que é preciso obedecer rigorosamente as regras governamentais em torno do produto e seus derivados, o que significa que é proibido vender para países onde tal comércio ainda é proibido.

No metaverso da Meta, ex-Facebook, a publicidade de produtos a base de maconha é proibida, como também a promoção de comercialização ou utilização de medicamentos ilícitos ou esportivos.

Higher Life - Divulgação/ Higher Life - Divulgação/ Higher Life
Higher Life oferece "uma linha de produtos de CBD e cânhamo de alta qualidade"
Imagem: Divulgação/ Higher Life

Delegacia virtual

Enquanto o metaverso vem se mostrando um espaço interessante para trabalhar com pautas que ficam nas margens da legalidade, no outro corner, digamos, está a polícia de Ajman.

O emirado abriu, na capital de mesmo nome e com pouco mais de 200 mil habitantes, uma delegacia virtual onde recebe os avatares dos cidadãos. Assim, eles não precisam sequer ir até o distrito.

Autoridades e civis podem interagir usando óculos Quest ou por meio de smartphones, tablets, laptops e computadores. Há inclusive uma sala de reuniões no metaverso, que é possível visitar de qualquer lugar do mundo.

O Comando Geral da Polícia de Ajman, orgulhosamente, informa que esse é o primeiro serviço policial desse tipo nos Emirados Árabes Unidos e que a polícia local é o primeiro órgão do governo no emirado de Ajman a dar o salto digital.

Em dezembro do ano ado, os Emirados Árabes Unidos flexibilizaram algumas de suas duras leis sobre drogas, relaxando as penalidades para viajantes que chegam ao país com produtos contendo THC, o principal componente intoxicante da cannabis.

A nova lei diz que as pessoas flagradas transportando alimentos, bebidas e outros itens com cannabis para o país não serão mais presas se for a primeira vez. Em vez disso, as autoridades confiscarão e destruirão os produtos.

Não está claro o que os policiais da delegacia virtual farão se encontrarem um avatar doidão.