Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

2024 Participants: Hannah Ackermans * Sara Alsherif * Leonardo Aranda * Brian Arechiga * Jonathan Armoza * Stephanie E. August * Martin Bartelmus * Patsy Baudoin * Liat Berdugo * David Berry * Jason Boyd * Kevin Brock * Evan Buswell * Claire Carroll * John Cayley * Slavica Ceperkovic * Edmond Chang * Sarah Ciston * Lyr Colin * Daniel Cox * Christina Cuneo * Orla Delaney * Pierre Depaz * Ranjodh Singh Dhaliwal * Koundinya Dhulipalla * Samuel DiBella * Craig Dietrich * Quinn Dombrowski * Kevin Driscoll * Lai-Tze Fan * Max Feinstein * Meredith Finkelstein * Leonardo Flores * Cyril Focht * Gwen Foo * Federica Frabetti * Jordan Freitas * Erika FülöP * Sam Goree * Gulsen Guler * Anthony Hay * SHAWNÉ MICHAELAIN HOLLOWAY * Brendan Howell * Minh Hua * Amira Jarmakani * Dennis Jerz * Joey Jones * Ted Kafala * Titaÿna Kauffmann-Will * Darius Kazemi * andrea kim * Joey King * Ryan Leach * cynthia li * Judy Malloy * Zachary Mann * Marian Mazzone * Chris McGuinness * Yasemin Melek * Pablo Miranda Carranza * Jarah Moesch * Matt Nish-Lapidus * Yoehan Oh * Steven Oscherwitz * Stefano Penge * Marta Pérez-Campos * Jan-Christian Petersen * gripp prime * Rita Raley * Nicholas Raphael * Arpita Rathod * Amit Ray * Thorsten Ries * Abby Rinaldi * Mark Sample * Valérie Schafer * Carly Schnitzler * Arthur Schwarz * Lyle Skains * Rory Solomon * Winnie Soon * Harlin/Hayley Steele * Marylyn Tan * Daniel Temkin * Murielle Sandra Tiako Djomatchoua * Anna Tito * Introna Tommie * Fereshteh Toosi * Paige Treebridge * Lee Tusman * Joris J.van Zundert * Annette Vee * Dan Verständig * Yohanna Waliya * Shu Wan * Peggy WEIL * Jacque Wernimont * Katherine Yang * Zach Whalen * Elea Zhong * TengChao Zhou
CCSWG 2024 is coordinated by Lyr Colin (USC), Andrea Kim (USC), Elea Zhong (USC), Zachary Mann (USC), Jeremy Douglass (UCSB), and Mark C. Marino (USC) . Sponsored by the Humanities and Critical Code Studies Lab (USC), and the Digital Arts and Humanities Commons (UCSB).

emoji as asymmetries, playful data structure (2022 Code Critique)

edited January 2022 in 2022 Code Critiques

Title: Asymmetrical Emoticon
Author: Biyi Wen
Language: No language, concept only
Year: 2021

In context of a data structure class, there is a method to tell if there are balancing brackets in a string. Similarly, the method can be applied to tell if a word is a palindrome.

I use the metaphor of a stack of plates to understand this structure. I have a handful of plates, each to represent a character. I count the plates and see if they are even or odd. In the example I've drawn, the emoji (0_0) is odd numbered, consisted of five chars. Like stacking plates, I stack the plates one by one upon each other, until the one in the very middle. I remove the one on the middle and start my comparing process. I check: the chars are matching! I remove the plate on the top; I continue to check, the chars are matching again, I remove the plate on the top. If the (0_0) is symmetrical, the plate stack will be empty.

