<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
      <title>Code Critiques — CCS Working Group 2018</title>
      <link>http://wg18.criticalcodestudies.com/index.php?p=/</link>
      <pubDate>Tue, 23 Jun 2026 22:21:50 +0000</pubDate>
          <description>Code Critiques — CCS Working Group 2018</description>
    <language>en</language>
    <atom:link href="http://wg18.criticalcodestudies.com/index.php?p=/categories/code-critiques/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Code Critique: Port of Secrets / snippet of anti-code from the Irvine-based GM-less larp community</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/43/code-critique-port-of-secrets-snippet-of-anti-code-from-the-irvine-based-gm-less-larp-community</link>
        <pubDate>Mon, 29 Jan 2018 19:47:47 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>SamaraHayleySteele</dc:creator>
        <guid isPermaLink="false">43@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>In case you are unfamiliar with the larping medium and larp code, the first three posts are intended to provide a quick orientation.  Skip to the 4th post to view the code sample.  Thanks for any and all attention to this snippet! <img src="http://wg18.criticalcodestudies.com/resources/emoji/smile.png" title=":)" alt=":)" height="20" /></p>

<p>WHAT IS LARP?</p>

<p>Live-action role play (larp) presents itself as a form of interactive analog media with no fourth wall: it is not possible to distinguish between those creating the story and its audience.  Larp participants co-create narrative diegeses (Montola 2003) while simultaneously watching these narratives unfold as spectators (Mackay 2001).  The term “diegesis” refers to the respective “story world” of specific pieces of narrative media (Genette 1980, Richardou 1967).</p>

<p>This concept of diegesis is useful to those who engage in collaborative forms of storytelling in which control over different parts of a narrative have been distributed to members of a team, such as in the creation of films and video games. When creating a film, for example, it is vital that many members of your storytelling team—the director, actors, DP, sound designer, editors, and others—are all on the same page about whether the music in a scene they are co-creating is <em>diegetic</em> (it is part of the story world and the characters can hear it) or if it is <em>extradiegetic</em> (only the audience can hear it). Since the term is perhaps overly technical, you don’t usually hear the word “diegesis” thrown around on film sets, but the concept is, in the form of questions like, “Can her character hear that?” and “What’s going to be put where that green screen is?”</p>

<p>Rapid communication about what is happening in a diegesis is likewise important to larp participants, perhaps even more so, because of the dual role larpers play of simultaneously experiencing a story as audience members and co-creators.  This phenomenon, sometimes called "first person audience" (Sandberg 2004), is a feature of both the larp and tabletop RPG mediums, the premiere forms of analog role-playing game (RPG).  Larp distinguishes itself from tabletop RPG through the use of live-action theatrics and props to create narrative content. Because of this live-action component, larp participants also experience <em>inter-immersion</em> (Pohjola 2004), or "the positive feedback loop of inhabiting the game world and the character" (Stenros 2015).  A common question larpers ask each other to refer to the diegesis they are co-creating is “What do I see?” which is the equivalent of asking "What does my character see?"</p>

<p>So, to play this trifecta role of being a narrative's co-creator, spectator, and diegetic inhabitant, a larp participant must be larp literate, which is to say: a larp participant must be able to extract meaning from the signifiers through which the diegetic content of the larp is being conveyed.  Different larps do this differently.</p>

<p>The most familiar form of larp to non-larpers is the classic <em>Tolkienesque campaign-style boffer larp</em>.   In this variety of larp, participants play creatures from the <em>Lord of the Rings</em> universe, like elves, dwarves, and orcs, simulate combat with foam-padded “boffer” weapons, and co-create stories that unfold episodically in months- or years-long arcs called “campaigns” that take place in a story world that runs continuously in which characters come and go (Mizer 2016), creating a narrative pacing akin to that of a long-running soap opera or a serial comic book.  This variety of larp has arisen around the world, emerging even in Russia in the year 1990, within months of the Soviet Union’s pending collapse, as Russian sci-fi enthusiasts, hippies, and holistic education instructors descended upon a campground near Krasnoyarsk and created the Russia’s first “Hobbit Games,” which are treated as the origin point of Russian larp (Prudkovskaya 2015, Semonov 2010).</p>

<p>Following the coalescence of the larp medium in the form of the emergence of the Tolkienesque games of the late 1970s (or the early 90s for those larping in Russia), the medium of larp has expanded into many genres and taken on many forms.  There are sci-fi larps, horror larps, mysteries, post-apocalyptic zombie romps, and over the last two decades we have seen the steady upgrowth of literary larps that defy genre classification and explore themes like isolation, illness, vicissitudes of oppression, and the neoliberal workplace.</p>

<p>Moreover, not all larps feature boffer weapons, and many larpmakers have not bothered to render combat playable as part of their system, as their targeted playerbase is not interested that sort of thing. Also, as for game duration, a number of larps don’t have a continuous story world, but rather are <em>one-shot larps</em> that last only a few hours or days from beginning to end, a constraint which forces the narrative into a tight, cinematic tempo, as all things of the diegesis must be meaningfully resolved before the larp’s conclusion.</p>

