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).

[PROCESS] C:\Users\marylyn.tan\UnDocuments\Queer Bodies (Code Critique)

  • Title: "C:\Users\marylyn.tan\UnDocuments\Queer Bodies"
  • Author: Marylyn Tan
  • Language: Windows terminal and Python
  • Year: published in Gaze Back ©2018, p55
  • Software requirements: none

The following text reproduces the poem as it appears in _Gaze Back (Ethos Books, Singapore, 2018) with two changes:_

  1. This forum automatically adds line numbering to the code -- this numbering does not appear in the book.
  2. A typo ] in the book on line 8 of the code is eliminated here.

C:\Users\marylyn.tan\UnDocuments\Queer Bodies

>>>open ("")

potential_queer_lovers = ['Doc Martens Girl', 'Cute Bartender', 'Bleached Pompadour Dancing Alone', 'Unsure if Hipster or Lesbian', 'National Hockey Player', 'Gender Panic TA']

potential queer_lovers.append('freshmeet.txt')

>>>open ("")

if w in potential_queer_lovers:
    run rules_of_lesbian_attraction_SG

def rules of lesbian attraction_SG:
    for item in (gender presentation):
        if hair length < 10cm:
            "MASC" = +1
        if hair length > 10cm:
            "MASC" = -1
        type (footwear):
            if ("boots", "brogues", "oxfords") = True:
                "MASC" = +1
            if ("heels", "pumps", "wedges") = True:
                "MASC" = -1
            if ("flip flops") = True:
                "ATTRACTIVE" = -1
            else = True:
                "UNCLASSIFIED" = +1

        type (clothing):
            if ("binder", "too_tight_sports bra", "button down"):
                "MASC" +1
            if ("cargo shorts"):
                "ATTRACTIVE" = -1

    type (language):
            if "anglophone" = True:
            if "sinophone_local" = True:
            if "sinophone_china" = True

        type (colour):
            if "pale":
                "ATTRACTIVE" = +1
                "ATTRACTIVE" = -1

        type (body):
        if "freesize" = True:
            "NORMAL WEIGHT" = +1
            "FAN_TONG" = +1

        type (sexual orientation):
            if "instances_contact_penis" < 1:
            "GOLD STAR" +1
                if "bisexual":
                    "ATTRACTIVE" = -1
                    "FICKLE-MINDED" = +1
                    "LIKELY TO-CHEAT" = +1
                    "WILL LEAVE FOR MAN" = +1
                if "trans_woman":
                    if pre-op:
                        "ANYTHING BUT PENIS" = -1
                if "trans_man":
                    "ANYTHING BUT PENIS" = +1
        type (race):
        if ("chinese"):
        "ATTRACTIVE +1" = + 2
          elif ("malay", "indian", "other"):
                    open ("educational level", "")

attraction_score = len("MASC" + "ATTRACTIVE" + "NORMAL WEIGHT" + "EDUCATED") / len(total)

