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

Batata frita perfeita é coisa de cientista! Saiba os segredos do petisco

De Nossa

03/11/2022 04h00

Está em busca da batata frita perfeita? Apesar de ser um petisco popular e simples de fazer, ele também exige alguns cuidados para ficar do jeitinho que a gente adora.

Segundo Seu Ademar, criador da Batata de Marechal, no Rio de Janeiro, o segredo para este feito está na técnica e no óleo, e é isso que Bruno Salomão ensina no quinto episódio da 6ª temporada de "Vai Ter Churras".

A magia da batata crocante começa pelo padrão de palitinhos perfeitos, que você consegue ao utilizar uma cabrita, um cortador específico para este tipo de receita. Se só puder contar com uma faca, sem problemas. Só tente manter o maior padrão possível.

Como lavar as batatas

Após cortar as batatas, é preciso lavá-las em água corrente para tirar o excesso de amido e evitar com que elas murchem.

Vai Ter Churras - Batata de Marechal - Mariana Pekin/UOL - Mariana Pekin/UOL
Imagem: Mariana Pekin/UOL
Vai ter Churras - Batata de Marechal - Mariana Pekin/UOL - Mariana Pekin/UOL
Imagem: Mariana Pekin/UOL

Depois disso, os palitos ficam de molho na água com bicarbonato de sódio e sal por uma hora e as reações químicas dessa mistura facilitam a fritura e deixam a batata mais crocante.

A presença do sal, mesmo com a batata de molho, fará com que ela desidrate levemente e também se mantenha crocante por mais tempo.

No fogo e no frio

É essencial secar bem as batatas para pré-fritá-las — ou melhor, cozinhá-las. Em uma a com óleo a 160°C a 165°C, colocar, aos poucos, as batatas e esperar que elas comecem a dourar.

Essa etapa é essencial para tirar o excesso de água restante e garantir a batata frita perfeita.

Depois disso, leve as batatas diretamente a uma forma coberta com papel filme e leve ao freezer ainda quente, por pelo menos uma a duas horas — sendo o ideal deixá-las de um dia para o outro para que fiquem bem congeladas.

A fritura final

Em uma a com óleo de 205°C a 210°C, fritar a batata ainda congelada aos poucos por 2 a 3 minutinhos.

Assim que estiverem bem douradas e crocantes, retirar e deixar o óleo escorrer e colocar um pouco de sal.

Veja o a o da receita a seguir:

Acompanhamentos à la Marechal

Vai Ter Churras  - Batata de Marechal - Mariana Pekin/UOL - Mariana Pekin/UOL
Imagem: Mariana Pekin/UOL

Como as batatas do Seu Ademar nunca estão desacompanhadas, Bruno Salomão ensina a fazer mais hits da comida de rua: frango a arinho e calabresa frita.

Para completar, um molho especial de cheddar bem cremoso — e ao gosto do freguês, caso prefira ele mais grosso.

Fique ligado!

Vai Ter Churras - Batata de Marechal - Mariana Pekin/UOL - Mariana Pekin/UOL
Imagem: Mariana Pekin/UOL

Confira todos os episódios de "Vai Ter Churras", série de maior alcance de Nossa, editoria de lifestyle do UOL. São cinco temporadas completas e uma em andamento do craque Bruno Salomão ensinando conceitos básicos do churrasco e muitas receitas saborosas com bom humor. Veja no site de Nossa, no UOL Play ou no YouTube de Nossa (inscreva-se já para receber as atualizações fresquinhas).