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

Queridinho do verão: a tecnologia por trás da fabricação de sorvetes

Rodrigo Lara

Colaboração para Tilt

03/12/2020 04h00

Se tem uma coisa capaz de refrescar em um dia de verão é um sorvete. E aqui vale tudo: pode ser um picolé, um cone ou outros tipos. Mas formatos à parte, você sabe como os sorvetes são fabricados?

O processo todo envolve misturar, aquecer e resfriar os ingredientes em diferentes máquinas para dar todas as características que adoramos no alimento: uma equilibrada combinação de gelo, sabores e cremosidade.

Como eles são associados a dias quentes, é normal pensarmos que o Brasil é um dos países que mais consome o quitute. Mas na verdade ficamos atrás de outros com clima mais ameno. De acordo com dados divulgados pela Associação Brasileira das Indústrias e do Setor de Sorvetes (Abis) no início de 2019, o consumo per capita no país é de 5,44 litros/ano. Ainda distante dos 28,3 litros per capita da Nova Zelândia, que é o país com a população que mais consome sorvetes no mundo.

O processo de fabricação dos sorvetes começa com a mistura dos ingredientes. Aqui, claro, há variações de tipos de sorvetes, mas vamos considerar os sorvetes de pote, que normalmente tem leite em sua base, além de açúcares, gordura e aditivos alimentares como estabilizantes e emulsificantes.

Esse primeiro tanque agita a mistura, que depois disso vai para outro equipamento chamado homogeneizador, onde esses ingredientes continuam sendo misturados para se tornarem "uma coisa só".

ada essa parte, a mistura é submetida ao processo de pasteurização. Nele, ela é aquecida de maneira a eliminar microorganismos que possam fazer mal à saúde. A mistura segue, então, para grandes tanques resfriados, onde ocorre o chamado amadurecimento. O conteúdo é agitado por cerca de duas horas. Aqui, são acrescentados outros ingredientes para dar cor e sabor ao sorvete.

ado esse processo, ela será batida enquanto é resfriada. Essa combinação de procedimentos permite incorporar ar em seu interior e garante a cremosidade no final. Se o sorvete tem pedaços de frutas, chocolate, castanhas etc, é nessa hora que eles são acrescentados. Depois disso, o produto é envasado e segue para a parte final do congelamento.

Há, claro, algumas variações. No caso dos picolés, o congelamento se dá em formas com os palitos —e, em alguns casos, am por um "banho" de chocolate em seguida para formar aquela casquinha.

Como são feitos aqueles sorvetes com mais de um sabor no mesmo pote?

Como a mistura já está bem resfriada na hora de ser envasada, é possível colocar lado a lado sabores distintos sem que eles se misturem. Sorvetes do tipo, como o famoso sabor napolitano, tendem a continuar assim a menos que derretam e acabem se misturando.

Qual é a forma correta de armazenar um sorvete?

O ideal é que ele seja guardado no freezer a uma temperatura de -18ºC. Mesmo na hora de servir, o ideal é retirar brevemente o pote do freezer, pegar a quantidade de sorvete que você irá consumir e guardar imediatamente em seguida. E para evitar que o produto
descongele na ida até sua casa, recomenda-se pegar ele por último no supermercado e armazenar em uma bolsa térmica no trajeto.

O que fazer se o sorvete descongelar?

Caso o sorvete realmente descongele por completo e fique exposto à temperatura ambiente, ele perderá suas características mesmo após ser congelado novamente. É possível, por exemplo, que a sua massa deixe de ficar homogênea, com a formação de uma camada de sabor e textura diferente no fundo do pote.

Um sinal de que o sorvete já não está em seu melhor estado é quando há formação de cristais de gelo tanto por fora da embalagem quando em seu interior. Essa observação, aliás, é uma dica: durante as compras, caso você note que o pote está com formação de gelo no exterior, é bem provável que o produto já não esteja em boas condições. Isso ocorre normalmente em pontos de venda que têm o (incorreto) hábito de desligar os freezers à noite.

Fontes:

Silvia Terreri, gerente de Pesquisa e Desenvolvimento de Sorvetes Kibon
Airton Paliares, diretor de Operações da Froneri

Toda quinta, Tilt mostra que há tecnologia por trás de (quase) tudo que nos rodeia. Tem dúvida de algum objeto? Mande para a gente que vamos investigar.