window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/svg\/","svgExt":".svg","source":{"wpemoji":"https:\/\/jopioneiro.mtportal.info\/wp-includes\/js\/wp-emoji.js?ver=6.3.5","twemoji":"https:\/\/jopioneiro.mtportal.info\/wp-includes\/js\/twemoji.js?ver=6.3.5"}}; /** * @output wp-includes/js/wp-emoji-loader.js */ /** * Emoji Settings as exported in PHP via _print_emoji_detection_script(). * @typedef WPEmojiSettings * @type {object} * @property {?object} source * @property {?string} source.concatemoji * @property {?string} source.twemoji * @property {?string} source.wpemoji * @property {?boolean} DOMReady * @property {?Function} readyCallback */ /** * tests. * @typedef Tests * @type {object} * @property {?boolean} flag * @property {?boolean} emoji */ /** * IIFE to detect emoji and load Twemoji if needed. * * @param {Window} window * @param {Document} document * @param {WPEmojiSettings} settings */ ( function wpEmojiLoader( window, document, settings ) { if ( typeof Promise === 'undefined' ) { return; } var sessionStorageKey = 'wpEmojiSettingss'; var tests = [ 'flag', 'emoji' ]; /** * Checks whether the browser s offloading to a Worker. * * @since 6.3.0 * * @private * * @returns {boolean} */ function sWorkerOffloading() { return ( typeof Worker !== 'undefined' && typeof OffscreenCanvas !== 'undefined' && typeof URL !== 'undefined' && URL.createObjectURL && typeof Blob !== 'undefined' ); } /** * @typedef SessionTests * @type {object} * @property {number} timestamp * @property {Tests} Tests */ /** * Get tests from session. * * @since 6.3.0 * * @private * * @returns {?Tests} tests, or null if not set or older than 1 week. */ function getSessionTests() { try { /** @type {SessionTests} */ var item = JSON.parse( sessionStorage.getItem( sessionStorageKey ) ); if ( typeof item === 'object' && typeof item.timestamp === 'number' && new Date().valueOf() < item.timestamp + 604800 && // Note: Number is a week in seconds. typeof item.Tests === 'object' ) { return item.Tests; } } catch ( e ) {} return null; } /** * Persist the s in session storage. * * @since 6.3.0 * * @private * * @param {Tests} Tests tests. */ function setSessionTests( Tests ) { try { /** @type {SessionTests} */ var item = { Tests: Tests, timestamp: new Date().valueOf() }; sessionStorage.setItem( sessionStorageKey, JSON.stringify( item ) ); } catch ( e ) {} } /** * Checks if two sets of Emoji characters render the same visually. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be ed by parameters. * * @since 4.9.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} set1 Set of Emoji to test. * @param {string} set2 Set of Emoji to test. * * @return {boolean} True if the two sets render the same. */ function emojiSetsRenderIdentically( context, set1, set2 ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set1, 0, 0 ); var rendered1 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set2, 0, 0 ); var rendered2 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); return rendered1.every( function ( rendered2Data, index ) { return rendered2Data === rendered2[ index ]; } ); } /** * Determines if the browser properly renders Emoji that Twemoji can supplement. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be ed by parameters. * * @since 4.2.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} type Whether to test for of "flag" or "emoji". * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * * @return {boolean} True if the browser can render emoji, false if it cannot. */ function browsersEmoji( context, type, emojiSetsRenderIdentically ) { var isIdentical; switch ( type ) { case 'flag': /* * Test for Transgender flag compatibility. Added in Unicode 13. * * To test for , we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (white flag emoji + transgender symbol). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F', // as a zero-width er sequence '\uD83C\uDFF3\uFE0F\u200B\u26A7\uFE0F' // separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for UN flag compatibility. This is the least ed of the letter locale flags, * so gives us an easy test for full . * * To test for , we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly ([U] + [N]). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDDFA\uD83C\uDDF3', // as the sequence of two code points '\uD83C\uDDFA\u200B\uD83C\uDDF3' // as the two code points separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for English flag compatibility. England is a country in the United Kingdom, it * does not have a two letter locale code but rather a five letter sub-division code. * * To test for , we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]). */ isIdentical = emojiSetsRenderIdentically( context, // as the flag sequence '\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F', // with each code point separated by a zero-width space '\uD83C\uDFF4\u200B\uDB40\uDC67\u200B\uDB40\uDC62\u200B\uDB40\uDC65\u200B\uDB40\uDC6E\u200B\uDB40\uDC67\u200B\uDB40\uDC7F' ); return ! isIdentical; case 'emoji': /* * Why can't we be friends? Everyone can now shake hands in emoji, regardless of skin tone! * * To test for Emoji 14.0 , try to render a new emoji: Handshake: Light Skin Tone, Dark Skin Tone. * * The Handshake: Light Skin Tone, Dark Skin Tone emoji is a ZWJ sequence combining 🫱 Rightwards Hand, * 🏻 Light Skin Tone, a Zero Width er, 🫲 Leftwards Hand, and 🏿 Dark Skin Tone. * * 0x1FAF1 == Rightwards Hand * 0x1F3FB == Light Skin Tone * 0x200D == Zero-Width er (ZWJ) that links the code points for the new emoji or * 0x200B == Zero-Width Space (ZWS) that is rendered for clients not ing the new emoji. * 0x1FAF2 == Leftwards Hand * 0x1F3FF == Dark Skin Tone. * * When updating this test for future Emoji releases, ensure that individual emoji that make up the * sequence come from older emoji standards. */ isIdentical = emojiSetsRenderIdentically( context, '\uD83E\uDEF1\uD83C\uDFFB\u200D\uD83E\uDEF2\uD83C\uDFFF', // as the zero-width er sequence '\uD83E\uDEF1\uD83C\uDFFB\u200B\uD83E\uDEF2\uD83C\uDFFF' // separated by a zero-width space ); return ! isIdentical; } return false; } /** * Checks emoji tests. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be ed by parameters. * * @since 6.3.0 * * @private * * @param {string[]} tests Tests. * @param {Function} browsersEmoji Reference to browsersEmoji function, needed due to minification. * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * * @return {Tests} tests. */ function testEmojis( tests, browsersEmoji, emojiSetsRenderIdentically ) { var canvas; if ( typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ) { canvas = new OffscreenCanvas( 300, 150 ); // Dimensions are default for HTMLCanvasElement. } else { canvas = document.createElement( 'canvas' ); } var context = canvas.getContext( '2d', { willReadFrequently: true } ); /* * Chrome on OS X added native emoji rendering in M41. Unfortunately, * it doesn't work when the font is bolder than 500 weight. So, we * check for bold rendering to avoid invisible emoji in Chrome. */ context.textBaseline = 'top'; context.font = '600 32px Arial'; var s = {}; tests.forEach( function ( test ) { s[ test ] = browsersEmoji( context, test, emojiSetsRenderIdentically ); } ); return s; } /** * Adds a script to the head of the document. * * @ignore * * @since 4.2.0 * * @param {string} src The url where the script is located. * * @return {void} */ function addScript( src ) { var script = document.createElement( 'script' ); script.src = src; script.defer = true; document.head.appendChild( script ); } settings.s = { everything: true, everythingExceptFlag: true }; // Create a promise for DOMContentLoaded since the worker logic may finish after the event has fired. var domReadyPromise = new Promise( function ( resolve ) { document.addEventListener( 'DOMContentLoaded', resolve, { once: true } ); } ); // Obtain the emoji from the browser, asynchronously when possible. new Promise( function ( resolve ) { var Tests = getSessionTests(); if ( Tests ) { resolve( Tests ); return; } if ( sWorkerOffloading() ) { try { // Note that the functions are being ed as arguments due to minification. var workerScript = 'postMessage(' + testEmojis.toString() + '(' + [ JSON.stringify( tests ), browsersEmoji.toString(), emojiSetsRenderIdentically.toString() ].( ',' ) + '));'; var blob = new Blob( [ workerScript ], { type: 'text/javascript' } ); var worker = new Worker( URL.createObjectURL( blob ), { name: 'wpTestEmojis' } ); worker.onmessage = function ( event ) { Tests = event.data; setSessionTests( Tests ); worker.terminate(); resolve( Tests ); }; return; } catch ( e ) {} } Tests = testEmojis( tests, browsersEmoji, emojiSetsRenderIdentically ); setSessionTests( Tests ); resolve( Tests ); } ) // Once the browser emoji has been obtained from the session, finalize the settings. .then( function ( Tests ) { /* * Tests the browser for flag emojis and other emojis, and adjusts the * settings accordingly. */ for ( var test in Tests ) { settings.s[ test ] = Tests[ test ]; settings.s.everything = settings.s.everything && settings.s[ test ]; if ( 'flag' !== test ) { settings.s.everythingExceptFlag = settings.s.everythingExceptFlag && settings.s[ test ]; } } settings.s.everythingExceptFlag = settings.s.everythingExceptFlag && ! settings.s.flag; // Sets DOMReady to false and assigns a ready function to settings. settings.DOMReady = false; settings.readyCallback = function () { settings.DOMReady = true; }; } ) .then( function () { return domReadyPromise; } ) .then( function () { // When the browser can not render everything we need to load a polyfill. if ( ! settings.s.everything ) { settings.readyCallback(); var src = settings.source || {}; if ( src.concatemoji ) { addScript( src.concatemoji ); } else if ( src.wpemoji && src.twemoji ) { addScript( src.twemoji ); addScript( src.wpemoji ); } } } ); } )( window, document, window._wpemojiSettings ); window.tdb_global_vars = {"wpRestUrl":"https:\/\/jopioneiro.mtportal.info\/wp-json\/","permalinkStructure":"\/%postname%\/"}; window.tdb_p_autoload_vars = {"isAjax":false,"isBarShowing":false,"autoloadStatus":"off","origPostEditUrl":null};
Entrar
Bem-vindo! Entre na sua conta
Recuperar senha
Recupere sua senha
Uma senha será enviada por e-mail para você.
domingo, 25 maio, 2025
InícioFutilidade do DiaFUTILIDADE - A historia do ketchup