<p>Likewise, some larps have pre-written characters, for which players are often cast by the larpwright, whereas other larps allow players to design their own characters.  The benefit of the former is that characters can be written with tightly interlocking pasts and motivations, from which the story of the game seems to naturally emerge as gameplay occurs, whereas in the case of the latter, players, in creating characters themselves, are able to use the larp as an occasion to express parts of themselves for which they can't find any other social space, allowing larp to lend life unexpected performativites, an embodied process which, as psychology professor Ryan Blackstock has noted, may produce a number of positive side effects for its users mental health (2016).</p>

<p>While <em>boffer larps</em> often occur in parks, campgrounds, and areas with ample outdoor space to allow combat, <em>parlor larps</em> often occur in dining rooms, banquet halls and conference rooms, as a major feature of this style of larp is cocktail-party-style mingling and intimate conversation.  Moreover, if one is playing a larp of the <em>Nordic schools</em>, it could occur in any number of locations—an office building, a decommissioned military ship, or a 12th century castle—and the activity will be punctuated by an array of improvisational theatre games, and may also include types of consent-mediated power play.</p>

<p>These are just some of many varieties of larps that have developed over the last four decades demonstrating the larp medium as facilitating a wide range of expression and experience.</p>
]]>
        </description>
    </item>
    <item>
        <title>Code Critique: Andrew Sorensen "A Study In Keith"</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/47/code-critique-andrew-sorensen-a-study-in-keith</link>
        <pubDate>Fri, 02 Feb 2018 23:11:23 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>d0kt0r0</dc:creator>
        <guid isPermaLink="false">47@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>My apologies for launching this code critique so late in the working group's schedule. It took all of my "free" time just to keep with the rest of discussion. I'm a bit unsure what happens now, at the end of the third week, but wanted to contribute something, anyway, before it ends. The hope had been to offer a detailed interpretation of a documented live coding performance by Andrew Sorensen, "Study in Keith", created "9 years ago" (if the Vimeo metadata is to be trusted). What I will give here is not yet that detailed interpretation, but hopefully there will be some interest at least in an indication of the tack I would (have) like(d) to (have) take(n).</p>

<p>The performance is viewable here: </p>

<p>My interest in this particular performance is anchored in a sense that it quietly points away from a dominant interpretive frame or frames that are frequently applied to, or conjured up by, live coding. I don't want to deduce general characteristics of live coding (or broader "creative coding") from this artifact - I want to figure out what is different and unique about it and hopefully make it (at least marginally) more difficult for such generalizations to operate.</p>

<p>In my experience, there is this pervasive discourse around live coding that, in various ways, figures a heroic individual subject that, augmented by the power of programming languages, boldly and bravely discovers the promised land of "music that has not yet been heard". Such discourse echoes a common narrative of the "older" field of computer music about itself, and both echo nakedly colonial ideologies. But I see various ways in which this performance by Andrew Sorensen goes against that grain:</p>

<ol>
<li><p>To begin with, there is the explicit connection of the performance to Keith Jarrett. "Not quite Keith, but inspired by Keith" says the brief textual tag. Such explicit re-creation or homage or "being [so closely] inspired by"... the specific work of another artist is strikingly infrequent among live coding performances. The piece announces its own aim to recreate rather than to "innovate". (The artist points away from themself.)</p></li>
<li><p>The act of appearing to re-create the work of another by algorithmic models points to a historical tradition of musical Turing tests, such as the relatively well-known work of David Cope. I think, for some listeners and under many circumstances, it could be possible to deceive people into believing this was a recording of a Keith Jarrett performance. But unlike the aforementioned work by Cope, there is no obvious relay with artificial intelligence or particularly deep models of musical creativity or construction. Quite the opposite: the models used to produce this particular musical Turing test are relatively straightforward. (The performance not only points away from itself, but also away from any imagined surrogate agency of the computer.)</p></li>
</ol>

<p>An eventual detailed interpretation might linger for some time on drawing out these models which, while I have characterized them as relatively straightforward, are certainly not readily "accessible" in this video documentation. The typing in this particular video moves quickly, and the resolution, at least in this format, is such that characters are all legible, but not precisely "easily" legible. Producing ways to archive and navigate live coding performances other than video is a desiderata that comes up from time to time in live coding research narratives, with few examples yet of it being done in any generalized way, i.e. with performers beyond the researchers proposing such systems.</p>

<ol start="3">
<li>The "instrument" that Sorensen uses to realize the individual tones in the musical patterns controlled by the code is a "generic" piece of commercial software, not a laboriously developed original synthesizer or sample collection built on top of free and open source DSP (as is otherwise quite common with live coding artists, albeit not exclusively). And then that commercial software synthesizer is used to simulate an extremely "naturalistic" grand piano. I don't know how exactly this particular piano sound fits into that particular commercial synthesizer, but a (simulation of) an acoustic grand piano is the first sound in the general MIDI standard, the most default instrument from a particularly default set of instruments.</li>
</ol>

