24.03.2023
Installed bpytop to look at the temperature of rosa
Cut one of the fans that was making a lot of noise
Temperature today with one fan: 35 degrees
28 October 2022
At Constant, Rue du Fort with Mara, Wendy, and Michael
6 October 2022
trying to fix etherpump!
- $ cd /srv/etherpump/
- $ sudo service etherpump status
error while running sh cron.sh
- Traceback (most recent call last):
- File "/srv/etherpump/venv/bin/etherpump", line 8, in <module>
- sys.exit(main())
- File "/srv/etherpump/venv/lib/python3.9/site-packages/etherpump/__init__.py", line 93, in main
- cmdmod.main(args)
- File "/srv/etherpump/venv/lib/python3.9/site-packages/etherpump/commands/pull.py", line 585, in main
- trio.run(handle_pads, args)
- File "/srv/etherpump/venv/lib/python3.9/site-packages/trio/_core/_run.py", line 1928, in run
- raise runner.main_task_outcome.error
- File "/srv/etherpump/venv/lib/python3.9/site-packages/etherpump/commands/pull.py", line 567, in handle_
- nursery.start_soon(
- File "/srv/etherpump/venv/lib/python3.9/site-packages/trio/_core/_run.py", line 815, in __aexit__
- raise combined_error_from_nursery
- File "/srv/etherpump/venv/lib/python3.9/site-packages/etherpump/commands/pull.py", line 223, in handle_
- meta.update(json.loads(contents))
- File "/usr/lib/python3.9/json/__init__.py", line 346, in loads
- return _default_decoder.decode(s)
- File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
- obj, end = self.raw_decode(s, idx=_w(s, 0).end())
- File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode
- raise JSONDecodeError("Expecting value", s, err.value) from None
- json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
We renamed the folder /srv/etherpump/pads/ to /srv/etherpump/pads.bak/, to force etherpump to download all the pads again.
This made the error go away.
We ran the etherpump cron.sh script again, and it did work now!
So for next time: removing the "pads" folder is a work around for this error.
With one error though...
- ...
- [x] chapter-soft-structure (saved, magic words: __PUBLISH__)
- Failed to download https://hub.vvvvvvaria.org/rosa/pad/api/1.2.9/getHTML?apikey=1e2f010c05add6041059c0b380b3cbc3c32566faffc1a8ae0db2878994490bbc&padID=agreement&startRev=0, saw
- Traceback (most recent call last):
- File "/srv/etherpump/venv/bin/etherpump", line 8, in <module>
- sys.exit(main())
- File "/srv/etherpump/venv/lib/python3.9/site-packages/etherpump/__init__.py", line 93, in main
- cmdmod.main(args)
- File "/srv/etherpump/venv/lib/python3.9/site-packages/etherpump/commands/pull.py", line 585, in main
- trio.run(handle_pads, args)
- File "/srv/etherpump/venv/lib/python3.9/site-packages/trio/_core/_run.py", line 1928, in run
- raise runner.main_task_outcome.error
- File "/srv/etherpump/venv/lib/python3.9/site-packages/etherpump/commands/pull.py", line 567, in handle_pads
- nursery.start_soon(
- File "/srv/etherpump/venv/lib/python3.9/site-packages/trio/_core/_run.py", line 815, in __aexit__
- raise combined_error_from_nursery
- File "/srv/etherpump/venv/lib/python3.9/site-packages/etherpump/commands/pull.py", line 493, in handle_pad
- async with await trio.open_file(ver["path"], "w") as f:
- KeyError: 'path'
- Building the etherpump index...
- current meta.json pad: pads/FHM_Athens_DAY1_Publishing.meta.json
- ...
We think it is because the Etherpad API is overloaded with the amount of requests that are being made to the API.
Things that are using the Etherpad API: etherpump, foldbot.
The index works again though!
We also checked how often etherpump is running in the crontab:
- $ sudo su friend
- $ crontab -e
- */5 * * * * cd /srv/etherpump && sh cron.sh > cron.log 2>&1
- */5 * * * * cd /srv/distribusi && sh cron.sh > cron.log 2>&1
- # */45 * * * * cat /home/friend/broadcast.txt | wall
Etherpump is running every 5 minutes, which is maybe a bit too much.
We changed the timing of both etherpump and distribusi to run every 60 minutes.
During events we can change this timing if needed.
We also check how often the foldbot is running.
- $ cd /srv/folds/
- $ nano folding.py
At the bottom, there is a sleep(60), which means it runs every 60 seconds.
We changed it to 3600, meaning it will run every hour from now on.
1 October 2022
etherpump is not working (already since Feminist Hack Meetings)
10th June 2022
we couldn't get rosa to speak but if it could (we could!),
-- sound card not working out of the box
-- wy installed ? alsa-...
-- sound interface ?
become root
$ sudo su
$ cat /proc/asound/cards
0 [ALSA ]: bcm2835_alsa - bcm2835 ALSA
bcm2835 ALSA
1 [vc4hdmi0 ]: vc4-hdmi - vc4-hdmi-0
vc4-hdmi-0
2 [vc4hdmi1 ]: vc4-hdmi - vc4-hdmi-1
vc4-hdmi-1
List the audio devices. You will see the internal audio device ( audio card for mini Jack + hdmi)
$ aplay -L
// from then list of audio cards after you run then aply command, we chose plughw:CARD=ALSA,DEV=0 --> you have to include aplay -D plughw:CARD=ALSA,DEV=0 in a pipe to have sound on rosa in the current set-up
$ espeak 192.168.1.1 --stdout | aplay // this probaly does not work
An example to read out loud the syslog
$ sudo cat /var/log/syslog | espeak --stdout | aplay -D plughw:CARD=ALSA,DEV=0
If you want to add your personal user to the audio group (so you don't have to be root to play)
$ sudo adduser <username> audio
To make it work login and logout!!
$ espeak 192.168.1.121 --stdout | aplay -D plughw:CARD=ALSA,DEV=0
$ cat /var/log/syslog | espeak --stdout | aplay -D plughw:CARD=ALSA,DEV=0
//Rosa reading a log
Espeak can have different ways of talking .e.
$ espeak --stdout -ven+f3 "we are the borg" | aplay -D plughw:CARD=ALSA,DEV=0
// so called female voice
$ espeak --stdout -vfr+f2 -g50 -p99 "Rosa @ 192.168.1.122" | aplay -D plughw:CARD=ALSA,DEV=0
// in French, femal voice 2, slowed down with gaps between words -p higher pitch
http://espeak.sourceforge.net/languages.html
espeak --voices=variant
gender <gender> [<age>]
This attribute is only a label for use in voice selection. It doesn't change the sound of the voice. <gender> may be male, female, or unknown.
- <age> is optional and gives an age in years.
there was this script below that would figure out
if there is an ip address, then the idea was to speak it out
so as to help this moment of local discovery
#!/bin/bash
while :
do
ip=$(hostname -I | awk '{print $1}')
if [ -z "$ip" ]
then
echo "we are not ip"
else
echo "we are ip: $ip"
fi
sleep 2
done
Let's try to do a choral - and all play at the same time the script
sh /home/decentral1se/ipspeak
if you wanna run a choir but you're alone, use parallel:
parallel sh ::: ipspeak ipwhisper
chatting locally
sudo apt install inspircd weechat
anyone can type weechat
/server add localhost 127.0.0.1 (only one time)
/connect localhost
/join #thecafe
then you can chat wit whoever is in
/quit to leave
how to send a mail to other people
mail -t
ls /home to see the usernames
ctrl-d on an empty line to finish the email
where to customise the messages that the etherpad shows
/srv/etherpad-lite/src/locales/...
for instance, if you want to change the messages in english:
sudo nano en.json
change the messages that are written in between the ""
friend@rosa:/srv/etherpad-lite/src$ grep -iR "WHAT IS TIME"
. ./templates/pad.html: WHAT IS TIME....
./locales/en.json: "pad.loading": "WHAT IS TIME",
./locales/en-gb.json: "pad.loading": "WHAT IS TIME...",
Custom 404 and 50x pages
Changed the 404 and 50x pages by adding custom_404.html and custom_50x.html here: /usr/share/nginx/html/
This is added to the nginx config file which is here = /etc/nginx/sites-enabled/default
error_page 404 /custom_404.html;
location = /custom_404.html {
- root /usr/share/nginx/html;
internal;
}
error_page 500 502 503 504 /custom_50x.html;
location = /custom_50x.html {
- root /usr/share/nginx/html;
internal;
}
Only later realised that there was also a custom 404 already in /var/www/htnl for instance unavailable.html and lol.html
Tested if the config file parses correctly with: sudo nginx -t
Restarted nginx: sudo service nginx reload
Installed:
alsa, oss, pulseaudio
LOGGING INTO ROSA
To log into Rosa, there are two ways, a simple one and a more complex one. The simple one gives you access to the Rosa server while you are on the same network (so only when you are in Varia or in the next physical location of Rosa), and the more complex one gives you access on any network you find yourself on.
The simple version:
What is ssh
> https://project.xpub.nl/img/xpub_logo_2020.svg
SSH is a command that gives you access to another computer from the terminal.
Open your terminal and run:
$ ssh friend@<LOCAL IP ADDRESS OF ROSA>
Ask the key holders at the table for the password.
To find out the ip, someone who is logged in runs:
$ sudo ifconfig
In esc: 192.168.123.121
To scan the local network
sudo arp-scan --interface=<name of network device where Rosa is one> --localnet
For the moment Rosa is an unknown device
The more complex version:
you will first need to either have to generate an rsa key.
To do this, run:
$ ssh-keygen (only if you don't hava an rsa key already, or if you want to make a new rsa key) - skip the filename
$ cd ~/.ssh/
$ cat ~/.ssh/id_rsa.pub
Copy the output and ask one of the key holders at the table to add your public rsa key to the Varia server.
email the key to alice.strt@gmail.com
Edit the following file ~/.ssh/config using nano to include:
$ nano ~/.ssh/config
host varia_hub
Hostname vvvvvvaria.org
User jump
Port 12345
ForwardAgent yes
IdentityFile ~/.ssh/id_rsa
host rosa
Hostname 10.5.1.2
User friend
Port 22
ForwardAgent yes
ProxyJump varia_hub
N.B. that the key path/name should be made specific to your own situation
With the above config you can now do run the following command:
$ ssh rosa
Changing the maximum upload size for the Tiny File Manager on Rosa:
Filesize limit is 1mb! Make sure your images are smaller.
ERROR / 413 error Request entity too large ...
we edited the max upload value in /var/www/html/files.php
we tried to change the file /etc/php/7.4/fpm/php.ini
- and then we restarted php
- /etc/php/7.4/fpm
what was missing:
edit /etc/nginx/nginx.conf:
$ sudo nano /etc/nginx/nginx.conf
to include: "client_max_body_size 100M;" in the html section
NOW IT WORKS!!!!
login welcome messages
change messages:
randomized welcome message/ Message Of The Day (MOTD)
$ sudo nano /etc/update-motd.d/00-welcome
message when ssh
$ nano ~/.bashrc
message when you access rpi with a monitor:
$ sudo nano /etc/issue
May 25th
Tried again to fix the file manager, followed the commands documented by ccl and Sergiu:
IT WORKS!
- sudo chmod +rwx /var/www/html/files.php
- sudo service nginx reload
- sudo service php7.4-fpm restart
April 14
To update the distribusi folders (which visualises the files on the server which you can see on the bottom of the main rosa site), go to /srv/distribusi/distribusi-go and run
- sudo ./distribusi -p /var/www/html/chapters/
Backup exploration
Systerserver uses borg and backs up
/etc
/root
/opt
/var
We could do similar and add
/home
ezn and ccl are adapting the systerserver borg configs for rosa:
https://git.bleu255.com/stagit/file/scripts/README.html
========================== install Borg
-- Borg needs to be installed on both servers
sudo apt install borgbackup
========================== create borguser
-- create a borguser user && group as root
useradd borguser
-- add borguser to sudoers
usermod -aG sudo borguser
-- to have run.sh script owned by borguser [user and group]
chown borguser:borguser /etc/backups/run.sh
-- to make sure borguser can execute a borg create command in run.sh script without needing a password we created a borguser file in sudoers.d directory
touch /etc/sudoers.d/borguser
vi /etc/sudoers.d/borguser
borguser ALL=(ALL) NOPASSWD: /bin/bash /etc/backups/run.sh
chmod 0440 /etc/sudoers.d/borguser
-- for a borguser to have access to a remote backup server create an ssh key pair and copy a public key contents to ~/.ssh/authorized_keys file on a remote server
ssh-keygen
========================== initiate Borg repo
-- we can initiate borg repo on leverburns either locally or remotely from adele. we chose the latter
borg init --encryption=repokey ssh://ccl@<remote_IP>:portnumber/home/ccl/rosabackup
========================== automate Borg backups
-- we've made a backups dir in etc on adele. created a backup script run.sh inside the backups dir.
mkdir /etc/backups
we modified the following run.sh script
#!/bin/bash -ue
sleep 5
set -e
PASSWORD_FILE=/etc/backups/.borgpwd
#
# Script configuration
#
# This is the location of the Borg repository
TARGET=ssh://ccl@<remote_IP>:portnumber/home/ccl/rosabackup
# Archive name schema
DATE=$(date --iso-8601)-$(hostname)
#
# Create backups
#
BORG_BASE_DIR="/etc/backups"
#BORG_CACHE_DIR="/.cache/borg"
BORG_FILES_CACHE_TTL=60
# Options for borg create
#BORG_OPTS="--stats --progress --compression lz4 --checkpoint-interval 86400"
BORG_OPTS="--stats --progress --compression lz4 --checkpoint-interval 300 --remote-ratelimit 8000"
# Options for borg create
BORG_OPTS="--stats --progress --compression lz4 --checkpoint-interval 86400"
# Set BORG_PASSPHRASE or BORG_PASSCOMMAND somewhere around here, using export,
# if encryption is used.
export BORG_PASSPHRASE=$(cat $PASSWORD_FILE)
# No one can answer if Borg asks these questions, it is better to just fail quickly
# instead of hanging.
export BORG_RELOCATED_REPO_ACCESS_IS_OK=no
export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=no
# Log Borg version
borg --version
echo "Starting backup for $DATE"
# This is just an example, change it however you see fit
borg create $BORG_OPTS $TARGET::$DATE-$$ /home/ /etc/ /root/ /var/
-- to make run.sh executable:
chmod +x run.sh
-- to automate the backups, we created a timer and service files with the same name in /lib/systemd/system/ directory
touch automatic-backup.service
touch automatic-backup.timer
-- automatic-backup.service executes a run.sh script once
[Service]
Type=oneshot
ExecStart=/bin/bash /etc/backups/run.sh
[Install]
WantedBy=multi-user.target
-- and automatic-backup.timer triggers automatic-backup.service once a day at 4 am
[Unit]
Description=Run borgbackup daily at 4 am
[Timer]
OnCalendar=04:00
Unit=automatic-backup.service
[Install]
WantedBy=timers.target
-- to activate the changes when editing or creating a service file
systemctl daemon-reload
-- you only need to enable and start automatic-backup.timer
systemctl enable --now automatic-backup.timer
-- to check the status
sudo journalctl -fu automatic-backup
or
sudo systemctl status automatic-backup
========================== Borg action
-- our run.sh script does the backups once a day at 4 am and saves each iteration by this template $(date --iso-8601)-$(hostname)-$$. for example: 2021-11-29-adele.mur.at-14087.
-- we can check the contents of this archive by running the following command:
sudo borg list /home/leverburns/peertube-backup/::2021-11-29-adele.mur.at-14087
-- to see a list of all archives of the repo
sudo borg list /home/leverburns/peertube-backup/
-- to extract 2021-11-29-adele.mur.at-14087 archive in your current dir, run:
sudo borg extract /home/leverburns/peertube-backup/::2021-11-29-adele.mur.at-14087
-- to delete the repo:
sudo borg delete /home/leverburns/peertube-backup/
-- similarly, we can delete a particular archive
sudo borg delete /home/leverburns/peertube-backup/::2021-11-29-adele.mur.at-14087
========================== Cache time
To run it manually
sudo /bin/bash /etc/backups/run.sh
April 13
Fixing the Tiny File Manager
Sergiu and ccl somehow fix it but don't know how...
Some commands that were run
- sudo chmod +rwx /var/www/html/files.php
- sudo service nginx reload
- sudo service php7.4-fpm restart
April 6
Uploading files in the file manager does not work
Changing the ownership of the files resolved this.
- $ cd /var/www/html/
- $ sudo chown friend:www-data -R *
Does the fold bot still work?
And if yes, how often does it work?
Yes it works, but it would be good to keep an eye on it, to understand if the bot does not have too much impact on the etherpads.
Currently there are multiple tools relying on the etherpad:
* us using etherpads
* octomode uses 2 etherpads for each environment + makes 2 etherpad requests to render the HTML or PDF view
* the etherpump index makes multiple requests to the etherpad:
- * 1 request to list all the pads
- * 6 requests for each pad, to get all the versions and metadata
* the folding bot makes 1 request for each pad every 60 seconds (see below how to change this rhythm) + if there is a new chat message, it makes 1 more request for this pad
To see this activity, you can run:
- $ sudo tail -f /var/log/nginx/access.log
And to see which requests fail, because there are too many requests being made at the same time:
- $ sudo tail -f /var/log/nginx/error.log
To adjust the rhythm of the folding bot:
As user friend:
- $ sudo su friend (or log in as friend)
- $ cd /srv/folds/
- $ nano folding.py
Then restart the folding bot:
- $ sudo service folds restart
March 25
Changing the time of Rosa to the current timezone
- $ date
- $ timedatectl
- $ timedatectl --help
- $ timedatectl list-timezones
- $ timedatectl list-timezones | grep Amsterdam
- $ timedatectl set-timezone Europe/Amsterdam
- Authentication is required to set the system timezone.
- Multiple identities can be used for authentication:
- 1. alice,27,, (strt)
- 2. cristina,777,, (ccl)
- 3. ,,, (mb)
- 4. pickles,665,, (p_p)
- 5. julia,,, (ju_ju)
- 6. friend,666,, (friend)
- Choose identity to authenticate as (1-6):
- $ sudo timedatectl set-timezone Europe/Amsterdam
- $ date
- Fri 25 Mar 2022 01:18:31 PM CET
Nice it worked
Etherpump async (agetjson) returns Failed to download
the api request `createDiffHTML` bumps into "failed to download"
Is there an API limit that can be changed?
Trying...
- $ sudo nano /srv/etherpad-lite/settings.json
Hmm, no. Stuck.
Installing nload
to be close to Rosa's capacities, specifically their network bandwith:
To use it:
Struggling with missing trailing slashes in distribusi
With `try_files $uri $uri/index.html $uri =404;`:
The links break because the `try_files` does not rewrite the URL to add a trailing slash, but it just loads the page...
Can `try_files` be combined with `rewrite`?
This looked promising: https://stackoverflow.com/questions/40264617/using-try-files-alongside-rewrite-in-nginx-location-block
- location ~ ^/photos {
- try_files $uri $uri/index.html $uri @rewrites;
- }
- location @rewrites {
- rewrite ^([^.]*[^/])$ $1/ permanent;
- }
But does not work...
Installing distribusi with pip3 and edit the code does not work: installation breaks on pillow dependency.
Installing distribusi from the git and edit the code does not work: installation breaks on pillow dependency.
Opened an issue in the distribusi-go repo: https://git.vvvvvvaria.org/decentral1se/distribusi-go/issues/16
Maybe rewrite can be used to add "index.html" to the uri?
... hmm no
In the end, adding one trailing slash to distribusi-go did the job.
Recompiled distribusi-go, and now it works!
Submitted the change on the issue tracker: https://git.vvvvvvaria.org/decentral1se/distribusi-go/issues/16
Scary attempt: change the distribusi-go code
From: https://git.vvvvvvaria.org/decentral1se/distribusi-go
Install go
"You'll need Go >= 1.11 installed."
https://go.dev/
https://go.dev/doc/install
- $ sudo tar -C /usr/local -xzf go1.18.linux-arm64.tar.gz
- $ export PATH=$PATH:/usr/local/go/bin
- $ nano $HOME/.profile
- if [ -d "/usr/local/go/bin" ] ; then
- PATH="$PATH:/usr/local/go/bin"
- fi
- $ go version
- go version go1.18 linux/arm64
Install distribusi-go
"Run make to build a new ./distribusi executable."
- $ cd distribusi-go
- $ make
- go: downloading github.com/Gurpartap/logrus-stack v0.0.0-20170710170904-89c00d8a28f4
- go: downloading github.com/barasher/go-exiftool v1.7.0
- go: downloading github.com/disintegration/imaging v1.6.2
- ...
Where is the code?
Oh, found the template here!
An option B is to hack the trailing slash with javascript......
But first, where can the trailing slash be added to all links in the code?
- if root != fpath {
- href := "<a href='../'>../</a>"
- div, err := mkDiv(c, "os/directory", href, "menu", false)
- if err != nil {
- return err
- }
- html = append(html, div)
- }
And here:
- href := fmt.Sprintf("<a href='%s/'>%s/</a>", fname, fname)
Running make to generate a new distribusi executable
Testing if it works
- $ ./distribusi -p /var/www/html/chapters/ --debug
Works!!!
A custom 404 message
While trying out all sorts of try_files `$uri $uri/index.html $uri/` combinations,
i bumped into a way to set a custom 404 page!
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a custom 404.
try_files $uri/index.html $uri/ $uri /unavailable.html;
}
There is a custom 404 page now here:
- $ nano /var/www/html/unavailable.html
To see it, visit a link does not exist, such as this one: https://hub.vvvvvvaria.org/rosa/rrrrr
March 24
Distribusi does not add a trailing slash to links...
This breaks the URL with the hub setup
See if the trailing slash issue can be resolved in the nginx setup...
It seems to work by adding:
- rewrite ^([^.]*[^/])$ $1/ permanent;
to Varia's nginx config of the hub.
Ths breaks pads now...
Adding it to the /chapters/ links only...
In the nginx config:
- $ sudo nano /etc/nginx/sites-enabled/default
- location ^~ /chapters/ {
- # Add trailing slashes to all requests
- rewrite ^([^.]*[^/])$ $1/ permanent;
- }
This does not work...
Hmm...
This is helpful to understand the regex used in the nginx config: https://regex101.com/r/vP4cA4/1
Trying another way to add a trailing slash:
- location ^~ /chapters/ {
- try_files $uri $uri/index.html $uri/ =404;
- }
Works for https://hub.vvvvvvaria.org/rosa/chapters/varia but rewrites "varia" in the URL for links to subfolders...
Being confused by etherpump...
Since we added diffhtml to the etherpump index, it raises an error:
The error disappeared
The error appears again sometimes
Confusing!
Changing the color scheme of the pads
The stylesheet of the etherpads is here:
- $ sudo nano /srv/etherpad-lite/src/static/skins/colibris/pad.css
Making sure that etherpad does not install dependencies at each restart
Many etherpad sessions were running....
Stopping all the processes of the etherpad-lite user.
- $ sudo killall -u etherpad-lite
It made us suspicious if etherpad is not running multiple times...
And well, actually yes!
In this folder:
- $ cd /etc/systemd/system/
There is both
and
Merging these two files into one, using the server.js and not the run.js:
- ```
- [Unit]
- Description=etherpad-lite (real-time collaborative document editing)
- After=syslog.target network.target
- [Service]
- Type=simple
- User=etherpad-lite
- Group=etherpad-lite
- WorkingDirectory=/srv/etherpad-lite
- Environment=NODE_ENV=production
-
ExecStart=/usr/bin/node /srv/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
- Restart=always
- [Install]
- WantedBy=multi-user.target
- ```
After changing a .service file, reload the deamon.
- $ sudo systemctl daemon-reload
Installing the headless/command line version of paged.js
To add a "save" function to octomode, saving a PDF to the system directly.
https://pagedjs.org/documentation/2-getting-started-with-paged.js/#command-line-version
To install it:
- $ sudo npm install -g pagedjs-cli pagedjs
Error:
- The chromium binary is not available for arm64.
- 1001 error If you are on Ubuntu, you can install with:
- 1001 error
- 1001 error sudo apt install chromium
- 1001 error
- 1001 error
- 1001 error sudo apt install chromium-browser
- 1001 error
- 1001 error /usr/lib/node_modules/pagedjs-cli/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserFetcher.js:115
- 1001 error throw new Error();
- 1001 error ^
- 1001 error
- 1001 error Error
- 1001 error at /usr/lib/node_modules/pagedjs-cli/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserFetcher.js:115:27
- 1001 error at FSReqCallback.oncomplete (node:fs:198:21)
- 1002 verbose exit 1
Following the suggestions:
- $ sudo apt install chromium
"After this operation, 506 MB of additional disk space will be used."
- $ sudo apt install chromium-browser
"E: Package 'chromium-browser' has no installation candidate"
Trying to install pagedjs again:
- $ sudo npm install -g pagedjs-cli pagedjs
- npm WARN deprecated @babel/polyfill@7.12.1: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
- npm WARN deprecated puppeteer@10.4.0: Version no longer supported. Upgrade to @latest
- npm WARN deprecated core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
- added 166 packages, and audited 167 packages in 19s
- 17 packages are looking for funding
- run `npm fund` for details
- 2 high severity vulnerabilities
- To address all issues (including breaking changes), run:
- npm audit fix --force
- Run `npm audit` for details.
Trying to install the latest version of puppeteer, but npm is a totally new environment, so it's a bit like moving around blindly...
- $ sudo npm i -g puppeteer@latest
Returns:
- `npm WARN deprecated puppeteer@10.4.0: Version no longer supported. Upgrade to @latest`
So nothing changed, stuck here.
March 23
Install etherpad plugin for headers/fonts/colors
https://www.npmjs.com/package/ep_headings2
How to install plugins?
https://github.com/ether/etherpad-lite/wiki/Available-Plugins
First become the etherpad-lite user
- $ sudo su -s /bin/bash etherpad-lite
Then go to the folder where etherpad is installed:
Then install the plugin with
...
The plugin seems to break etherpad.
- Mar 23 12:56:35 rosa sh[4105]: #033[31m[2022-03-23 12:56:35.569] [ERROR] server - #033[39mError: Command exited with code 1: npm ls --long --json --depth=0 --no-production │··························
- Mar 23 12:56:35 rosa sh[4105]: at exports (/srv/etherpad-lite/src/node/utils/run_cmd.js:119:25) │··························
- Mar 23 12:56:35 rosa sh[4105]: at Object.exports.getPackages (/srv/etherpad-lite/src/static/js/pluginfw/plugins.js:112:48) │··························
- Mar 23 12:56:35 rosa sh[4105]: at Object.exports.update (/srv/etherpad-lite/src/static/js/pluginfw/plugins.js:86:34) │··························
- Mar 23 12:56:35 rosa sh[4105]: at Object.exports.start (/srv/etherpad-lite/src/node/server.js:143:19) │··························
- Mar 23 12:56:35 rosa sh[4105]: at processTicksAndRejections (node:internal/process/task_queues:96:5)
It would be nice to learn how to read logs better...
Log reading resonates somehow quite a lot with the listening workshop we will do on Sunday.
How to practice reading each others logs?
As the user etherpad-lite...
- $ sudo su -s /bin/bash etherpad-lite
running the initial install script...
- $ /bin/sh /srv/etherpad-lite/src/bin/run.sh
to see if the responses will give any more info.
...
no, same error.
Found a recommondation in the etherpad-lite issue tracker to run
- $ npm install --no-save --legacy-peer-deps
Restarting etherpad again with the run.sh command....
...
Hmm... no.
Let's uninstall the plugin.
- $ npm uninstall ep_headings2
Instead, maybe we can use a monospace font on the etherpad?
Install fan controller for pi
Following this tutorial: https://howchoo.com/g/ote2mjkzzta/control-raspberry-pi-fan-temperature-python
git clone https://github.com/Howchoo/pi-fan-controller.git
running
sudo pip3 install -r pi-fan-controller/requirements.txt <<-- runs into errors so I installed the requirements separately
sudo pip3 install RPi.GPIO
sudo pip3 install gpiozero
cd pi-fan-controller/script
run ./install
cd back
run python3 fancontrol.py <<-- gives the following error
RuntimeError: Mmap of GPIO registers failed
stuck here
making aliases for commands we use a lot - available for one user only
to make a new alias, change to user friend
sudo su friend
to add a new alias into the file
sudo nano .bash_aliases
after you save and close, run begin to make your alias available for the user friend
March 22
ccl digs to find some refs on feminist publishing:
https://femme-type.com/radical-feminist-publishing-interview-with-co-conspirator-press/
https://womeninprint.wordpress.com/
https://www.dropbox.com/s/3tw7fjgk8y9tc3j/a_press_of_our_own_barbara_smith.pdf?dl=0
https://arena-attachments.s3.amazonaws.com/1368913/ccf42e4faa915f90010bd7a2880e8b42.pdf?1508993458
http://www.sinisterwisdom.org/archive
https://futuress.org/
https://discovery.ucl.ac.uk/id/eprint/1348866/1/327545.pdf
March 21
Made changes to octomode + etherpump: you can open pads "in octomode" now.
Octomode does not make pads with an extension anymore, it just keeps the filename.
Also installed https://git.vvvvvvaria.org/decentral1se/distribusi-go at /srv/distribusi + added it to the crontab of user friend, updates every 5 min.
To edit the crontab:
1. become the friend user: $ sudo su friend
2. edit the crontab: $ crontab -e
Also added an iframe to the main rosa page: (as friend) $ nano /srv/etherpump/templates/index.html
The iframe points to: https://hub.vvvvvvaria.org/rosa/chapters/
However, distribusi seems not to be able to run recursively?
This means that new folders in the chapter folder are not turned into distribusi pages... hmm.
Opened an issue about this: https://git.vvvvvvaria.org/decentral1se/distribusi-go/issues/14
Another issue is that distribusi creates links without trailing slash.... which makes links break because of the /rosa/ setup......
Next step: install the regular distribusi (not the go version) to work recursively + see if the trailing slash issue can be resolved in the nginx setup...
Update: distribusi does run recursively actually, it was the URL issue that breaks the links...
Next step: look into the trailing slash situation
March 17 2022
- finish buzzbot (renamed to folding.py)
- make changes to octomode that we discussed yesterday
folds bot .service details
- [Unit]
- Description=Resonance bot
- After=network.target
- [Service]
- User=friend
- WorkingDirectory=/srv/folds
- ExecStart=/srv/folds/.venv/bin/python folding.py
- Restart=always
- [Install]
- WantedBy=multi-user.target
March 16 2022 - installing etherpump
https://git.vvvvvvaria.org/varia/etherpump
Install pip first.
- $ sudo apt install python3-pip
Make a virtual environment.
- $ mkdir /srv/etherpump
- $ python3 -m venv venv
- $ source venv/bin/activate
- $ pip3 install etherpump
Try running etherpump
Returns: ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/srv/etherpump/venv/lib/python3.9/site-packages/markupsafe/__ init __.py)
To resolve this, downgrade markupsafe
- $ pip3 install markupsafe==2.0.1
Try to run etherpump again
works!
Copying the cron.sh file to make a script for etherpump to run every 10 minutes
https://git.vvvvvvaria.org/varia/etherpump/src/branch/main/cron.sh
This cron.sh script is used to generate the etherpump index.
The index is saved to /var/www/html/index.html.
March 15 - installing etherpad plugin linkify
Oh.... spotted in the settings.json that we're running etherpad with dirty.db, which "should only be used for testing and development"!!
Switching to mysql/mariadb...
Install mysql
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
$ sudo apt update
$ sudo apt install wget -y
$ wget
https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb
$ sudo dpkg -i mysql-apt-config_0.8.18-1_all.deb
$ sudo apt install mysql-server
Adding the gpg of the mysql apt repo:
https://techglimpse.com/update-gpg-key-mysql-repo-debian-ubuntu/
$ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 467B942D3A79BD29
Installing mysql/mariadb
https://github.com/Tob1asDocker/rpi-mariadb
- $ sudo apt install mariadb-server
Make a "friend" user
- $ sudo mysql
- > CREATE USER 'friend'@'localhost' IDENTIFIED BY 'moonwalk';
Make a database for the etherpad
- > CREATE DATABASE etherpad_lite_db;
Give permissions to the user friend to write to this db
- > use etherpad_lite_db;
- > GRANT ALL ON *.* TO 'friend'@'localhost' WITH GRANT OPTION;
Close mysql
Hmm....
Switching to a sqlite database, as that is what is used by the varia server...
$ sudo apt install sqlite3
$ cd /srv/etherpad-lite/src/
$ sudo npm install sqlite3
In settings.json
"dbType": "sqlite",
"dbSettings": {
"filename": "var/sqlite.db"
},
Not sure which database is the best to use and why?
Would be interesting to learn about this, conversations around such questions are hard to find online.
------
How to install an etherpad plugin?
https://github.com/ether/etherpad-lite/wiki/Available-Plugins
- Enable Admin interface (edit settings.json)
- Login in to admin interface (yourpad.com/admin)
- Use admin interface http://youretherpad/admin/plugins
Installed: linkify2
for the [[anotherpad]] internal link function!
(we should test if it works)
--> it breaks the etherpad installation.
March 13 2022
thinking about storage options
OPTIONS
- https://github.com/coderaiser/cloudcmd file manager + editor + console
- https://github.com/filebrowser/filebrowser file manager + editor + console
- https://github.com/prasathmani/tinyfilemanager file manager (demo https://tinyfilemanager.github.io/demo/)
- https://github.com/redhog/ep_fileupload etherpad plugin for built-in file upload
NOTES
- something torrent based? (because downloading/uploading eats bandwidth of the rpi!!)
- something p2p? (to not make rosa the only central node, and stimulate promicuous file exchange?)
- wild thought: what if file uploads go through a chat environment + logbot? https://relearn2021.vvvvvvaria.org/
- federated file sharing? one folder hosted at rosa, shared/synces/mirrored/??? at a few other servers? (TINC can be used to safely exchange files automatically)
- wow bittorrents + rss feeds!?! https://en.wikipedia.org/wiki/Broadcatching
- an atnofs network of webtorrents! https://webtorrent.io/
https://btorrent.xyz/
trying filebrowser
https://filebrowser.org/installation
Installation worked, but the application did not load.
trying tinyfilemanager
https://github.com/prasathmani/tinyfilemanager
needs php
so first: install php
https://linuxize.com/post/how-to-install-php-on-debian-10/
- $ sudo apt install php php-fpm
add this to the nginx config:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
listen = 127.0.0.1:9000
}
Also edit the php config file
- $ sudo nano /etc/php/7.4/fpm/pool.d/www.conf
comment this line out with a ";":
- ;listen = /run/php/php7.4-fpm.sock
add this line
and reload nginx + restart phttps://hub.vvvvvvaria.org/rosa/octomode/publication_Rosa/pad/hp
- $ sudo service nginx reload
- $ sudo service php7.4-fpm restart
then try tinyfilemanager
https://hub.vvvvvvaria.org/rosa/files.php?p=
-- hmm, redirects during use to https://hub.vvvvvvaria.org/files.php?p= .......
-- and does not correctly links to files......
trying cloudcmd
https://github.com/coderaiser/cloudcmd
to run it
Now it runs at port 8000
config file: /home/mb/.cloudcmd.json
http://192.168.178.58:8000/ works
https://hub.vvvvvvaria.org/rosa/files/ works but css links are broken...
Going for tinyfilemanager in the end.
- $ npm uninstall cloudcmd -g
March 10
installing octomode
Step 1
Download the octomode code from the Varia git.
First go to the location where you want to install octomode. This should be outside of the public webserver folders, as we will have to save an API key of the etherpad at some point, and you don't want to share that key in public. Also, switch to the root user for this step.
`$ cd /srv/`
`$ sudo su`
`# git clone https://git.vvvvvvaria.org/varia/octomode.git`
Step 2
We will make an "octomode" user on the server to run octomode with this user. In this way we can restrict the access of this user to the rest of the server. It's a way to make sure that the pads in octomode cannot be used to write code in a specific way, that it can be executed on the server.
Make a system user called "octomode".
`# useradd --system --no-create-home --shell=/sbin/nologin octomode`
Give read and write access + ownership to the `/srv/octomode` folder to the octomode user.
`# chown -R octomode:octomode /srv/octomode`
`# chmod -R u+rw /srv/octomode`
To handle the limited folder access, i'm not sure what to do.
Maybe a so called `chroot` can be used?
Asking for advice here: https://git.vvvvvvaria.org/varia/octomode/issues/2#issuecomment-757
Step 3
Install the dependencies that octomode uses.
First make sure that `pip3` and `pandoc` is installed. On debian you can install it by running:
`$ sudo apt install python3-venv pandoc`
There is a Makefile in the octomode folder, which can be used to install the dependencies. First navigate to the octomode folder and then run `make setup`.
`# cd /srv/octomode`
`# make setup`
Change the ownership of the installed dependencies to octomode.
`# chown -R octomode:octomode .venv`
Step 4
Get the API key of the etherpad you want to use. This can be a local one which is running on the same server, or an etherpad that is running somewhere else.
`# cat /srv/etherpad-lite/APIKEY.txt`
Copy the key and save it in the file `/srv/octomode/config.py` as "PAD_API_KEY".
`# cd /srv/octomode/`
`# nano config.py`
Also change the "PAD_URL" and "PAD_API_URL".
You can also change the "PORTNUMBER", this is the port at which octomode will be running. You can change it to any port number that is not used yet on the server.
Close and save the `config.py` file with `[CTRL+X]`, `[Y]`, `[ENTER]`.
Step 5
Try to run octomode, to see if it works!
`# make run`
If you are currently in the same local network as rosa, you can visit rosa's ip address on port 5001. http://192.168.178.58:5001
Try to visit all the different "modes": `pad`, `stylesheet`, `html` and `pdf`, to make sure that they all work.
You can stop the application with [CTRL+C].
Step 6
Run octomode as a background service.
Octomode is written in Flask, a python library to make web applications. It needs to run all the time in order to be available for people to use.
We will make a system d `.service` file for this.
https://blog.miguelgrinberg.com/post/running-a-flask-application-as-a-service-with-systemd
Make a `.service` file for octomode:
# nano /etc/systemd/system/octomode.service
Paste the following configurations in the file:
- [Unit]
- Description=Collective PDF rendering environment
- After=network.target
-
- [Service]
- User=octomode
- WorkingDirectory=/srv/octomode
- ExecStart=/srv/octomode/.venv/bin/python octomode.py
- Restart=always
-
- [Install]
- WantedBy=multi-user.target
Reload the systemd daemon:
# systemctl daemon-reload
And start the octomode service.
# systemctl start octomode
Check if it works by visiting http://192.168.178.58:5001/ again!
Step 7
Connect octomode to an URL.
To access octomode through an URL, like https://rosa.vvvvvvaria.org/octomode/, a mapping is needed to route octomode's port 5001 to the URL that will be used.
In nginx, we can use a proxy_jump for this.
Open the nginx configuration file.
# cd /etc/nginx/sites-enabled
# nano default
Add the following setting to the nginx file.
location /octomode {
proxy_pass http://127.0.0.1:5001;
}
# Serve the /static/ folder nginx (instead of Flask)
# as this Flask installation runs outside the root URL
location ^~ /static/ {
alias /srv/octomode/static/;
}
Change the permissions of the `/srv/octomode/static/` folder, as this folder will be served by nginx.
# chown -R www-data:www-data /srv/octomode/static/
# chmod -R g+w /srv/octomode/static/
Check if you configuarion is oke.
# nginx -t
If so, then reload nginx.
# service nginx reload
See if it works by visiting http://192.168.178.58/octomode/ or https://rosa.vvvvvvaria.org/octomode/pad/.
(because https://rosa.vvvvvvaria.org/octomode/ gets redirected currently, but that is work in progress).
Thursday 24 FEB (evening)
layers, logging, resonance, disguise
About publishing as layering:
- Could publishing be like a texture? Is the persistent flow of human and non-human writing that travels into and out of our devices, like an ambient background noise, the flow of real-time feeds and streams that operate almost like an atmospheric state—is this a new paradigm?
- Today, and perhaps more so in the near future, we need to understand publishing as less breaking and more layering—a rhizomatic carpet, laying on top of everything else, without edges. In the “smooth flow” of the new publishing, the substrate isn’t clear. It might be invisible, or even unknowable—code written into distant servers, below a natural language interface. Algorithms that work under the hood, writing records that remain out of sight.
- Paul Soulellis
-
https://soulellis.com/writing/nov2017/
About questioning the act of layering:
- With this collection of computational ROCKS, The Underground Division gets closer to the unstable stories of particular ROCKS as told through scientific, poetic, public and technological discourse. Recognising that ROCKS have their own lively forces and relationalities, the Division studies ROCKS' 3D imaginings, the softwares and hardwares that ROCKS intervene on and builds new glossaries on the go. These studies operate as a chipping away at what limits the collective resistance and reparative capacities of and with ROCKS. However, a great deal of stony patience is required to resist and repair the damages from the very practices which bring ore and its energies to the surface of the earth.
- The Underground Division (Femke Snelting, Jara Rocha, Helen Pritchard)
-
http://ddivision.xyz/rockrepo/
In relation to resonance and imagining forms non-romantic togetherness, to speculate on infrastructures that are based on various modes of relation:
- Other Geometries is an invitation to reflect on, re-imagine and train for togetherness with difference. It is a collaborative research-kit, a porous collection of trans*femininist renderings, eccentric imagery and recombinatory vocabularies. The kit is part of an ongoing conversation with activist collectives which rely on concepts such as ‘sovereignity’, ‘freedom’, ‘independence’ and ‘autonomy’ to ideologically motivate work on tools, networks and infrastructures we need and want. But by sticking to modes of separation rather than relation, we continue to evoke utopias elsewhere, instead of developing ways to stay with the trouble that we are already entangled in.
- Other Geometries proposes ‘complex collectivity’ as a tentative framework to think with for example, non-normative human constellations, or collectives where participants with radically different needs, backgrounds and agencies come together. ‘complex collectivity’ can be self-chosen, or be the result of structural forces such as laws, racism, technology, wars, austerity, queerphobia and ecological conditions.
- Many of the items included in the kit modify existing concepts by introducing dynamic tension. In the workshop we will extend this method to the way we relay stories of complex collectivities or the kind of geometries we invent for them. We will try to be attentive to generative vibrations between ontologies and cosmologies and speculate with ‘infrastructures’ that could hold more than one form of togetherness together. What non-utopian models can we design to interface with multiple collectivities? How can we do that without making their intersections dependent on the rigidifying assumptions of sameness and reciprocity?
- Femke Snelting
-
https://possiblebodies.constantvzw.org/geometries/othergeometries.pdf
homework from p_p
- there is a typo in the Hackers & Designers book of 'Dialog'. I appreciated this as an in between of Dialogue and the logging mb was mentioning
- what is a dialogue between logs? Can this connect to the bots in the pads that we discussed today?
- using conversation as cross referencing, also like [[padname]] could avoid layers becoming hierarchical or linear
- can this be involved with attachments, with touch?
- also like the instructional pages at the back of the H&D publicaiton that gives detailed information if you were curious to know more.
- is this a kind of layer too? like layers for different types of curiousity, different focuses and desires?
- disguise is hard to think about how to implement inside a computer, but I'm thinking about if the small changes we are doing are moving toward some kind of character - if a workshop on alias making could be a place to implement a 'disguise' in a character? - different layers of meaning that can come out from all the different interpretations when reading
homework from strt
Thinking of layers in what it brings up in my mind - can be positive, like warm layers of clothing or layers of ingredients in a sandwich, and also less positive like layers of dust over forgotten or untouched objects, a layer of mould growing in a jar of jam, layers of bureaucracy that are hard to untangle. Yesterday we talked about alternatives to layers, which are linear - piles? A bundle? A bundle wrapped in layers of fabric.
The layers of communication/insight we give when writing on a pad, represented in a friendly bot sharing a short summary of whatt you can encounter in that pad.
Disguise in the form a surprises?
Wednesday 23 FEB
(infrastructure day)
Poll for license: https://framadate.org/jScMDwqQnLRIk1PY
Port 80 - webserver (for everything on the web)
Port 22 - ssh into the server
p - to select a port
cd [enter] - get home
To add your own computer's key to Rosa, so you don't need to write your password when you log in.
First you need to generate a ssh key on your own computer:
This generates two keys: a public one and a private one
- $ ssh-copy-id username@45.83.233.82 -p 1508
how to make a config file to connect to rosa:
ls [means listing files]
la [means long list]
ls /
cat[space+filename] = to display what is in a file
nano config [opens a txt file]
then you can write:
Host rosa
Hostname 45.83.233.82
User [write your username]
Port 150822
IdentityFile ~/.ssh/id_rsa
- save it by exiting [control x] and saying Yes [by pressing enter]
notes from conversation:
space for each chapter
(notes from last time - Welcome pack: A place to document what is there to see at the different locations, a tour guide, a map? restaurants? local recipes? travel suggestions? speech to text tools?)
- concept of consent, in relation to sharing, publishing, access, rights, touch, invasion
- welcoming environment
- touch is a command
consent to:
- publish
- alter (open license is consent to reuse)
- touch
- ...
Adding another language to the server's mode of address around permissions.
CC4R
Amy: We did a workshop with Elodie around the CC4R license at APASS. We were reading Glissant: nothing is yours. you are an accumilation to a bunch of other things. we had to write about an artwork that we liked. and we had to write a license to say how we would like this work to be reused. the license is trying to do this i think, to be aware of minorities and the sources that you take from, but also to not be so protective about what you make.
Constant refigured the Free Art License and made it more complicated.
Installing tmux to work in a shared terminal session
https://tmuxcheatsheet.com/
First we all switch to the friend user
One of us makes a new session
- $ tmux new -s nameofsession[etherpadinstallsession]
Attach to new session
- $ tmux attach-session -t etherpadinstallsession
Installing etherpad
How? Is there documentation close to us that we can use?
remember: rosa uses debian bullseye
https://etherpad.org/doc/v1.8.16/
https://github.com/ether/etherpad-lite#installation
curl = downloading something from the internet
Rosa doesn't have curl and git, so we will install it first:
- $ sudo apt install curl
- $ sudo apt install git
Then we follow the quick install:
Now we need to connect the port where Etherpad is 9001.
https://gist.github.com/aaronpk/7307172
On XPUB1's Soupboat, an etherpad is installed in the same way as we need it:
https://hub.xpub.nl/soupboat/pad/
proxy_pass
http://localhost:9001/
;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
We can add this to the nginx config file
- $ sudo nano /etc/nginx/sites-enabled/default
We add the config above.
Then we save it with CTRL+X and Y and [enter].
Then we test if the configs were oke syntaxwise.
And then we reload the nginx service.
- $ sudo service nginx reload
Oke....
Then we run the etherpad run.sh script again:
cd ~/etherpad-lite/
src/bin/run.sh
And we go to http://45.83.233.82/pad/
I reinstalled etherpad-lite
fixing the error Error: The module at "ep_etherpad-lite/static/js/rjquery" does not exist.
src/bin/run.sh was failing to install the node modules
running separately
npm install ep_etherpad-lite
getting the error that python is not found, so installing python and running again
tried changing the nginx configuration from here
https://stackoverflow.com/questions/70651975/nginx-with-etherpad-in-a-subdirectory
no luck... perhaps trying to downgrade to an older version of etherpad next
---
04.03 tried to install again using below instructions, no luck so far
http://eth.leverburns.blue/p/--alice--
getting this error
npm WARN old lockfile at async Array.<anonymous> (/usr/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:743:9) {
npm WARN old lockfile code: 'EACCES',
npm WARN old lockfile errno: 'EACCES',
npm WARN old lockfile syscall: 'mkdir',
npm WARN old lockfile path: '/srv/etherpad',
npm WARN old lockfile type: 'system'
npm WARN old lockfile }
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /srv/etherpad
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/srv/etherpad'
npm ERR! [Error: EACCES: permission denied, mkdir '/srv/etherpad'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/srv/etherpad'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
Can we change the background image of the pads?
YES!!!
https://vvvvvvaria.org:5281/upload/LIwFmOt8z6SrSxXX/rpi.jpeg
Run etherpad all the time in the background as a "service":
"debian bullseye how to run etherpad-lite as service"
https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service#debian-8-jessie--systemd
1. Create a user called etherpad-lite adduser --system --home=/srv/etherpad-lite --group etherpad-lite
2. Ensure the etherpad-lite user has full access to the etherpad-lite source
- $ sudo chown -R etherpad-lite:etherpad-lite /srv/etherpad-lite
3. Create a new file etherpad-lite.service in /etc/systemd/system/
- $ sudo touch /etc/systemd/system/etherpad-lite.service
- $ sudo nano /etc/systemd/system/etherpad-lite.service
- Paste the following:
-
- [Unit]
- Description=etherpad-lite (real-time collaborative document editing)
- After=syslog.target network.target
- [Service]
- Type=simpleUser=etherpad-lite
- User=etherpad-lite
- Group=etherpad-lite
- Environment=NODE_ENV=production
-
ExecStart=/srv/etherpad-lite/src/bin/run.sh
- [Install]
- WantedBy=multi-user.target
4. Run systemctl enable etherpad-lite to enable the service on boot.
5. Run systemctl start etherpad-lite to start the service.
- NB: might need to change "/srv/etherpad-lite/bin/run.sh" with "/bin/sh /srv/etherpad-lite/bin/run.sh" according to configuration
If you change the etherpad.service file, you need to reload the systemd deamon to make the changes.
- $ sudo systemctl daemon-reload
tried to get the latest version on git
Next time - make aliases
https://linuxize.com/post/how-to-create-bash-aliases/
Notes for Session 17 FEB
Feminist publishing infrastructure imaginations
mb leaving a trail of thought around a possible feminist publishing infrastructure (FPI, to make it easier to repeat this long name):
- When the term "feminist server" enters the room, it feels like a point of attraction, something to cluster around, an idea that triggers.
- A desire to imagine and discuss what a feminist server could be, clusters us.
- We come together because different people in the networks-of-networks are curious to think together with others in the networks.
- Without having a single center, a networks-of-networks gathers throughout time in parallel, crossed, async and/or sync ways.
- A networks-of-networks does not operate in consensus, there are probably many things to disagree on, and it consists of different situated knowledges and lived experiences.
- This is not to say that a networks-of-networks are very divers in different ways, even though there are differences of course, but it's more an attempt to think about this constallation as a topological shape. A networks-of-networks.
- I was browsing through a document written in 2007 around the question "What is an open organisation?"[3], which could be helpful to understand a networks-of-networks.
- "we sum up the three types here without getting too much going into details about it, and described from the position of the actor:
- - as a small shrimp executing pre-defined tasks (hierarchical)
- - taking part in the decision process what and how to do things (consensus)
- - automomous and free to perceive, react, create, enter/leave (open)"
- And it feels that a networks-of-networks topology is operating as the third option: as an "automomous and free to perceive, react, create, enter/leave (open)".
- (we don't fully agree on things but there is a certain trust)
- How can a FPI value such networked constallation?
- How can it sustain it?
- And feed it?
- Could such FPI operate as a "federation protocol for enabling interoperability"[1] between networks-of-networks?
- What does interoperability mean in that case?
- In what way do we want to inter-operate with each other?
-
How can we do that in a free form and soft structuring way?(as opposed to a template)[2]
- What if we cross-link[4] each others documentation/materials? (also like weaving)
- What if we develop methods to read/write/listen across each others documentation/materials?
- What if we find a way to stimulate conversation around each others documentation/materials?
- [1] from https://forgefed.peers.community/
- [2] inspired by https://march.international/becoming-sponge-sustaining-practice-through-protocols-of-web-publishing/
- [3] "SOME THOUGHTS ON THE THEME = What is an open organisation and some examples?" (Bratislava, 2007) https://societyofalgorithm.org/B22F/01/openorganisations.txt, linked at https://societyofalgorithm.org/B22F/01/index.html found on Monoskop.org
- [4] Instead of "crossing" we could also think in "attachments", inspired by SA Smythe in Logic 15 Beacons:
- "Let’s put it this way: gender is a series of attachments, much
- like belonging—which is probably why this relates to your
- question. So technology, perhaps if I can try to make a real
- quick but rough analogy, not as a process or a series of mech-
- anisms through which you manage labor, bodies, time, and all
- of these sorts of constructs, but actually as a way of deepening
-
attachments. I’d like to think of “trans” when I think about
- transnational politics and even transdisciplinary scholarship as
- a moving across borders drawing from how trans theorist Eva
- Hayward talks about trans being a series of attachments and
-
modes of relating as opposed to across, because grammatically,
- trans is supposed to be across and then cis would be on the same
- side. Instead of crossing a border or staying on the same side of
- a border, of gender, of geography, and so on, it could instead be
-
a series of attachments to that very otherwise set of possibilities
-
that we’re trying to mobilize."
- > You can be attached to something and loose that attachment again
- > You can have an attachment for something or someone for specific parts of it, but not by the whole thing. This creates space for nuances
- > When i am thinking about gender, i think of it as a detachment, not an attachment.
- > Can you be attached to being detached? ;)
- > When you attach to gender, is it an attachment to a form of aesthetics?
- > interesting in relation to the "crossing" and the FPI. like logbot is a shared memory, a way of keeping trace. what do we want the FPI to nourish?
- > i can connect to attachments, i collect weird shit all the time. i retrieve them for my practice. material in relation to attachments would help decide what to add to the publication
- > there is also something in the food that we eat
- > we are attached to these evenings ;)
- > Changing Rosa's messages changes the way the computer speaks to you, it makes me attached differently to the system.
- > i have that blackboard, i'm attached to the idea of having this next to my desk to hang things but i haven't done it at all. attached to a platform even if i don't use it
- > When making notebooks, i always start a new one with a specific idea, and then i only use it for one page, because i don't want to ruin the possibility of the next page
- > incognito mode, what for? you want do something but in disguise
- > i don't know how you publish in disguise
- > Can each person arrange the publication as they wish? Everyone makes elements,
- > What can soft structuring be, practically speaking?
- > Maybe it's about who can change a system?
+ in terms of content, the following snippets are helpful to imagine what will be there:
- From the cosf pad:
- - Each chapter has their publication chapter ready by October 2022 that contains
- - intro text describing their theme for the 2 days
- - material used during the session
- - documentation of their chapter
- - any other things you would like
from p_p
maybe too old, binary and obvious a reference, https://hub.vvvvvvaria.org/rosa/octomode/publication_Rosa/pad/ut I have been reading Sadie Plant, The Future Looms, and there are some terms and passages that I find helpful for thinking about what feminist technologies might be / what is feminist them.
- an interface is something that we want for display, but it also hides
- we make technologies to be our messenger, for a possibility of communication.
- In FPI how do you show gratitude to the messenger?
"Indeed, if woman is[they are] anything, she is[they are] the very possibility of mimesis, the one who weaves her[their] own disguises. The veil is her[their] oppression, but "she[they] may still draw from from it what she[they] needs to mark the folds, seams, and dress making of her[their] garments and dissimulations." (Irigaray 1991, p116) ... she is[they are] more than which she[they] imitate. Woman[Oppressed people], like the computer, appears at different times as whatever man requires of her[them]. She[they] learns how to imitate; she[they] learns simulation. And, like the computer, she[they] become very good at it, so good, in fact, that she[they] too, can mimic any function. As Irigaray suggests: "Truth and appearances, and reality, power... she is[they are] - through her[their] inexhaustible aptitude for mimicry - the living foundation for the whole staging of the world."
- materiality of textiles
- a computer as unknown space, when you think of it as space that is "folded in"
- I think this problem goes back to the first software engineer, Ada Lovelace. She looked at the automated looms and felt that they could be improved by Babbage's technology, which could go forward as well as backward through cards. If she had instead looked at how handweavers work, she'd have realised that computing could greatly benefit from weaving, rather than vice-versa. Software engineers have been making the same mistake ever since, in thinking they have something new, and not respecting these ancient crafts as the highly developed computational technologies that they are.
-
https://wg.criticalcodestudies.com/index.php?p=/discussion/113/week-2-of-textiles-and-technology-discussion-starter
- what is rosa wearing?
- does rosa have a costume?
- is rosa singular?
"Software, in other words, has its screens as well: it too has a user-friendly face it turns to [the client]man, and for it, as for [the worker]woman, this is only its camouflage."
- camouflage, FPI that allows you to share in disguise
- FPI that has options to conceal, to de-publish
> different layers of visibility and privacy, and that the users can change this for themselves
> making space for speculative/fiction, "disguise in untruth"
"There is for Irigaray another side to the screens which "already moves beyond and stops short of appearance, and has no veil. It wafts out, like a harmony that sub-tends, envelopes and subtly 'fills' everything seen, before the caesura of its forms and in time to a movement other than scansion of syncopations. Continuity from which the veil itself will borrow the matter-foundation of its fabric."(Irigary, 1991, p116) This fabric, and its fabrication is the virtual materiality of the feminine; home to no-one and no thing, the passage into the virtual is nevertheless not a return to the void. This affirmation is "without subject or object", but "does not, for all that, go to the abyss." The blind immateriality of the black hole was simply projected by man, who had to believe that there was nothingness and lack behind the veil."
- think about how to undo binary ideas such as 0 1
- find it helpful to think about performative aspect of screens, they frame an activity to which you give attention. what questions of framing enter FPI?
I imagine a feminist infrastructure:
- as the corner shop in your neighborhood - you kinda depend on them - to get fresh eggs, milk and tomatos - you also know when they are open or close - so you go there when it’s good for both - and you know that one day - they might get sick or something - and because you go there every other day - and make conversation while picking lemons from the basket - you and them are sort of friends - maybe not bffs - but friendly enough - to care - and help out - whenever necessary - however you can - maybe ask what’s up - offer some soup or to look out for the kids for a while - or call some other neighbor - cuz you know maybe you are not skilled to solve everything - and that’s fine - there are others like you - and different than you - and together you can make it work again - maybe not fully - not same - but open again and shared - with oranges for all of you around it - and that might meant you get less flour one day - and a lots of coffee beans some others - it might depend on the weather - or on the providers - that are also other neighbors - like you with the ropes and shoe laces - and sometimes other things come from a far - and that’s also nice - cuz you can try berries you didn’t know - and make uses you didn’t think of before - sometimes things are send away too - or someone travels - or both - and as things and knowledges are helpful elsewhere - when back - they might bring new ones - maybe partnerships are build this way - in these comes and go’s - so the neighborhood feels a bit bigger - expanded - kinda flexible - diverse - supported - and connected - in a way - as you rely on the shop - y’all rely on each other - knowing that nothing is permanent - or perfect - or stable - but it’s there while it’s there - and that’s good knowing
We're making a way to collect materials & make them visible to each other
Are we making categories? Maybe something softer.
logging as a way to collect materials before you forget them
https://vvvvvvaria.org/logs/atnofs-varia/
logs work in chronological order
"this happened this happened this happened this happened this happened"
logs are difficult to read, logs are unedited objects
what if we see the log as something that operates in parallel with another text
you never read a log from top to bottom, you search for something specific and filter it
alt text workshops - https://alt-text-as-poetry.net/
how could logging work for everyone, practically speaking? for relearn we used the browser
can we cross protocols? to not force people to use our tools?
RSS can be our shared protocol: Mastodon and logbot both "speak" RSS
marks as tools to layer the logs: certain marks will allow a post to go to the publication
layering the logs: what kind of layers can we add to the logs?
how can we connect the logs with the texts?
10 FEB
Publishing infrastructure
documentation of different traces of the project
Amy: something instruction based for others to be able to pick up,
evening meeting
Julia shares Sara Ahmed
- "I make arguments by listening for resonances; the book thus involves repeating words, sometimes over and over again; words like shatter, words like snap. The repetition is the scene of a feminist instruction.(...) A feminist instruction: if we start with our experiences of becoming feminists not only might we have another way of generating feminist ideas, but we might generate new ideas about feminism. Feminist ideas are what we come up with to make sense of what persists. We have to persist in or by coming up with feminist ideas. Already in this idea is a different idea about ideas. Ideas would not be something generating through distance, a way of abstracting something from something, but from our involvement in a world that often leaves us, frankly, bewildered. Ideas might be how we work with as well as on our hunches, those senses that something is amiss, not quite right, which are part of ordinary living and a starting point for so much critical work. (Living a Feminist Life, page 12)"
- > DRY (Don't Repeat Yourself) is a principle of software development. Why? When you write code that performs the same tasks over and over again, any modification of one task requires the same change to be made to every single instance of that task!
- > resonance as a bouncy gesture, to use words over and over again to see one word in different aspects and sides
In response to this quote, Cristina mentions a Katherine McKittrick's position to work with what we have in order to reach liberation (this is super paraphrased, would be nice to have a quote here?)
- "Sara Ahmed makes the very smart observation that citation practices are gendered and racialized. Citation decisions are a political project for Ahmed because, she argues, absenting white men (from our bibliographies, references, footnotes) reorganizes our feminist knowledge worlds. By excluding white men from her (our) bibliographies she (we) can generate new ideas and chip away at, and possibly break down, the walls of patriarchy that have excluded and refuse feminist ways of knowing. Decentering the citations, and thus the experiences, of white men unmakes a scholarly system that champions and normalizes white patriarchal scholarly traditions. I struggle with the outcome of this citation project. I wonder how it inadvertently turns on impossible foreclosures: What does it mean to read Jacques Derrida and abandon Derrida and retain Derrida’s spirit
- (or specter!)? Do we unlearn whom we do not cite? And what of our teaching practice? Do we teach refusal? Can we not teach our students to engage with various authors and narratives, critically, while also asking them to raise up the work of black women and other scholars, writers, artists, interviewees, teachers, who go unrecognized? How do we teach each other to read (disapprove, evaluate, critique, use, forget, abandon, remember) “white men” or other powerful scholars? Or is the critique (uncitation) to enact erasure? The project of erasure, too, often unfolds as an affirmation of racial privilege: here I recall (mostly white) feminists sparklingly shouting with a kind of breathy desperation that they, too, have been overciting and venerating white male scholarship, and that Ahmed has discovered a brand-new way to recognize and credit and legitimize the ideas of the marginalized; this leads these breathy speakers to hail the work of — mostly nonblack, mostly white feminist, mostly academic — privileged scholars! That aside, Ahmed’s citation project matters to me because it asks that we think about the epistemological grounds through which we theorize and imagine and name liberation in our referencing practices.
-
Citation points to method and how we come to write what we know. Citation is important because it frames and supports (legitimizes) our argument. This also shows that if we begin with Michel Foucault as our primary methodological and theoretical frame — if Foucault is our referential scaffolding — we will, most certainly, draw Foucauldian conclusions. There is nothing at all wrong with a Foucauldian project and Foucauldian conclusions, of course — to suggest so would be remiss and skirt around the work of citations I am seeking to address. This example simply centralizes the importance of how referential beginnings and referential scaffoldings shape conclusions."
Cristina shares this web page in which the word "resonance" is mentioned in relation to publishing, by Stevphen Shukaitis: https://transversal.at/transversal/0614/shukaitis/en
- "1. “One publishes to find comrades!” (1997: 52) This declaration by Andre Breton is a fitting place as any to begin discussing what an insurrection of the published means, or could mean. For what Breton says here is not a facile declaration, but really something that is worth reflecting on to consider changes in the current and shifting relationship between publishing, politics, and cultural labor more generally. For what Breton says here is not that one publishes to propagate and spread an already conceived an absolute: this is not a publishing of revelation or of bringing consciousness to an already imagined fixed audience. Rather Breton is describing something that might be called a publishing of resonance. That is, not a publishing practice that is intent on necessarily intent on trying to convince anyone of anything, but rather is working towards establishing conditions for the co-production of meaning. Thus publishing is not something that occurs at the end of a process of thought, a bringing forth of artistic and intellectual labor, but rather establishes a social process where this may further develop and unfold."
- > "a publishing of resonance" seems to be a way to see publishing as part of "shaping a social process". So in this understanding, it could still happen at the end of a research/project. In that way, we have been working with "resonant publishing" in a bit of a different way, where we use it to refer to publishing-on-the-go.
- > Would this also come from an understanding of the authority of a published object? In terms of tone that is used, but also as an object itself.
- > antonyms: publishing of revelation, publishing of bringing consciousness to an already imagined fixed audience
- > The impact of published objects on history is big. We are trained to relate to printed objects as something that carries knowledge and is precious. How would you shift that relationship while publishing? But also in relation to the receiver of the object that is published?
- "2. In this sense the organization of the productive process of publishing could itself be thought to be as important as what is produced. How is that? It follows logically from the idea that one publishes in order to animate new forms of social relationships, which are made possible through the extension and development of publishing, through the social relationships animated by it. Publishing calls forth into itself, and through itself, certain skills of social cooperation that are valuable and worthy, even if what is produced as an end product perhaps is not an exalted outcome. Perhaps that is not so important at all. In short publishing is the initiation of a process where embodied processes of knowing and understanding are produced and reproduced, rather then the creation of fixed objects where complete understanding are fixed and contained. The production of the community of shared meaning and collaboration, the production of a public, contains within it a wealth that is often greater then a single text. The production of the text can only be valuable because of the social relationships it is embedded with and produces meaning through."
- > makes me think of katherine mckittrick, but also of the phrase "making publics" (rather than making public)
- > the embodied part is also interesting
Manetta leaves some snippets here for 10 February, this one felt useful for us in regards to positioning towards receiving funding. I found this in the Glossary of Undisciplined Design book that i borrowed from Cristina:
- "The funding we were able to obtain from various European institutions and foundations in order to finance the GUD Symposium and handbook speaks volumes about the kind of access we have to educational and cultural institutions, and to the kinds of legitimization and visibility they produce."
amy's thoughts on feminist publishing
- leaves some snippets too from the introduction of Information Activism, A Queer History of Lesbian Media Technologies that I shared in xmpp and then finally started to read when julia said it was good! although more focused on a historical moment of transition to digital technologies, could be useful in positioning ourselves
-
-
-
- "“Formed by grassroots feminists, the
Women’s Information Exchange
is dedicated to putting information technology to use in facilitating outreach, networking, and resource sharing among women.... gathered radical feminist resources from publications and community groups and added them to a computer database organized by “area of interest.” Subscribers to the service mailed in surveys in which they chose fields for “the areas of interest that affect your working self, your political self, and your social self... promoted a burgeoning feminist data politics based on user control and transparency about how and why information about individuals would be collected and stored
- > woman could bring any kind of information that they felt was relevant to bring
- > cyberfeminist index by mindy seu. it's super nice but it feels like it's made from a distance to these groups. she gets a lot of visibility for this, but at the same time, for a lot of people it's a great resource to learn with
- > contradiction that making an index can also make you very vulnerable but also, index as a form of accessibility, entrance to whisper networks
- > this was in the US
- ... Information activism describes a range of materials and processes constituting the collective, often unspectacular labor that sustains social movements...
- As Susan Leigh Star put it, “Feminist, antiracist, and multicultural theory, and our collective experience in these domains is one of the richest places for which to understand these core problems in information systems design: how to preserve the integrity of information without a priori standardization and its attendant violence.”
- > something to keep in mind while making the templates ;)
- having thoughts that it could be exciting to focus in on this difficulty in the work we do, it feels aparent in all levels - our collaboration, server set up, documentation, publishing - how to organise together while keeping a space for emergent possibilities. thinking about options to hide, conceal, alter, shift, chance encounter .. getting too poetic here. (not at all!!)
- > we like it
- > "poetry is not a luxury" :)
- > how to make a system that needs to be functional and allowing for errors? functional while we are not there
- > also because we will not be around all the time when it is used
- > would be nice to embrace this friction between system and sudden alterations/errors/etc
amy's thoughts about intersectional feminism?
- Kimberlé Crenshaw on Intersectionality: https://www.youtube.com/watch?v=ViDtnfQ9FHc
- and reading from bell hooks, Ain't I a Woman The Combahee River Collective published "A Black Feminist Statement” to explain their group’s focus. In their opening paragraph they declared:
-
-
-
- We are a collective of black feminists who have been
- meeting together since 1974. During that time we have
- been involved in the process of defining and clarifying our
- politics, while at the same time doing political work within
- our own group and in coalition with other progressive
- organizations and movements. The most general state
- ment of our politics at the present time would be that we
- are actively committed to struggling against racial, sexual,
- heterosexual, and class oppression and see as our particular
- task the development of integrated analysis and practice
- based upon the fact that the major systems of oppression
-
are interlocking. The synthesis of these oppressions
-
creates the conditions of our lives. As black women we see
- black feminism as the logical political movement to combat
-
the manifold and simultaneous oppression that all women
-
of color face.
- nb. you cannot be racist and a feminist. you cannot be anti-abortion and a feminist. you cannot be capitalist and a feminist. if you are a feminist you cannot condone or participate in one form of oppression while fighting another.
- > who has the authority to say what is feminism? You're still telling someone how to behave if you do so... bell hooks says it's important to keep saying what feminism is, because now people are forgetting, young women say they are not feminist because that is too intense. There is a danger there I think too. Being an educator is having authority yes, but don't you think it's ok when those who want to learn grant it to you?
- > Concerned about the glorification of feminism... as if feminism cannot go wrong. Some people are feminist and capitalist, these do not go against each other, there are multiple feminisms, and they contradict each other The way I understand it: capitalism is anti-feminist because it exists through the oppression and exploitation of someone else (and possibly yourself) Feminism is against all form of oppression and exploitation. bell hooks said this phrase 'you cannot be anti-abortion and feminist' because to disallow another persons choice over their own body (particularly female reproduction) is an oppression to that person. That is an anti-feminist act.
- > It's also important to not make feminism a commodity, to not only use it as a label.
- > side note, on Dutch colonialism: https://www.youtube.com/watch?v=aMwgzK9LGeM (this can be home work ;))
amy's links for permacomputing
Manetta's thoughts about feminist publishing:
- "One publishes to find comrades"
- { Andre Breton—Eva Weinmayr }
- "Publications are “not necessarily the end product trying to convince anyone of anything” but rather they are about “working towards establishing conditions for the co-production of meaning”47"
- { Eva Weinmayr—[page with footnote 47 is blocked by google books]—Art, Politics and the Pamphleteer, by Jane Torney and Gillian Whiteley }
+ Something that is on my mind these days is to think about the overlap and difference between:
"networked publishing" {?}
(blurring a technical understanding of networks with a social one),
"promiscuous publishing" { Constant—Femke Snelting https://constantvzw.org/wefts/webpublications.en.html }
-
- “A promiscuous publication is NOT like parallel, hybrid, or cross-media publishing. It is a multi-headed and polycentric form of making public. It enjoys its various forms, and embraces their idiosyncracies. As a multi-headed publication it is NOT obsessed with providing uniform outcomes across diverse media. Having many centers, it can produce new focal points and obfuscate its origins. It explores playfully a spectral diversity with sibling outcomes and bastard children that operate out of sync or tune.” (Christoph Haag, make make do in: The Techno-Galactic Guide to Software Observation, 2016)
(where inputs and outputs are processed by multiplicity of tools and processes),
and "resonant publishing" { ? }
(where editorial roles are blurred + publishing happens while-we-go)...
And thoughts about feminist infrastructure, from Underneath and on the sidelines: Sustaining feminist infrastructures using speculative fiction by Spideralex:
- "Feminist infrastructure is similar to the community infrastructure outlined above, but it comes from other places and has other motivations."
- "“adequate technology and also appropriate, copied, obtained. [...] describes those technologies best suited to the environmental, cultural and economic context; requiring few resources; implying the least costs; with a low environmental impact; low levels of maintenance; created using local skills, tools and materials; and that can be locally repaired, modified and transformed. At the end of the day, which community does not need technology to be efficient, understandable and adapted to its own environmental, cultural and economic context?”"
- { De las tecnologías apropiadas a las Tecnologías Re-Apropiadas, by Elleflâne, Soberanía Tecnológica, Volumen 2, 2018, Available at: https://www.ritimo.org/IMG/pdf/sobtech2-es-with-covers-web-150dpi-2018-01-13-v2.pdf }
-
https://iterations.space/uploads/iterations-spideralex-underneath-and-on-the-sidelines.pdf
And about (intersectional, even though this word is not used) feminism by Susan Leigh Star in Misplaced Concretism and Concrete Situations: Feminism, Method, and Information Technology (1994): (this author also cited in first book I brought in)
- "Thus we evolved the deconstruction of gender, the centering of gender/sexual ambiguity and multiplicity, the fight for erasure of gender differences under some circumstances, the interlocking nature of race, class, and gender oppression, and the honoring of historical and cultural traditions of masculinity and femininity in various ethnic cultures:
all at once
.
- I hold that it is the all at once-ness that is at the core of feminist survival, and as a consequence at the core of our relationship to science and technology. The power to hold multiple, contradictory views in a moral collective (?) is necessary in shaping the divergence between Big Brother and a positive, cyborg-inhabited multiverse. One way to think of this is in understanding feminism as a method and as a methodology. In this sense, only methods—not positions, systems, or artifacts—have a chance to go
all the way
."
- > feminism as method and methodology, not as system or artifacts
- > there is friction with feminism as method too, in the way that a method is something that you generalise in order to re-use it. Does this mean that a method can be used regardless of what context?
- > dictionary definition of method: "a particular procedure to approaching something, especially an established or systematic one"
- > this sounds like a system of indoctrination.......
- > resonates with sara ahmed's quote on repetition
- > can the method be mutable?
[we are reading very fast from here on]
... she continues to further unpack feminism as a method, which is a snippet that i encountered through the Vernaculars come to matter book where Michael Murtaugh referred to it in his text on vernacular software. So again the following words are from Susan Leigh Star:
- "Feminism as a method thus creates robust findings through the articulation of multiplicity, contradiction, and partiality, while standing in a politically situated, moral collective."
- > what the hell is a moral collective?
- "Considered formally, then, the attributes of feminist method that are particularly important are:
- 1. experiential and collective basis;
- 2. processual nature;
- 3. honoring contradiction and partialness;
- 4. situated historicity with great attention to detail and specificity; and
- 5. the simultaneous application of all of these points."
- > this list can be very helpful when we come back to making our approach to the infra
- > for these specificities to be changeable too, it's important to leave that space for the others
cristina's links to discuss in the meeting
- on feminist publishing
- not an example per se, but this conference i bookmarked a year ago https://www.feministandaccessiblepublishingandtechnology.com/p/schedule-of-events.html
- > a lot of it is very US based
- > it's not super feminist in the sense that it chose only famous people to speak
- > but it can be a good reminder to step out and bring a experimental mode of publishing again
- > i tuned too much towards traditional forms of publishing while thinking of feminist publishing
- > and seeing this made me think of publishing again in a it more expanded way (making bots, publishing on federated media, ...)
- on intersectional feminism
- Lola Olufemi - Feminism, Interrupte
- "I knew I had to choose what kind of feminism would form the
- basis of my understanding. My experiences had taught me that
- nothing should be taken for granted; there was no coherence
- or consensus on accepted principles in the feminist movement.
- If anything, it was defined by conflict. The decision to practice
- a radical feminism was crucial because I became aware of how
- it separated those wanting to create a new vision for the world
- from those merely wanting to climb the rungs of power."
- "‘Feminist work is justice work.’ When I heard this phrase at a
- university event, something changed. It came to define how
- I think about feminism and its goals. The phrase stuck with
- me because it was different to what I saw in the mainstream.
- ‘Feminist work is justice work’ proposes that feminism has a
- purpose beyond just highlighting the ways women are ‘discrimi-
- nated’ against. It taught me that feminism’s task is to remedy the
- consequences of gendered oppression through organising and
- by proposing new ways to think about our potential as human
- beings. For me, ‘justice work’ involves reimagining the world we
-
live in and working towards a liberated future for all. But how
- do we begin to reimagine? We refuse to remain silent about how
- our lives are limited by heterosexist, racist, capitalist patriarchy.
- We invest in a political education that seeks above all, to make
- injustice impossible to ignore. We ensure that nobody is allowed
- to suffer in silence, that no one’s pain goes unseen."
- "Cultural conversations about feminism have a purpose; they
- can do the work of bringing the problem to attention. Artistic
- creations provide an avenue for reflection on the dynamics that
- govern our lives. They bolster what Gramsci called ‘optimism
- of the will,’ having the courage to believe that a more dignified
- world is possible, reinvigorating movements that have lost their
- energy. Pop culture and mainstream narratives can democratise
-
feminist theory, remove it from the realm of the academic and
-
shine a light on important grassroots struggle, reminding us that
-
feminism belongs to no one."
- "Imagine this: A world where the quality of your life is not
- determined by how much money you have. You do not have
- to sell your labour to survive. Labour is not tied to capitalism,
- profit or wage. Borders do not exist; we are free to move without
- consequence. The nuclear family does not exist; children
- are raised collectively; reproduction takes on new meanings.
- In this world, the way we carry out dull domestic labour is
- transformed and nobody is forced to rely on their partner eco-
- nomically to survive. The principles of transformative justice
- are used to rectify harm. Critical and comprehensive sex edu-
- cation exists for all from an early age. We are liberated from
- the gender binary’s strangling grip and the demands it places
- on our bodies. Sex work does not exist because work does not
- exist. Education and transport are free, from cradle to grave. We
- are forced to reckon with and rectify histories of imperialism,
- colonial exploitation, and warfare collectively. We have freedom
- to, not just freedom from. Specialist mental health services and
- community care are integral to our societies. There is no ‘state’
- as we know it; nobody dies in ‘suspicious circumstances’ at its
- hands; no person has to navigate sexism, racism, disabilism or
- homophobia to survive. Detention centres do not exist. Prisons
- do not exist, nor do the police. The military and their weapons
- are disbanded across nations. Resources are reorganised to ade-
- quately address climate catastrophe. No person is without a
- home or loving community. We love one another, without pos-
- session or exploitation or extraction. We all have enough to eat
- well due to redistribution of wealth and resource. We all have
- the means and the environment to make art, if we so wish. All
- cultural gatekeepers are destroyed.
- Now imagine this vision not as utopian, but as something well
- within our reach.
- The vision I have presented has its limitations. There are gaps,
- contradictions and things that have been omitted. But without
- the capacity to imagine in this way, feminism is purposeless. Let
- us fight over a vision because our demands must spring from
- somewhere. This is the task handed down to us and we must
- approach it with the urgency it demands. We must rise to the
- challenge with a revolutionary and collective sense of determi-
- nation; knowing that if we do not see this world, someone else
- will."
- > resonates with spideralex' workshop on speculative technologies
- > It would be nice to do a speculative technologies workshop together (next Thursday evening session?) to imagine together a feminist publishing infrastructure. What features do we want it to have? How would it work in relation to our bodies? We could use drawing as a way to visualise our ideas.
[server time now!!]
STEP 1
$ sudo nano /etc/ssh/sshd_config
- > uncomment #Port 22
- > replace 22 with 1508 (arbitrary number)
- > change it
$ sudo service --status-all
- > shows all the services it has running
- > + shows that it's running, - is not running
$ sudo service ssh start
Now from the laptop:
$ ssh mb@rosa
> returns: "ssh: connect to host rosa port 22: Connection refused"
but!
$ ssh mb@rosa.local -p 1508
> works
STEP 2
Opening the ports on the router
Log into the router. On the browser: http://192.168.178.1/
We opened port 1508 on the router and mapped it to rosa's port 1508.
NOW
We prepare the "friend" account for Roel
so he can login to rosa for the
STEP 3
$ cd /etc/nginx/sites-available
make copy of an existing config file:
$ sudo cp radio.poel.casa.conf rosa.poel.casa.conf
make a symlink between this file above and its omolog in sites-enabled:
$ sudo ln -s ../sites-available/rosa.poel.casa.conf .
edit the file:
$ sudo nano rosa.poel.casa.conf
- server {
- listen 80;
- server_name rosa.poel.casa rosa.poel.local;
- return 301 https://$server_name$request_uri; #will always redirect http to https
- }
- server{
- listen 443 ssl;
- server_name rosa.poel.casa rosa.poel.local;
- ssl_certificate /etc/letsencrypt/live/poel.casa/fullchain.pem; #these certify that your server is who it says it is; ready for the handshake
- ssl_certificate_key /etc/letsencrypt/live/poel.casa/privkey.pem;
- location / {
- proxy_pass http://192.168.178.58; #the ip address of the rosa machine
- }
- }
$ sudo nginx -t
$ sudo service nginx reload
https://rosa.poel.casa/ works!
But we don't have a web server running on Rosa yet ;).
STEP 4
We need to install nginx on the rosa server!
$ sudo apt install nginx
$ sudo systemctl status nginx
it runs!
We will make a small web page for Rosa now.
$ cd /var/www/html
$ sudo nano index.html
And now we change permission of the /var/www/html folder, so we all can write in this folder
$ sudo chmod -R g+w /var/www/html
$ sudo chown -R www-data:www-data /var/www/html
And we add ourselves to the www-data group, so we can all edit the page.
$ sudo addgroup USERNAME www-data
Rosa has a web page!!
https://rosa.poel.casa/
STEP 5
Close the laptop!
STEP 6 (next day)
Port 1508 does not work anymore:
$ ssh user@rosa -p 1508
returns: "ssh: connect to host rosa port 1508: Connection refused"
It seems that the ssh service is not started after a reboot.
Apparantly, debian runs two ssh services: one for handling general ssh sessions, and another one for custom configurations of the ssh connections. This is made like this, so you can restart the ssh service without loosing your ssh session. Also, when you have errors in your ssh config file, this means that you still can ssh into your machine... (if there would have been one one ssh service you would have lost all access to the machine).
To enable this, run:
$ sudo systemctl enable ssh
...
Hmm, when trying to use the port 1508 now, it returns: "ssh_exchange_identification: read: Connection reset by peer"
And with the default port 22 is returns: "ssh: connect to host rosa port 22: Connection refused"
...
An online source advices to reboot Rosa.
https://phoenixnap.com/kb/fix-connection-reset-by-peer-ssh-error
but...
$ ssh user@rosa -p 1508
ssh: connect to host rosa port 1508: Connection refused
$ ssh user@rosa
works again, so it seems that the "enable" command did not work.
Another attempt: maybe it helps to first start the service... and then enable it?
$ sudo service ssh start
$ sudo systemctl enable ssh
$ sudo reboot
No.
So.... how can we start the ssh service when we reboot Rosa?
...
Maybe these logs can help us out...
$ tail -f /var/log/auth.log | grep ssh
When keeping that open in a second terminal... and log out from the first terminal, and trying to log in again using port 1508...
The terminal returns: "ssh_exchange_identification: read: Connection reset by peer"
The log returns: "fatal: Missing privilege separation directory: /run/sshd"
Following this: http://realtechtalk.com/Linux_Ubuntu_Debian_Missing_privilege_separation_directory_varrunsshd-2236-articles
$ mkdir -p /run/sshd
Would make this directory
$ ssh user@rosa -p 1508
Oh it works now!
STEP 6 -- AGAIN
On March 10 we bumped into the same error. Suddenly we could not login with ssh anymore, as the ssh.service had stopped running. After starting it, we ended up in the same loop as above... Once someone opened a second ssh connection to rosa, the ssh configs somehow got reverted. All ssh connections are blocked, both on port 22 and 1508... So i did a manual reboot by unplugging and replugging rosa.
I searched again online to see if there are more clues out there why this happens, and found this, describing exactly our situation: https://unix.stackexchange.com/questions/675370/why-ssh-service-doesn-t-start-automatically-during-boot-despite-being-enabled-by
Following this reply to the first answer, might work for us too:
- "Indeed, there is a ssh.socket unit implemented, with a line Conflicts=ssh.service inside the definition file. So I disabled this unit, rebooted, then my sshd.service started automatically as expected. Thanks for pointing me to the culprit."
But hmm... what does it mean to "disable this unit"...
Let's go back to the default port 22.....
$ sudo nano /etc/ssh/sshd_config
Comment out the line: Port 1508
Save the file.
Reboot the server.
STEP 7
Disable root login
$ sudo vim /etc/ssh/sshd_config
PermitRootLogin no
$ sudo systemctl restart ssh
STEP 8
resolve the locales error
https://discuss.freedombox.org/t/solved-pam-env-cron-session-unable-to-open-env-file-etc-default-locale-no-such-file-or-directory/1088/2
$ sudo apt policy locales
$ sudo apt install locales
"Locales are a framework to switch between multiple languages and allow users to use their language, country, characters, collation order, date and time, etc. Make sure you set locales generating UTF-8 locales. Other character sets can be set for backwards compatibility with older systems and software."
https://www.cyberciti.biz/faq/perl-warning-setting-locale-failed-in-debian-ubuntu/
$ locale
To set the locale to US English and UTF-8
$ sudo locale-gen en_US.UTF-8
This seem to have resolved it.
Session 3 February
think about our questions:
- what kind of publishing infrastructure are we making?
- are we starting from scratch or from the middle (by using something that we already have, or that already exists)?
-
-
-
- what are the options in case we want to use something we have?
- pad2pdf/octomode?
- multifeeder... (maybe, what we're working on that for the newsletter now)
- how strict do we want the template to be?
-
-
-
- what should the template include?
- would it gather raw or selected documentation?
- who does it speak to? other self-organised groups
- what do we want to 'publish', for who?
-
-
-
- from the application, it was mentioned that the building of a network is an important element. Do we want to continue with this?
- if the public is small organisations that want to work with these questions, how can we reach them in the best way?
- is it priorily about knowledge sharing?
- if we produce the content of the Varia chapter during the event, how can we do this?
- can we prepare activities that could generate material for the publication?
- how can we continue with the idea of "resonant publishing"?
- how does the aspect of travelling influece the publication?
-
-
-
- can we activate cross-linking between chapters with the publishing system?
- how does the travelling server relate to the idea of resonant publishing?
- do we want music?
- what are we doing on the 25th and 26th March? what activity are we hosting? for who?
-
-
-
- workshops to explore feminist publishing infrastructure
- turn the small moments we have into larger moments in the 25th and 26th, ie. the lecture message
- 'we started doing this and then we met this'
- base our workshops around the narrative of the server
- another thing we could do is to annotate the feminist server manifesto together
- feminist server
- feminist documentation
- feminist content
- feminist publishing
- turning the server into an oracle? less linear more playfull?
-
https://solarpunk.cool/zines/map-is-the-territory/cast-the-circle.html
- what is the difference between a feminist server and a shared/community server?
-
-
-
- taking care of feminist digital material
- language matters
- the identities who take care
- syster server who does not apologise
-
https://iterations.space/uploads/iterations-spideralex-underneath-and-on-the-sidelines.pdf
- shared admin ?
- what is resonant publishing?
- how can you publish from the middle?
- how can you publish a process/conversation?
- how is this a feminist practice?
- why do you publish? and for whom?
- the act of listening and sending out information? knowledge sharing
- a re-edit of something that is out there, is that publishing in the middle?