Reflecting on Myopic Appliance

My end of semester project is a proof of concept for a tool called myopic appliance. Myopic appliance takes it’s inspiration from and is a response to Voyant Tools. This web application takes in plain text, performs natural language processing (NLP), and produces quantified data visualizations and tables for the input text. In the context of the humanities, this type of analysis is called distant reading. The question explored in creating myopic appliance is: can computational techniques like NLP be used to conduct close reading, a method used in literary study where observing word choice, syntax, and sentence sequencing as it interacts with the content to inform the meaning of a written passage.

I used the phrase “proof of concept” above purposefully, rather than “prototype.” The coding completed over the past three weeks demonstrates the feasibility of applying NLP and web styling in aid of close reading. What was built in this time period can be used on any plain text, albeit with a threshold of tech knowhow as a barrier to entry. The steps for that are as follows:

  1. Clone the repo git clone [email protected]:klp/myoptic_appliances.git
  2. Create one or many .txt files and save it to the source_txt folder in the project
  3. Install the required python packages pip install -r requirements.txt either at the system or in a virtual environment (i.e. python -m venv name_of_virtualenv)
  4. Open the process_text.py file and update the file_paths list with the files to process (e.g. "source_txt/example.txt")
  5. Run process_text.py with a python interpreter, which generated a JSON file in processed_txt that maps all NLP operations
  6. Open the script.js and update jsonPaths variable with the process_txt path(s) to files you want to ingest into the tool (e.g "processed_txt/example.json")
  7. Start up a web server to host the index.html page — at the CUNY Graduate Center, students are fond of Microsoft’s Visual Studio Code, and use the Live Server extension

This is far from a prototype, which would represent a step towards a final product. But it is possible to experiment with different source texts following this simple, if not easy, process.

As is often the case with digital projects, the final output deviates from the initial proposal. I moved away from a deformance based meshing of two texts published the same year in different countries with similar culture impacts (Stowe’s Uncle Tom’s Cabin and Turgenev’s A Sportsman’s Sketches). Two factors when into generating this deviation. First, before working on the web presentation layer, I cobbled together a brittle command line utility to experiment with combining sentences and swapping parts of speech between the two texts, and found the results wanting. I opted to use three chapters from Second, after receiving feedback in multiple class sessions, the consensus was that this project appears to veer into pedagogical territory. Because the first functionality focused on parts of speech emphasis and de-emphasis, it seemed a natural fit to divert from the deformance angle to a more straightforward and predetermined method of manipulating text.

Challenges, I’ve had a few, but not too few to mention. After a significant break from using popular Python NLP libraries like Natural Language Toolkit (nltk) and even the industrial strength spaCy, I forgot how much the output requires finessing. To avoid context switching and frankly strength a particular skill, perhaps advisedly, I moved some of that finesse to the clients side JavaScript. The concern with that decision comes from previous experience trying to process text in browser, and the potential for poor performance (see Our Mutual Language Processor). The fear of performance issues lead me to the type writer like display of text across the screen in myopic appliance. I stuck with that effect even when no performance issues emerged because it felt in keeping with the close reading ethos of the project.

In any event, the in-browser text process resembled Whac-A-Mole at times. At first, all punctuation was treated as words, creating all sorts of spacing. After six hours spent trying to convert text between underscore into italicized words, I’ve given up for this particular iteration. Dashes (i.e. ‘-‘) weren’t labeled as punctuation, and required their own special handling that sometimes works predictably.

Another challenge for me: my still nascent frontend web skills like CSS, Javascript and UI design. Most of my programming experience includes backend APIs, micro services, and data processing. My standards are high enough in the technical realm that I think that’ll translate into the world of frontend engineering. Not entirely so. While the digital humanities mentality welcomes projects that have some rough edges, unintentional stylistic choices that verge from what’s recognizable on the internet risk dismissal from the interactor. Getting margin, padding, flexbox concepts to work exactly as I want them still presents a challenge. Intuiting UI/UX is also not a real thing, though I think building a crumby UI and refining it feels faster/easier than sweating the interaction details ahead of development. I also split out the UI into a logical set of steps, which introduced a number bugs. For instance, there was a state in which you can both emphasis and de-emphasis parts of speech.

