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

Milho o ano todo: aprenda receitas doces e salgadas em que o cereal brilha

Versátil, milho pode ser utilizado de diferentes formas em receitas doces e salgadas - Getty Images
Versátil, milho pode ser utilizado de diferentes formas em receitas doces e salgadas
Imagem: Getty Images

Claudia Dias

Colaboração para Nossa

27/07/2020 04h00

Ainda que já tenha ado a temporada junina, o milho segue durante todo o ano como estrela dos mais variados pratos. Bolo, pamonha, curau, polenta, pudim e sopa são só algumas iguarias tentadoras.

"Temos um bem precioso em nossas mãos. Da roça aos pratos mais finos, o milho é extremamente versátil e com um valor superível. Por isso, eia por todos os níveis da gastronomia", observa a chef Rapha Nezinho, do Na Real - Gastronomia Brasileira.

O chef André Palma, especializado em comida brasileira, acrescenta que o milho é um patrimônio culinário. "Plantado pelo sertanejo nos sertões nordestinos no dia de São José, em 19 de março, a cultura de fé e as chuvas de outono fazem o milho florescer e, em três meses, as colheitas são fartas", ilustra.

Cru, o milho pode ser assado (na fogueira, na churrasqueira, na airfryer...), grelhado ou cozido - em água com sal, no vapor, no micro-ondas. "Em sua forma in natura, pode ser ralado, triturado e, junto a leite de coco ou leite integral, ser consumido como creme, bolo, canjica, curau e pamonha", lista André Palma.

Milho pode ser encontrado de diferentes formas e todas têm seu papel na cozinha brasileira - Getty Images - Getty Images
Milho pode ser encontrado de diferentes formas e todas têm seu papel na cozinha brasileira
Imagem: Getty Images

Quando seco, o milho vira canjica (no Sudeste e no Sul do país) e mungunzá (no Nordeste). Se processado ou quebrado no pilão, em sua forma mais artesanal, se torna xerém. "É consumido doce, mas quando salgado, pode acompanhar um bom frango caipira guisado" comenta o chef.

A partir do momento em que é processado industrialmente, é transformado em farinha, tanto fina (o conhecido fubá) quanto grossa (no caso, o famoso flocão), entre outras variações.

Como comprar o melhor milho

Uma das receitas mais queridas à base de milho é a pamonha - Getty Images/iStockphoto - Getty Images/iStockphoto
Uma das receitas mais queridas à base de milho é a pamonha
Imagem: Getty Images/iStockphoto

Mas vamos falar do milho natural, recém-colhido nos milharais que tomam conta do país. É fácil identificar se ele está ok para compra: quando muito amarelado e até com aspecto murcho, é mais velho, o que significa que seus grãos, depois de cozidos ou assados, serão mais duros.

Já se a cor for delicada e os grãos arredondados, é sinal de que a espiga é nova e, por isso, os grãos são macios e propícios para o preparo de diferentes pratos.

O milho costuma durar bem na geladeira por, pelo menos, 3 dias. Uma boa forma para aumentar sua durabilidade é congelar os grãos. Neste caso, melhor adotar a técnica do branqueamento - cozinhar os grãos por 3 a 4 minutos em água fervente e, depois, mergulhá-los em água gelada (com gelo, se necessário) para interromper o processo de cozimento.

Receitas para todos os gostos

A seguir, fizemos uma seleção de diferentes receitas preparadas a partir do milho in natura. Tem bolos variados, pamonha, sopa, creme, pudim e até petisco. Delicie-se!