;(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; // 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(); })();

Topo

Como cozinhar espaguete e calcular a quantidade certa por pessoa

Mais Gastronobásico
1 | 25
Siga o UOL Nossa no

22/08/2022 04h00

Um bom espaguete resolve qualquer refeição rápida — e todo mundo adora. Mas quantas vezes você já cozinhou massa demais ou ficou em dúvida sobre colocar óleo na massa ou não, por exemplo?

Este episódio de Gastronobásico, a série com os básicos da culinária, vem tirar, por definitivo, todas as dúvidas. Veja o vídeo e confira abaixo algumas dicas.

A quantidade

  • A média é de 100 gramas por pessoa
  • Não tem balança? Sem problema, você pode usar a mão para calcular. As linhas internas no seu dedão dão as medidas certas para uma, duas ou três pessoas. Confira na imagem abaixo do Não conto calorias.
Como calcular massa de espaguete - Reprodução/Não conto calorias - Reprodução/Não conto calorias
Imagem: Reprodução/Não conto calorias

Para cozinhar

  • a: escolha uma a grande para cozinhas bem o espaguete. O ideal é que ele 'dance' na a naturalmente quando a água estiver fervendo
  • Água: considere 1 litro de água para cada 100 gramas de macarrão.
  • Sal: calcule a média uma colher de sopa para cada 2 litros de água. Ela deve ficar salgada como a água do mar, para temperar a massa. Importante: acrescente o sal apenas quando a água começar a borbulhar.
  • Óleo: você não precisa acrescentar mais nada. O óleo pode dificultar a adesão do molho à massa depois.
  • Quando colocar: quando a água já estiver fervendo.
  • Ponto: sempre olhe a instrução da embalagem e tire um pouquinho antes da água, considerando que ela continuará cozinhando ou no calor residual ou no molho

Dicas extras

  • Você pode guardar um pouco da água do cozimento do macarrão para finalizar a massa no molho. Para 400 gramas de espaguete, como no vídeo, a média é de uma a duas conchas, dependendo do tipo de molho.
  • O ideal é incorporar a massa cozida na a com molho em vez de servir um sobre o outro.

Básico da cozinha

A série Gastronobásico é uma produção de Nossa, a plataforma de lifestyle do UOL, e ensina o básico da gastronomia para cozinheiros de primeira viagem. Você pode ver todos os episódios anteriores aqui no Canal UOL ou no YouTube de Nossa (inscreva-se já para não perder as novas receitas).