changed 2 years ago
Linked with GitHub



Winnie Soon (they/them) + Mara Karayanni (they/them) (6 March 2023)

a joint Sussex Humanities Lab & Full Stack Feminism workshop


Overview/Intro

  • 10:30 - 12:00 (hybrid talk)
  • 13:15 - 16:00 (hands-on workshop)

Subject position

  • Mara: System admin (server maintainence) role (e.g systerserver) & software developer
  • Winnie: Digital literacy (coding otherwise) > how can we better understand our computer systems
  • both:
    • language + code aesthetics of the terminal (CLI) -> constraints and challenges vs GUI
    • Queer feminist pespective in technology
    • technology x art & culture x politics

Why Bash?

Bash is a command line interface and a scripting language developed in 1989 as a piece of free software originally for the GNU System (GNU is not UNIX) and it is the default shell for Linux. Shell interface are also in Mac OS and Windows)

  • for system administration, file management, generating reports and automating tasks.

Anyone have experience with Bash?
Do you like bash? and why?
what are the functions/syntax you use most?


Bash?


Computational Culture - Bash

  • mundane in corporate culture: automating tasks
  • ubiquitous: server, system, administrative, and security maintainence
    • file management, generating reports, data processing and automating tasks/labours (e.g cron jobs, logging).
    • Concurrency

Computational Culture - Bash

interesting object of study (technical and research object) in the area of computational culture

  • gender issues around bash <-> free and open source culture <-> tech environments
  • critique of big tech environments (esp. Dashboard by Amazon and the change of labour practices in the tech landscape)
  • CLI vs GUI (relate to digital literacy)
  • Creative works around it (e.g art & design)

Bash; background && philosophy

bash shell developed by the Bell Labs for the Unix OS, end 70s

Unix became popular due its modularity and exportability:

less functionality in kernel.
move functions to user libraries



Unix was not free distribution like Linux.
AT&T the telephone monopoly in US until 1982
Once monopoly was broken
they licensed and monetized Unix in 1982.


  • Ritchie & Thomson succeded to run Unix on a cast-off machine, the PDP7.
  • It was programmed in machine language, transferd with binary paper tape and loaded on PDP7

Supercomputer in the 1970s

Computer wiring

Cray hired women for this task – ones selected for their patience and precision

https://designblog.nzeldes.com/2009/01/the-opposite-of-human-engineering/


Lorinda Cherry

Her work focused on graphics, word processing, and language design. Some of her earliest work at the Computing Science Research at Bell consisted of configuring systems to run an early version of Unix written in assembly language.

Video demostration of shell


The Forgotten history of early Unix


Unix philosophy: pipes, redirection

Expect the output of every program to become the input to another.
Design and build software, even operating systems, to be tried early, ideally within weeks. Don’t hesitate to throw away the clumsy parts and rebuild them.
Doug McIlroy in The Art of Unix 2003, p. 34


Critique of computational culture - system admin tasks: big tech normalisation

Cloud computing & economies of scales: AWS or Google Compute Engine

  • Oligopoly
  • Condition how we access, know, organise, systems administration works
  • Smooth/Seamless dashboard interfaces (APIs behind)
  • profit-orientation: expansionist - extractivist
  • Automation vs care for maintenance, resources, environments and people

  • Abstraction of file system, enforced terminology different to the wider servers ecosystem. e.g elastic IPs, security groups that do not apply outside a specific corporate toolbox, and thus not interoperability

Critique of community aspect of Unix/FLOSS

lack of peer review practices
In the late 1980s, Ramey took over from Brian Fox as the lead developer of Bash, and in 2014, he received an email about a serious security hole.

Within hours, hackers had released code that could take over vulnerable machines and turn them into a malicious botnet.

[T]here's a lot of code that doesn't actually get very many eyes at all," he says. "And a lot of open-source projects don't actually have all that many developers involved, even when they are fairly core.

The Internet Is Broken, and Shellshock Is Just the Start of Our Woes, Wired


Critique of community & gender aspects of Unix/FLOSS

Gettext decision making and gender bias

In this manual, we use he when speaking of the
programmer or maintainer, she when speaking of the translator