FUTILIDADE – A historia do ketchup

No dia 11 de outubro de 1924, a Heinz realizou uma ação de marketing de fazer inveja a qualquer empresa de hoje. Sem internet, ela organizou 62 banquetes simultâneos em diferentes cidades dos EUA, Canadá, Inglaterra e Escócia. Foram 10 mil pratos servidos ao mesmo tempo, graças a um sistema de comunicação via rádio e alto-falantes sincronizados. O dia, que ficou conhecido como Golden Day (“Dia Dourado”, em inglês), contou até com a transmissão de um discurso do então presidente americano, John Calvin Coolidge, por telefone.

Roberto Seba/Superinteressante

O jornalista Jean-Baptiste Malet, em seu livro O Império do Ouro Vermelho, sobre a história da indústria do tomate, sintetiza o auê: “O frasco de ketchup, ao lado da garrafa da Coca-Cola, é um dos símbolos mais famosos da americanização do mundo”.

Olhando assim, é difícil imaginar que esse condimento tradicionalmente americano, na verdade, não nasceu nos EUA – nem levava tomate. A história do ketchup tem partes na Ásia, na Europa, no continente americano, e todos esses lugares ajudaram a moldar o molho vermelho que você coloca em cima da batata frita – ou da pizza, para os mais hereges.

