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

Famosa espuma do Moscow Mule não é só no bar. Aprenda a fazer em casa

Moscow Mule é "russo para inglês ver" e conquistou as redes e os bebedores - Leo Feltran
Moscow Mule é "russo para inglês ver" e conquistou as redes e os bebedores
Imagem: Leo Feltran

Pedro Marques

Colaboração para Nossa

03/04/2020 04h00

De russo, o Moscow Mule só tem o nome e a vodca. Embora existam várias versões sobre a origem do drinque (há quem diga que ele foi inventado em Nova York).

A mais confiável é que ele foi criado em 1941 em Los Angeles, em um bar que já não existe mais, o Cock 'n' Bull, para promover uma marca de vodca até então pouco conhecida pelos norte-americanos, uma tal de Smirnoff.

Moscow Mule tem até bar próprio em São Paulo - Leo Feltran - Leo Feltran
Moscow Mule tem até bar próprio em São Paulo, o Mule Mule
Imagem: Leo Feltran
No fim dos anos 1930, o executivo John G. Martin tinha comprado a destilaria da marca nos EUA, enquanto Jack Morgan, dono do Cock 'n' Bull, havia começado a produzir sua marca de ginger beer, um refrigerante de gengibre bastante popular no país. Os dois, porém, estavam com dificuldades para emplacar as bebidas.

Ao mesmo tempo, Sophie Berezinski, uma imigrante russa, estava ralando para vender as canecas de cobre fabricadas por seu pai. Reza a lenda que os três se encontraram em uma tarde e dali saiu a versão original do Moscow Mule, com apenas ginger beer, vodca, suco de limão e gelo. Com o sucesso, os três partiram para o abraço e o resto é história.

Banho de espuma

Corta para o começo dos anos 2010, Brasil. Até então, pouca gente havia bebido o drinque "da canequinha". Por um motivo bastante simples: não tinha quem fabricasse ginger beer por aqui. Foi quando o barman Marcelo Serrano bolou um jeito de fazer o coquetel: no lugar do refrigerante, ele fez uma espuma com sabor de gengibre.

Marcelo Serrano prepara espuma do Moscow Mule no Venuto - Divulgação - Divulgação
Marcelo Serrano prepara espuma do Moscow Mule no Venuto
Imagem: Divulgação
"Na época, estava rolando a febre da gastronomia molecular (vertente que usa equipamentos modernos para produzir receitas inusitadas). Pesquisando, vi o pessoal lá de fora fazendo espuma para drinques com sifão de chantili. Aí pensei: 'Pô, vou testar uma espuma de gengibre. E deu certo'", conta Serrano. A espuma, explica o bartender, se mistura com a bebida e dá o sabor que faltava.

Mas, para ele, o que fez o Moscow Mule decolar de vez no Brasil foram as redes sociais. "O coquetel tem uma apresentação inusitada, a canequinha, a espuma. E a galera começou a postar muito (o coquetel) no Instagram", lembra Serrano, que hoje comanda o bar e restaurante Venuto, no Jardim Paulista.

Maracujá e melancia

ion Mule, que leva maracujá, é apenas uma das muitas versões do drinque - Leo Feltran - Leo Feltran
ion Mule, que leva maracujá, é apenas uma das muitas versões do drinque
Imagem: Leo Feltran
De fato, não demorou para que as curtidas nas redes sociais fizessem com que a bebida caísse nas graças do público e outros lugares incluíssem o coquetel em seus cardápios, incluindo a espuma de gengibre, que virou uma marca do Moscow Mule no país.

Tem até bar especializado em Moscow Mule, no caso, o Mule Mule Muleria, na Vila Madalena, que serve versões criativas, feitas com saquê e gim e espumas de maracujá e melancia.

O drinque ficou tão famoso que hoje dá para comprar versões prontas da espuma (elas vêm em latas como as de chantili), e sachês com uma pré-mistura: colocar gelo, vodca e água com gás em uma caneca, juntar o conteúdo do sachê e pronto.

Espuminha no conforto do lar

Mas não precisa disso tudo para preparar o drinque. A espuminha não vai ficar igual a dos bares, que deixam tudo pronto em um sifão e só decoram a caneca na hora de servir. "É muito mais prático quando a gente tem que atender muitos clientes", explica Vagner Lima, do Mule Mule Muleria.

"Em casa, dá para fazer de um jeito mais simples. Na coqueteleira, você coloca duas claras de ovo, 50 ml de suco de limão e 100 ml de xarope de gengibre e bate bem", ensina o bartender. "Também fica muito bacana", garante. Depois, é só tomar colocar a espuma por cima da caneca e garantir seu bigodinho de Moscow Mule".