<p>Those are some starting points, whether for now or later. I hope everyone has a good weekend!</p>

<p>Yours truly,<br />
David</p>
]]>
        </description>
    </item>
    <item>
        <title>Code Critique: analysing code from a website</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/36/code-critique-analysing-code-from-a-website</link>
        <pubDate>Thu, 25 Jan 2018 08:50:03 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>System</dc:creator>
        <guid isPermaLink="false">36@/index.php?p=/discussions</guid>
        <description><![CDATA[This discussion was created from comments split from: <a rel="nofollow" href="/index.php?p=/discussion/31/week-2-critical-and-creative-coding-calvinball-and-coders/">Week 2: Critical and Creative Coding – Calvinball and Coders</a>.]]>
        </description>
    </item>
    <item>
        <title>Code Critique: Processing Samples from The Nature of Code</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/38/code-critique-processing-samples-from-the-nature-of-code</link>
        <pubDate>Sat, 27 Jan 2018 00:16:40 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>lizlosh</dc:creator>
        <guid isPermaLink="false">38@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>The title of Daniel Shiffman's <em><a rel="nofollow" href="http://natureofcode.com" title="The Nature of Code">The Nature of Code</a></em> is a play on words. The book, which promises information about "simulating natural systems with Processing," is both a treatise intended to reveal the "nature of" code in the sense of its essential properties -- how code is structured and how it executes -- and a volume that shows how code can imitate the principles of natural systems.</p>

<p>For a long time feminist critics have argued that it is difficult to talk about nature without talking about gender. In <em><a rel="nofollow" href="https://yalebooks.yale.edu/book/9780300065954/reflections-gender-and-science" title="Reflections on Gender and Science">Reflections on Gender and Science</a></em>," Evelyn Fox Keller argues that the articulation of the scientific method by Francis Bacon was full of gendered language about penetrating nature and dominating nature in ways analogous to rape of women by men. In <em><a rel="nofollow" href="https://www.dukeupress.edu/technologies-of-the-gendered-body" title="Technologies of the Gendered Body">Technologies of the Gendered Body</a></em> Anne Balsamo asserts that such gendering nature female and technology male perpetuates old stereotypes and ignores the legacies of mothers who were computers, like Balsamo's own female programmer-parent.</p>

<p>Using the programming language <a rel="nofollow" href="https://processing.org" title="Processing">Processing</a>, the library of <a rel="nofollow" href="https://github.com/shiffman/The-Nature-of-Code-Examples" title="Code Examples">Code Examples</a> that Shiffman has archived on GitHub covers a range of topics, including vectors, forces, oscillation, particle systems, physics libraries, autonomous agents, cellular automata, fractals, the evolution of code, and neural networks.</p>

<p>In the course on Feminist Digital Humanities at the <a rel="nofollow" href="http://www.dhsi.org/courses.php" title="Digital Humanities Summer Institute">Digital Humanities Summer Institute</a>, <a rel="nofollow" href="https://jwernimont.com" title="Jacque Wernimont">Jacque Wernimont</a>, <a rel="nofollow" href="http://jmjohnso.com" title="Jessica Marie Johnson">Jessica Marie Johnson</a>, and I have encouraged participants to explore Shiffman's code samples to think about how the relationships of agents and environments that might seem "natural" in the "real world" might be challenged and reimagined differently from conditions of hierarchy, division, and oppression.</p>

<p>Feminist critics interested in vibrant matter, queer animacies, and the so-called "new materialism" -- such as Jane Bennett, Mel Chen, and Rosi Braiddotti -- might also be interested in the vitalism of Shiffman's code samples. (To see some of his ideas about how non-human agents might have steering forces, you can check out Shiffman in action in <a rel="nofollow" href="https://www.youtube.com/watch?v=6vX8wT1G798" title="this video">this video</a>.)</p>

<p><img src="http://wg18.criticalcodestudies.com/uploads/editor/na/7pptspayuep4.png" alt="" title="" /></p>

<p>Perhaps it might be useful to look at the program for "<a rel="nofollow" href="https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp04_systems/simpleInheritance" title="simple inheritance">simple inheritance</a>," which isn't in the book. As Shiffman explains, inheritance "allows us to write a class that inherits variables and functions from another class, all the while implementing its own custom features." Although some of his writing about "attraction" and "completeness" in other programs might seem problematic, in the simple inheritance program I found myself enjoying how Shiffman might undermine the simple visual binary of the circle and the square, by pointing out how a "generic shape does not really know how to be displayed."</p>

