Workshop taught by Melanie Hoff, co-organized by the School for Poetic Computation and Detroit Community Technology Project. Zine by Neta Bomani and Taeyoon Choi
This workshop assumes no coding experience and simultaneously takes the position that everyone who interacts with computers in some way is already a programmer.
Coding can be a holistic computer practice, a new relationship you have with your computer & your computers habits - from the way you name your files or organize your folders, to completely changing how you perform routine tasks on your computer, such as moving a file.
- Introductions
- What is the story of your folder name?
- Intentions
- Longer Introductions
- History of SFPC
- Reintroduction to computers & computing
- Folder/file systems
- Handy shortcuts
- Sentence activity
- House folder activity
- Bash
- For loops
- Bash profile
- Folder Poetry Club
Word | Definition |
---|---|
folder | (also referred to as directory) is an organizational regime imposed on your computer used to store and organize files and other folders |
file | is an object on a computer which stores data, information, settings, or commands to be used with various computer programs |
file types/formats/extensions | indicate how data has been stored and how to read or open files in specific programs. for example, .txt files open in a text editor, .jpg files open in an image viewer/editor. full list of file formats and extensions here |
file path | tells you the location of a file in a system. for example users/username/desktop/folder_poetry_club |
terminal | is a way to get text based access to your operating system |
terminal commands | give you the ability to control your computer using command prompts. for example, terminal commands on mac computers are written in a language called bash |
bash | is the programming language we use in the terminal, often one line at a time, but we can also put bash code in a file and run that file |
- Naming files and folders
- All lowercase
- No spaces, under scores and dashes are ok (for example,
my_folder
ormy-folder
)
- File types
.txt
,.html
,.css
,.js
- Mind your file path
/../../../../../
Keyboard Shortcuts for Mac | Description |
---|---|
cmd + Tab | Switch between applications |
Cmd + Spacebar | Spotlight search |
Cmd + S | Save file |
Cmd + Shift + N | New Folder |
Cmd + Ctl + Spacebar | Emoji Keyboard |
What is terminal?
Terminal is a way to get root level, text based access to your operating system.
How do you access it?
- Type
command + spacebar
to open search - Type 'terminal' into the search field to open the application
What is bash?
Bash is the programming language that we use in the terminal, often one line at a time, but we can also put bash code in a file and run that file.
Command | Description | Verb |
---|---|---|
cd |
change directory | move |
cd .. |
change directory one level back | return |
ls |
list contents of directory | look |
pwd |
parent working directory | where |
open . |
open folder with finder | open |
open filename.txt |
opens file in Text Edit | open |
cat |
print contents | |
touch filename.txt |
create a file named filename.txt | create |
mkdir foldername/ |
create a folder named filename.txt | create |
rm filename.txt |
remove file | remove |
rm foldername/ |
remove folder | remove |
cp filename.txt filename2.txt |
copy file . | copy |
say "hello, what is poetic computation" |
say words out loud | speak |
man cd |
show the manual for 'cd'. Press q to quit | define |
Command | Description | Verb |
---|---|---|
Up + Down Arrow keys | scroll through history | scroll |
Tab Key | autocomplete | complete |
Code | Description |
---|---|
open ~/.bash_profile |
opens your bash profile in a text editor |
source ~/.bash_profile |
reloads your bash profile (for after making changes) |
export PS1="🌸 \h ✸ \w ⇢ " |
to change your bash prompt |
for i in {1..2000}; do printf ' ♡ 📂 → ➩ ➪ ➫ ➬ ➭ ➮ '; done; |
to make an emoji for loop |
bash myfile.sh |
to run a bash file |
curl sfpc.io |
prints the html of a website |
An alias (shortcut) to put in your .bash_profile for viewing folder tree structure:
alias tree="find . -print | sed -e 's;[^/]*/;|;g;s;|; |;g'"
An alias to put in your .bash_profile to automatically run an emoji for loop:
alias folderpoetry="for i in {1..2000}; do printf ' ♡ 📂 → ➩ ➪ ➫ ➬ ➭ ➮ '; done;"
Download the house folder and put it in your computer's home folder. Your home folder or directory on a mac is represented by a house icon 🏠 in finder and by the ~
symbol in terminal. This folder is located near the root of your computer's entire system. Explore the house.
The house as an example folder structure poem because using the command line and computing in general is a relational practice. You are never using the command line from a “global” perspective. When you issue commands from the command line, you are doing so, from a particular position within the hierarchy of your computer’s file system.
Similarly, when we are inside a house, we are never simultaneously in the kitchen and the bedroom. If we tried to “get into bed” while in the kitchen, we would not be able to. However if we wanted to wash dishes while standing in the kitchen, we would be able to.
From the command line, if we have navigated to the Desktop folder but try to perform an action on a file that’s inside your home directory, this would not work. You would have to navigate to the home folder by navigating your file path.
- After exploring the house together, consider what other narratives you would like to explore with folder structures. Using the worksheet template or a blank piece of paper in the zine, take a few minutes to come up with some ideas that are meaningful or interesting to you. For example, a folder of one's own and my fears.
- Share with a partner
- Using terminal alone, create the folders and files that make up your folder poem
- Your files can be
.txt
,.html
, or.sh
- The contents of your files can be words, ideas, thoughts, feelings, emojis, or bash scripts
- To include emoji icons in your poems, the file must be a
.html
file with the following line included at the top:<meta charset="utf-8" />
- Your files can be
- Upload your folder to: Folder Poetry Club 📂
- Soon, you should see your folder poem live on folderpoetry.club
- Curriculum design and workshop by Melanie Hoff
- Zine design, illustrations and workshop support by Neta Bomani
- Illustrations and workshop support by Taeyoon Choi
- Workshop support by Lauren Gardner
- Space and materials provided by the Detroit Community Technology Project