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

Cheesecake tem origem curiosa na Roma Antiga; conheça a receita original

Cheesecake já era um docinho de sucesso na Roma Antiga - ed_ya/Getty Images/iStockphoto
Cheesecake já era um docinho de sucesso na Roma Antiga
Imagem: ed_ya/Getty Images/iStockphoto

De Nossa

31/05/2022 04h00

Ricota de leite de cabra sustentada por uma casquinha com mel e coberta por sementes da flor de papoula: era assim o cheesecake em tempos imemoriais, ainda na Roma Antiga, quando fazia sucesso entre escravos, soldados e aristocratas.

Como se conhece a receita deste ancestral de uma das sobremesas mais queridas da contemporaneidade? O presente foi do filósofo e escritor romano Marcus Catão, autor de "De Agri Cultura", uma série de textos em latim que incluía também o beabá do Savillum, como o doce era chamado antes de Cristo.

Algumas de suas preciosas dicas de culinária e principais misturas estão disponíveis ao público, através da Universidade de Chicago. O historiador Giorgio Franchetti, pesquisador de gastronomia e autor de "A Tavola Con Gli Antichi Romani" (Na Mesa Com Os Antigos Romanos, em tradução livre), garante que o livro era comum nas casas — assim como um título assinado pela Palmirinha hoje.

"Catão não era apenas um grande escritor e filosófo, era um apoiador gourmet das tradições e pratos rurais. Era muito popular nos lares em Roma", disse à CNN americana.

Mulher segura prato com fatia de cheesecake, bolo, açúcar, doce - iStock - iStock
Imagem: iStock

Embora seja possível que a receita do Savillum tenha sido herdada dos gregos que, de acordo com os autores Dana Bovbjerg e Jeremy Iggers de "The Joy of Cheesecake" e de vestígios arqueológicos na ilha de Samos, preparavam um quitute com queijo e mel para seus atletas olímpicos, Giorgio acredita que falta informações que possam ligar definitivamente os dois pratos, já que pouco se conhece da receita grega.

Já a versão romana se disseminou graças a dois fatores: a precisão de Catão, que colocou as medidas exatas dos ingredientes em seus escritos, e à disseminação do Império Romano que levou sua cultura — e gastronomia — a novas fronteiras. Assim, o doce se espalhou pela Europa que conhecemos hoje e, séculos mais tarde, às suas colônias nas Américas, em parte da Ásia, na Oceania e na África.

Cheesecake com calda de caramelo - Arx0nt/Getty Images/iStockphoto - Arx0nt/Getty Images/iStockphoto
Cheesecake com calda de caramelo
Imagem: Arx0nt/Getty Images/iStockphoto

Segundo o dicionário "An A-Z of Food & Drink" escrito por John Ayto e publicado pela Universidade de Oxford, no Reino Unido, o nome cheesecake foi adotado no século 15. Seus ingredientes também foram adaptados ao longo de séculos: saiu o fermento, entraram os ovos, manteiga aos poucos foi incorporada e frutas e sementes seguiram sendo substituídas com muitas variações: limão, uvas e etc.

Tanta diversidade pode ser vista nas docerias contemporâneas. Há quem faça cheesecake apenas com morangos, outros apostam em um mix de frutas vermelhas por cima. Tem quem prefira apenas mirtilo, ou amora. No Brasil, ele já ganhou goiaba. E há quem coma o doce sem nenhuma cobertura.

Cheesecake sem calda, apenas com morangos - AnnaPustynnikova/Getty Images/iStockphoto - AnnaPustynnikova/Getty Images/iStockphoto
Cheesecake sem calda, apenas com morangos
Imagem: AnnaPustynnikova/Getty Images/iStockphoto

O legado do Savillum manteve seu impacto em outras receitas, já que muitos doces italianos levam hoje algum tipo de queijo — o mais célebre é o tiramisù, uma instituição do país à base de café e mascarpone. Mas é possível recriar este "vovô gastronômico", de acordo com o primeiro a documentá-lo:

Savillum, por Marcus Catão

Ingredientes:

  • Meia libra romana (164,5 g) de farinha
  • 2,5 libras romanas (822,5 g) de queijo de cabra
  • 1 ovo
  • 1/4 de libra romana (82,25 g) de mel

Modo de preparo

Misture os ingredientes em um recipiente de cerâmica untado com azeite de oliva, cubra com uma tampa e leve ao forno para assar. O filósofo recomenda garantir que o meio da massa esteja bem assado antes de retirá-la.

"Depois cubra com mel e despeje as sementes de papoula e devolva ao forno para terminar de cozinhar antes de servir", orienta. Ele ainda sugere deixar o Savillum dentro da própria forma ou a em que cozinhou e oferecer colheres aos convidados, embora os romanos gostassem de comer com os dedos, segundo Giorgio.