Merriam-Webster defines dumpster fire as “an utterly calamitous or mismanaged situation or occurrence”. Seriously, they actually defined it. After first being spotted in 2006, “dumpster fire” has become commonly used and has to be in the running for word of the year for 2020.
As a cybersecurity professional, this term has long been near and dear to my heart. Now in 2020, everyone can share in that feeling!
“Dumpster fire” is a quick way to summarize a situation. It’s a clear metaphor. The foul odour of garbage with the added oomph of being lit on fire to not only increase it’s visual appeal but to amplify it’s stench.
The good news about a dumpster fire? You can put it out.
At Comic-Con 2019, 100% Soft gave away this absolutely adorable vinyl figure dumpster fire. I’ll be honest. I want one. Pre-orders are back on but they are sure to sell out again soon.
But this isn’t the only dumpster fire swag available.
A quick search of Etsy shows a wide variety of pins, stickers, t-shirts, and other items. Cotton Bureau also has a wonderful, simplified version on a t-shirt based on the icons included in Font Awesome. It’s dumpster fires everywhere!
All that swag got me thinking, “Why isn’t there a dumpster fire emoji?” That quickly morphed into, “I can spearhead the movement to make a dumpster fire emoji official!”
A quick search turned that excitement to disappointment.
The trade off? An interesting exploration of the process to make an emoji “official.”
An “official” emoji is one that has been accepted into the Unicode standard. Typically anything associated with international standards is long and boring. It’s important work and the only reason you’re reading this now is because of accepted technical standards…but they are boring.
But I find it fascinating that there is a rigorous, well established process around decided which of these tiny images all of our tech will use.
And because it’s an accepted standard, there is a process to propose new emoji. Fired (🤣) up, I set about to submit dumpster fire as a new emoji.
The criteria for a new emoji are summed up by the Unicode Consortium as follows;
a) will the image work at the small size at which emoji are commonly used
b) does the emoji add to what can be said using emoji or can the idea be expressed using existing emoji
c) is there substantial evidence that a large number of people will likely use this new emoji
— From “About Emoji"
- a) absolutely
- b) 💯
- c) it’s 2020
This video from Tech Insider provides an amazing overview of the process…
So I checked…
Entry #328 and #329, right between dumpling and durian. Both failed submissions.
The first entry (#328) somehow expired. The second (#329) is listed as “Declined: representable.”
The beauty of standard process is generally transparency. In this case, it means we have a clear list of reasons that a submission would not be successful. Looking at the exclusive factors, we see that H covers, “Already representable”.
What exactly is “already representable?” This indicates that the concept the emoji intends to convey can already be “said” with another combination of emojis.
In the case of dumpster fire, I believe the representation they are referring to is; 🗑🔥
Which, when we look at the official names for emojis, is “wastebasket fire.”
Yes, the emoji’s depict a similar concept but a) not at the same scale and b) not in as eloquent a manner. Wastebasket fire just doesn’t roll of the tongue as nicely as dumpster fire.
But honestly, there’s no chance that dumpster fire becomes an emoji because 🗑🔥 is good enough and that’s a key aspect of the standard. Providing a good enough set of pictographs that people can use to convey meanings across cultures and languages.
A Way Forward?
I did stumble across something interesting in this little flight of fancy. Emoji ZWJ Sequences, an official way to depict representations!
ZWJ stands for “zero width joiner”. It is used between emojis in a sequence to indicate that a combined glyph should be generated wherever possible. The genius of this system is that if a combo glyph isn’t available, the system will simply show the individual emojis in the combination.
Emojipedia has a good explanation of the system and it’s possibilities.
So 🗑+zwj+🔥 (“🗑🔥” <- that sequence is actually 3 unicode characters!) could show a dumpster fire on systems that support it.
But will this work?
What Is An Emoji?
Before we can answer if an Emoji ZWJ Sequence is the way forward for dumpster fire, we should take a look at what an emoji is from a technical perspective.
If we use a quick little bit of python code, we can peek behind the covers.
>>> u'👍'.encode('unicode_escape') b'\\U0001f44d'
The thumbs up emoji is actually represented by a unicode sequence U+0001f44d which is usually shortened to U+1f44d. This is the unique code assigned to this emoji. Notice that it’s 8 characters long? That’s important.
In the early days of computers in North America we used a system called ASCII. ASCII consists of 128 characters and an associated code. When we store 65, our programs know to show the user A. This worked great for a long time…until it didn’t.
You’ve probably already figured out, if you have characters in your language that aren’t a-Z, you can’t show them using only ASCII. This is why a number of regional standards popped up in addition to efforts to extend ASCII.
As the internet came into being, this problem was only amplified. In 1991, an new international standard was born; Unicode. The idea of Unicode was simple, one standard large enough to cover all of the worlds languages.
This necessitated a move beyond the simple 128 characters of ASCII to a much richer 143,859+ (as of v13.0) characters.
Because nothing is every that simple, 30 years later we are still dealing with challenges storing and processing these characters. You’ve probably seen input fields on the web that won’t take emojis or accented characters…how they handle (or don’t handle) Unicode is probably the culprit.
If we look behind the curtain, you can still see some of the ASCII legacy and the history of encoding. Here’s the code for an ‘é’ character;
>>> u'é'.encode('unicode_escape') b'\\xe9'
It’s a mess. But if also gives us a way to see some interesting additions to the emoji section of the Unicode standard. Here’s the thumbs up icon but in a black skin tone;
>>> u'👍🏿'.encode('unicode_escape') b'\\U0001f44d\\U0001f3ff'
What’s really interesting is how that 👆 code shows up in my editor, Sublime Text. Here’s what I saw when I added that snippet;
This is actually part of the emoji specification. There is a clause for “modifiers” that cover skin tones and genders. This allows the specification to stay small while allowing a broader range of expression.
These modified emojis work like an ZWJ sequence but they are part of the standard and won’t solve our problem with dumpster fire
If you want a deep dive into how all of the encoding works behind the scenes, this excellent post from Smashing Magazine has you covered.
Ok, a ZWJ sequence is the way to go but how many are already out there? Surely it should be a simple matter of checking with each provider to see if they support user created sequences?
The major emoji platform providers are;
- Apple (🍎)
- Google (🥽)
- Microsoft (㎳)
- Twitter (🐦)
- Facebook (🤦♂️)
Twitter has released their emojis as an open source project. If you want to use them on your site or in your own project, check out twemoji
Searching for information about Apple and Microsoft’s emoji implementation only turns up instructions on how to use emoji on these platforms (🍎, ㎳). Emojipedia has complete listings for every platform on what emoji are currently supported (🍎, ㎳, 🥽, 🐦, 🤦♂️, that’s helpful but it doesn’t specifically call out ZWJ sequences.
From the looks of things, ZWJ sequences are supported on each of these platforms but only through their emoji picker UIs. A user can’t actually type in a sequence of emojis and have them merge into a ZWJ (that should be a thing though, like emoji autocorrect!).
What sequences are supported on which platforms today? We’re going to have to rely on Emojipedia for that information.
A quick bit of code and I had a list of supported emoji’s for each platform. I compared those to the official v13.0 list. Unfortunately I had to match by the name instead of the unicode sequence. String matching is never perfect but the comparison generated the results I was looking for.
All five major providers implement the standard and then some. This is in addition to the support for the 1,809 standard v13.0 emojis. Each of the five major platforms supports more than 3,100 emojis. Why the difference? It’s primarily skin tones and genders. These combinations quickly add to the overall volume of pictographs.
If we filter out those permutations, we’re left with the following table;
|📊📊📊 Hide table...|
Nothing out of the ordinary here though, “astro-cat”, “dino-cat”, and their friends from Microft merit a closer look;
There has to be a story there (there is!). It’s also an excellent example of a ZWJ sequence.
On any platform except for Windows 10, it shows up as 😸+🚀. On Windows 10, you’ll see the amazing emoji right here: 😸🚀
There are other examples like this one from Apple; 👁🗨, but they seem to be few and far between. Why?
After digging into the issue, I couldn’t find a reasonable answer. ZWJ seems like an excellent way for a platform to put it’s own spin on emojis but few have.
There would be user experience issues as it’s already getting challenging to find emojis on mobile platforms. But as the specification adds about a dozen new emoji each year, this is going to be a problem no matter what.
Maybe it’s to avoid fragmentation? Is there an implicit agreement in place that the teams involved with emoji for various companies won’t violate. If so, that’s actually beneficial to users. Look no further than multiple rounds of browser wars to show the harm of platforms trying to set standards outside of the official process for an accepted standard.
So…maybe it’s for the best. Still, I think we need a dumpster fire emoji…it is 2020 after all.
Come on, there has to be at least one or two devs at one of these companies that would sneak it in as a ZWJ easter egg…please??!