When looking at the iteration completed for this class, relating the output to the course material can be a stretch. I never quite got to the exploration of alea or mimic, though Ilinx could sneak into the idea of collecting parts of speech when related to the original text. I liken the play at work here as more similar to playing a piece of music.

One neat idea I had during the development process was using Github releases. This allowed me to bundle up versions of my application into zip files. I also included releases available on the Github Pages site, linked below:

Finally, if we were pushing toward a v1 of this project, uploading your own text would have to be the bare minimum, I would wager, as it provides the most value to someone using this tool. Expecting most users to go through the process above to get going on a text of their own is not realistic in my scenarios. My guess is that the distance between v0.5 and v1.0 would be much longer than v0 to now.

Subway sighting from 2019

I struggle to remember the headspace I inhabited in 2019, when I took this photo. Three years out of AdTech and three years into HealthTech, I likely still believed that mobile phones could contribute to well being, and that marketing driven apps could reveal a key insight about behavior that could be pointed in “the right direction.” I captured this image three years after Pokémon Go launched. I believe we’re seeing an iPhone 6, plus two separate Samsung Galaxy phones in action.

In hindsight, three thoughts seem poignant:

  • The exploitation of Axis Infinity for cryptocurrency forms a coherent lineage with behaviors observed previously
  • I often underplay the pervasiveness of surveillance capitalism because I’m attuned to the failures in technical execution, rather than the behavior changes in physical space
  • The endurance of Pokémon Go lasted way longer than I remember it

I suspect I took this photo because I thought it was exotic. Perhaps I underestimated how consuming this game was?

Myopic Appliances: Computation for close reading

Computation in humanities academic research garners continued support as measured by grant funding. While computational humanities research methods spark detractors levying either claims of neoliberal contagion of universities and digital humanities’ complicity therein (see Allington, Brouillette, Golumbia here), or confirming known biases in literary canons (see Kirsh here), new research using computation continue apace, sometimes with countervailing results (see So and Roland’s Distant Reading and Race). In the past few years, an effort to reconcile the computation-heavy distant reading of the 21st century and the mid-20th century’s predominant mode of close reading appears as expressed with methodological arguments (see Gabi’s Computation as Context) and in practice (So again in Redlining Culture). Practitioners of distant reading and computational methods view skills and tools using information technology as another marker at their disposal when staking a claim. While Gabi believes that distant reading operates as context–like historical background–for close reading, the debate between close and distant techniques obscures a basic question: can computation enhance the practice of close reading?

To explore potential answers to this question, I’m proposing a project called Myoptic Appliances. Whereas Voyant Tools offers scholars a quantitative dump of graphs and tables about an inputted text, this project gives readers a visceral experience of close reading by providing potential alternatives to word choice and sentence sequencing. Mypotic Appliances would employ parts of speech tagging and sentence parsing to rearrange text(s). Perhaps tags and sentences from two texts could be intermingled to demonstrate the differences and similarities between two related texts.  A user of this application can initiate the types of text transformations through a web interface; playing with the text and playing it like a piece of improvisational/aleatoric music.

To control the scope of this end of semester timeline, I will select passages from Harriet Beecher Stowe’s Uncle Tom’s Cabin and a short story in Ivan Turgenev’s A Sportman’s Notebook. At the time of writing, I’m inclined to select the scene from Stowe’s work where Shelby decides to sell Tom and Henry, and the story“The Baliff” from Turgenev. Why select these two texts separated by continents, seas and cultures? Both works were 1852, and were instrumental in changing sentiment about unfree labor in their respective countries. The hope is that the similarity and differences in these texts might make an interesting prototype of how a web application like Myopic Appliances might operate in the future.

This project would generate questions in regards to three of Callios’ types of play. How do the transformations between texts evoke alea, where the parts of speech or sentences to be swapped aren’t completely in the player’s control? To what degree does the player mimic Brion Gysin’s cutup technique for composing sentences and paragraphs by using this application? Is there any sense of Ilinx in mixing and matching texts for the player? This project also builds upon Uncertain Curves and Outrageous Angles, a end of semester project I worked on with Brianna Caszatt for Doing Things with Novels in Fall 2022. I would be remiss if I neglect to acknowledge McGann and Samuel’s deformative criticism. Imaginably more surprising would be the influence of one of the few software engineering niches I’ve inhabited over my profession. Small-data engineering, in opposition to big data, asks how smaller datasets (only hundreds of TB vs. hundreds of PB), simpler datastores (data lakes vs. warehouses) and  one-shot pipelines (e.g. using DuckDB embedded in a script) can lead to effective insights about a company’s data with minimal infrastructure.

 