a patch that was submitted by a contributor in the GNU community was not accepted by the code maintener

  1. In a specific document or documentation, do we
    want gender-neutral speak?
  2. If we want gender-neutral speak, what is the
    English grammar element that works best?
    Here, it's futile to discuss the second question, since
    the answer to the first question is already "no".

Bruno Haible skreiv, 2020

email thread on the GNU lists

Critique of bash - unix - gender

Byte magazine 1977
(The magazine - a micocomputer magazine around hobbyists discussed ideas, sought help, shared opinions, and planned club events about computing technology. -1975-1988 / USA)


Critique of bash - unix - gender


The Origin of Unix, 2019 conference 50yrs of Unix

  • early development of Bash: monoculture (Richard Stallman hired Brian Fox in the mid 80s, Chet Ramey)
  • on-going cis-male in system admin roles, FLOSS and tech in general

Interview question for the coming manual:

What do you think is the most significant disparity in the sysadmin/programmer/coder role (gender, age, ethnicity, class) and why? Do you see this gap growing or being alleviated/fixed?


Interview

Mariana Marangoni

This field [system admin] is still a very hostile environment for anyone who isn’t a white middle-class cisgender man, and it’s not enough to advocate for gender equality only – as socio-economical background, transphobia, and ethnicity are also big factors in determining who feels welcomed in sys-admin (and similar) roles. There is also the case of how the technology industry sees Asian men as more suited to these roles, profiling and generalizing them in another form of racism. In recent years, there has been much more conversation around the issue, and many companies and organizations are trying to address the disparity – not always in the most successful of ways, as just hiring people to ‘diversify’ the team without any cultural and systemic changes ends up only making these professionals frustrated, detached, and burnt out.


Interview

Kat

From what I see the industry is still mostly white cis hetero men. Keeping up with changes in tools can be difficult and stressful, so I think this pushes people out. A side effect of this is that mistakes get repeated by a new generation.


Queering Bash


Depart from Queer OS

Queer OS (Kara Keeling 2014) - a scholarly political project

Queer OS would take historical, sociocultural, conceptual phenomena that currently shape our realities in deep and profound ways, such as race, gender, class, citizenship, and ability, to be mutually constitutive with sexuality and with media and information technologies, thereby making it impossible to think any of them in isolation. It understands queer as naming an orientation toward various and shifting aspects of existing reality and the social norms they govern (p. 153)

It insists upon forging and facilitating uncommon, irrational, imaginative, and/or unpredictable relationships between and among what currently are perceptible as living beings and the environment in the interest of creating value(s) that facilitate just relations. (p. 154)


Creative Works


Creative works: Bash

nervousdata (Jasmin Meerhoff)

https://www.nervousdata.com/raspel.html


https://www.nervousdata.com/wiese/swingcut.html


Creative works: Bash

golubjevaite


https://git.systerserver.net/00ff00/atxt_cmd/-/tree/main/week4


Creative works: Bash - code poetry

Queering Code (Winnie Soon, 2022) & Forkonomy (Winnie Soon & Tzu-Tung Lee, 2020-2022)


Creative works: Bash (Christoph Haag)


Creative works: Bash

Fuck censorship by Mark Sta Ana - booyaa

https://github.com/booyaa/fuckcensorship
bannedbookcensored


Activity 1: demo

a list of commands (commonly used)

cd, ls .

vim/nano

cat

man -> terminal based manuals

cp / mv / rm / mkdir

curl / wget

tail / less / more -> reading logs


8th Mar - call for a Counter Cloud Action Day | international activities | https://systerserver.net/8m


Part 2: workshop

intro


Activity 2: Coding basics - running Bash

  1. Open your terminal
  2. Type mkdir queerbash (make a directory called queerbash)
  3. Type ls (list: can you see the queerbash directory?)
  4. Type cd queerbash (so you are now at the bash directory)
  5. Type nano kissing.sh (editing mode)
  6. Copy and paste the script below (use mouse click copy and paste, but not shortcuts)
  7. Press control+X
  8. Type Y and then press Enter
  9. Type ls (list the file in the directory)
  10. Type bash kissing.sh (to run the bash script)