<p>Speaking of inheritance, I also appreciated Shiffman's dedication of _The Nature of Code _ to his grandmother <a rel="nofollow" href="http://genealogy.math.uni-bielefeld.de/id.php?id=33727" title="Bella Manel">Bella Manel</a>: "A Pioneering woman in mathematics, she earned her PhD in 1939 from New York University under the supervision of Richard Courant. She worked for Ram-Wooldridge (now TRW) and at the Rand Corporation with Richard Bellman." Since I wrote about female RAND programmers for Pat Harrigan and Matthew Kirschenbaum's <a rel="nofollow" href="https://mitpress.mit.edu/zones-control" title="Zones of Control">Zones of Control</a>, it made me want to return to the RAND archive to look for Shiffman's matrilineal progenitor.</p>
]]>
        </description>
    </item>
    <item>
        <title>Code Critique: A Turing Machine in a Spreadsheet</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/37/code-critique-a-turing-machine-in-a-spreadsheet</link>
        <pubDate>Thu, 25 Jan 2018 19:22:20 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>markcmarino</dc:creator>
        <guid isPermaLink="false">37@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Arguably, there is <a rel="nofollow" href="https://www.microsoft.com/en-us/research/publication/improving-worlds-popular-functional-language-user-defined-functions-excel/" title="more programming done today in spreadsheets than any other programming language">more programming done today in spreadsheets than any other programming language</a>. (Or is it <a rel="nofollow" href="http://wiki.c2.com/?MicrosoftExcelProgrammingLanguage" title="a programming language">a programming language</a> at all?) I'd like to kick off a discussion of how Critical Code Studie can approach the analysis of programming in spreadsheets with a look at an usual example: <a rel="nofollow" href="http://www.felienne.com/archives/2974" title="a Turing Machine built in a spreadsheet">a Turing Machine built in a spreadsheet</a>.</p>

<p>The Turing Machine is the hypothetical contraption Alan Turing described in "On Computable Numbers, with an Application to the Entscheidungs problem."  One team of Netherland-based developers, including Felienne Hermans, were at a retreat when they decided to try to build on in Excel.</p>

<p>Object of Study: <a rel="nofollow" href="http://www.felienne.com/archives/2974" title="A Turing Machine built in a spreadsheet">A Turing Machine built in a spreadsheet</a><br />
Language: Excel<br />
Developer: Felienne and Co.<br />
When: 2013<br />
Demo: <a rel="nofollow" href="https://www.dropbox.com/s/1lu1pyoibkash7f/Turing%20Machine_Successor.xlsx?dl=0" title="The Turing Machine spreadsheet">The Turing Machine spreadsheet</a></p>

<p><img src="http://wg18.criticalcodestudies.com/uploads/editor/9s/8l6fa23nkv2j.png" alt="" title="" /></p>

<p>In addition to examining this use of a spreadsheet to create a Turing Machine, I would like to open up the discussion about spreadsheet programming.  First, of all, so much research depends on work done in spreadsheets.  Consider <a rel="nofollow" href="http://www.bbc.com/news/magazine-22223190" title="this small example">this small example</a> of spreadsheet work gone awry.  However, seeing this work in spreadsheets as programming may seem counterintuitive.  I recently had a conversation with UCLA's Todd Millstein, who demonstrated the conditional statements and loops that can be written into spreadsheets (and pointed me toward that previous example). But certainly, most of this work does not look like our conventional concept of "coding."  The interface metaphor itself is distracting. However considering even formulas in spreadsheets as programming starts to dissolve the conceptual boundary between programming and mathematics.  Perhaps the Turing Machine is a good place to start because it is self is a mathematical model/specification/thought experiment.</p>

<p>Also, useful is Felienne's talk:<br />
<span data-youtube="youtube-TMIBfzSqguQ?autoplay=1"><a rel="nofollow" href="https://www.youtube.com/watch?v=TMIBfzSqguQ"><img src="https://img.youtube.com/vi/TMIBfzSqguQ/0.jpg" width="640" height="385" border="0" alt="image" /></a></span></p>

<p>Questions:</p>

<ul>
<li>How do we understand spreadsheets as programming languages? Or do we consider them more IDEs? APIs/COM Component?</li>
<li>What language/methods do we need to describe the kinds of programming done in spreadsheets?</li>
<li>What other examples of programs written in spreadsheets should we examine?</li>
</ul>

<p>But specifically:  What does this implementation of a Turing Machine teach us about Turing's formulation of this model?</p>

