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

Aprenda a fazer a sardinha empanada que é sucesso em cachaçaria carioca

Bruno Calixto

Colaboração para Nossa, do Rio de Janeiro

23/10/2021 04h00

Sabe aquele ditado "brasileiro adora uma fila"? Na aconchegante Noo Cachaçaria, no Rio de Janeiro, uma dezena de shots de cachaça vem enfileirada, para alegria de todos. Para acompanhar a degustação, é infalível pedir a sardinha frita empanada na farinha Panko.

O petisco-estrela da casa também foi um dos destaques do programa "Botequim da Teresa". Fã do quitute, a cantora Teresa Cristina preparou a receita para receber o ator e humorista Marcelo Adnet para um bate-papo.

Teresa Cristina preparou a sardinha empanada no "Botequim da Teresa" - Zô Guimarães/UOL - Zô Guimarães/UOL
Teresa Cristina preparou a sardinha empanada no "Botequim da Teresa"
Imagem: Zô Guimarães/UOL

"Primeiro ar na farinha de trigo para dar uma boa selada, depois no ovo e, por último, na farinha panko", sugere a anfitriã, enquanto canta à capela "Canto de areia", de Clara Nunes. Clique na imagem abaixo e confira a receita do petisco e do molho que acompanha:

Mais de 100 cachaças

Tudo na Noo (Rua Barão de Iguatemi 358, Praça da Bandeir) soa diversão (samba de raiz e bossa nova na playlist), desde a variedade de cachaças (am de 100) até a forma como elas podem ser degustadas: puras ou como base nas batidinhas, que trazem sabores inventivos como aju com manjericão, cupuaçu com rapadura e tamarindo com mel. Tem até pinga com frutas da estação no litro para compartilhar.

Na ala dos petiscos populares de botequim, sobram calorias, vai do torresmo (na porção) — preparado com a carne da barriga do porco em vez da pele — ao bolinho de tapioca com linguiça defumada e queijo. E, claro, a sardinha empanada, o clássico da vez.

Sardinha empanada do Noo Cachaçaria, do Rio de Janeiro - Reprodução Facebook - Reprodução Facebook
Imagem: Reprodução Facebook

"A gente compra a sardinha fresca no dia, na feira de domingo, ali do lado do bar", diz a proprietária Vanessa Marzano. "Sardinha frita é uma receita tradicional, mas a diferença da nossa é que ela é empanada na Panko."

Há pouco mais de meses, ela e o marido estavam na porta do bar, como de costume, e ele estava com vontade de comer sardinha frita. Foram na feira, compraram e fizeram.

Ficou tão bom que resolvemos colocar no cardápio. É servida todo domingo, com esse molho e limão"

Samba, série e Teresa

O "Botequim da Teresa" vai ao ar todas as sextas-feiras, às 11 horas, no Canal UOL e no YouTube de Nossa (inscreva-se já para receber os lembretes). Em cada episódio, Teresa Cristina recebe um convidado especial e ensina a fazer os petiscos clássicos de alguns do botequins mais famosos do Rio de Janeiro. O programa é uma coprodução de Nossa e MOV, a plataforma de vídeo do UOL.