Serving Gossips: Difference between revisions

From XPUB & Lens-Based wiki
Line 62: Line 62:
* [https://en.wikipedia.org/wiki/Tmux Tmux on wikipedia]
* [https://en.wikipedia.org/wiki/Tmux Tmux on wikipedia]
* [[Tmux| Tmux on xpub wiki]]
* [[Tmux| Tmux on xpub wiki]]
* [https://sharingshells.diebin.at/english.html] great tmux zine by server collective diebin


[[File:Tmux-is-a-lot-like-merging-our-minds.png | 400px | thumb | right | ]]
[[File:Tmux-is-a-lot-like-merging-our-minds.png | 400px | thumb | right | ]]

Revision as of 17:37, 18 January 2026


Why do we do that in this SI ?

  • Tmux is a pedagogical tool, everyone can teach to each others things about the terminal, empowering each others! think about HowSpot, and inclusive pedagogy.
  • Tmux is a very gossipy tool, because we see what everyone type at the same time it is a way to interact with computers that include people subjectivity, mistakes, opinions, not trying to delimit the "official" from the "unofficial" the inputs.
  • it asks for all of you to invent social practices to be able to organize as a temporary group
  • by having a web and printed output with tmux2web2print, it shows we can produce experimental publishing that is collective, that capture it's process, doesn't filter, and use the server as a space.

afternoon timeline

hour session
14h00-14h30 🖐️ your first TMUX session
14h30-15h00 🗨️ presenting tmux2web2print, a tool made by Kaa
15h00-15h15 ⏳ small break
15h15-16h00 🖐️ collective TMUX pedagogy
16h00-16h15 🗨️ sharing how it went
16h15-17h00 🖐️ web2print zine of our session

what is SSH

From wikipedia, we learn that:

  • The Secure Shell Protocol (SSH Protocol) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
  • In 1995, Tatu Ylönen, a researcher at Helsinki University of Technology in Finland designed the first version of the protocol (now called SSH-1) prompted by a password-sniffing attack at his university network. The goal of SSH was to replace the earlier rlogin, TELNET, FTP and rsh protocols, which did not provide strong authentication nor guarantee confidentiality. He chose the port number 22 because it is between telnet (port 23) and ftp (port 21).
Remote-login-is-a-lot-like-astral-projection.png

What do we mean?

I am on my computer using its keyboard and its screen. But when I SSH, it's like i am on another (distant) computer, but using the interface (keyboard, screen) of my computer. We do that to interact with a server, without having to be in the same space or to plug a keyboard, or screen on it (maybe it's in a datacenter and I don't have access to it physically even...). I can use that computer, through my computer, using SSH.

Communal servers can be said to be like shared space, a colocation. In order to feel good in a colocation we need shared rules as much as shared agency. However if we connect at many on a server there isn't a chat room to share links or explain things to each others. For shared rules and shared agency, we resort to:

  • naming the folder/file in a way that convey a meaning, and standard naming practice, like what's hosted is it /var/www/ (balconny), and /home/ (our bedrooms) contain one folder per users with their 'home' directory. Things like this already induce that some spaces are more intimate and other more shared.
  • putting README.txt (like little note on the fridge) file in directory to invite people to read them as little manuals of what's happening there (using cat to dump the text, or nano to edit it).
  • read and write access can be given using chmod and chown (keys and lock we put on the doors) to give different rights to different users.

Communal "tilde" server, where everyone has a room in a big mansion type of vide:

what is TMUX

Tmux-is-a-lot-like-merging-our-minds.png

From wikipedia, we learn

  • tmux is an open-source terminal multiplexer for Unix-like operating systems. It allows multiple terminal sessions to be accessed simultaneously in a single window. It is useful for running more than one command-line program at the same time. It can also be used to detach processes from their controlling terminals, allowing remote sessions to remain active without being visible.
  • TMUX was first published as open-source code in 2007 by Nicholas Marriott.

What do we mean?

If SSH is astral projection TMUX is like we merge our souls and interact as one person with a (distant) computer over SSH. It is handful because communication over SSH relied on established protocol in files and filenaming, while inside of a TMUX session everyone sees what everyone type immediately, like if we merged our soul we all have the same POV. But then actually typing stuff is difficult because collaboration become "character granular", if we we both try to type echo we might end up with like echehocho or something...

Tmux allows you to

  • Run multiple terminal sessions/shells inside a single terminal window
  • Detach and reattach sessions without stopping programs
  • Split a terminal into multiple panes or windows -Share sessions with other users via sockets

a shell is the program the terminal starts for you. it provides the command-line interface that lets you write commands to an operating system.

a socket is a direct connection between two points. each connection point is updated automatically. it is a server running in the background. for Tmux, it means that one or two users are directly connected to terminal shells via ssh. it's what makes the connection between two astral projection.

a session is a workspace inside a socket. it's the mindspace in which we merged our souls.

While we use Tmux mainly for collaborating, many people use it for window management and structuring their shells over time.

your first TMUX session

(20min)

small exercice to write, one big session started by us.

  tmux -S /tmp/(socket) new -s (session)

within session:

  chmod 777 -S /tmp/(socket)
  tmux server-access -a (username)

for the students after getting access, attach:

  tmux -S /tmp/(socket) attach -t (session)


we show 2 things:

  • kaa show a command
  • doriane show a command
  • we asked if a student want to show a command.

tmux2web2print: serving gossips

(20min)

What are the server gossiping about?

  • teletype and RTTY, telex machine, the first "terminal" print recipe instead of having a screen
  • feminist server, documentation is hard, can we have documentation generated on the go, with all the organic chaos that comes from it as part of the pedagogy
  • tmux hook activating using bash script
  • HTML/CSS are generated immediatly on the served folder to acces it online
  • we can print them using ctrl+p !

The zine capture everything that you type. even if you remove it, it will still be there! if you write to a file and cat it however, it will be a surprise. you have to find ways to document those commands that worked if you typed and removed a lot, maybe by repeating them or using echo

quick starting guide

  ├── README.md
  ├── scripts
  │   ├── append-content.sh
  │   ├── create-session.sh
  │   ├── handle-event.sh
  │   └── handle-log.sh
  ├── template
  │   ├── index.html
  │   └── style.css
  ├── tmux
  │   └── tmux.conf
  └── tmux-cheat-sheet.md


this the code this repository [2] will contains a tmux configuration that

  • for every session creates a html website
  • logs events (creating, attaching, detaching from the session) to the website
  • logs everything you write in that session and the output to the website
  • contains minimal styling to print the logs into a zine

install dependencies

If tmux is not installed yet

   apt install tmux

Tmux gives us very raw output. This includes ANSI terminal escape codes for colors, cursor movements etc. We need a parser for that: [3] (if we don't want to write our own) Run: apt install ansifilter


clone repository

   git clone https://codeberg.org/czkaa/tmux2web2print.git
   cd tmux2web2print

set paths and permission

  chmod +x scripts/*.sh

so that tmux hooks can execute scripts

set the location for the generated website files

  echo "SITES_DIR=/path/to/folder" > scripts/.env

styling and printing the fanzine

...

tmux cheatsheet

...

merged soul pedagogy

by group of max 4 persons.

1. you start a tmux session together.

  (put back the command to do so)

2. once we made sure that the setup is working for everyone. you have to first select at least 3 command that some people of the group don't know about and at least one person know about. 3. the groups split in space. 4. then teach them to each others by showing how they work inside of a tmux session. warning 30min goes fast, try to not spend more than 10min on a command.

moving around

  • cd
  • ls

displaying stuff

  • echo
  • cat
  • tree
  • figlet

grabbing stuff

  • grep
  • history

changing authority

  • chmod
  • chown

network

  • ifconfig
  • ping
  • traceroute
  • curl

yours!!!

  • ...

zine printing and CSS!