<p>I suspect this piece in particular might speak to <a rel="nofollow" href="http://wg18.criticalcodestudies.com/index.php?p=/profile/ebuswell">@ebuswell</a>'s discussion of state in "<a rel="nofollow" href="http://wg18.criticalcodestudies.com/index.php?p=/discussion/27/week-2-creative-and-critical-coding-coding-as-method#latest" title="Creative and Critical Coding. Coding as Method?">Creative and Critical Coding. Coding as Method?</a>"</p>
]]>
        </description>
    </item>
    <item>
        <title>Code Critique: Heinz von Foerster and Ordering Machines</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/30/code-critique-heinz-von-foerster-and-ordering-machines</link>
        <pubDate>Tue, 23 Jan 2018 03:44:24 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>gregorybringman</dc:creator>
        <guid isPermaLink="false">30@/index.php?p=/discussions</guid>
        <description><![CDATA[<p><strong>Programming language</strong>: algorithmic notation / pseudocode.<br />
<strong>Name of author/s</strong>: Heinz von Foerster.<br />
<strong>Year circulated/published</strong>: 2003, in “Responsibilities of Competence”, from <em>Understanding Understanding</em>, reprint of keynote address adapted to a 1972 <em>Journal of Cybernetics</em> article.</p>

<p><strong>Code</strong></p>

<p><em>“The essential function of a Turing machine can be specified by five operations:”</em></p>

<pre><code>(i) Read the input symbol x. 
(ii) Compare x with z, the internal state of the machine. 
(iii) Write the appropriate output symbol y.
(iv) Change the internal state z to the new state z´. 
(v) Repeat the above sequence with a new input state x´.     
</code></pre>

<p><em>“Similarly, the essential function of Maxwell’s Demon can be specified by five operations equivalent to those above:”</em></p>

<pre><code>(i) Read the velocity v of the upcoming molecule M.
(ii) Compare (mv^2/2) with the mean energy mv^2/2 (temperature T) of, say, the cooler container (internal state T). 
(iii) Open the aperture if (mv^2/2) is greater than mv^2/2; otherwise keep it closed. 
(iv) Change the internal state T to the new (cooler) state T´ .
(v) Repeat the above sequence with a new incoming molecule M´.
</code></pre>

<p><strong>Analysis</strong></p>

<p>Heinz von Foerster is known as a second-order or second-generation cybernetician, establishing his theoretical program after Norbert Wiener and other first-generation theorists. The code / pseudocode above comes from a keynote address of 1972 in which he problematizes our notions of “hard” and “soft” sciences, arguing that physics and other hard sciences deal with soft problems, but that so-called soft sciences such as sociology deal with hard problems. For Foerster, cybernetics is the use of competencies acquired in the hard sciences to tackle difficult problems in the social sciences.</p>

<p>Having established this alliance of hard and soft sciences, Foerster laments, in an anecdotal way, that it is difficult to discern the “muse” of the discipline. In a way that shows considerable male bias, he decides that this muse is neither the Urania of astronomy nor the Demeter of agriculture, but the creature “sitting beside his desk”, a demon, none other than the being first postulated by James Clerk Maxwell in his <em>Theory of Heat</em> (1871). Maxwell’s demon is a thought experiment in which this intelligence inside a chambered heat canister “beats” entropy, but only on a molecular level in which individual particles can be ordered or kept hot. With the demon, Maxwell had intended to demonstrate the statistical nature of the second law of thermodynamics, that a system ultimately moves towards a greater state of entropy, showing that where larger groups of particles are concerned, negentropy, or order in disorder, is relative.</p>

<p>So in the code above, Foerster suggests that a Turing machine is nearly homologous to a demon machine. The differences in these procedures, although slight, come down to the fact that the demon machine conditionally modifies state, whereas the Turing machine processes state at a level of abstraction above the control structures of the demon machine. For the latter, refraining from opening a valve to let a faster molecule go into a hotter chamber is still a propagation if not modification of state. A point made by Foerster is that this is an order- producing regulatory process, part of a triad of regulation, entropy retardation, and computation.</p>

<p>Foerster, in this case, is well aware of the relativity of this order production and in no way believes that one can move beyond the second law. So he argues, humans must take responsibility for the justice and progress of the social sciences and do the best possible with computers, these (relative) order-producing machines. Still, these machines bridge the gap between the thermodynamic demon and information theory, but they also carry a “closed” quality that seems less desirable in the context of the open source movement and of distributed computing today. The gesture of Foerster’s informatics applied to the social is that it <em>must</em> be a closed system:</p>

<p>“As long as humanity treats itself as an open system by ignoring the signals of its sensors that report about its own state of affairs, we shall approach this singularity (the instability of humankind) with no breaks whatsoever. (Lately I began to wonder whether the information of its own state can reach all elements in time to act should they decide to listen rather than fight.) The goal is clear: we have to close the system to reach a stable population, a stable economy, and stable resources.” (<em>Understanding</em>, 197)</p>

<p>The cybernetic system he describes (perhaps puzzling to us now in its "closed" quality) instead only retains a metaphoric image of closure. A schematic, for instance, can be drawn up to represent or describe its functional basis, even if it remains non-isolated, in the world. What Foerster is calling for is feedback, that pockets of nature / culture reflexively interrogate themselves. Yet they are not completely closed. This notion in part resembles Deleuze and Guattari’s machinic heterogenesis in which an actor behavior is autopoietic or closed on itself, but at the collective level of world / society.</p>

<p>So a closed system is rather reflexive, one of the ways in which Katherine Hayles redeems Foerster in her <em>How We Became Posthuman</em>. But this opening of the closed system can go further. It is known that James Clerk Maxwell was devout and that the demon was like a monotheistic god, while also in Thompson’s interpretation, it becomes distinctly male and/or devoid of gender as an abstract <em>boîte noire</em>. This male aspect of the demon infiltrates Foerster’s keynote and has continued in the scientific literature of Maxwell’s demon, which often hopes that a true order will prevail, in the ordinary sense of the Judeo-Christian tradition. In contrast, could we not substitute the feminine goddess Sophia of the wisdom tradition as an intelligence with foreknowledge of particles or computational states, a "gendered" Maxwell’s demon? This would be an opening of the closed systems of classical cybernetics and a location of clarity in the gnostic embrace of entropy and irreversibility, and which would approach the reflexivity of Foerster in a quite different, radical way.</p>

<p><strong>Questions</strong></p>

<p>What other "machines" from any knowledge domain for which we could construct a simple algorithm are homologous to the Turing machine and demon machine in Foerster's text?</p>

<p>Without changing the algorithms provided by Foerster, can we read them in such a way that we overcome the binary opposition between information and entropy?</p>

<p>Given that these two algorithms bridge virtual and non-virtual systems, do they also function to enlarge or open up spaces in which programming or coding happens?</p>

<p>Could the opening of these ordering machines provide an impetus for code studies to examine programming in gender and race among other areas? Since, does not entropy / negentropy expand the domain of coding (at least by analogy) as something that happens on more than simply commercial computing devices (the computers we use or the computers of everyday life)?</p>
]]>
        </description>
    </item>
    <item>
        <title>Code Critique: Axes by Margaret Hamilton</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/23/code-critique-axes-by-margaret-hamilton</link>
        <pubDate>Wed, 17 Jan 2018 23:06:28 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>markcmarino</dc:creator>
        <guid isPermaLink="false">23@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Programming language::Axes/001Axes<br />