queer=love kisses=(dear sweetheart darling baby love monkey) read -p "Enter your lover's name : " dear for kiss in "${kisses[@]}"; do if [ "$kiss" = "$queer" ] ; then echo kiss you $kiss, $dear else echo :* :* $kiss, $dear fi done

Activity 2: Coding basics

Concept e.g what
Variable queer=love some kind of storage that hold values in a string format
Array kisses=(dear sweetheart) a list of data that hold various values in a string format
Read input read -p "Enter your lover' name : " dear allow users to input and extract the input data for usage
for loop for kiss in "${kisses[@]}"; done iteration to run through a list of data - array
conditional statement if [ "$kiss" == "$queer" ] ; then else fi set condition to go for different path
syntax: echo echo ":* :* $kiss, $dear"; display msg/text on screen

Activity 2: missing.sh

Try to follow previous steps, copy the code below, save the file and run the bash script:

  1. Type nano missing.sh (editing mode)
  2. Copy and paste the script below (use mouse click copy and paste, but not shortcuts)
  3. Press control+X
  4. Type Y and then press Enter
  5. Type ls (list the file in the directory)
  6. Type bash missing.sh (to run the bash script)
while $love how="so" do so+="${how} " # so = so + ${how} echo I miss you $so much sleep 0.2 done

Basic operators

Operator, Purpose, For DataType
=, Equal to operation, string
==, Equal to operation, string
!=, is not equal to, string
<, is less than in ASCII alphabetical order, string
>, is greater than in ASCII alphabetical order, string
-z, if a string is empty (or null), string
-n, if a string is not empty (or not null), string
-eq, is equal to, number
-ne, is not equal to, number
-lt, is less than, number
-le, is less than or equal to, number
-gt, is greater than, number
-ge, is greater than or equal to, number

Activity 3

awk for creating visual poetry

Run the code:

  1. Copy and paste the script below in the terminal, then press Enter

bash kissing.sh | awk '$1 ~ /kiss/ { print $3 "\t" $2 "\t" $4 }' | sed 's/,/ /g'

bash kissing.sh lover
$0 = kissing.sh
$1 = lover

Activity 4: Queer Computing

  • Can a machine feels love? Can a computer falls in love?
  • What do you want to say about love?

Love Letter Generator (1952), original by Christopher Strachey, and remade by Nick Montfort


Activity 4: Queer Computing: Love Letter Generator

  • Christopher Strachey (1916), a mathematician and computer scientist
  • ran on the Manchester Mark I - using a random number generating algoritm
  • letters of love and adoration addressed to an unnamed, genderless other, signed only with the initials M.U.C. (M.U.C stood for Manchester University Computer)
  • the dialogue structure is important in setting up an exchange between “Me” (the program writer) and “You” (human reader), so you feel personally addressed.
  • syntactic skeleton: "You are my — Adjective — Substantive,” and “My — [Adjective] — Substantive — [Adverb] — Verb — Your — [Adjective] — Substantive"
  • some words are fixed and some are optional
  • the program selects from a list of options — adjectives, adverbs, and verbs — and loops are configured to avoid repetition.
  • generate over 318 billion variations.

ref: A Queer History of Computing by Jacob Gaboury (2013); Wardrip-Fruin, N. (2011). 14. Digital Media Archaeology: Interpreting Computational Processes. In Media Archaeology (pp. 302-322). University of California Press.


Activity 4: Your Queer Love letters in pairs/groups (1/2 hr)

How would you generate your Queer Love Letter? How would you express (queer) love via computation?
  1. modifying existing scripts e.g replacing words, variable names
  2. go through the commands, and see any interesting one that you want to use
  3. look at: kissing.sh / missing.sh
queer=love kisses=(dear sweetheart darling baby love monkey) read -p "Enter your lover's name : " dear for kiss in "${kisses[@]}"; do if [ "$kiss" = "$queer" ] ; then echo kiss you $kiss, $dear else echo :* :* $kiss, $dear fi done
while $love how="so" do so+="${how} " echo I miss you $so much sleep 0.2 done

Activity 5: Sharing

Select a repo