Procedural Rhetoric in Content Moderator Sim

When reading about procedural rhetoric and the game examples Bogast provides, Mark Sample’s Content Moderator Sim came to mind.

I first ran into Sample’s work during the heady days of pandemic influenced online courses during Kevin Ferguson’s Alternative Data Cultures class in the spring of 2023. With the COVID-19 panic still raging, an uniquely enjoyable part of this online course was that the authors of our readings often popped in 30 minutes at the beginning of the class to chat about their work. When Sample arrived to speak with us during our second session, my classmates pressed him on the particulars of the essay we read. Mark generally agreed with some of our critiques, but pointed us to his non-essay work as his current scholarly interest (this gesture became a hallmark of our guests in what was a fascinating and often screwball course that took equal inspiration from McGann and Samuels’ Deformance and Interpretation and Stephen Ramsey’s The Hermeneutics of Screwing Around; or What You Do with a Million Books). 

Sample describes Content Moderator Sim as a “workplace horror game.” This piece is hosted on Itch.io, a site often used to host budding or hobbyist game developers. The premise of this simulation imagines the interactor in the middle of a shift as an employee at a subcontracted company, ViralTitans, Inc., who moderates social media content. After initiating the experience, the user sees four main UI elements: 

  • A timer represented by a progress bar at the top of the screen,, showing the remaining time the user has to review the current case 
  • The current case, which often requires clicking links to get more specific context about it
  • After revealing all of the context about the current case, the options to Approve or Block the post
  • Occasionally if you take too long clicking through the content links,, a nagging manager in the form of instant messages and notification sound pings the user, imploring them that more posts equals more revenuing, and the more cases you review and approve, the better for VitalTitans
Content Moderator Sim's UI with managerial IM on display

Content Moderator Sim’s UI with managerial IM on display

The second to last post reviewed at the end of the shift is too horrible to even be described, and the user (UI) has a momentary breakdown, before a manager IM prods you back to the task and hand, though you’ve run out of time to moderate the post that disturbed you. At the end of your shift, the user receives a summary of their performance review from ViralTitans Inc. An option to see a secret score; or your “secret power” listing the social impact of your scoring.

ViralTitans Inc.’s Score

 

 

Your Secret Power Score

Your Secret Power Score

 

 

Reminiscent of the McDonald’s Game, Content Moderator Sim could be categorized as procedural rhetoric, as the argument is made through the processes followed and tradeoffs made by a content moderator as experienced by the user. Much like Molleindustria’s work. Sample’s piece lays bare the inevitable bind of the user caught up in a system of processes that result in (digital) capital accrual at best, but also social worsening regardless of the tradeoffs you make. While the company score reveals the economic output of your work, the secret score reveals that every decision made in the moderator’s position has the power to wreak social havok even while the moderator is extremely disempowered in their work experience. This simulation ultimately argues for dam(n)ing the medium of social media in some sense. Content moderation is frequently offered as a panacea to the damage caused by social media. In Sample’s piece, regardless of whether the user approves or blocks posts, they still abide by the destructive power of the processes unfurling upstream and downstream of their job.

Another Version of the Secret Score

Another Version of the Secret Score

While Bogost would acknowledge Sample’s work here as procedural rhetoric, I’m less certain of its description as a persuasive game. There is a distinct lack of Kittler’s “selective interaction,” particularly with the timing element and linearity of gameplay. The extreme constraints of someone working as a social media moderator is, in fact, a major point of this simulation. The intervention of the “player” in this “game” more closely resembles Balance of the Planet, an example Bogost uses to highlight abstract play in potentially persuasive games where the cause and effect of interaction is hard to decipher. Still, the vividness of the experience “playing” Content Moderator Sim recommends it as procedural rhetoric, enacting the power of computer supported processes by using those very same processes.

Unless you have objections based on the content warning, I recommend giving Content Moderator Sim a go. It takes a few minutes, is a little preachy at the end, may not exactly be a game, but is a good example of the unique power of procedural rhetoric when contrasted with other rhetorical types.