Name of author/s: Margaret Hamilton and Saydean Zeldin<br />
Year circulated/published: 1976</p>

<p>To follow up on our conversation about Margaret Hamilton, I'm interested in the Axes or 001Axes and its legacy. What became of this software?  How did it change into Universal Systems Language?  What if any impact has it had on computing. In one article, she calls it, "001AXES—actually a meta-language—has mechanisms to define mechanisms for defining<br />
systems. "</p>

<p>I'm interested in this programming language because it seems to carry on her work on error prevention, Development Before the Fact, Systems Oriented Objects, et cetera.</p>

<p>I came across this article by Dijkstra: "Judging “HOS” from a distance" [Higher Order Software, Inc., which produced Axes].  In typical Dijkstra fashion, he proceeds to criticize four publications tied to HOS, including some of the specifications of Axes. He casts serious shade on the endeavor.</p>

<p>I have yet to find a code snippet for this language, but have found a number of diagrams, Function Maps or Type Maps, I will post one below.  Is this a primarily visual language? Or is that the output of the 001 tool?<br />
<a rel="nofollow" href="https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD852.html" title="Judging “HOS” from a distance">Judging “HOS” from a distance</a></p>

<p>The code is dependent on 6 axioms that  I will post below.  Help me hunt for the code and its impact.</p>

<p>Hamilton, Margaret H., and William R. Hackler. “8.3.2 A Formal Universal Systems Semantics for SysML.” INCOSE International Symposium, vol. 17, no. 1, June 2007, pp. 1333–57. Wiley Online Library, doi:10.1002/j.2334-5837.2007.tb02952.x.</p>