if attraction_score > 0.5:
    for (random excuse) in ("excuses").randomize():
        print (random_excuse)


  • First of all, thank you so much to Marylyn Tan for accepting to participate in the working group and letting us look at this piece.

    I think this code work is really interesting because of how it uses code, and a certain way of thinking about daily life in code form, to produce an effect that is both comical and cynical at the same time. The code relies on a point system which already seems to dehumanize the women under scrutiny by dissecting them into different sets and subsets of qualities. What interests me here is that viewing dating in such a light is not uncommon, and there is actually an equivalent called "bear code" featured in The Bear Book (Les Wright, 1997). Yet here, it is pushed to its absurd form in order to call out some specificities of the Singaporean lesbian dating scene as Marylyn Tan describes it: linguistic biases, colorism, considerations of one's "purity" based on their exact sexual orientation and past experiences, etc. At first glance, the poem seems harsh and unforgiving, but as Marylyn Tan piles up more and more criteria for attractiveness, it becomes clear that it is reaching a form of absurd, a parody of the dating scene at large, but also maybe of how it can sometimes feel more like a meat grinder (pun very much intended) and be incorporated as part of one's process of choosing a date, despite better intentions. It both denounces and admits to doubtful criteria for attractiveness, in a way that feels both funny and relatable.

    I think this piece uses code particularly efficiently, because of how it seems to emphasize a procedural, dehumanized way of looking at one another: one which does not care for much more than a point sheet which, once processed, will determine whether that person is worth getting drinks with. The code is essential to the satire, to the denunciation of a wider system, yet one which is "run" by many, one which any reader should feel guilty of having used in one form of another.
    As a non-code fluent person, non-lesbian, non Singaporean and non-woman, I also appreciate how the code is both brimming with details pertaining to all parts of Marylyn Tan's cultural background, yet has so many anchor points that allow anyone to read it like the poem that it is. Both aspects complement each other: understanding specific references helps with reading the code at large, and understanding how the code functions helps understand whatever cultural reference one might be missing.

    I wonder what this code reveals about how some code literacy can inform us, if not even influence us, in how we perceive our own actions. With Kittler's idea of techno-determinism on my mind, it is tempting to think that a broader access to some form of coding (through forums, tumblr, etc.) may have influenced us into perceiving our whole lives as a long code from which we could pluck snippets like this one.

  • What a lovely poem. And impresses upon me the ways that desire and relationships are often funnily, ironically, and perhaps terribly schematized, compartmentalized, quantified. I am reminded of the old school dating services (I am sure this continues today) that "scored" people and tried to match people of particular scores. What does it mean to turn life into a heuristic, an algorithm? What does it mean to turn desire into code?

        type (race):
        if ("chinese"):
        "ATTRACTIVE +1" = + 2  

    Moreover, as a gamer, I also see the underpinnings of role-playing game logics. Bonuses and penalities depending on who you are, what you play, who you want, et cetera.

  • edited February 7

    One of the things I'm enjoying about re-reading this piece is the way that the precision of an attraction scoring system (+1) is also a nice little parody / self-parody of the universality of "rules" of attraction -- code tends to present a system in which wearing a binder or being a gold-star lesbian is worth a certain number of objective "points", but the rules are only our rules in the moment, for whomever "we" are, and so people who know what it is to think about dating someone from the PRC or be called a Fan Tong or call someone a "helicopter" are surfacing this very culturally specific experience which is in a delightful ironic tension with laying out out "the rules" in general.

    I struggle a bit with the uncanny valley of codework--the ways in which this piece is both quite like Python and yet is definitely not Python, and how it is full of little things that could not be made to execute. Partly this is just the idioms (like assigning a value to a string such as "ATTRACTIVE" rather than a variable attractive). A little part of me (more on that later) screams "you can't do that!" ...wait, can you do that? No... well... okay, let's try.

    % python3
    Python 3.10.9 (main, Dec 15 2022, 17:11:09) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> "ATTRACTIVE" = 1
      File "<stdin>", line 1
        "ATTRACTIVE" = 1
    SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='?

    Nope, you can't do that (in Python). So, it's codework, stop trying to execute it and read!

    Another part of me is enjoying a free-flowing-ness to this poem that executable code will not allow, like the lines:

    if ("chinese"):
    "ATTRACTIVE +1" = + 2

    ...which conceptually seems to store ideas about race in a separate variable named "ATTRACTIVE +1" -- which isn't a "variable" that is included in the computed total at the end ("MASC" + "ATTRACTIVE" + "NORMAL WEIGHT" + "EDUCATED"), only the variable "ATTRACTIVE" is (which has already been 'computed' based on inputs like "flip flops", "cargo shorts" "bisexual" and "pale"). So if we read it loosely and impressionistically, race is really important in (these) rules of lesbian attraction -- twice as important as say wearing oxfords or anglophone speech. But if we read it like a compiler, race is accounted for and then discarded at the end, like the points for HELICOPTER (a reference which I didn't understand and had to look up). This ambiguity (is race twice as important, or not at all important) isn't directly possible in code like this that actually compiles and computes a sum.

    There may be something about looking at a piece of codework that is uncanny for me (too close to cut-paste execution, but also too far) and being unable to just read it without asking myself "how should I fix this to make it execute?" The literature poetry brain pulls me in certain directions, but I can still feel the coder brain tugging at the same time.

  • Jeremy, I feel a similar impulse to “make it run” as if it’s not already operating as intended . The one that got me was the initial location of this processing in the directory

    C:\Users\marylyn.tan\UnDocuments\Queer Bodies

    If I try to “ mkdir Queer Bodies ”, I ultimately get two folders (which are then reordered alphabetically to “Bodies, Queer.” Are we bodies first, then queer? Adding quotation marks around the folder name creates the accurate location, but makes me think of air quotes, like Queer Bodies are an idea rather than a real embodiement. Are Queer Bodies a type of UnDocument? I love that we are defining perspective from within a user profile; so often devices hold memory better than mortals.
    I really appreciate your reading of “ATTRACTIVE +1” = + 2 as more important and also disregarded:

    This ambiguity (is race twice as important, or not at all important) isn't directly possible in code like this that actually compiles and computes a sum.

    This makes me wonder who or how we’d actually imagine a version of this code compiling and running. I’m very interested in the different modes of text at work here (and how typographic choices in the book impact the way we read them).

    The title directory is sans serif — the file names within, classic serif (Times New Roman?). Then we shift to a classic computational serif where bolding implies commands. I’m not quite sure how to balance the extradiegetic bolded command voice with the unbolded reader voice. From what position is the reader? Potential lover? Compiler? Developer?

  • Edmond, I was thinking along similar lines -- the other bit of writing that immediately came to mind was the (now 10+ year old) John Scalzi piece, "Straight White Male: The Lowest Difficulty Setting There Is", and how this takes a similar point-scoring game metaphor as a starting point. But using a different context (Singaporean lesbian dating scene vs. day-to-day living in the United States), the advantages are distributed radically differently.

  • I think the desire to "make it work" or to execute the code is really telling--a la the [PROMPT] discussion... and for those of you who know Python et cetera, you are trying to run in to multiple levels... not just parsing the poem but also trying to get it to conform to code standards but also trying to imagine it running (to perhaps actually trying to run it)... /phew

    I think the question of: what if it did run, what would we lose/gain? if it did get translated to actual Python, what would we lose/gain? why write it as code in the first place, what do we lose/gain? Something along those lines.

    Now I am thinking about (il)legibility, which has been often applied to non-White, non-Straight, non-Able bodies as measure of personness and personhood. The (in)scrutability of code has often been analogized via the (in)scrutability of Asian bodies (see the trope of the Asian programmer/hacker/IT expert/gamer). So much happening in just a few strokes...

  • The question of getting the program to run is an interesting one, for me, I spend much of my life in code and the execution aspect is part of its beauty. Code is not only the human readable text that exists, it exists in a liminal space between text and execution, much like a play exists between the text of the script and the performance of it on stage.

    In this case the perception of possible execution, even if it is only sudo code, is what gives it a degree of weight. It is not just that this code poem exists on the page, but the idea that it is a model of the process that is executed in real life, it is the surfacing of that weighted social process through a procedural expressive medium. I think the moves to make it execute programatically are interesting and expose some interesting elements, but it feels a little bit like it looses the awareness that this is a program that does execute just using the social machine rather than the digital one.

  • An interesting aspect of codifying attraction like this is how exhaustive can we be? Can the author cover everything they desire in a partner in ~80 lines of code/pseudo-code? As we let AI systems make decisions for us, we need to be aware of how we're compressing our complex desires into numbers.

  • Try your hand at a code poem for the last prompt of the week: [PRACTICE] Queer Code Poetry Jam!

  • It could be argued that this is not a Python program at all, given how it breaks from Python syntax not only so frequently, but through repetition: e.g. assignment to string as @jeremydouglass points out, the misuse of type(). It's almost like it's written for its own dialect of Python that doesn't exist, but could (of course it's tempting to write such a language for this program, but I don't think it would add much to its reading).

    So why a Python-like script, rather than playing off another language? Python is both prose-like and familiar to a larger group of people who might not self-describe as programmers: hobbyists, quants, data-scientists. Python is perhaps the computational vernacular of our time.

  • Sorry to come to this thread so late, but a few thoughts.

    I appreciate @jeremydouglass 's comment tremendously:

    The literature poetry brain pulls me in certain directions, but I can still feel the coder brain tugging at the same time.

    Reading this piece, yet taking into account @edmondchang 's suggestion from before:

    Let’s start with a short exercise: as you are reading this (or perhaps even listening to it), for a minute, think about what you are doing, feel what you are doing and thinking, and take in your circumstances and surroundings as you think, feel, and do.

    I found my "coder brain" almost immediately running against the difference between this and a running Python program.

    As someone who learned to code at a young age, a thing I am now struggling with as I approach my 40s is the ability to break free from the ways in which the structure of programming languages has organized my thought throughout most of my life. I have a long-held belief (though not fully explored yet, this may be ridiculous, apologies) that creating programming languages is an act of applied metaphysics; you are taking a field of pure potentiality and imposing upon it a kind of discipline; a set of rules of which the users of that language are confined within, limiting the possibilities they can experience within the universe you've created.

    Given that as a starting point, well, it's no wonder that individuals who regularly practice working within various regimes of thought end up allowing those experiences to color their thinking when no longer bound by it, like the elephant whose chain has finally been removed, yet does not attempt to move away from the stake.

    I distinctly remember when I learned of Djikstra's Algorithm, which is an algorithm for finding the shortest paths between nodes in a weighted graph. In that moment, I remember thinking "holy crap, that is how my brain works when I am making decisions." At the time, I took that in a sort of proud way, that I had enough experience to intuit a famous algorithm. But now, years later, I look back on it in... let's say "horror" is a bit strong, but certainly not as a purely good thing.

    So I read @Lyr 's comments with some combination of amusement and disappointment in my past self:

    I think this code work is really interesting because of how it uses code, and a certain way of thinking about daily life in code form, to produce an effect that is both comical and cynical at the same time.

    I came to the same conclusion, but rather than "comical and cynical," reach for terms more like "sad" or "terrifying," due to my own background with the themes of the piece. While I don't claim to have ever directly thought in such base terms about a potential lover, I recognize an eerie similarity to the sentiment that this suggests a "system which already seems to dehumanize."

    I find @quinnanya's mention of Scalzi to be insightful as well. While not about love, ultimately it is about comparing people via a points system, and in my experience has been pretty effective in communicating its message, which of course brings me back to my own concerns about taking the core idea as a suggestion rather than as a warning.

    Relatedly, I am reminded by @edmondchang 's comment:

    I am reminded of the old school dating services (I am sure this continues today) that "scored" people and tried to match people of particular scores.

    of OkCupid. During its heyday, (and maybe today, I am just not familiar), OkCupid would ask you to answer a set of questions, and giving an answer on a five point spectrum of "yes" to "no." It would then calculate "Friend %" and "Enemy %", based on doing some rough math around your answers. But a key component of this algorithm is that it was completely oblivious to the semantics of the questions being asked; it only looked at how similar or different your answers were, regardless of what the question was about. This worked surprisingly well, but also had some serious flaws, of course. But it's another similar yet different thing in this space; it's still an algorithm, still pitting people against each other, but does not claim to have a real answer, only a confidence interval, and unlike the piece, is entirely abstracted from the qualities desired in the way that it functions.

Sign In or Register to comment.