A handful of questions arise when critically examining this concept. As a method, it is intended to yield binary results: a string of characters can either pass the test, or not pass the test. The following are the emojis I gathered that are more nuanced than the one appeared in the example, and I see them challenging the either/or narrative. Faces (let's make this scope of mammals, because there are emojis of animal faces) are not symmetrical. The "eyebrows" of (=•́ܫ•̀=) tilts, expressing a nuanced expression. How do we see the possibility to queer? Do we see qualities that are specific to the culture of emoticons? Another question also arose when I started to think of how visually faces are perceived and processed by humans. Having undergone learning experiences, humans are able to register if a face is roughly symmetrical. The difference between how humans think, and how the computer program makes decisions, provides a space of queering.

I've been too lazy to implement the program. It has some possibilities - I was thinking that machine learning can be used as a queering method for the concept. Here to initiate the discussion.

Emoticon examples:

┻━┻︵ (°□°)/ ︵ ┻━┻

ฅ ̳͒•ˑ̫• ̳͒ฅ



  • :) I see that the scratch work on the board doesn't match how I defined odd and even in the text. One starts the counting at 0, the other starts at 1.

  • edited January 2022

    I think one of the challenges you may face is that emojis like this are often made of characters that are graphemes, multiple characters in memory rendered as a single character. In this case traversing the string like an array of characters can have issues as the information for a single grapheme may be stored in multiple slots. This is an issue that occurs when processing strings outside of english as many of the characters that exist outside of the latin alphabet are actually graphemes. In languages like C# you have TextElementEnumerator which can manage graphemes but it depends a lot on what coding language you would use to build it. To check for the palindrome aspect you could also do a reverse and compare.

    Edit: Added Code snippet for a reverse compare that supports graphemes in C#

        string original = "ฅ ̳͒•ˑ̫• ̳͒ฅ";
        TextElementEnumerator enumerator = StringInfo.GetTextElementEnumerator(original);
        List<string> elements = new List<string>();
        while (enumerator.MoveNext())
        string reversed = string.Concat(elements);
        if( string.Compare(original, reversed) == 0)
            //Do something with the palindrome
            //string is Asymetrical
  • Thank you for the interesting concept, Biyi!
    I don't really have any answers, but I do have a few questions and thoughts.

    "How do we see the possibility to queer?"

    What do you mean by "to queer" in this case? What is queered and to what end?

    Another question also arose when I started to think of how visually faces are perceived and processed by humans.

    I love that you bring this up. Do you see possibilities with this procedure (or as @annatito suggested, by doing a reverse and compare) for better identification of strings that signify a visual image rather than linear language? I'm thinking about if/how could it be used to improve screen readers' interpretation of these types of emoji's for example?
    for example, your last example (=•́ܫ•̀=) is simply read out by my screen reader (Thunderbolt) as "equals bullet bullet equals" (and ฅ ̳͒•ˑ̫• ̳͒ฅ is simply "bullet bullet", and ┻━┻︵ (°□°)/ ︵ ┻━┻ as "degrees wide square degrees slash"). (My apologies to anyone actually reading with a screen reader, this must have been an annoying sentence).

    These emoji's are one example of strings that are meant to be interpreted as one visual.
    Do you think there would also be an opportunity to adjust the procedure to include other forms of visual emoji memes? I am thinking for example of the Twitter meme of the prayer circle of candles with a text of what is being summoned in the middle. Visually it's a circle but the way a machine reads it linearly, it is not. Could a similar procedure identify them by comparing if each line begins and ends with the same emoji?

  • edited January 2022

    @hannahackermans said:
    I love that you bring this up. Do you see possibilities with this procedure for better identification of strings that signify a visual image rather than linear language? I'm thinking about if/how could it be used to improve screen readers' interpretation of these types of emoji's for example?

    Screen reader software often really struggles with the visual elements of internet language, the reality is it needs to be translated by someone in some way for the screen reader to make the link between the visual and text. I would be really interested in looking at the possibility of crowd sourcing or community sourcing these sorts of character to visuals dictionaries as they can vary widely in usage between cultures and online communities. For example Reddit may have its own culture of use of these symbols which differs from other sites, the trick would be linking the living dictionary of symbols with the specific digital locale the person is visiting. There is even a possibility for programatically analysing symbol use in a site and building a draft dictionary which can then be adjusted by users of the sites.

  • @annatito, we're one the same page there, I was not suggesting a quick fix to the issue, but rather proposing that algorithms similar to these can contribute to indicating the likelihood of a visual rather than textual meaning. Yes, community sourcing would be a great part of the solution, especially for something so community-specific (thank you for bringing that up!), as long as the accountability for it is adequately shared with the platforms and technologies involved.

  • @hannahackermans Definitely. I think there is a lot of work that can be done in this space especially if we are given the time to think creatively about it :smile:

  • edited January 2022

    Thank you Anna and Hannah for your insightful comments! It's really great to find interlocuters on this mini program / concept. I am addressing your responses merged into one.

    What do you mean by "to queer" in this case? What is queered and to what end? I had two references in mind, one is Queering Phenomenology by Sara Ahmed, and the other is Aesthetic Programming coauthored by @siusoon and @geoffcox who both introduced the handbook in the introductions thread. I checked in the PDF version of Aesthetic Programming with the keyword "phenomenology", and I didn't find one. In my opinion notions of (queer) phenomenology can be applied to the space of code.

    As we enter the space of logical code, the space follows a set of logical rules. The rules are of operational intent, to produce working programs. It's a space of convention and good practice: write informative comments, maintain readable indentation, choose logic that make sense to you and potential readers, and etc.

    Can this space be tilted? I see the asymmetric emoji program embodying approaches that tilt the space of code. The approach to tilt is not to challenge the entirety of logical operations, as we are still using logical operations such as "if then, else", but to bring an extent of tension into the space. Programs such as the palindrome spits out a binary yes/no answer, conventionally, the result is left at that, it is or it isn't, the context of the program does not open up the space to queer. As the emoji are full expressions, it queers the operational space the program runs through. The result of the program is not a definitive, concealing stamp, but opening up possibilities to look at the tensions present in the code process. These tensions include the aspects of character encoding and screen readability as you both have discussed in the upper threads.

    < cite>to what end To what end is a good remark on queering the orientation of code - where is this code going? A functional program has a purpose, it is a means to an END. I don't have the end answer to this program - the end seems to have provoked questions and tensions...

  • Thanks @annatito for the C## snippet! I haven't used C## before, but I get what the TextElementEnumerator is doing. I have to digest and process what the reversal is doing.

Sign In or Register to comment.