<p>Hamilton, Margaret, and Saydean Zeldin. AXES Syntax Description. Defense Technical Information Center, 1976.</p>
]]>
        </description>
    </item>
    <item>
        <title>Code Critique: JS Accessibility Hack</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/32/code-critique-js-accessibility-hack</link>
        <pubDate>Tue, 23 Jan 2018 22:45:31 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>gpetruzella</dc:creator>
        <guid isPermaLink="false">32@/index.php?p=/discussions</guid>
        <description><![CDATA[<h2><strong>Programming language:</strong></h2>

<p>HTML + JavaScript</p>

<h2><strong>Code snippet (excerpt of code):</strong></h2>

<p>Examples below; you can find the entire script <a rel="nofollow" href="https://github.com/gpetruzella/gpetruzella.github.io/blob/master/jsonaccess.html" title="on my github.">on my github.</a></p>

<h2><strong>Description:</strong></h2>

<p>I'm presenting a bit of simple HTML/JS. Essentially, it carries out the following sequence of steps:</p>

<ol>
<li>presents a clickable link for the user to generate an accessible <code>&lt;table&gt;</code> containing the data in an otherwise non-accessible media object embedded on the page. On click, the JavaScript...</li>
<li>generates the URI of the JSON data which underlie the media;</li>
<li>assigns the JSON data to a variable;</li>
<li>uses a series of 'replace' operations to edit the content of the variable;</li>
<li>displays the variable content as an accessible <code>&lt;table&gt;</code> element on the original webpage. (the code for this last bit is <a rel="nofollow" href="https://github.com/afshinm/Json-to-HTML-Table" title="courtesy of Afshin Mehrabani via GitHub.">courtesy of Afshin Mehrabani via GitHub.</a>)</li>
</ol>

<h2><strong>Explanation:</strong></h2>

<p>The code was born out of creative tension. StoryMapJS is a project of <a rel="nofollow" href="https://knightlab.northwestern.edu/" title="Knight Lab">Knight Lab</a> at Northwestern University, which develops open-source tools for storytelling. Their tools provide engaging and interactive ways to understand data visually in narrative context. As with many media-centric tools, though, StoryMapsJS is optimized for sighted users; navigating a StoryMapJS object using NVDA is an exercise in confusion. I wanted to create a lightweight user-side bit of code that would programmatically offer the user access to the same data used in the visual map, but in a standard HTML table, providing structural context which screen readers can parse effectively for the listener.</p>

<p>As I developed and deployed the code, I began realizing that there were some curious ways the requirements of the code structure and syntax expressed values relevant to the presumed audience. One significant context was in step 4 above, i.e., the 'replace' operations for content editing. The raw JSON data, if presented in a table, would be hardly more intelligible, aurally, than the original media. Thus, as code author, I was immediately making choices of exclusion, based on the aural clarity of how the data would be presented. For example, here's one line:</p>

<p><code>var obj = obj.replace(/zoomify|location|head|storymap|media|text|attribution|call_to_action|true|false|slides|date|caption|credit|type|overview|line|osm|zoom|map_as_image|map_subdomains|map_|,|url|::|\/\/|[{\[\]}_\&quot;]/gim , &quot;&quot;);</code></p>

<p>As you'll probably intuit, most of these terms to be 'replaced' (with nothing) are headers. Rather than just leaving them alone, or formatting them to be more readable as needed (e.g converting "call_to_action" to "call to action"), I made the choice that these category signifiers were both extraneous - the data themselves were intelligible - and obscurantist - the value of any meaning they conveyed would be outweighed by their "cluttering up" the aural space of the information. The last several terms to be replaced represent the special and escape characters which, if left alone, would obscure meaning and/or produce oddities in formatting once the string is converted to an HTML <code>&lt;table&gt;</code> element.</p>

<p>A second example of how the actual writing of the code was shaped by authorial consideration of the audience: the line below formats the string as a colon-separated array. This is not the most typical choice; but I made it responding to my perception of the most likely ways the typical creators of StoryMapJS items would enter readable text. A StoryMapJS object is based on a Google Sheet, and includes fields for narrative descriptions, captions, etc. The script needed to take into account the fact that the string it's meant to format will include characters, including punctuation with special meaning in code, which have different meaning in context of human-read content, and so which must be in a sense "escaped." The second line, below, is an illustrative example of a consequence of this choice: adding a colon into a string for the sole purpose of signalling a table break.</p>

<p><code>var jsonarray = obj.split(&quot;:&quot;);</code></p>

<p><code>obj = obj.replace(/image url/gim , &quot;New Slide:image url&quot;);</code></p>

<p>A final, and rather significant, consideration arose at the testing stage. The script relies upon the <a rel="nofollow" href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest" title="XMLHttpRequest">XMLHttpRequest</a> object to get access to the original JSON data underlying the media object. Security protections against malicious code restrict the remote use of XMLHttpRequest. Interestingly, <a rel="nofollow" href="https://en.wikipedia.org/wiki/Same-origin_policy" title="the relevant policy">the relevant policy</a> is implemented in slightly different ways by the different major browsers; and so, while the script works as intended in Firefox and Edge, Chrome and Safari block its execution on security grounds. It can be enabled if the admin of the target server enables a certain header (see below); but of course this is often not a realistic option, and essentially places the agency for "allowing" the implementation of an accessibility solution in the control of the server admin, rather than the end user.</p>

<p><strong>Chrome console error message blocking data access:</strong> "Failed to load <a href="https://uploads.knightlab.com/storymapjs/264d1187a29448e1252d90856e644ca1/history-careers/draft.json" rel="nofollow">https://uploads.knightlab.com/storymapjs/264d1187a29448e1252d90856e644ca1/history-careers/draft.json</a>: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '<a href="https://gpetruzella.github.io'" rel="nofollow">https://gpetruzella.github.io'</a> is therefore not allowed access."</p>

<h2><strong>Discussion questions:</strong></h2>

<ol>
<li><p>How much of code writing rests on a <strong>model of constraint,</strong> either presumed or explicit? Particularly in conversations of user experience and design, how often does the end user perceive "all" the information contained in the source database, and how do those choices get made for the "generic" end user? for specific end users?</p></li>
<li><p>How does such a constraint model influence a <strong>code author's perception of power imbalances</strong> in relation to the end user, particularly in context of the idealism of "open"?</p></li>
<li><p>The nexus of accessibility, agency, and security seems a powerful convergence of considerations for a code writer. Given that the rhetoric of security tends to set safety and agency as mutually constraining elements, are there parameters of code work which <strong>tacitly weigh against</strong> accessible coding?</p></li>
</ol>
]]>
        </description>
    </item>
    <item>
        <title>Code Critique: FLOW-MATIC</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/20/code-critique-flow-matic</link>
        <pubDate>Wed, 17 Jan 2018 05:14:54 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>markcmarino</dc:creator>
        <guid isPermaLink="false">20@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>I'd like to return us to some code we've looked at during past CCSWG's, bringing in the perspective of our Week 1 discussion</p>

