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

Leite condensado, chocolate e o que a imaginação mandar: como fazer o fudge

De Nossa

10/07/2022 04h00

A mordida do fudge fica entre um brigadeiro bem puxa-puxa e um doce de leite de corte. Como não é cremoso exatamente como primeiro e nem tão cristalizado quanto o segundo, conquista os gulosos pela textura que une o melhor dos dois mundos.

A receita, originalmente feita com açúcar, manteiga e leite, fica mais fácil com leite condensado. No programa "Cozinha por Aí", o influencer Pedro de Bem apresenta o o a o e conta que conheceu inúmeras versões do docinho na Austrália.

Ele morou no maior país da Oceania de 2016 a 2018 para jogar futebol. Por conta de algumas lesões, no entanto, mudou o foco da carreira para a cozinha. As primeiras experiências profissionais aconteceram lá mesmo.

"Nos shoppings da Austrália, há diversas barraquinhas especializadas em fudge. Tem inúmeros sabores para agradar todo tipo de freguês".

No episódio, ele escolhe ensinar o que leva chocolate branco e macadâmia, que pode ser substituída por outra castanha sem qualquer problema ou até mesmo frutas secas, cookies quebradinhos ou o que sua imaginação mandar.

Clique na imagem abaixo e confira a receita completa:

Fudge de chocolate branco

Dificuldade Fácil
Ver receita completa

Paixão americana

Os primeiros registros da sobremesa são dos Estados Unidos. Em 1886, uma educadora de Baltimore escreveu numa carta que comprou uma caixa de fudge por 40 centavos de libra.

Fugde de chocolate branco - Getty Images/iStockphoto - Getty Images/iStockphoto
Fudge-making: quem sabia fazer fudge
Imagem: Getty Images/iStockphoto

O consumo foi impulsionado pela queda do preço do açúcar branco refinado e pela vontade de consumir um doce elaborado que não fosse tão caro e difícil de reproduzir em casa.

Nas faculdades femininas, onde a pedida se popularizou, quem sabia a receita era chamada de "fudge-making". Em 1887, nasceu em Michigan a Original Murdick's Fudge, loja voltada para turistas onde o fudge é a atração principal.

Cozinha por aí
2ª temporada!

Cozinha Por Aí - costelinha barbecue - UOL - UOL
Urubici: a terra das cascatas
Imagem: UOL

Inverno é sinônimo de viagem, serra, cachoeira e natureza. E também pede receitas quentes, práticas e saborosas para dividir com a família e amigos. A série Cozinha por Aí reúne todos esses atributos. Assista toda semana um novo episódio aqui no Canal UOL e no YouTube de Nossa (e se inscreva já no canal para receber os lembretes dos novos vídeos).