Gamification without joy or purpose

This past Saturday, I used a ride hailing app on my phone to get to Baltimore Penn Station. Having worked on an early on-demand ride app a decade ago, I struggle to pay close attention to the experience of using my phone to hail a vehicle. When you’ve had a varied career in software, you generally want to forget all of the specific details you’ve accrued by working in industries you never thought you’d know anything about. For any single purpose service software, the design patterns, user interfaces and workflow tend to converge on an ossified user experience bereft of delight. My experience of this for hire vehicle software is strictly utilitarian. The brain’s automation of drudgery is sometimes a blessing. This Saturday though, a notification from this particular transportation app puzzled me. I received an anniversary badge for six years using the service. I swiped the banner with this message quickly to the left. Remembering the blog assignment for class, and despite previously deciding to write Linkedin’s persistent gameful efforts, I investigated this badge further. 

First, I had to discover a way to recall the badge. Finding the badge again wasn’t straightforward for me. The “Notifications” option from the hamburger menu (eww) informed me that there were “no notifications yet.” Next, it occurred to me that playful elements like badges must be associated with the “Rewards” screen. As discussed in Walz and Detterding’s introduction to The Gameful World, advertising / rewards systems were early manifestations of gameful experiences. But the “Rewards” section of this transportation app only revealed stale discounts for the service I had ignored and affiliate links to related services like hotel reservations. After 30 seconds fiddling around in the settings, and perhaps owing to colorblindness, I noticed a “new” profile option, and navigated to this profile, where my badge lived along with an assortment of others.

The “Lyftiversary” badge depicts a lopsided, physics defying cake with a lit candle on it. Part of the icing, likely due to OS settings, is black. A message congratulating me for six years (cueing the confetti) with this service confusing me; the first trip in my history dates from 2014. 

My anniversary badge in all its glory.

My anniversary badge in all its glory.

There are two “locked” badges on my profile. One award, called “Helping Hand” is granted if I donate through the company’s charitable giving effort, which rounds up your trip fee to a whole dollar amount and donates the remainder to a charity. Receive the “Two-Wheeler” badge by reserving a Citi bike through the service. Inspecting the app thoroughly and conducting an internet search produced no evidence that these badges relate to any material benefit to me as a user of this service.

Reflecting on this experience and the reading we’ve done so far, I think it would be difficult to construe these badges as “playful” in Sicart’s sense. This element doesn’t “bring[] the benefits of play” to “[an] activity[] that is not play.” As Bogost decries gamification as “contorted [game design] techniques for producing compliance,” I could play this service better, but there’s little motivation to do it without any benefit to me beyond the elements of the game. There is certainly an emphasis on “emotional engagement” in the relationship I’ve had with this service in the celebration of our anniversary, a type of engagement we would shed from these soft-automated services in one of Sicart’s potential futures. Part of my skepticism in class about the efficacy of various digital mechanisms like gamification, geolocation-based advertising, and data pillaging comes from a doubt about the sophistication of these methods, and the broad applicability of techniques that find success for one or two companies for a duration of time. These mechanisms succeed in conjunction with other coincidental factors, in the Pokémon GO example, IP probably aided in it’s success as much as the game. In the case of my experience with this badge, the notification nagged me enough to zap me of my attention as a resource independent of any other techniques intended and poorly implemented.

The —, —-, — and — of Tristram Shandy

The team I worked with put together The Life and Opinions of Tristram Shandy, Gentleman game. I appreciated the approach we took to playing with the first book, which focused on a formal or even ahistorical dissembling of the text. The game elaborates the tropes employed by the narrator of the novel, in which interruption and digression often stunt plot advancement of the protagonist in favor of ancillary detail that reveals more about character, intellectual topics of the time, and reveal the idiosyncrasies of time as a matter of subjective experience. Thinking through how we could express the digressive narrative in a game took the entire team’s input into account. At the beginning of each session when we met, I had a slight dread that what we were talking about might not materialize into anything resembling a game. Each time though, our combined inputs helped push us into an articulable experience for someone on a screen. I gained respect for the advantages an engaged group of people could bring to a project like this.