<p>Name of program: FLOW-MATIC DEMO?<br />
Name of author/s: Grace Hopper<br />
Year circulated/published: 1955-59<br />
Programming language: FLOW-MATIC (aka B-Zero or or Business Language version 0.</p>

<p>Code snippet:</p>

<pre><code>1.  INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICED-INV 
2.        FILE-D ; HSP D .
3.    COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ; IF GREATER GO TO OPERATION 10 ;
4.        IF EQUAL GO TO OPERATION 5 ; OTHERWISE GO TO OPERATION 2
5.    TRANSFER A TO D .
6.    WRITE-ITEM D .
7.    JUMP TO OPERATION 8 .
8.    TRANSFER A TO C .
9.    MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) .
10.  WRITE-ITEM C .
11.  READ-ITEM A ; IF END OF DATA GO TO OPERATION 14 .
12.  JUMP TO OPERATION 1 .
13.  READ ITEM B ; IF END OF DATA GO TO OPERATION 12 .
14.  JUMP TO OPERATION 1 .
15.  SET OPERATION 9 TO GO TO OPERATION 2 .
16.  JUMP TO OPERATION 2 .
17.  TEST PRODUCT-NO (B) AGAINST ZZZZZZZZZZZZ ; IF EQUAL GO TO OPERATION 16 ;
18.      OTHERWISE GO TO OPERATION 15 .
19.  REWIND B .
20.  CLOSE-OUT FILES C ; D .
21.  STOP . (END)
</code></pre>

<p>Description of how the code operates: (I'll post <a rel="nofollow" href="http://wg18.criticalcodestudies.com/index.php?p=/profile/damonlorenbaker">@damonlorenbaker</a>'s gloss below).  Also, I should note that <a rel="nofollow" href="http://wg18.criticalcodestudies.com/index.php?p=/profile/benallen">@benallen</a> has written on FLOW-MATIC extensively.</p>

<p>Explanation of how you regard the code:<br />
FLOW-MATIC was a programming language, featuring English language tokens, that preceded COBALT and was made by Grace Hopper and her team.  A number of us have read this code as a sign of early thoughts on using English-like tokens and well as one of the ways early developers of programming languages attempted to cater to non-programming managers.</p>

<p>Discussion questions: How do we interpret this code through a feminist or gender-based approach?</p>
]]>
        </description>
    </item>
    <item>
        <title>Code Critique Instructions</title>
        <link>http://wg18.criticalcodestudies.com/index.php?p=/discussion/14/code-critique-instructions</link>
        <pubDate>Mon, 15 Jan 2018 04:59:36 +0000</pubDate>
        <category>Code Critiques</category>
        <dc:creator>markcmarino</dc:creator>
        <guid isPermaLink="false">14@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Please add your own Code Critique to this forum.</p>

<p>Your submission can volunteer a curio, a provocation, or a full interpretive argument. The code in question may be found or created. Whatever the case, it is also an invitation for discussion by other workshop participants. You may submit more than one critique if you have more than one code object of interest!</p>

<p>A few recent examples of critiques have addressed After Jasper Johns, Bernhardt's WAT lightning talk, Emote8, femme Disturbance library, Function Explorer, hello world in LOLCODE, interpellate.pl (Speaking Code), Jailbreak the Patriarchy, and SCIgen.</p>

<p>Instructions<br />
Select the Code Critiques category.<br />
Click the "New Discussion" button.<br />
Fill out a title, provide your code, and offer some contextual information about its source and your interest.<br />
Below is a suggested format -- all entries are "if applicable":<br />
Name of program:<br />
Name of author/s:<br />
Year circulated/published:<br />
Programming language:<br />
Requisite hardware:<br />
Code snippet (excerpt of code). <br />
Use toolbar paragraph-icon &gt; "code"; for more see Forum Tips and Tricks.<br />
Description of how the code operates:<br />
Explanation of how you regard the code:<br />
Discussion questions:</p>
]]>
        </description>
    </item>
   <language>en</language>
   </channel>
</rss>