MADE IN VIETNÃ
A jornada do ketchup começa por volta de 300 a.C., na região onde hoje é o Vietnã. É nessa época que surgem os primeiros registros de um molho fermentado de peixe e soja. Seu nome? Kê-tsiap, que na língua hokkien (dialeto chinês falado também em outras partes do Sudeste Asiático) quer dizer algo como “salmoura de peixe em conserva”.

O kê-tsiap era um condimento popular, e não demorou para que ele se espalhasse Ásia afora. No século 18, os ingleses entraram em contato com ele na região da Indonésia, onde os britânicos possuíam colônias. Eles ficaram fascinados com o produto e com sua capacidade de “turbinar” os pratos com seu sabor marcante. Decidiram, então, levar a ideia para a Europa.

De volta à terra da Rainha, os ingleses se depararam com um problema: não havia soja por lá. A solução foi adaptar o molho testando uma série de outros ingredientes: cogumelos, feijões, anchovas, nozes, ostras… A primeira receita publicada na Inglaterra é de 1727. Para se fazer o “katshop” (olha a grafia mudando), era preciso itens como vinagre e vinho branco, gengibre, pimenta e casca de limão.

O molho foi um sucesso por conta de sua durabilidade – numa época em que a conservação de alimentos era difícil, isso era fundamental. O ketchup possuía várias versões de acordo com seus ingredientes, e era usado para tudo que precisasse de um tempero extra, como carnes, peixes e pães. Conta-se que a escritora Jane Austen (Orgulho e Preconceito) era uma consumidora fiel do katshop de cogumelos.

ERA UMA VEZ NA AMÉRICA
O ketchup à base de tomate foi inventado em 1812, na Filadélfia, pelo cientista e horticultor James Mease. Sua receita levava polpa de tomate, conhaque e algumas especiarias. Mas havia um problema. Como a polpa era um produto perecível, o novo ketchup ia na contramão dos seus parentes europeus, que se popularizaram justamente pela sua durabilidade nas despensas.

A solução para quem fabricava foi encher o produto de conservantes. Os primeiros estudos sobre o ketchup identificaram níveis preocupantes de alcatrão de hulha (para realçar a cor avermelhada) e benzoato de sódio (para prolongar a data de validade). Acontece que, no final do século 19, já se sabia que esses produtos faziam mal à saúde. Um dos maiores críticos a esses aditivos era o químico Harvey Washington Wiley.

Wiley defendia que conservantes do tipo não eram necessários se os fabricantes usassem ingredientes de alta qualidade. Um fabricante de ketchup decidiu encampar a briga de Wiley: Henry John Heinz.

Heinz ia na contramão dos outros empresários da época e, assim como Wiley, também acreditava na regulação alimentícia. Em vez de aditivos, sua receita de ketchup levava tomates mais maduros para dar cor ao molho, além de uma quantidade de vinagre bem mais alta que o normal – o que conservaria o condimento.

Deu certo: naquele ano, o ketchup da Heinz foi uma das sensações da famosa Exposição Universal, que rolou na Filadélfia. E chamou mais atenção que outras invenções que estavam ali, como um certo telefone.

Em 1897, as indústrias da Heinz em Pittsburgh possuíam linhas de produção, com tarefas divididas e que começavam a ser automatizadas. Tudo isso 11 anos antes das linhas de montagem do Ford Modelo T –o ketchup foi fordista antes de Henry Ford.

Por SuperInteressante.

 

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.