{"id":2420,"date":"2025-04-13T21:45:33","date_gmt":"2025-04-13T21:45:33","guid":{"rendered":"https:\/\/exponentialdecay.co.uk\/blog\/?p=2420"},"modified":"2025-06-26T20:51:34","modified_gmt":"2025-06-26T20:51:34","slug":"file-formats-as-emoji-0xffae","status":"publish","type":"post","link":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/","title":{"rendered":"File formats as Emoji: 0xffae"},"content":{"rendered":"<p><em>tldr:<\/em> <a href=\"https:\/\/emoji.exponentialdecay.co.uk\" target=\"_blank\" rel=\"noopener\">https:\/\/emoji.exponentialdecay.co.uk<\/a><\/p>\n<p><strong>F<\/strong>ile <strong>F<\/strong>ormats <strong>A<\/strong>s <strong>E<\/strong>moji (0x<strong>FFAE <\/strong><em>or 0xffae<\/em>)\u00a0might be my most random file format hack yet. Indeed, it is a random page generator! But it generates random pages of file formats represented as Emoji.<\/p>\n<p>The idea came in 2016 with <a href=\"https:\/\/rada.re\/\" target=\"_blank\" rel=\"noopener\">radare<\/a> releasing a new version that supported an <a href=\"https:\/\/github.com\/radareorg\/radare2\/commit\/7962df7ca64e9d004b1803149f0118740c4f9213\" target=\"_blank\" rel=\"noopener\">emoji hexdump<\/a>. I wondered whether I could do something fun combining file formats and the radare output to create a web-page.<\/p>\n<p>Along came a spare moment one weekend, some pyscript, and bit of sqlite, et voil\u00e0. File Formats as Emoji (0xFFAE) was made a reality.<\/p>\n<p><!--more--><\/p>\n<p>I had a lot of experience with creating very specific byte-representations of files with the skeleton-test-suite or <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/published-the-skeleton-test-corpus\/\" target=\"_blank\" rel=\"noopener\">skeleton-test-corpus<\/a>. The skeleton-test-suite is our shortcut to representing digital files as they are recorded in PRONOM. Skeleton files are not complete files, rather, they represent the essence of what a PRONOM-based identifier uses to identify file formats in the wild. It is used to support testing of file format signatures, to build new format identification tools on the back of PRONOM, identify problems with PRONOM signatures, and for integration testing in DROID and Siegfied.<\/p>\n<p>A skeleton file is often a much smaller, more discrete pattern, but interesting to look at nonetheless.<\/p>\n<figure id=\"attachment_2425\" aria-describedby=\"caption-attachment-2425\" style=\"width: 1736px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/skeleton-suite-in-linux.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2425\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/skeleton-suite-in-linux.png\" alt=\"An image of the skeleton suite in Linux. The file extensions trigger display of the correct application icon for each of the files and so it looks like you have a lot of different file types around.\" width=\"1736\" height=\"929\" srcset=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/skeleton-suite-in-linux.png 1736w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/skeleton-suite-in-linux-500x268.png 500w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/skeleton-suite-in-linux-1024x548.png 1024w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/skeleton-suite-in-linux-768x411.png 768w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/skeleton-suite-in-linux-1536x822.png 1536w\" sizes=\"auto, (max-width: 1736px) 100vw, 1736px\" \/><\/a><figcaption id=\"caption-attachment-2425\" class=\"wp-caption-text\">One of my favorite images of the skeleton suite; when the objects correctly display with application icons in Linux<\/figcaption><\/figure>\n<p>I created a small script in 2016 to run radare over the skeleton suite (available these days from Richard Lehane&#8217;s <a href=\"https:\/\/github.com\/richardlehane\/builder\" target=\"_blank\" rel=\"noopener\">builder<\/a>), turn its output into a contiguous stream, and present it as a web-page.<\/p>\n<p>The result was a 3.6 megabyte website which doesn&#8217;t sound like much, but it takes its time to load all of the emoji characters and often crashes Chrome for me, even today. It also wasn&#8217;t a lot of fun to navigate or look at.<\/p>\n<p>I thought the site had gone but I found it while doing some server maintenance and decided to try and resurrect it as a new site.<\/p>\n<p><span style=\"background-color: var(--color_content_background); color: var(--color_content_text); font-family: var(--typography_fonts_text);\" data-darkreader-inline-bgcolor=\"\" data-darkreader-inline-color=\"\">I have wanted to create a random page generator for a while, and so that, combined with a desire to look at <a href=\"https:\/\/pyscript.net\/\" target=\"_blank\" rel=\"noopener\">pyscript<\/a> again, and maybe see what I could do with sqlite, and I had a plan for an implementation.<\/span><\/p>\n<p><span style=\"background-color: var(--color_content_background); color: var(--color_content_text); font-family: var(--typography_fonts_text);\" data-darkreader-inline-bgcolor=\"\" data-darkreader-inline-color=\"\">Using some of my existing templates and tooling, the site took just about half a day to get into a good shape to decide to keep going with the work, and another full half-day or so to turn into something presentable.\u00a0<\/span><\/p>\n<p>You may have already taken a look, but if not, please check out <a href=\"http:\/\/emoji.exponentialdecay.co.uk\/\" target=\"_blank\" rel=\"noopener\">0xffae<\/a> and let me know what you think! What&#8217;s your favorite emoji representation? Are you happy with the representation of your favorite file format?<\/p>\n<p>I hope it might be useful when introducing folks for file format identification, or even just as an ice-breaker at training or other events.<\/p>\n<p><span style=\"background-color: var(--color_content_background); color: var(--color_content_text); font-family: var(--typography_fonts_text);\" data-darkreader-inline-bgcolor=\"\" data-darkreader-inline-color=\"\">I like the site for its whimsy. I like how the structures of PRONOM&#8217;s signatures are visible even if it doesn&#8217;t make too much sense on the surface. It&#8217;s not quite art, but it is like something discovered, or <em>&#8216;found&#8217; <\/em>in something that exists on-disk. The contrast between parts of the object that format identifiers use and don&#8217;t use is quite high, acting like a mask on top of the original data stream. Clicking on the primary results window will show the bytes-representation and you can copy and paste this into a hex editor and DROID or Siegfried should identify the results. I might expand on that in future to get the skeleton files back out of the same database.<\/span><\/p>\n<p>Please, give it a whirl!<\/p>\n<p>Let me know what you think, and what else you might like to see included.<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_2420\" class=\"pvc_stats total_only  \" data-element-id=\"2420\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p><em>tldr:<\/em> <a href=\"https:\/\/emoji.exponentialdecay.co.uk\" target=\"_blank\" rel=\"noopener\">https:\/\/emoji.exponentialdecay.co.uk<\/a><\/p>\n<p><strong>F<\/strong>ile <strong>F<\/strong>ormats <strong>A<\/strong>s <strong>E<\/strong>moji (0x<strong>FFAE <\/strong><em>or 0xffae<\/em>)\u00a0might be my most random file format hack yet. Indeed, it is a random page generator! But it generates random pages of file formats represented as Emoji.<\/p>\n<p>The idea came in 2016 with <a href=\"https:\/\/rada.re\/\" target=\"_blank\" rel=\"noopener\">radare<\/a> releasing a new version that supported an <a href=\"https:\/\/github.com\/radareorg\/radare2\/commit\/7962df7ca64e9d004b1803149f0118740c4f9213\" target=\"_blank\" rel=\"noopener\">emoji hexdump<\/a>. I wondered whether I could do something fun combining file formats and the radare output to create a web-page.<\/p>\n<p>Along came a spare moment one weekend, some pyscript, and bit of sqlite, et voil\u00e0. File Formats as Emoji (0xFFAE) was made a reality.<\/p>\n<div class=\"link-more\"><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;File formats as Emoji: 0xffae&rdquo;<\/span>&hellip;<\/a><\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_2420\" class=\"pvc_stats total_only  \" data-element-id=\"2420\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":2427,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[114,3,20,19],"tags":[345,61,96,147,115,71,342,29,191,17,117,16,343,72,14,344],"class_list":["post-2420","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-literacy","category-digital-preservation","category-just-code","category-python","tag-0xffae","tag-code","tag-coding","tag-digipres","tag-digital-literacy","tag-digital-preservation","tag-emoji","tag-file-format","tag-file-format-identification","tag-file-formats","tag-learning","tag-pronom","tag-pyscript","tag-python","tag-skeleton-test-corpus","tag-teaching","entry"],"a3_pvc":{"activated":true,"total_views":209,"today_views":1},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>File formats as Emoji: 0xffae - ross spencer :: exponentialdecay.digipres :: blog<\/title>\n<meta name=\"description\" content=\"Can you guess the file format? Using emoji to introduce others to file formats and their underlying data structures.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"File formats as Emoji: 0xffae - ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"og:description\" content=\"Can you guess the file format? Using emoji to introduce others to file formats and their underlying data structures.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/\" \/>\n<meta property=\"og:site_name\" content=\"ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-13T21:45:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-26T20:51:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/0xffae.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1832\" \/>\n\t<meta property=\"og:image:height\" content=\"1032\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ross Spencer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:site\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ross Spencer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/\"},\"author\":{\"name\":\"Ross Spencer\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"headline\":\"File formats as Emoji: 0xffae\",\"datePublished\":\"2025-04-13T21:45:33+00:00\",\"dateModified\":\"2025-06-26T20:51:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/\"},\"wordCount\":630,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/0xffae.png\",\"keywords\":[\"0xffae\",\"Code\",\"Coding\",\"digipres\",\"digital literacy\",\"Digital Preservation\",\"emoji\",\"File Format\",\"File Format Identification\",\"File Formats\",\"learning\",\"PRONOM\",\"pyscript\",\"Python\",\"Skeleton Test Corpus\",\"teaching\"],\"articleSection\":[\"Digital Literacy\",\"Digital Preservation\",\"Just Code\",\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/\",\"name\":\"File formats as Emoji: 0xffae - ross spencer :: exponentialdecay.digipres :: blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/0xffae.png\",\"datePublished\":\"2025-04-13T21:45:33+00:00\",\"dateModified\":\"2025-06-26T20:51:34+00:00\",\"description\":\"Can you guess the file format? Using emoji to introduce others to file formats and their underlying data structures.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/#primaryimage\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/0xffae.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/0xffae.png\",\"width\":1832,\"height\":1032,\"caption\":\"A screenshot of a file format (fmt\\\/983) in 0xffae. The title 0xffae sits over the top of the original image.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/file-formats-as-emoji-0xffae\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"File formats as Emoji: 0xffae\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\",\"name\":\"ross spencer :: exponentialdecay.digipres :: blog\",\"description\":\"Digital preservation analyst, researcher, and software developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\",\"name\":\"Ross Spencer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"width\":2560,\"height\":2560,\"caption\":\"Ross Spencer\"},\"logo\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\"},\"description\":\"Digital preservation domain expert and full-stack software developer.\",\"sameAs\":[\"http:\\\/\\\/www.exponentialdecay.co.uk\\\/blog\",\"https:\\\/\\\/www.instagram.com\\\/b33tk33p3r\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ross-spencer-b6b9b758\\\/\",\"https:\\\/\\\/x.com\\\/beet_keeper\"],\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/author\\\/exponentialdecay\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"File formats as Emoji: 0xffae - ross spencer :: exponentialdecay.digipres :: blog","description":"Can you guess the file format? Using emoji to introduce others to file formats and their underlying data structures.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/","og_locale":"en_US","og_type":"article","og_title":"File formats as Emoji: 0xffae - ross spencer :: exponentialdecay.digipres :: blog","og_description":"Can you guess the file format? Using emoji to introduce others to file formats and their underlying data structures.","og_url":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/","og_site_name":"ross spencer :: exponentialdecay.digipres :: blog","article_published_time":"2025-04-13T21:45:33+00:00","article_modified_time":"2025-06-26T20:51:34+00:00","og_image":[{"width":1832,"height":1032,"url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/0xffae.png","type":"image\/png"}],"author":"Ross Spencer","twitter_card":"summary_large_image","twitter_creator":"@beet_keeper","twitter_site":"@beet_keeper","twitter_misc":{"Written by":"Ross Spencer","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/#article","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/"},"author":{"name":"Ross Spencer","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"headline":"File formats as Emoji: 0xffae","datePublished":"2025-04-13T21:45:33+00:00","dateModified":"2025-06-26T20:51:34+00:00","mainEntityOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/"},"wordCount":630,"commentCount":0,"publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/0xffae.png","keywords":["0xffae","Code","Coding","digipres","digital literacy","Digital Preservation","emoji","File Format","File Format Identification","File Formats","learning","PRONOM","pyscript","Python","Skeleton Test Corpus","teaching"],"articleSection":["Digital Literacy","Digital Preservation","Just Code","Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/","url":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/","name":"File formats as Emoji: 0xffae - ross spencer :: exponentialdecay.digipres :: blog","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/#primaryimage"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/0xffae.png","datePublished":"2025-04-13T21:45:33+00:00","dateModified":"2025-06-26T20:51:34+00:00","description":"Can you guess the file format? Using emoji to introduce others to file formats and their underlying data structures.","breadcrumb":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/#primaryimage","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/0xffae.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/04\/0xffae.png","width":1832,"height":1032,"caption":"A screenshot of a file format (fmt\/983) in 0xffae. The title 0xffae sits over the top of the original image."},{"@type":"BreadcrumbList","@id":"https:\/\/exponentialdecay.co.uk\/blog\/file-formats-as-emoji-0xffae\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/exponentialdecay.co.uk\/blog\/"},{"@type":"ListItem","position":2,"name":"File formats as Emoji: 0xffae"}]},{"@type":"WebSite","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website","url":"https:\/\/exponentialdecay.co.uk\/blog\/","name":"ross spencer :: exponentialdecay.digipres :: blog","description":"Digital preservation analyst, researcher, and software developer","publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/exponentialdecay.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716","name":"Ross Spencer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","width":2560,"height":2560,"caption":"Ross Spencer"},"logo":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png"},"description":"Digital preservation domain expert and full-stack software developer.","sameAs":["http:\/\/www.exponentialdecay.co.uk\/blog","https:\/\/www.instagram.com\/b33tk33p3r\/","https:\/\/www.linkedin.com\/in\/ross-spencer-b6b9b758\/","https:\/\/x.com\/beet_keeper"],"url":"https:\/\/exponentialdecay.co.uk\/blog\/author\/exponentialdecay\/"}]}},"views":1286,"_links":{"self":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/2420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=2420"}],"version-history":[{"count":19,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/2420\/revisions"}],"predecessor-version":[{"id":2583,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/2420\/revisions\/2583"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media\/2427"}],"wp:attachment":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=2420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=2420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=2420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}