I processed the text in ways that lend themselves to digital methods. I wrote scripts that used regular expressions to isolate only the dashes in the text, leveraged the Natural Language Toolkit/nltk to find punctuation in the text, and translated the first book of the novel to morse code from scratch. I also conducted a few experiments, for example morse code page that scrolls down, repeating the first book ad nauseam until you click on the text which reverts to the top of the translated text. There were a few Javascript functional tidbits I added to the site like storing a name for the dedication.

Isolating the dashes and confirming that they differ in length in the original text struck me as something I might gloss over in standard reading of the text. It’s well worth thinking through how and if the length of dashes add semantic meaning to the text.

All congratulations aside, I wish we had more time to make the experience somewhat more playful for the interactor. At minimum, I know we could make the existing interactions slightly more fun by animating how the text appears upon each expansion. In keeping with the narration of the novel, we could add more whimsy to the experience of navigating the steps to play. When I reflect on the end product and the experience of making it, it occurs to me that we end up playing more than visitors to the website possibly could, which gives me a slight twinge of disappointment, even allowing for time constraints and the necessity to produce something over a matter of hours.

Initial Theory of Play and Journey: Blog Post #1

While working my way through the readings assigned this week, I reflected on how the definitions of play and typography of games could apply to the video game Journey. Released in 2012, Journey dumbfounded and delighted critics and players by providing an experience without the trappings of most videogame play. Instead of combat or point scoring, you begin the game as a robed figure without arms moving towards the summit of a large mountain. The player can jump, interact with an element in space to progress stages, and, when finding particular items, fly for a limited duration. Although communicated wordlessly, there is a narrative or progression through the game, albeit driven by emotion communicated in character movement and the evolution of interactivity in each of the games environments from placid and playful in the early desert scene, to fast sand surfing, to detection avoidance and eventually failure in. Although not the same as playing the game and the fidelity is high, you can watch a playthrough here to get a sense of how this game is different from mainstream games of the era.

I find Huizinga’s concept of the magic circle enticing in understanding the demarcation of the play-ground as “isolated…within which special rules obtain.” The abstractness of the game world and mechanism within lends itself to the isolation from everyday world. Even though the narrative arc, one of struggle to reach a summit, succumbing to the difficulty (and the cold) towards the top of the mountain with a fade to black, only to emerge into more colorful environment rejuvenated and able to ascending the mountain with a fade to white effect and looping back to the start of the game may trace a vague Christian tautology or ideas of reincarnation, the game isn’t concrete enough to exhibit even inscribed political or social commentary. It’s unable to participate mimetically in many respects. 

Generating a ribbon to span the parts of a broken bridge

Journey also matches the idea of secrecy of Huizinga’s magic circle in an oblique way. During game play, other characters appear in the game, identical to your own. When meeting a figure, they tend to enhance your gameplay in various ways. In some cases they’ll increase the size of your scare which allows you to leap higher. In other situations, they may provide a decoy for the guardians that surveil a later level and deter your progress. They may unlock a part of the landscape’s puzzle to ease your way through. These identical looking characters appear unannounced with no explanation or apparent reason. Only at the end of the game, when the list of companions is displayed, are they revealed as fellow players, helping you along the way, while you in turn do the same. It may stretch credulity a bit, but I believe this collaborative aspect “the charm of play” as secret in a transitory player community Huizinga attributes to play’s magic circle.

A companion appears at the start of a bridge

I struggled to tick off the typological categories offered by Caillois. You don’t play against an opponent (agon or competition), you don’t profit as in a game of chance (alea), and I’m not sure this game is interesting role-playing (mimicry or simulation). I did find the the description of dervishes evocative of the motions and robe flowing in the game:

Dervishes seek ecstasy by whirling about with movements accelerating as the drumbeats become ever more precipitate. Panic and hypnosis are attained by the paroxysm of frenetic, contagious, and shared rotation

(Caillois, p 29)

The feeling of vertigo in Caillois’ sense might stand in for the ambiguity a player feels having a certainty of the destination without fulling understanding how they will reach it, like the dervishes, managing “their entire descent [from a tall mast] with head down and arms outstretched” in full confidence they’ll land safely.

Final gripe: Bogast often feels like he’s justifying his work by aligning play with wellness co-option, like meditation practices allowing you to be be more focus and productive. I don’t know that pleasure or fun get purchase here.