split the newsletter repo

This commit is contained in:
vitrinekast
2025-02-17 14:50:50 +01:00
commit ea516e2474
65 changed files with 3352 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
dist
venv

59
README.md Normal file
View File

@ -0,0 +1,59 @@
# README.md
### Installation
Create a virtual python environment using ` python -m venv venv`
Activate the virtual environment using `source venv/bin/activate`
Install the packages using `pip install -r requirements.txt`
### Running
Compile the content into a static site using
```
python app.py
```
This creates the "dist" directory, with all of the HTML in there.
At the moment, `dist` is part of the `.gitignore`!
### Writing Content
Within the `content` directory, you can create/edit markdown files. When compiling the markdown content, `app.py` will look for jinja templates in the `templates` directory. If the markdown file is in the root of `content`, it will try to load a template with the same filename as the markdown file. For instance, `about.md` will look for `about.jinja`.
If the markdown file is in a subdirectory, it will look for a template with the same name as the subdirectory. At the moment, there is no functionality for deep nested folders. So, `recipes/tomato-soup.md` wants `recipes.jinja`. If the template does not exist, the default template is `post.jinja`.
The project uses [Jinja](https://jinja.palletsprojects.com/), which allows for extending templates, using variables, looping trough variables, and other funky features!
Additionally, `component-inventory.csv` is loaded as a dataset.
### Transclusion
You'll be able to transclude one markdown file into another, by applying the following syntax:
```MARKDOWN
{! path-to-file.md !}
```
The transclusion package also allows for transcluding specific lines:
```MARKDOWN
{! path-to-file.md!lines=1 3 8-10 2}
```
In the example above, it would read the file and include the lines 1, 3, 8, 9, 10, 2.
### Metadata
Metadata can be applied to markdown files using FrontMatters YAML. The metadata is accessable in the jinja tempaltes using `page.{metadata}`. In the example below, this could be, `page.title`.
```MARKDOWN
---
title: Capacitors
type: Capacitor
valueSymbol: unf
description: This is the description
---
```
### Assets
At the moment, the `src/assets` directory is copied to the `dist` folder, to apply CSS.

278
app.py Normal file
View File

@ -0,0 +1,278 @@
import os
from pathlib import Path
import shutil
import csv
import re
from datetime import datetime
from jinja2 import Environment, PackageLoader, select_autoescape
import frontmatter
from slugify import slugify
import pypandoc
import xml.etree.ElementTree as ET
# TODO make newsletter URL's absolute to klank.school
env = Environment(
loader=PackageLoader("src"),
autoescape=select_autoescape()
)
CONTENT_D = os.path.abspath("src/content")
OUTPUT_D = "dist"
OUT_ASSETS = "dist/assets"
SRC_ASSETS = "src/assets"
documents = {}
now = datetime.now()
# Utils
def getParam(params, index):
if len(params) > index:
return params[index]
else:
return False
# jinja filter that can list documents
def listDocuments(params):
param = params.split(" ")
template = env.select_template(["snippets/list-documents.jinja"])
html = template.render(documents=documents, layout=param[0], type=param[1])
return html
# jinja filter that can list events
def listEvents(params):
param = params.split(" ")
tag = getParam(param, 1)
if "events" not in documents:
return ""
events = []
if tag:
for event in documents["events"]:
if "tags" in event:
if tag in event["tags"]:
events.append(event)
else:
events = documents["events"]
template = env.select_template(["snippets/list-events.jinja"])
html = template.render(events=events, filter=param[0], tag=getParam(param, 1))
return html
# jinja filter to make a slug out of a stirng
def slugify_filter(value):
return slugify(value)
# jinja filter for date formatting
def prettydate(value, format='%d/%m/%Y'):
return datetime.fromtimestamp(int(value)).strftime(format)
# jinja filter to replace shortcodes in HTML
def shortcode_filter(value):
shortcode_callbacks = {
"show": listDocuments,
"events": listEvents
}
def shortcode_replacer(match):
shortcode_name = match.group(1).strip()
param = match.group(2).strip()
if shortcode_name in shortcode_callbacks:
return shortcode_callbacks[shortcode_name](param)
return match.group(0)
pattern = re.compile(r"{{\s*(\w+)\s+([^{}]+?)\s*}}")
return pattern.sub(shortcode_replacer, value)
env.filters["shortcode"] = shortcode_filter
env.filters["slugify"] = slugify_filter
env.filters["prettydate"] = prettydate
# translate a single file into HTML
def render_single_file(page, path, dist, name = False):
name = Path(path).stem
template = env.select_template([f"{name}.jinja", "index.jinja"])
html = template.render(documents=documents, page=page, name=name)
if not os.path.exists(dist):
os.makedirs(dist)
with open(f"{dist}/{name}.html", "w", encoding="utf-8") as output_file:
output_file.write(html)
# find a pre-rendered page
def get_existing_page(path, slug):
stem = Path(path).stem;
folder = os.path.basename(os.path.dirname(path))
if stem == "index" and folder != "content":
folder = Path(path).parent.parent.name
if slug in documents:
return documents[slug]
if folder == "content":
return False
for doc in documents[folder]:
if doc["slug"] == slug:
return doc
return False
# build a slug including the folder
def get_slug(path, folder, filename):
if folder == "content":
return slugify(filename)
else:
return slugify(f"{folder}/{filename}")
# compile markdown into cited HTML
def get_page_data(path, isPreload=False):
filename = Path(path).stem
folder = os.path.basename(os.path.dirname(path))
slug = get_slug(path, folder, filename)
prerendered = get_existing_page(path, slug)
if prerendered:
return prerendered
page = frontmatter.load(path)
page['slug'] = slug
page.filename = filename
page.folder = folder
latex = page.content
if "start_datetime" in page:
page["has_passed"] = datetime.fromtimestamp(page["start_datetime"]) < now
if "`include" in page.content:
latex = pypandoc.convert_text(
page.content,
to='md',
format='md',
extra_args=[
"-N",
"--section-divs",
"--lua-filter=include-files.lua"
])
page.body = pypandoc.convert_text(
latex,
to="html",
format="md",
extra_args=[
"-N",
"--section-divs",
"--citeproc"
])
return page
# Do stuff to the circuit's pcb
def save_circuit_svg(filepath, outpath, name):
tree = ET.parse(filepath)
root = tree.getroot()
# Extract current width/height (in pixels)
width_px = float(root.get("width", 0))
height_px = float(root.get("height", 0))
DPI = 300
# Convert px to mm
width_mm = (width_px * 25.4) / DPI > 15
height_mm = (height_px * 25.4) / DPI
# Set new width/height in mm
root.set("width", f"{width_px}mm")
root.set("height", f"{height_px}mm")
os.makedirs(outpath, exist_ok = True)
tree.write(f"{outpath}/{name}")
# combine HTML & data with Jinja templates
def render_posts(path, output_path=OUTPUT_D):
name = Path(path).stem
for filename in os.listdir(path):
file_path = os.path.join(path, filename)
if filename.endswith(".md"):
page = get_page_data(file_path)
render_single_file(page, file_path, f"{output_path}/{name}", name)
elif os.path.isdir(file_path):
render_posts(file_path, f"{output_path}/{name}")
elif filename.endswith(".svg"):
save_circuit_svg(file_path, f"{output_path}/{name}", filename)
elif Path(filename).suffix in [".jpeg", ".mp3", ".jpg", ".png"]:
shutil.copyfile(file_path, f"{output_path}/{name}/{filename}")
else:
print("doing nothing with", filename)
# Pre-load before compiling
def preload_documents():
print("preload any needed data")
documents["meta"] = {"now": now.strftime("%d %B %Y")}
for subdir in os.listdir(CONTENT_D):
path = os.path.join(CONTENT_D, subdir)
if os.path.isdir(path):
name = Path(path).stem
documents.setdefault(name, [])
for filename in sorted(os.listdir(path)):
cpath = os.path.join(path, filename)
if filename.endswith(".md"):
documents[name].append(get_page_data(cpath, isPreload=True))
elif os.path.isdir(cpath):
documents[name].append(get_page_data(os.path.join(cpath, "index.md"), isPreload=True))
elif Path(path).suffix == '.md':
documents[Path(path).stem] = get_page_data(path, isPreload=True)
def copy_assets():
if os.path.exists(OUT_ASSETS):
shutil.rmtree(OUT_ASSETS)
shutil.copytree(SRC_ASSETS, OUT_ASSETS)
def main():
preload_documents()
for subdir in os.listdir(CONTENT_D):
path = os.path.join(CONTENT_D, subdir)
if os.path.isdir(path):
print("rendering posts", path)
render_posts(path)
elif Path(path).suffix == '.md':
render_single_file(get_page_data(path), path, OUTPUT_D)
elif Path(path).suffix in [".csv"]:
print("not compiling this file!")
copy_assets()
main()

65
get_events.py Normal file
View File

@ -0,0 +1,65 @@
import os
from pathlib import Path
import requests
import frontmatter
def get_API(URL):
try:
response = requests.get(URL)
response.raise_for_status()
return response.json()
except requests.exceptoins.RequestException as e:
raise Exception(f"Failed getting the API response: {e}")
def create_calendar_item(item, filepath):
print("i will create an item for", item)
try:
details = get_API("https://calendar.klank.school/api/event/detail/" + item['slug'])
print(details)
post = frontmatter.Post(content=details["description"])
for key in details:
post[key] = details[key]
with open(filepath, 'wb') as f:
frontmatter.dump(post, f)
print(f"Created file: {filepath}")
except Exception as e:
print(f"An error occurred while getting the calendar events: {str(e)}")
exit(1)
def get_calendar_events():
Path("src/content/events").mkdir(parents=True, exist_ok=True)
# Also get non unrepair events.
try:
items = get_API("https://calendar.klank.school/api/events?start=-1")
for item in items:
filename = f"{item['slug']}.md"
filepath = os.path.join("src/content/events", filename)
if os.path.isfile(filepath):
print("oh it already exists")
else:
print("did not store this yet")
create_calendar_item(item, filepath)
except Exception as e:
print(f"An error occurred while getting the calendar events: {str(e)}")
exit(1)
def main():
get_calendar_events()
main()

11
requirements.txt Normal file
View File

@ -0,0 +1,11 @@
importlib_metadata==8.5.0
Jinja2==3.1.4
Markdown==3.7
MarkupSafe==3.0.2
python-frontmatter==1.1.0
python-slugify==8.0.4
PyYAML==5.1
requests==2.32.3
text-unidecode==1.3
zipp==3.21.0
pypandoc==1.15

17
src/assets/app.js Normal file
View File

@ -0,0 +1,17 @@
const dialog = document.querySelector("dialog");
const closeDialog = (e) => {
e.stopPropagation();
console.log("close")
dialog.close();
document.body.removeEventListener("click", closeDialog);
}
const showLightbox = (e) => {
e.preventDefault();
e.stopPropagation();
const img = dialog.querySelector("img");
img.src = e.currentTarget.src;
img.alt = e.currentTarget.alt;
dialog.querySelector("p").textContent = e.currentTarget.alt;
dialog.showModal();
document.body.addEventListener("click", closeDialog, false);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
src/assets/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
src/assets/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
src/assets/pwa-192x192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
src/assets/pwa-512x512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,17 @@
* {
box-sizing: border-box;
}
body,
html {
margin: 0 0;
padding: 0 0;
width: 100%;
height: 100%;
}
article:not(article article) {
max-width: var(--article-w);
margin: 0 auto;
padding: 16px;
}

View File

@ -0,0 +1,5 @@
@media screen {
[template-type="front"] {
display: none;
}
}

View File

@ -0,0 +1,79 @@
:root {
--footnote-w: 170px;
--article-w: 800px;
--main-w: calc(1200px - 2rem);
--img-offset: -5ch;
--background: floralwhite;
--text: black;
--accent: orange;
--gap: 2rem;
font-size: 11px;
}
@media (prefers-color-scheme: dark) {
body {
--background: #1b1b1b;
--text: white;
--background-invert: teal;
--text-invert: black;
}
}
body {
background-color: var(--background);
color: var(--text);
}
.m-0 {
margin: 0 0;
}
.d-print,
.d-web {
display: none;
}
@media screen {
.d-web {
display: inline-block;
}
}
@media print {
.d-print {
display: inline-block;
}
}
.sample {
border-radius: 20px;
display: inline-flex;
gap: .25rem;
padding: 4px;
background-color: lightgrey;
transition: .2s linera;
cursor: pointer;
align-items: center;
}
.sample .icon {
display: inline-block;
width: 12px;
height: 12px;
}
.sample:not([active]) .pause {
display: none;
}
.sample[active] .play {
display: none;
}
.sample label {
line-height: 100%;
}
.sample[active], .sample:hover {
background-color: var(--accent);
}

View File

@ -0,0 +1,111 @@
body {
font-family: "Fira Sans";
font-size: 16px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0 0;
font-weight: bold;
}
[template-type="front"] h1 {
font-size: 48px;
}
h1 {
font-weight: bold;
font-size: 32px;
margin: 0 0;
}
h1,
h2,
h3 {
line-height: 125%;
}
header.sm h2 {
font-weight: normal;
}
article header h2 {
font-weight:normal;
}
h3 {
}
article {
line-height: 1.5;
}
li p {
margin: 0 0;
}
article h2, article h3, article h4, article h5 {
margin-top: .5rem;
}
a,
a[visited] {
color: var(--accent);
}
a p {
color: var(--text);
}
ul {
padding-left: 2ch;
}
figure {
margin: 2rem 0;
}
article img {
max-width: 100%;
}
ins {
font-family: monospace;
text-decoration: none;
font-size: 70%;
background: color-mix(in srgb, LawnGreen 15%, transparent);
padding: 4px;
vertical-align: middle;
}
ins p {
display: inline;
}
sup li, article li:has(.footnote-back), li[count] {
list-style: none;
}
ins::before {
content: "+ ";
color: LawnGreen;
font-weight: bold;
}
[template-type="front"] h2 {
font-size: 20px;
font-style: italic;
font-weight: light;
}
sup:has(li),
article li:has(.footnote-back),
aside, figcaption,
.footnote {
font-family: monospace;
font-size: 80%;
line-height: 1.5;
}
.csl-entry {
margin-top: 1rem;
}
sup li p, article li:has(.footnote-back) p {
margin-top: 0;
}
p {
break-inside: avoid;
}

View File

@ -0,0 +1,80 @@
---
boost:
- https://newsmast.community/users/tvandradio
description: <p>Radio WORM presents, live and direct from UBIK, everything you never
realised you needed to hear on the radio…for 25 hours straight.</p><p>The 25 Hour
Radio Relay is an all-day, all-night mix of radiomakers and sound artists of all
descriptions, sharing old and new work, DIY experiments and high-tech performances
for your collective listening pleasure.</p><p>Join us in person or listen online
from 5pm on Saturday 25 January as we pass the baton from performers to poets to
gameshow hosts to improv musicians to font designers to volkskeuken to ???, all
the way through to 6pm on Sunday 26 January.</p><p>Free entry, no booking required,
camp out with us for as long as you can handle!</p><p>BYOP (bring your own pillow,
yoga mat, camping mattress…)</p>
end_datetime: 1737910800
id: 27
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 901
name: 25 Hour Radio Relay
size: 310303
url: e3146e26dbf6a3e77600b885da48ebda.jpg
width: 1000
multidate: true
next: null
online_locations: ''
parent: null
parentId: null
place:
address: Boomgaardsstraat 71, 3012 XA Rotterdam
id: 5
latitude: null
longitude: null
name: Worm
plain_description: 'Radio WORM presents, live and direct from UBIK, everything you
never realised
you needed to hear on the radio…for 25 hours straight.
The 25 Hour Radio Relay is an all-day, all-night mix of radiomakers and sound
artists of all descriptions, sharing old and new work, DIY experiments and
high-tech performances for your collective listening pleasure.
Join us in person or listen online from 5pm on Saturday 25 January as we pass
the baton from performers to poets to gameshow hosts to improv musicians to font
designers to volkskeuken to ???, all the way through to 6pm on Sunday 26
January.
Free entry, no booking required, camp out with us for as long as you can handle!
BYOP (bring your own pillow, yoga mat, camping mattress…)'
prev: 3rd-klankschool-dagandavond
recurrent: null
resources: []
slug: 25-hour-radio-relay
start_datetime: 1737820800
tags:
- performances
- radio
- relay
- worm
title: 25 Hour Radio Relay
---
<p>Radio WORM presents, live and direct from UBIK, everything you never realised you needed to hear on the radio…for 25 hours straight.</p><p>The 25 Hour Radio Relay is an all-day, all-night mix of radiomakers and sound artists of all descriptions, sharing old and new work, DIY experiments and high-tech performances for your collective listening pleasure.</p><p>Join us in person or listen online from 5pm on Saturday 25 January as we pass the baton from performers to poets to gameshow hosts to improv musicians to font designers to volkskeuken to ???, all the way through to 6pm on Sunday 26 January.</p><p>Free entry, no booking required, camp out with us for as long as you can handle!</p><p>BYOP (bring your own pillow, yoga mat, camping mattress…)</p>

View File

@ -0,0 +1,46 @@
---
boost: []
description: <p>Sound performances by </p><ul><li><p>Ardore</p></li></ul><ul><li><p>Dada
Phone &amp; Stephen Kerr &amp; joak &amp; ...</p></li><li><p>TBA!</p></li></ul>
end_datetime: 1737666000
id: 28
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 1698
name: 3rd Klankschool Dag&Avond
size: 251857
url: 79ac9e1617282f521d8027737ed71cbd.jpg
width: 1200
multidate: false
next: 25-hour-radio-relay
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: "Sound performances by\n\n * Ardore\n\n * Dada Phone & Stephen\
\ Kerr & joak & ...\n\n * TBA!"
prev: unrepair-cafe-2
recurrent: null
resources: []
slug: 3rd-klankschool-dagandavond
start_datetime: 1737658800
tags:
- klankschool
- noise
- performances
title: 3rd Klankschool Dag&Avond
---
<p>Sound performances by </p><ul><li><p>Ardore</p></li></ul><ul><li><p>Dada Phone &amp; Stephen Kerr &amp; joak &amp; ...</p></li><li><p>TBA!</p></li></ul>

View File

@ -0,0 +1,49 @@
---
boost: []
description: <p>Improvisation, noise and other performances on the first floor of
Catu:</p><ul><li><p><em> </em>Luis Lopes (guitar) &amp; Johanna Monk (woodwinds,
poetry) &amp; Philipp Ernsting (drums)</p></li><li><p>tell me what I'm seeing </p></li><li><p>TBA!</p></li></ul>
end_datetime: 1739484000
id: 31
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- -0.37
- -0.87
height: 1700
name: 4. avond
size: 551708
url: 829a860a8a7d9c4c28edc06aa551b0ef.jpg
width: 1200
multidate: false
next: null
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: "Improvisation, noise and other performances on the first floor\
\ of Catu:\n\n * Luis Lopes (guitar) & Johanna Monk (woodwinds, poetry) & Philipp\
\ Ernsting\n (drums)\n\n * tell me what I'm seeing\n\n * TBA!"
prev: snackbar-frieda-opening
recurrent: null
resources: []
slug: 4-avond
start_datetime: 1739473200
tags:
- catu
- performances
- noise
- klankschool
title: 4. avond
---
<p>Improvisation, noise and other performances on the first floor of Catu:</p><ul><li><p><em> </em>Luis Lopes (guitar) &amp; Johanna Monk (woodwinds, poetry) &amp; Philipp Ernsting (drums)</p></li><li><p>tell me what I'm seeing </p></li><li><p>TBA!</p></li></ul>

View File

@ -0,0 +1,138 @@
---
boost: []
description: <p><strong>Date:</strong> Friday, 15 November 2024<br><strong>Door:</strong>
19:30h CET<br><strong>Start:</strong> 20:00h CET<br><strong>Entrance:</strong> 5
euro<br><strong>Location:</strong> Varia (Gouwstraat 3, Rotterdam)</p><p><em>November
is home to multiple interventions by </em><a target="_blank" href="https://extratonal.org/"><em>The
Platform For Extratonality</em></a><em>. During this intermediate music event we
welcome QOA and Primeiro, two artists with a tendency to enthrall through elemental
improvisations.</em></p><p><strong>QOA</strong>, is the monikor of Nina Corti, an
experimental electroacoustic musician, sound and visual artist from the Argentine
and Latin American experimental contemporary music scene. Their sound is characterised
by the collage of field recordings in natural environments and their multiple transformations,
combined with spoken word, live sampling, drones, synthesis and frequency rhythms,
creating an extended listening experience. Qoa is part of <strong>AMPLIFY Digital
Arts Initiative</strong> (Amplify D.A.I), international network of artists from
Argentina, Canada, Peru and the UK, supported by Mutek and British Council. This
year they was one of the 8th Latin American artists selected for Nicolas Jaar's
Ladridos project.</p><p><a target="_blank" href="https://qoa.cargo.site/">https://qoa.cargo.site/</a><br><a
target="_blank" href="https://qoaqoa.bandcamp.com/album/sauco-2">https://qoaqoa.bandcamp.com/album/sauco-2</a></p><p><strong>Primeiro</strong>
blends experimental electronics with samples of acoustic instruments and field recordings
made by him, exploring the dynamic relationship between sound and territories. He
develops intricate soundscapes with multiple layers that evoke a sense of tranquility
and meticulous craft. Additionally, he organizes the <strong>Feed the River</strong>
festival, which explores our connection with water bodies as sentient entities requiring
our care and nurturing, and the use of sound to foster meaningful transformative
dialogues.</p><p><em>This event is made possible with the kind support of Popunie
Rotterdam, Stichting Volkskracht, Fonds Podiumkunsten, Gemeente Rotterdam and Stimuleringsfonds
Creatieve Industrie</em></p>
end_datetime: 1731704400
id: 6
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 1
- -0.88
height: 986
name: 'Extratonal Infrastructure #16: QOA en Primeiro'
size: 297245
url: 43abdc1e52982aeb9040888e2a1127c6.jpg
width: 986
multidate: false
next: sounds-of-making-xpub1-presents-protocols-for-collective-performance
online_locations: ''
parent: null
parentId: null
place:
address: Gouwstraat 3, Rotterdam
id: 3
latitude: null
longitude: null
name: Vaira
plain_description: 'Date: Friday, 15 November 2024
Door: 19:30h CET
Start: 20:00h CET
Entrance: 5 euro
Location: Varia (Gouwstraat 3, Rotterdam)
November is home to multiple interventions by The Platform For Extratonality
[https://extratonal.org/]. During this intermediate music event we welcome QOA
and Primeiro, two artists with a tendency to enthrall through elemental
improvisations.
QOA, is the monikor of Nina Corti, an experimental electroacoustic musician,
sound and visual artist from the Argentine and Latin American experimental
contemporary music scene. Their sound is characterised by the collage of field
recordings in natural environments and their multiple transformations, combined
with spoken word, live sampling, drones, synthesis and frequency rhythms,
creating an extended listening experience. Qoa is part of AMPLIFY Digital Arts
Initiative (Amplify D.A.I), international network of artists from Argentina,
Canada, Peru and the UK, supported by Mutek and British Council. This year they
was one of the 8th Latin American artists selected for Nicolas Jaar''s Ladridos
project.
https://qoa.cargo.site/ [https://qoa.cargo.site/]
https://qoaqoa.bandcamp.com/album/sauco-2
[https://qoaqoa.bandcamp.com/album/sauco-2]
Primeiro blends experimental electronics with samples of acoustic instruments
and field recordings made by him, exploring the dynamic relationship between
sound and territories. He develops intricate soundscapes with multiple layers
that evoke a sense of tranquility and meticulous craft. Additionally, he
organizes the Feed the River festival, which explores our connection with water
bodies as sentient entities requiring our care and nurturing, and the use of
sound to foster meaningful transformative dialogues.
This event is made possible with the kind support of Popunie Rotterdam,
Stichting Volkskracht, Fonds Podiumkunsten, Gemeente Rotterdam and
Stimuleringsfonds Creatieve Industrie'
prev: lets-unrepair-things-together-2
recurrent: null
resources: []
slug: extratonal-infrastructure-16-qoa-en-primeiro
start_datetime: 1731697200
tags:
- extratonal
- performances
- primeiro
- qoa
- varia
title: 'Extratonal Infrastructure #16: QOA en Primeiro'
---
<p><strong>Date:</strong> Friday, 15 November 2024<br><strong>Door:</strong> 19:30h CET<br><strong>Start:</strong> 20:00h CET<br><strong>Entrance:</strong> 5 euro<br><strong>Location:</strong> Varia (Gouwstraat 3, Rotterdam)</p><p><em>November is home to multiple interventions by </em><a target="_blank" href="https://extratonal.org/"><em>The Platform For Extratonality</em></a><em>. During this intermediate music event we welcome QOA and Primeiro, two artists with a tendency to enthrall through elemental improvisations.</em></p><p><strong>QOA</strong>, is the monikor of Nina Corti, an experimental electroacoustic musician, sound and visual artist from the Argentine and Latin American experimental contemporary music scene. Their sound is characterised by the collage of field recordings in natural environments and their multiple transformations, combined with spoken word, live sampling, drones, synthesis and frequency rhythms, creating an extended listening experience. Qoa is part of <strong>AMPLIFY Digital Arts Initiative</strong> (Amplify D.A.I), international network of artists from Argentina, Canada, Peru and the UK, supported by Mutek and British Council. This year they was one of the 8th Latin American artists selected for Nicolas Jaar's Ladridos project.</p><p><a target="_blank" href="https://qoa.cargo.site/">https://qoa.cargo.site/</a><br><a target="_blank" href="https://qoaqoa.bandcamp.com/album/sauco-2">https://qoaqoa.bandcamp.com/album/sauco-2</a></p><p><strong>Primeiro</strong> blends experimental electronics with samples of acoustic instruments and field recordings made by him, exploring the dynamic relationship between sound and territories. He develops intricate soundscapes with multiple layers that evoke a sense of tranquility and meticulous craft. Additionally, he organizes the <strong>Feed the River</strong> festival, which explores our connection with water bodies as sentient entities requiring our care and nurturing, and the use of sound to foster meaningful transformative dialogues.</p><p><em>This event is made possible with the kind support of Popunie Rotterdam, Stichting Volkskracht, Fonds Podiumkunsten, Gemeente Rotterdam and Stimuleringsfonds Creatieve Industrie</em></p>

View File

@ -0,0 +1,161 @@
---
boost: []
description: '<p>Date: Saturday, 30 November 2024</p><p>Door: 19:30h CET</p><p>Start:
20:00h CET</p><p>Entrance: 5 euro</p><p>Location: Varia (Gouwstraat 3, Rotterdam)</p><p>Join
us for a new episode in the extratonal infrastructure series - the extra in Rotterdam''s
cultural life. Come and watch three acts that will truly push the boundaries of
conventions through approaches that create unpredictability and contingencies. Be
on time and it is fine!</p><p>Dianaband (Dooho &amp; Wonjung) is an interdisciplinary
artist duo based in Seoul. In their sound performance ''Cats and Paper Boxes'' Dooho
plays with feedback resonance. Through various objects placed between a contact
microphone and mobile speakers, he creates hidden sounds, subtle coincidences, and
unpredictable sound events. Wonjung rides on this tidal wave with the Drawing Synthesizer,
an instrument where ''drawing'' is ''making sound''. Exploring the infinite possibilities
of drawing with paper and pencil, she manages the momentum of the spatial narrative
all around the space.</p><p><a target="_blank" href="https://dianaband.info/">https://dianaband.info/</a></p><p>Vegetable
Wife is from Seoul. She yearns for noise and noise-making beings that escape from
ethics and morality. She tries to strip away the many ideas attached to these sounds,
while simultaneously suturing them with different origins. Her sound exists inside
a tear-and-paste loop through synthesising, collaging, recording and mixing. With
visual artist Jae-hyung Park, this sound is synthesized with video to extend its
scape.</p><p><a target="_blank" href="https://meek-as-a-lamb.github.io/imheeju/">https://meek-as-a-lamb.github.io/imheeju/</a></p><p>Lucija
Gregov is a cellist, improviser, composer and programmer. She has been developing
projects and researching in the fields of classical music, electroacoustic music,
improvisation, experimental music, radio and sound art. Through many interdisciplinary
collaborations, Lucija seeks to push the boundaries of traditional cello playing,
which further extends her interpretation, technique and ideas. Her instrumental
cello practice is the starting point of the sonic exploration, through which, over
time, she disintegrated traditional techniques in order to discover a more personal
and sincere sound aesthetic.</p><p><a target="_blank" href="https://lugregov.com/">https://lugregov.com/</a></p><p>This
event is made possible with the kind support of Popunie Rotterdam, Stichting Volkskracht,
Fonds Podiumkunsten, Gemeente Rotterdam and Stimuleringsfonds Creatieve Industrie.</p>'
end_datetime: 1733004000
id: 14
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 1200
name: 'Extratonal Infrastructure #17: Dianaband, Vegetable Wife with Jae-hyung Park
and Lucija Gregov'
size: 577770
url: c8e7b7851a720187cd4fce798f0405fc.jpg
width: 1200
multidate: false
next: lets-unrepair-things-together-analog-video-edition
online_locations: ''
parent: null
parentId: null
place:
address: Gouwstraat 3, Rotterdam
id: 3
latitude: null
longitude: null
name: Vaira
plain_description: 'Date: Saturday, 30 November 2024
Door: 19:30h CET
Start: 20:00h CET
Entrance: 5 euro
Location: Varia (Gouwstraat 3, Rotterdam)
Join us for a new episode in the extratonal infrastructure series - the extra in
Rotterdam''s cultural life. Come and watch three acts that will truly push the
boundaries of conventions through approaches that create unpredictability and
contingencies. Be on time and it is fine!
Dianaband (Dooho & Wonjung) is an interdisciplinary artist duo based in Seoul.
In their sound performance ''Cats and Paper Boxes'' Dooho plays with feedback
resonance. Through various objects placed between a contact microphone and
mobile speakers, he creates hidden sounds, subtle coincidences, and
unpredictable sound events. Wonjung rides on this tidal wave with the Drawing
Synthesizer, an instrument where ''drawing'' is ''making sound''. Exploring the
infinite possibilities of drawing with paper and pencil, she manages the
momentum of the spatial narrative all around the space.
https://dianaband.info/ [https://dianaband.info/]
Vegetable Wife is from Seoul. She yearns for noise and noise-making beings that
escape from ethics and morality. She tries to strip away the many ideas attached
to these sounds, while simultaneously suturing them with different origins. Her
sound exists inside a tear-and-paste loop through synthesising, collaging,
recording and mixing. With visual artist Jae-hyung Park, this sound is
synthesized with video to extend its scape.
https://meek-as-a-lamb.github.io/imheeju/
[https://meek-as-a-lamb.github.io/imheeju/]
Lucija Gregov is a cellist, improviser, composer and programmer. She has been
developing projects and researching in the fields of classical music,
electroacoustic music, improvisation, experimental music, radio and sound art.
Through many interdisciplinary collaborations, Lucija seeks to push the
boundaries of traditional cello playing, which further extends her
interpretation, technique and ideas. Her instrumental cello practice is the
starting point of the sonic exploration, through which, over time, she
disintegrated traditional techniques in order to discover a more personal and
sincere sound aesthetic.
https://lugregov.com/ [https://lugregov.com/]
This event is made possible with the kind support of Popunie Rotterdam,
Stichting Volkskracht, Fonds Podiumkunsten, Gemeente Rotterdam and
Stimuleringsfonds Creatieve Industrie.'
prev: lets-unrepair-things-together-4
recurrent: null
resources: []
slug: extratonal-infrastructure-17-dianaband-vegetable-wife-with-jae-hyung-park-and-lucija-gregov
start_datetime: 1732993200
tags:
- extratonal
- varia
title: 'Extratonal Infrastructure #17: Dianaband, Vegetable Wife with Jae-hyung Park
and Lucija Gregov'
---
<p>Date: Saturday, 30 November 2024</p><p>Door: 19:30h CET</p><p>Start: 20:00h CET</p><p>Entrance: 5 euro</p><p>Location: Varia (Gouwstraat 3, Rotterdam)</p><p>Join us for a new episode in the extratonal infrastructure series - the extra in Rotterdam's cultural life. Come and watch three acts that will truly push the boundaries of conventions through approaches that create unpredictability and contingencies. Be on time and it is fine!</p><p>Dianaband (Dooho &amp; Wonjung) is an interdisciplinary artist duo based in Seoul. In their sound performance 'Cats and Paper Boxes' Dooho plays with feedback resonance. Through various objects placed between a contact microphone and mobile speakers, he creates hidden sounds, subtle coincidences, and unpredictable sound events. Wonjung rides on this tidal wave with the Drawing Synthesizer, an instrument where 'drawing' is 'making sound'. Exploring the infinite possibilities of drawing with paper and pencil, she manages the momentum of the spatial narrative all around the space.</p><p><a target="_blank" href="https://dianaband.info/">https://dianaband.info/</a></p><p>Vegetable Wife is from Seoul. She yearns for noise and noise-making beings that escape from ethics and morality. She tries to strip away the many ideas attached to these sounds, while simultaneously suturing them with different origins. Her sound exists inside a tear-and-paste loop through synthesising, collaging, recording and mixing. With visual artist Jae-hyung Park, this sound is synthesized with video to extend its scape.</p><p><a target="_blank" href="https://meek-as-a-lamb.github.io/imheeju/">https://meek-as-a-lamb.github.io/imheeju/</a></p><p>Lucija Gregov is a cellist, improviser, composer and programmer. She has been developing projects and researching in the fields of classical music, electroacoustic music, improvisation, experimental music, radio and sound art. Through many interdisciplinary collaborations, Lucija seeks to push the boundaries of traditional cello playing, which further extends her interpretation, technique and ideas. Her instrumental cello practice is the starting point of the sonic exploration, through which, over time, she disintegrated traditional techniques in order to discover a more personal and sincere sound aesthetic.</p><p><a target="_blank" href="https://lugregov.com/">https://lugregov.com/</a></p><p>This event is made possible with the kind support of Popunie Rotterdam, Stichting Volkskracht, Fonds Podiumkunsten, Gemeente Rotterdam and Stimuleringsfonds Creatieve Industrie.</p>

View File

@ -0,0 +1,126 @@
---
boost: []
description: '<p>We are moved to invite you to our 3rd <a target="_blank" href="https://extratonal.org/">Extratonal
Special</a>: sound is political. For this edition we ask you to be present with
your political ears, to feel with us what it means to have a voice that is (not)
heard, to notice which voices are not present in the room, to desire together social
transformations, to listen to less heard histories, to pinch our autonomous bubbles,
to be touched by sound waves and connect with them consciously. This journey is
going to be led by our very special line up:</p><p><strong>Luca Soucant</strong>
will perform the lecture-performance ''The Resonance of Gender: Thinking through
a Feedbacking Scolds Bridle.''Luca studies the relationship between sound, gender,
power, and social structures within the entanglement of the human and non-human.</p><p><a
target="_blank" href="https://www.lucasoudant.com/">https://www.lucasoudant.com/</a></p><p><strong>YoKolina</strong>
is an interdisciplinary fashion designer whose artistic practice involves stage
clothes, performance, and music. For Extratonal, she will bring to life her moth
costume, embodying an insect that deals with existence.</p><p><a target="_blank"
href="https://yokolina.hotglue.me/">https://yokolina.hotglue.me/</a></p><p><strong>Natalia
Roa</strong> is a writer, editor and interdisciplinary artist. Together with Colombian
percussionist <strong>Luis Orobio</strong>, she will weave a tapestry of sound,
rhythm, and storytelling around the concept of ashé, which are narratives and soundscapes
of Abya Yala that offer an alternative present to a growing dismemory. From a sonic
legacy, ashé signifies permanence: the constant gaze for and at the instruments,
the bodies, and the tunes with which enslaved people declared their emancipation,
blending ritual with celebration, we remember.</p><p><a target="_blank" href="https://nataliaroa.co/about">https://nataliaroa.co/about</a></p><p><em>This
event is made possible with the kind support of Popunie Rotterdam, Stichting Volkskracht,
Fonds Podiumkunsten, Gemeente Rotterdam and Stimuleringsfonds Creatieve Industrie.</em></p>'
end_datetime: 1730494800
id: 5
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- -0.03
- -1
height: 600
name: 'Extratonal Special #3: Sound Is Political'
size: 179457
url: f26012d0e6bf0ccb20941a21e69f54f6.jpg
width: 600
multidate: false
next: palestine-cinema-days-around-the-world-naila-and-the-uprising
online_locations: ''
parent: null
parentId: null
place:
address: Gouwstraat 3, Rotterdam
id: 3
latitude: null
longitude: null
name: Vaira
plain_description: 'We are moved to invite you to our 3rd Extratonal Special
[https://extratonal.org/]: sound is political. For this edition we ask you to be
present with your political ears, to feel with us what it means to have a voice
that is (not) heard, to notice which voices are not present in the room, to
desire together social transformations, to listen to less heard histories, to
pinch our autonomous bubbles, to be touched by sound waves and connect with them
consciously. This journey is going to be led by our very special line up:
Luca Soucant will perform the lecture-performance ''The Resonance of Gender:
Thinking through a Feedbacking Scolds Bridle.''Luca studies the relationship
between sound, gender, power, and social structures within the entanglement of
the human and non-human.
https://www.lucasoudant.com/ [https://www.lucasoudant.com/]
YoKolina is an interdisciplinary fashion designer whose artistic practice
involves stage clothes, performance, and music. For Extratonal, she will bring
to life her moth costume, embodying an insect that deals with existence.
https://yokolina.hotglue.me/ [https://yokolina.hotglue.me/]
Natalia Roa is a writer, editor and interdisciplinary artist. Together with
Colombian percussionist Luis Orobio, she will weave a tapestry of sound, rhythm,
and storytelling around the concept of ashé, which are narratives and
soundscapes of Abya Yala that offer an alternative present to a growing
dismemory. From a sonic legacy, ashé signifies permanence: the constant gaze for
and at the instruments, the bodies, and the tunes with which enslaved people
declared their emancipation, blending ritual with celebration, we remember.
https://nataliaroa.co/about [https://nataliaroa.co/about]
This event is made possible with the kind support of Popunie Rotterdam,
Stichting Volkskracht, Fonds Podiumkunsten, Gemeente Rotterdam and
Stimuleringsfonds Creatieve Industrie.'
prev: lets-un-repair-things-together
recurrent: null
resources: []
slug: extratonal-special-3-sound-is-political
start_datetime: 1730487600
tags:
- extratonal
- performances
- varia
title: 'Extratonal Special #3: Sound Is Political'
---
<p>We are moved to invite you to our 3rd <a target="_blank" href="https://extratonal.org/">Extratonal Special</a>: sound is political. For this edition we ask you to be present with your political ears, to feel with us what it means to have a voice that is (not) heard, to notice which voices are not present in the room, to desire together social transformations, to listen to less heard histories, to pinch our autonomous bubbles, to be touched by sound waves and connect with them consciously. This journey is going to be led by our very special line up:</p><p><strong>Luca Soucant</strong> will perform the lecture-performance 'The Resonance of Gender: Thinking through a Feedbacking Scolds Bridle.'Luca studies the relationship between sound, gender, power, and social structures within the entanglement of the human and non-human.</p><p><a target="_blank" href="https://www.lucasoudant.com/">https://www.lucasoudant.com/</a></p><p><strong>YoKolina</strong> is an interdisciplinary fashion designer whose artistic practice involves stage clothes, performance, and music. For Extratonal, she will bring to life her moth costume, embodying an insect that deals with existence.</p><p><a target="_blank" href="https://yokolina.hotglue.me/">https://yokolina.hotglue.me/</a></p><p><strong>Natalia Roa</strong> is a writer, editor and interdisciplinary artist. Together with Colombian percussionist <strong>Luis Orobio</strong>, she will weave a tapestry of sound, rhythm, and storytelling around the concept of ashé, which are narratives and soundscapes of Abya Yala that offer an alternative present to a growing dismemory. From a sonic legacy, ashé signifies permanence: the constant gaze for and at the instruments, the bodies, and the tunes with which enslaved people declared their emancipation, blending ritual with celebration, we remember.</p><p><a target="_blank" href="https://nataliaroa.co/about">https://nataliaroa.co/about</a></p><p><em>This event is made possible with the kind support of Popunie Rotterdam, Stichting Volkskracht, Fonds Podiumkunsten, Gemeente Rotterdam and Stimuleringsfonds Creatieve Industrie.</em></p>

View File

@ -0,0 +1,8 @@
---
title: Overview of all events
published: false
nested: 'events'
start_datetime: 0
---
Overview of all?

View File

@ -0,0 +1,78 @@
---
boost: []
description: <p>Dear listeners, 👂<br><br>on Saturday the 23rd of November, you are
warmly invited to join a workshop about sonic awareness, at <a href="https://www.instagram.com/extrapractice/"
target="_blank">extrapractice</a> .<br>Margo is going to guide you somewhere in
between free musical improvisation and deep listening. We will sing, and breathe,
and move, and make funny noises with funny objects. 🪠<br><br>But most of all, were
going to tune in to our environment and listen. So put on your most comfy clothes
and come make bubbles with friends! 🫧<br><br>It begins at 13.00 and lunch is included
(vegan and gluten free). 🥗<br><br>5 euros of participation is asked, with 10 spots
available.<br><br>Send a message at marguerite.maire@outlook.fr</p>
end_datetime: 1732424400
id: 15
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 1350
name: 🛀🛀🛀Its sonic bath daaaay! 🛀🛀🛀
size: 213008
url: 607c905a35e634ef58247939c910df36.jpg
width: 1080
multidate: false
next: lets-unrepair-things-together-4
online_locations: ''
parent: null
parentId: null
place:
address: Linker Rottekade 5a, Rotterdam
id: 6
latitude: null
longitude: null
name: ExtraPractice
plain_description: 'Dear listeners, 👂
on Saturday the 23rd of November, you are warmly invited to join a workshop
about sonic awareness, at @extrapractice
[https://www.instagram.com/extrapractice/] .
Margo is going to guide you somewhere in between free musical improvisation and
deep listening. We will sing, and breathe, and move, and make funny noises with
funny objects. 🪠
But most of all, were going to tune in to our environment and listen. So put on
your most comfy clothes and come make bubbles with friends! 🫧
It begins at 13.00 and lunch is included (vegan and gluten free). 🥗
5 euros of participation is asked, with 10 spots available.
Send a message at marguerite.maire@outlook.fr'
prev: lets-unrepair-things-together-3
recurrent: null
resources: []
slug: its-sonic-bath-daaaay
start_datetime: 1732363200
tags:
- extrapractice
- sonic awareness
title: 🛀🛀🛀Its sonic bath daaaay! 🛀🛀🛀
---
<p>Dear listeners, 👂<br><br>on Saturday the 23rd of November, you are warmly invited to join a workshop about sonic awareness, at <a href="https://www.instagram.com/extrapractice/" target="_blank">@extrapractice</a> .<br>Margo is going to guide you somewhere in between free musical improvisation and deep listening. We will sing, and breathe, and move, and make funny noises with funny objects. 🪠<br><br>But most of all, were going to tune in to our environment and listen. So put on your most comfy clothes and come make bubbles with friends! 🫧<br><br>It begins at 13.00 and lunch is included (vegan and gluten free). 🥗<br><br>5 euros of participation is asked, with 10 spots available.<br><br>Send a message at marguerite.maire@outlook.fr</p>

View File

@ -0,0 +1,139 @@
---
boost: []
description: '<blockquote><h3>when we have performed many thousands,<br>we shall shake
them into confusion, in order that we might not know,<br>and in order not to let
any evil person envy us,<br>when he knows that there are so many of our kisses.</h3></blockquote><p>Klankschool
is back in catullusweg for more performances, workshops and listening.</p><p></p><h2>6pm:
Klankserver longtable discussion</h2><p></p><p>Here at klankschool we have our own
server, running open source software to provide <a target="_blank" href="https://calendar.klank.school/">this
calendar</a>, <a target="_blank" href="https://funk.klank.school/library">an audio
sharing platform</a>, <a target="_blank" href="https://klank.school/">the website</a>,
<a target="_blank" href="https://live.klank.school">and more to come</a>.</p><p>This
evening we will introduce some of these services, show how to use them, and have
a longtable discussion about what it means to have an artist run server, what we
plan to do with it, and why we want it.</p><p><a target="_blank" href="https://calendar.klank.school/event/server-introduction">For
more info on the discussion, see the event.</a></p><p></p><h2>7pm: Delicious Vegan
Dinner</h2><p></p><h2>8pm: Performances</h2><p></p><p>... 🥁 🎹 🔌 Lukasz Moroz , Maciej
Müller and Tymon Kolubiński</p><p>... 🏠 Ariela Bergman "“the house that inhabits
you”</p><p>... 🫥 mitsitron &amp; 🌀 Stephen Kerr</p><p>... 👲🏻 🧑‍🦽 HOLLOWMIST</p><p>...
📱 Dada phone</p><p>... 🪠 Archibald “Harry” Tuttle</p><p>... and more</p><p></p>'
end_datetime: 1729368000
id: 1
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 1920
name: 2nd KLANKSCHOOL DAG&AVOND
size: 1286409
url: a6734cfcec029795d1bfcc853137aafb.jpg
width: 1080
multidate: false
next: server-introduction
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: '> WHEN WE HAVE PERFORMED MANY THOUSANDS,
> WE SHALL SHAKE THEM INTO CONFUSION, IN ORDER THAT WE MIGHT NOT KNOW,
> AND IN ORDER NOT TO LET ANY EVIL PERSON ENVY US,
> WHEN HE KNOWS THAT THERE ARE SO MANY OF OUR KISSES.
Klankschool is back in catullusweg for more performances, workshops and
listening.
6PM: KLANKSERVER LONGTABLE DISCUSSION
Here at klankschool we have our own server, running open source software to
provide this calendar [https://calendar.klank.school/], an audio sharing
platform [https://funk.klank.school/library], the website
[https://klank.school/], and more to come [https://live.klank.school].
This evening we will introduce some of these services, show how to use them, and
have a longtable discussion about what it means to have an artist run server,
what we plan to do with it, and why we want it.
For more info on the discussion, see the event.
[https://calendar.klank.school/event/server-introduction]
7PM: DELICIOUS VEGAN DINNER
8PM: PERFORMANCES
... 🥁 🎹 🔌 Lukasz Moroz , Maciej Müller and Tymon Kolubiński
... 🏠 Ariela Bergman "“the house that inhabits you”
... 🫥 mitsitron & 🌀 Stephen Kerr
... 👲🏻 🧑‍🦽 HOLLOWMIST
... 📱 Dada phone
... 🪠 Archibald “Harry” Tuttle
... and more
'
prev: null
recurrent: null
resources: []
slug: klankschool-performances
start_datetime: 1729353600
tags:
- klankschool
- live
- noise
- performance
title: 2nd Klankschool Dag&Avond
---
<blockquote><h3>when we have performed many thousands,<br>we shall shake them into confusion, in order that we might not know,<br>and in order not to let any evil person envy us,<br>when he knows that there are so many of our kisses.</h3></blockquote><p>Klankschool is back in catullusweg for more performances, workshops and listening.</p><p></p><h2>6pm: Klankserver longtable discussion</h2><p></p><p>Here at klankschool we have our own server, running open source software to provide <a target="_blank" href="https://calendar.klank.school/">this calendar</a>, <a target="_blank" href="https://funk.klank.school/library">an audio sharing platform</a>, <a target="_blank" href="https://klank.school/">the website</a>, <a target="_blank" href="https://live.klank.school">and more to come</a>.</p><p>This evening we will introduce some of these services, show how to use them, and have a longtable discussion about what it means to have an artist run server, what we plan to do with it, and why we want it.</p><p><a target="_blank" href="https://calendar.klank.school/event/server-introduction">For more info on the discussion, see the event.</a></p><p></p><h2>7pm: Delicious Vegan Dinner</h2><p></p><h2>8pm: Performances</h2><p></p><p>... 🥁 🎹 🔌 Lukasz Moroz , Maciej Müller and Tymon Kolubiński</p><p>... 🏠 Ariela Bergman "“the house that inhabits you”</p><p>... 🫥 mitsitron &amp; 🌀 Stephen Kerr</p><p>... 👲🏻 🧑‍🦽 HOLLOWMIST</p><p>... 📱 Dada phone</p><p>... 🪠 Archibald “Harry” Tuttle</p><p>... and more</p><p></p>

View File

@ -0,0 +1,35 @@
---
boost: []
description: ''
end_datetime: 1730415300
id: 7
image_path: null
isAnon: true
isMine: false
is_visible: true
likes: []
media: []
multidate: false
next: extratonal-special-3-sound-is-political
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: ''
prev: server-introduction
has_log: true
recurrent: null
resources: []
slug: lets-un-repair-things-together
start_datetime: 1730394000
tags: []
title: let's (un) repair things together
---
### Logs
Repaired an audio amplifier by replacing a switch, a megaphone by cleaning the battery ports, and discovered the fireworks that is blown fuses.

View File

@ -0,0 +1,41 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p>
end_datetime: 1731016800
id: 10
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: false
next: lets-unrepair-things-together-2
online_locations: ''
parent:
id: 9
is_visible: false
recurrent:
frequency: 1w
start_datetime: 1730998800
parentId: 9
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: Bring your (un)broken devices and sound makers!
prev: palestine-cinema-days-around-the-world-naila-and-the-uprising
recurrent: null
resources: []
slug: lets-unrepair-things-together-1
start_datetime: 1730998800
tags:
- klankschool
- noise
- repair
title: Let's (un)repair things together!
---
<p>Bring your (un)broken devices and sound makers!</p>

View File

@ -0,0 +1,41 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p>
end_datetime: 1731621600
id: 11
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: null
next: extratonal-infrastructure-16-qoa-en-primeiro
online_locations: []
parent:
id: 9
is_visible: false
recurrent:
frequency: 1w
start_datetime: 1730998800
parentId: 9
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: Bring your (un)broken devices and sound makers!
prev: lets-unrepair-things-together-1
recurrent: null
resources: []
slug: lets-unrepair-things-together-2
start_datetime: 1731603600
tags:
- klankschool
- noise
- repair
title: Let's (un)repair things together!
---
<p>Bring your (un)broken devices and sound makers!</p>

View File

@ -0,0 +1,46 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p>
end_datetime: 1732226400
id: 12
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: null
next: its-sonic-bath-daaaay
online_locations: []
parent:
id: 9
is_visible: false
recurrent:
frequency: 1w
start_datetime: 1730998800
parentId: 9
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: Bring your (un)broken devices and sound makers!
prev: sounds-of-making-xpub1-presents-protocols-for-collective-performance
recurrent: null
has_log: true
resources: []
slug: lets-unrepair-things-together-3
start_datetime: 1732208400
tags:
- klankschool
- noise
- repair
title: Let's (un)repair things together!
---
<p>Bring your (un)broken devices and sound makers!</p>
### Logs
Toy keyboards are fun, especially if you apply the card method of infinite drone music.

View File

@ -0,0 +1,48 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p>
end_datetime: 1732831200
id: 16
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: null
next: extratonal-infrastructure-17-dianaband-vegetable-wife-with-jae-hyung-park-and-lucija-gregov
online_locations: []
parent:
id: 9
is_visible: false
recurrent:
frequency: 1w
start_datetime: 1730998800
parentId: 9
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: Bring your (un)broken devices and sound makers!
prev: its-sonic-bath-daaaay
recurrent: null
resources: []
has_log: true
slug: lets-unrepair-things-together-4
start_datetime: 1732813200
tags:
- klankschool
- noise
- repair
title: Let's (un)repair things together!
---
<p>Bring your (un)broken devices and sound makers!</p>
### Logs
There were five of us today
- The openproject instance now sends email notifications.

View File

@ -0,0 +1,49 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p>
end_datetime: 1732831200
id: 16
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: null
next: extratonal-infrastructure-17-dianaband-vegetable-wife-with-jae-hyung-park-and-lucija-gregov
online_locations: []
parent:
id: 9
is_visible: false
recurrent:
frequency: 1w
start_datetime: 1730998800
parentId: 9
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: Bring your (un)broken devices and sound makers!
prev: its-sonic-bath-daaaay
recurrent: null
resources: []
slug: lets-unrepair-things-together-4
start_datetime: 1733413200
has_log: true
tags:
- klankschool
- noise
- repair
title: Let's (un)repair things together!
---
<p>Bring your (un)broken devices and sound makers!</p>
### Logs
Someone came in with a pokemon camera that could also play audio from a small SD card. However, the camera only had a small speaker, so we added an audio jack!
Additionally, we worked on 4 casette players, all of them had issues with the belts. We'll need to order some replacement belts to get them working again. One of the casette players wouldnt turn on, but after a bit of cleaning of the battery holder, this was resolved.
![Pokemon camera now has a much needed audio jack](/assets/repair-logs/pokemon.webp)

View File

@ -0,0 +1,41 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p>
end_datetime: 1734040800
id: 19
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: null
next: lets-unrepair-things-together-7
online_locations: []
parent:
id: 9
is_visible: false
recurrent:
frequency: 1w
start_datetime: 1730998800
parentId: 9
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: Bring your (un)broken devices and sound makers!
prev: lets-unrepair-things-together-analog-video-edition
recurrent: null
resources: []
slug: lets-unrepair-things-together-6
start_datetime: 1734022800
tags:
- klankschool
- noise
- repair
title: Let's (un)repair things together!
---
<p>Bring your (un)broken devices and sound makers!</p>

View File

@ -0,0 +1,46 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p>
end_datetime: 1734645600
id: 20
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: null
next: lets-unrepair-things-together-8
online_locations: []
parent:
id: 9
is_visible: false
recurrent:
frequency: 1w
start_datetime: 1730998800
parentId: 9
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: Bring your (un)broken devices and sound makers!
prev: lets-unrepair-things-together-6
recurrent: null
resources: []
slug: lets-unrepair-things-together-7
start_datetime: 1734627600
has_log: true
tags:
- klankschool
- noise
- repair
title: Let's (un)repair things together!
---
<p>Bring your (un)broken devices and sound makers!</p>
### Logs
We explored the circuit bending of an analog video mixer, and continued installing Linux on a server from the V2 Winter Market

View File

@ -0,0 +1,41 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p>
end_datetime: 1735250400
id: 21
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: null
next: unrepair-cafe
online_locations: []
parent:
id: 9
is_visible: false
recurrent:
frequency: 1w
start_datetime: 1730998800
parentId: 9
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: Bring your (un)broken devices and sound makers!
prev: lets-unrepair-things-together-7
recurrent: null
resources: []
slug: lets-unrepair-things-together-8
start_datetime: 1735232400
tags:
- klankschool
- noise
- repair
title: Let's (un)repair things together!
---
<p>Bring your (un)broken devices and sound makers!</p>

View File

@ -0,0 +1,45 @@
---
boost: []
description: <p>Bring your (un)broken devices and sound makers!</p><p>This time, we'll
work with video! Analog video mixers, camera's, anything with lights.</p><p>Come
by!</p>
end_datetime: null
id: 18
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media: []
multidate: false
next: lets-unrepair-things-together-6
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: 'Bring your (un)broken devices and sound makers!
This time, we''ll work with video! Analog video mixers, camera''s, anything with
lights.
Come by!'
prev: extratonal-infrastructure-17-dianaband-vegetable-wife-with-jae-hyung-park-and-lucija-gregov
recurrent: null
resources: []
slug: lets-unrepair-things-together-analog-video-edition
start_datetime: 1734022800
tags:
- catu
- klankschool
title: Let's (un)repair things together! Analog Video edition!
---
<p>Bring your (un)broken devices and sound makers!</p><p>This time, we'll work with video! Analog video mixers, camera's, anything with lights.</p><p>Come by!</p>

View File

@ -0,0 +1,113 @@
---
boost: []
description: '<p>In 2023, <strong>Film Lab Palestine</strong> had to postpone their
<strong>Palestine Cinema Days</strong> festival. Instead of celebrating cinema in
Palestine, they brought Palestine to the world in 86 cities, across 139 venues,
spanning 41 countries. November 2nd marks the day the Balfour Declaration was signed,
and in an effort to amplify Palestinian voices, we are joining <a target="_blank"
href="https://aflamuna.org/calls/palestine-cinema-days-around-the-world-24/"><strong>Palestine
Cinema Days Around The World</strong></a> and are screening Naila And The Uprising
directed by Julia Bacha.</p><p>Alongside the film screening <a target="_blank"
href="https://www.fairtradepalestine.org/"><strong>Fairtrade Palestine</strong></a>
will be selling a variety of products from the West Bank, and we will have anti-colonial,
liberation and encampment advice zines available via <a target="_blank" href="https://www.rot-shop.com/zine-distro-fundraiser"><strong>rot
shop</strong></a> to copy and print your own selection from. There will also be
<strong>silkscreen solidarity shirts</strong> from Video for sale. All donations
for the zines and shirts will go directly to two families in Gaza, and grassroots
mutual aid initiative The Sanabel Team.</p><p><strong>Naila And The Uprising</strong><br>by
Julia Bacha</p><p>Documentary, 76 mins.<br>Chronicling the remarkable journey of
Naila Ayesh and a fierce community of women at the frontlines, whose stories weave
through the most vibrant, nonviolent mobilisation in Palestinian history the First
Intifada in the late 1980s.</p><p>Languages: Arabic, English, Hebrew, French.<br>Subtitles:
English.</p>'
end_datetime: 1730581200
id: 8
image_path: null
isAnon: true
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 778
name: Palestine Cinema Days Around The World - Naila And The Uprising
size: 165250
url: e79f8e017e8fdb1a603e1ed4d5a4f450.jpg
width: 778
multidate: false
next: lets-unrepair-things-together-1
online_locations:
- https://varia.zone/en/palestine-cinema-days-naila-and-the-uprising.html
parent: null
parentId: null
place:
address: Gouwstraat 3
id: 4
latitude: null
longitude: null
name: Varia
plain_description: 'In 2023, Film Lab Palestine had to postpone their Palestine Cinema
Days
festival. Instead of celebrating cinema in Palestine, they brought Palestine to
the world in 86 cities, across 139 venues, spanning 41 countries. November 2nd
marks the day the Balfour Declaration was signed, and in an effort to amplify
Palestinian voices, we are joining Palestine Cinema Days Around The World
[https://aflamuna.org/calls/palestine-cinema-days-around-the-world-24/] and are
screening Naila And The Uprising directed by Julia Bacha .
Alongside the film screening Fairtrade Palestine
[https://www.fairtradepalestine.org/] will be selling a variety of products from
the West Bank, and we will have anti-colonial, liberation and encampment advice
zines available via rot shop [https://www.rot-shop.com/zine-distro-fundraiser]
to copy and print your own selection from. There will also be silkscreen
solidarity shirts from Video for sale. All donations for the zines and shirts
will go directly to two families in Gaza, and grassroots mutual aid initiative
The Sanabel Team.
Naila And The Uprising
by Julia Bacha
Documentary, 76 mins.
Chronicling the remarkable journey of Naila Ayesh and a fierce community of
women at the frontlines, whose stories weave through the most vibrant,
nonviolent mobilisation in Palestinian history the First Intifada in the late
1980s.
Languages: Arabic, English, Hebrew, French.
Subtitles: English.'
prev: extratonal-special-3-sound-is-political
recurrent: null
resources: []
slug: palestine-cinema-days-around-the-world-naila-and-the-uprising
start_datetime: 1730570400
tags:
- Palestine Cinema Days
title: Palestine Cinema Days Around The World - Naila And The Uprising
---
<p>In 2023, <strong>Film Lab Palestine</strong> had to postpone their <strong>Palestine Cinema Days</strong> festival. Instead of celebrating cinema in Palestine, they brought Palestine to the world in 86 cities, across 139 venues, spanning 41 countries. November 2nd marks the day the Balfour Declaration was signed, and in an effort to amplify Palestinian voices, we are joining <a target="_blank" href="https://aflamuna.org/calls/palestine-cinema-days-around-the-world-24/"><strong>Palestine Cinema Days Around The World</strong></a> and are screening Naila And The Uprising directed by Julia Bacha.</p><p>Alongside the film screening <a target="_blank" href="https://www.fairtradepalestine.org/"><strong>Fairtrade Palestine</strong></a> will be selling a variety of products from the West Bank, and we will have anti-colonial, liberation and encampment advice zines available via <a target="_blank" href="https://www.rot-shop.com/zine-distro-fundraiser"><strong>rot shop</strong></a> to copy and print your own selection from. There will also be <strong>silkscreen solidarity shirts</strong> from Video for sale. All donations for the zines and shirts will go directly to two families in Gaza, and grassroots mutual aid initiative The Sanabel Team.</p><p><strong>Naila And The Uprising</strong><br>by Julia Bacha</p><p>Documentary, 76 mins.<br>Chronicling the remarkable journey of Naila Ayesh and a fierce community of women at the frontlines, whose stories weave through the most vibrant, nonviolent mobilisation in Palestinian history the First Intifada in the late 1980s.</p><p>Languages: Arabic, English, Hebrew, French.<br>Subtitles: English.</p>

View File

@ -0,0 +1,66 @@
---
boost: []
description: <blockquote><p>The Long Table is a format for discussion that uses the
setting of a domestic dinner table as a means to generate public conversation. Conceived
in 2003 by Lois Weaver in response to the divided nature of conventional panel discussions,
the Long Table allows voices to be heard equally, disrupting hierarchical notions
of 'expertise'. It was inspired by Maureen Gorris's film <em>Antonia's Line</em>,
the central image of which is a dinner table getting longer and longer to accomodate
a growing family of outsiders, eccentrics and friends - until finally it has to
be moved outside. Since then, the Table has been set at institutions and festivals
worldwide, and invited hundreds of people to sit and share their views on myriad
topics. The Long Table is an open-source format; you are welcome to use it as a
means of generating discussion on any subject you choose.</p><p>--- <a target="_blank"
href="https://www.split-britches.com/long-table">https://www.split-britches.com/long-table</a></p></blockquote>
end_datetime: 1729357200
id: 4
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 1063
name: 'Server Longtable '
size: 159728
url: f6c89423d8e4a15114f861ec401a4e41.jpg
width: 750
multidate: false
next: lets-un-repair-things-together
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: "> The Long Table is a format for discussion that uses the setting\
\ of a domestic\n> dinner table as a means to generate public conversation. Conceived\
\ in 2003 by\n> Lois Weaver in response to the divided nature of conventional panel\n\
> discussions, the Long Table allows voices to be heard equally, disrupting\n> hierarchical\
\ notions of 'expertise'. It was inspired by Maureen Gorris's film\n> Antonia's\
\ Line, the central image of which is a dinner table getting longer\n> and longer\
\ to accomodate a growing family of outsiders, eccentrics and friends\n> - until\
\ finally it has to be moved outside. Since then, the Table has been set\n> at institutions\
\ and festivals worldwide, and invited hundreds of people to sit\n> and share their\
\ views on myriad topics. The Long Table is an open-source\n> format; you are welcome\
\ to use it as a means of generating discussion on any\n> subject you choose.\n\
> \n> --- https://www.split-britches.com/long-table\n> [https://www.split-britches.com/long-table]"
prev: klankschool-performances
recurrent: null
resources: []
slug: server-introduction
start_datetime: 1729353600
tags:
- klankschool
- longtable
- server
title: 'Server Longtable '
---
<blockquote><p>The Long Table is a format for discussion that uses the setting of a domestic dinner table as a means to generate public conversation. Conceived in 2003 by Lois Weaver in response to the divided nature of conventional panel discussions, the Long Table allows voices to be heard equally, disrupting hierarchical notions of 'expertise'. It was inspired by Maureen Gorris's film <em>Antonia's Line</em>, the central image of which is a dinner table getting longer and longer to accomodate a growing family of outsiders, eccentrics and friends - until finally it has to be moved outside. Since then, the Table has been set at institutions and festivals worldwide, and invited hundreds of people to sit and share their views on myriad topics. The Long Table is an open-source format; you are welcome to use it as a means of generating discussion on any subject you choose.</p><p>--- <a target="_blank" href="https://www.split-britches.com/long-table">https://www.split-britches.com/long-table</a></p></blockquote>

View File

@ -0,0 +1,103 @@
---
boost: []
description: '<p>With great enthusiasm we are announcing the opening of Snackbar Frieda!
Frieda is not just any snackbar. We hand out snacks on a donation basis, which means
in return for any contribution you like. We strive for a world where food is a shared
good rather than a means to profit. Snackbar Frieda is based in a squatted space,
because we believe empty spaces in the city should be used for the common good.
This project is an experiment to see what life&nbsp;can look like when we take care
of each other and our city''s needs, through self-organization and solidarity. It
is a labor of love, entirely volunteer-run. That means that&nbsp;were welcoming
YOU to join and build this place together with us! Come by for an event, a build
day or a snack!</p><p>Vol enthousiasme openen wij snackbar Frieda! Frieda is niet
zomaar een snackbar. We werken op donatiebasis, snacks zijn gratis of je doneert
wat je kan missen. In onze ideale wereld is eten een gedeeld goed dat wordt ingezet
voor verbinding, niet voor winst. Met dit project willen we experimenteren met verschillende
manieren van samenleven; door zelf te organiseren met solidariteit en zorg voor
elkaar en de stad. Omdat Rotterdam volstaat met lege gebouwen die gebruikt kunnen
en moeten worden, zit Snackbar Frieda in een gekraakt pand. Frieda is een passieproject:
we draaien volledig op vrijwilligers en onze eigen tijd. Iedereen is van harte welkom
om mee te doen en deze plek samen met ons vorm te geven.&nbsp;Kom langs voor een
evenement, bij de bouwdag of voor een snack!&nbsp;</p>'
end_datetime: 1738436400
id: 30
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- -0.31
- -1
height: 1698
name: Snackbar Frieda Opening!
size: 271582
url: bf4581942ff9cec4b05bd345d3acbc1a.jpg
width: 1200
multidate: false
next: 4-avond
online_locations: ''
parent: null
parentId: null
place:
address: Bajonetstraat 49, 3014 ZC Rotterdam
id: 7
latitude: null
longitude: null
name: Snackbar Frieda
plain_description: 'With great enthusiasm we are announcing the opening of Snackbar
Frieda! Frieda
is not just any snackbar. We hand out snacks on a donation basis, which means in
return for any contribution you like. We strive for a world where food is a
shared good rather than a means to profit. Snackbar Frieda is based in a
squatted space, because we believe empty spaces in the city should be used for
the common good. This project is an experiment to see what life can look like
when we take care of each other and our city''s needs, through self-organization
and solidarity. It is a labor of love, entirely volunteer-run. That means
that were welcoming YOU to join and build this place together with us! Come by
for an event, a build day or a snack!
Vol enthousiasme openen wij snackbar Frieda! Frieda is niet zomaar een snackbar.
We werken op donatiebasis, snacks zijn gratis of je doneert wat je kan missen.
In onze ideale wereld is eten een gedeeld goed dat wordt ingezet voor
verbinding, niet voor winst. Met dit project willen we experimenteren met
verschillende manieren van samenleven; door zelf te organiseren met solidariteit
en zorg voor elkaar en de stad. Omdat Rotterdam volstaat met lege gebouwen die
gebruikt kunnen en moeten worden, zit Snackbar Frieda in een gekraakt pand.
Frieda is een passieproject: we draaien volledig op vrijwilligers en onze eigen
tijd. Iedereen is van harte welkom om mee te doen en deze plek samen met ons
vorm te geven. Kom langs voor een evenement, bij de bouwdag of voor een snack! '
prev: unrepair-cafe-ewaste-walk
recurrent: null
resources: []
slug: snackbar-frieda-opening
start_datetime: 1738418400
tags:
- free
- frieda
- rotterdam
- snacks
title: Snackbar Frieda Opening!
---
<p>With great enthusiasm we are announcing the opening of Snackbar Frieda! Frieda is not just any snackbar. We hand out snacks on a donation basis, which means in return for any contribution you like. We strive for a world where food is a shared good rather than a means to profit. Snackbar Frieda is based in a squatted space, because we believe empty spaces in the city should be used for the common good. This project is an experiment to see what life&nbsp;can look like when we take care of each other and our city's needs, through self-organization and solidarity. It is a labor of love, entirely volunteer-run. That means that&nbsp;were welcoming YOU to join and build this place together with us! Come by for an event, a build day or a snack!</p><p>Vol enthousiasme openen wij snackbar Frieda! Frieda is niet zomaar een snackbar. We werken op donatiebasis, snacks zijn gratis of je doneert wat je kan missen. In onze ideale wereld is eten een gedeeld goed dat wordt ingezet voor verbinding, niet voor winst. Met dit project willen we experimenteren met verschillende manieren van samenleven; door zelf te organiseren met solidariteit en zorg voor elkaar en de stad. Omdat Rotterdam volstaat met lege gebouwen die gebruikt kunnen en moeten worden, zit Snackbar Frieda in een gekraakt pand. Frieda is een passieproject: we draaien volledig op vrijwilligers en onze eigen tijd. Iedereen is van harte welkom om mee te doen en deze plek samen met ons vorm te geven.&nbsp;Kom langs voor een evenement, bij de bouwdag of voor een snack!&nbsp;</p>

View File

@ -0,0 +1,115 @@
---
boost: []
description: '<p>XPUB1 (first-year students of the Piet Zwart Institutes Experimental
Publishing MA) invite you to participate in their first collective public appearance:
a moment of making things (public). This event is free!</p><p>They write: “Through
a series of experiments at Radio WORM, weve been asking ourselves: What is radio?
What does it mean to “go live” and perform together? Imagine the thrill—and the
nerves—of creating something live, using your voice, thoughts, and experimental
sounds that use little to no conventional means of expression.</p><p>“We invite
you into a communal space where such moments can be lived together, stretching the
boundaries of connections through DIY sounds and self-made protocols. These protocols
arent just guidelines telling us what to do; theyre creative proposals that open
up space for improvisation and re-invention. We see them as tools for collaborative
engagement, empowering all of us to create in the moment and transform live sound
together.”</p><p>So jump in for recording, transforming and performing sound with
XPUB1! This event is for anyone who appreciates the raw, transformative power of
sound. Join in shaping a live moment of collective expression, where live sound
performance is felt, shared, and re-imagined together.</p><p>The results of these
collective audio experiments will be recorded onsite, and possibly used as materials
for future episodes of the collectives weekly radio show, that you can hear every
Monday from 10am-12pm until the end of this academic year.</p><p>This event is made
possible with the financial support of the Network for Archives of Design and Digital
Culture</p>'
end_datetime: 1732129200
id: 13
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 560
name: 'Sounds of Making: XPUB1 presents Protocols for Collective Performance'
size: 194599
url: c52eafad6986d73becef0e37a2462e7c.jpg
width: 1000
multidate: false
next: lets-unrepair-things-together-3
online_locations: ''
parent: null
parentId: null
place:
address: Boomgaardsstraat 71, 3012 XA Rotterdam
id: 5
latitude: null
longitude: null
name: Worm
plain_description: 'XPUB1 (first-year students of the Piet Zwart Institutes Experimental
Publishing
MA) invite you to participate in their first collective public appearance: a
moment of making things (public). This event is free!
They write: “Through a series of experiments at Radio WORM, weve been asking
ourselves: What is radio? What does it mean to “go live” and perform together?
Imagine the thrill—and the nerves—of creating something live, using your voice,
thoughts, and experimental sounds that use little to no conventional means of
expression.
“We invite you into a communal space where such moments can be lived together,
stretching the boundaries of connections through DIY sounds and self-made
protocols. These protocols arent just guidelines telling us what to do; theyre
creative proposals that open up space for improvisation and re-invention. We see
them as tools for collaborative engagement, empowering all of us to create in
the moment and transform live sound together.”
So jump in for recording, transforming and performing sound with XPUB1! This
event is for anyone who appreciates the raw, transformative power of sound. Join
in shaping a live moment of collective expression, where live sound performance
is felt, shared, and re-imagined together.
The results of these collective audio experiments will be recorded onsite, and
possibly used as materials for future episodes of the collectives weekly radio
show, that you can hear every Monday from 10am-12pm until the end of this
academic year.
This event is made possible with the financial support of the Network for
Archives of Design and Digital Culture'
prev: extratonal-infrastructure-16-qoa-en-primeiro
recurrent: null
resources: []
slug: sounds-of-making-xpub1-presents-protocols-for-collective-performance
start_datetime: 1732111200
tags:
- radio
- worm
title: 'Sounds of Making: XPUB1 presents Protocols for Collective Performance'
---
<p>XPUB1 (first-year students of the Piet Zwart Institutes Experimental Publishing MA) invite you to participate in their first collective public appearance: a moment of making things (public). This event is free!</p><p>They write: “Through a series of experiments at Radio WORM, weve been asking ourselves: What is radio? What does it mean to “go live” and perform together? Imagine the thrill—and the nerves—of creating something live, using your voice, thoughts, and experimental sounds that use little to no conventional means of expression.</p><p>“We invite you into a communal space where such moments can be lived together, stretching the boundaries of connections through DIY sounds and self-made protocols. These protocols arent just guidelines telling us what to do; theyre creative proposals that open up space for improvisation and re-invention. We see them as tools for collaborative engagement, empowering all of us to create in the moment and transform live sound together.”</p><p>So jump in for recording, transforming and performing sound with XPUB1! This event is for anyone who appreciates the raw, transformative power of sound. Join in shaping a live moment of collective expression, where live sound performance is felt, shared, and re-imagined together.</p><p>The results of these collective audio experiments will be recorded onsite, and possibly used as materials for future episodes of the collectives weekly radio show, that you can hear every Monday from 10am-12pm until the end of this academic year.</p><p>This event is made possible with the financial support of the Network for Archives of Design and Digital Culture</p>

View File

@ -0,0 +1,49 @@
---
boost: []
description: <p>Come along to a low-key hangout where we sometimes repair stuff</p><p>See
<a target="_blank" href="https://unrepair.klank.school/">unrepair.klank.school</a>
for more details</p>
end_datetime: 1736456400
id: 23
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 789
name: (Un)Repair Cafe
size: 284414
url: 58b176cdbbf8f949537160d701393ba4.jpg
width: 1200
multidate: false
next: unrepair-cafe-server-tour
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: 'Come along to a low-key hangout where we sometimes repair stuff
See unrepair.klank.school [https://unrepair.klank.school/] for more details'
prev: unrepair-cafe
recurrent: null
resources: []
slug: unrepair-cafe-1
start_datetime: 1736442000
tags:
- klankschool
- noise
- repair
title: (Un)Repair Cafe
---
<p>Come along to a low-key hangout where we sometimes repair stuff</p><p>See <a target="_blank" href="https://unrepair.klank.school/">unrepair.klank.school</a> for more details</p>

View File

@ -0,0 +1,49 @@
---
boost: []
description: <p>Come along to a low-key hangout where we sometimes repair stuff</p><p>See
<a target="_blank" href="https://unrepair.klank.school/">unrepair.klank.school</a>
for more details</p>
end_datetime: 1737666000
id: 24
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 789
name: (Un)Repair Cafe
size: 284414
url: 4e3461a8b3685c53145c2e2c7d6a056f.jpg
width: 1200
multidate: false
next: null
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: 'Come along to a low-key hangout where we sometimes repair stuff
See unrepair.klank.school [https://unrepair.klank.school/] for more details'
prev: unrepair-cafe-server-tour
recurrent: null
resources: []
slug: unrepair-cafe-2
start_datetime: 1737651600
tags:
- klankschool
- noise
- repair
title: (Un)Repair Cafe
---
<p>Come along to a low-key hangout where we sometimes repair stuff</p><p>See <a target="_blank" href="https://unrepair.klank.school/">unrepair.klank.school</a> for more details</p>

View File

@ -0,0 +1,53 @@
---
boost: []
description: <p>So many machines. So many possibilities....</p><p>Join us at Catu
on Jan 30th (18h) to discuss building a datacenter with second-hand computers.</p><p></p>
end_datetime: 1738270800
id: 29
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 841
name: '(Un)Repair Cafe: Let''s build a datacenter'
size: 202204
url: 7f8e25147a6adf530b00bfb32e9dbaa3.jpg
width: 1200
multidate: false
next: snackbar-frieda-opening
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: 'So many machines. So many possibilities....
Join us at Catu on Jan 30th (18h) to discuss building a datacenter with
second-hand computers.
'
prev: 25-hour-radio-relay
recurrent: null
resources: []
slug: unrepair-cafe-ewaste-walk
start_datetime: 1738256400
tags:
- datacenter
- ewaste
- repair
title: '(Un)Repair Cafe: Let''s build a datacenter'
---
<p>So many machines. So many possibilities....</p><p>Join us at Catu on Jan 30th (18h) to discuss building a datacenter with second-hand computers.</p><p></p>

View File

@ -0,0 +1,48 @@
---
boost: []
description: <p>Join us at Catu on January 16th for a tour of the klankschool server.</p><p>Threre
will also be some games on the theme of software.</p>
end_datetime: 1737061200
id: 25
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 1600
name: '(Un)repair cafe: Server Tour +'
size: 480128
url: 2998f35d7ebacd633144798ac4b6af74.jpg
width: 1200
multidate: false
next: unrepair-cafe-2
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: 'Join us at Catu on January 16th for a tour of the klankschool
server.
Threre will also be some games on the theme of software.'
prev: unrepair-cafe-1
recurrent: null
resources: []
slug: unrepair-cafe-server-tour
start_datetime: 1737046800
tags:
- klankschool
- server
title: '(Un)repair cafe: Server Tour + more'
---
<p>Join us at Catu on January 16th for a tour of the klankschool server.</p><p>Threre will also be some games on the theme of software.</p>

View File

@ -0,0 +1,49 @@
---
boost: []
description: <p>Come along to a low-key hangout where we sometimes repair stuff</p><p>See
<a target="_blank" href="https://unrepair.klank.school">unrepair.klank.school</a>
for more details</p>
end_datetime: 1735851600
id: 22
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 789
name: (Un)Repair Cafe
size: 284364
url: 762aca6eda6c23508e3951414fe65167.jpg
width: 1200
multidate: false
next: unrepair-cafe-1
online_locations: ''
parent: null
parentId: null
place:
address: Catullusweg 11
id: 1
latitude: 51.8766465
longitude: 4.5242688
name: Catu
plain_description: 'Come along to a low-key hangout where we sometimes repair stuff
See unrepair.klank.school [https://unrepair.klank.school] for more details'
prev: lets-unrepair-things-together-8
recurrent: null
resources: []
slug: unrepair-cafe
start_datetime: 1735837200
tags:
- klankschool
- noise
- repair
title: (Un)Repair Cafe
---
<p>Come along to a low-key hangout where we sometimes repair stuff</p><p>See <a target="_blank" href="https://unrepair.klank.school">unrepair.klank.school</a> for more details</p>

View File

@ -0,0 +1,122 @@
---
boost:
- https://gts.varia.zone/users/varia
description: '<p>Join us at <strong>Varia</strong> for <em>Water of Love</em>, the
second phase of Valentina Vellas long-term project <em>School of Love and Chaos
(</em>after <em>Bad at Love</em>, a performance with Luke Deane that took place
in March 2024 at Paviljoen aan het water).</p><p><em>School of Love and Chaos </em>weaves
together themes of love and ecological threats through autofictional storytelling,
science fiction, poetry, and performance, using cities closely linked to water—Rotterdam,
New Orleans, Venice, and Rome—as its narrative landscapes. The threat of annihilation
(the fear of losing physical and/or emotional control) is its narrative engine.
At the core of this project lies a question: is there a significant correspondence
between the material infrastructures we live surrounded by, and our intimate lives?
How do the ways we, in the West, tend to handle physical survival—particularly in
the face of ecological threats like flooding that are exacerbated by climate change—relate
to how we manage romantic relationships, friendships, and community bonds? How does
that feel in our bodies and in the body of these imaginary and autofictional characters?</p><p><em>Water
of Love</em> focuses more specifically on the many ways the Netherlands has tried
to keep nature at bay. What does that do to our love life? Does the ocean have any
opinions about the Dutch? Why does the Balgstuw Ramspol look like a gigantic condom?</p><p>There
will be readings, there will be music, there will be completely improvised moments
and there will be time to ask and answer questions!</p><p>Supported by <a target="_blank"
href="http://www.cbkrotterdam.nl/"><u>CBK Rotterdam</u></a> (Centre for Visual Arts
Rotterdam)</p><p>with Valentina Vella, mitsitron, Stephen Kerr and other Klankschool
folks</p><p>with the kind support of Amy Gowen (HumDrumPress) as wrangler</p>'
end_datetime: 1737149400
id: 26
image_path: null
isAnon: false
isMine: false
is_visible: true
likes: []
media:
- focalpoint:
- 0
- 0
height: 604
name: Water of Love
size: 210847
url: d1855a7804a57e27b82723ba9cec94b4.jpg
width: 750
multidate: false
next: unrepair-cafe-2
online_locations: ''
parent: null
parentId: null
place:
address: Gouwstraat 3
id: 4
latitude: null
longitude: null
name: Varia
plain_description: 'Join us at Varia for Water of Love, the second phase of Valentina
Vellas
long-term project School of Love and Chaos (after Bad at Love, a performance
with Luke Deane that took place in March 2024 at Paviljoen aan het water).
School of Love and Chaos weaves together themes of love and ecological threats
through autofictional storytelling, science fiction, poetry, and performance,
using cities closely linked to water—Rotterdam, New Orleans, Venice, and Rome—as
its narrative landscapes. The threat of annihilation (the fear of losing
physical and/or emotional control) is its narrative engine. At the core of this
project lies a question: is there a significant correspondence between the
material infrastructures we live surrounded by, and our intimate lives? How do
the ways we, in the West, tend to handle physical survival—particularly in the
face of ecological threats like flooding that are exacerbated by climate
change—relate to how we manage romantic relationships, friendships, and
community bonds? How does that feel in our bodies and in the body of these
imaginary and autofictional characters?
Water of Love focuses more specifically on the many ways the Netherlands has
tried to keep nature at bay. What does that do to our love life? Does the ocean
have any opinions about the Dutch? Why does the Balgstuw Ramspol look like a
gigantic condom?
There will be readings, there will be music, there will be completely improvised
moments and there will be time to ask and answer questions!
Supported by CBK Rotterdam [http://www.cbkrotterdam.nl/] (Centre for Visual Arts
Rotterdam)
with Valentina Vella, mitsitron, Stephen Kerr and other Klankschool folks
with the kind support of Amy Gowen (HumDrumPress) as wrangler'
prev: unrepair-cafe-server-tour
recurrent: null
resources: []
slug: water-of-love
start_datetime: 1737138600
tags:
- performance
- sound
- varia
- water
title: Water of Love
---
<p>Join us at <strong>Varia</strong> for <em>Water of Love</em>, the second phase of Valentina Vellas long-term project <em>School of Love and Chaos (</em>after <em>Bad at Love</em>, a performance with Luke Deane that took place in March 2024 at Paviljoen aan het water).</p><p><em>School of Love and Chaos </em>weaves together themes of love and ecological threats through autofictional storytelling, science fiction, poetry, and performance, using cities closely linked to water—Rotterdam, New Orleans, Venice, and Rome—as its narrative landscapes. The threat of annihilation (the fear of losing physical and/or emotional control) is its narrative engine. At the core of this project lies a question: is there a significant correspondence between the material infrastructures we live surrounded by, and our intimate lives? How do the ways we, in the West, tend to handle physical survival—particularly in the face of ecological threats like flooding that are exacerbated by climate change—relate to how we manage romantic relationships, friendships, and community bonds? How does that feel in our bodies and in the body of these imaginary and autofictional characters?</p><p><em>Water of Love</em> focuses more specifically on the many ways the Netherlands has tried to keep nature at bay. What does that do to our love life? Does the ocean have any opinions about the Dutch? Why does the Balgstuw Ramspol look like a gigantic condom?</p><p>There will be readings, there will be music, there will be completely improvised moments and there will be time to ask and answer questions!</p><p>Supported by <a target="_blank" href="http://www.cbkrotterdam.nl/"><u>CBK Rotterdam</u></a> (Centre for Visual Arts Rotterdam)</p><p>with Valentina Vella, mitsitron, Stephen Kerr and other Klankschool folks</p><p>with the kind support of Amy Gowen (HumDrumPress) as wrangler</p>

15
src/content/index.md Normal file
View File

@ -0,0 +1,15 @@
---
title: "Let's unrepair together"
---
# Let's unrepair together
Hello! Every thursday we're hanging out at Cato, to unrepair together. In januari 2025 we're kickstarting a series of hangouts where we'll dive into topics like server maintainance, salvaging electronic components and making sound devices.
Come hang out!
{{ events upcoming repair }}
### Past hangouts
{{ events passed repair}}

View File

@ -0,0 +1,100 @@
---
title: A newsletter for december
published: false
---
# Klankbord Digest January 2025
Hello and welcome to the klankbord: a discussion list for the
klankschool community.
### A brief history of Klankschool
Back in Spring 2024 there were a few meetings about Klankschool at
[Varia](https://vvvvvvaria.org), a space for everyday technology in
the South of Rotterdam. The plan was to start building a community
space on Wolphaertstraat where members could run classes about sound.
People voiced their desires and talked with each other on WhatsApp.
However, due to the upkeep of the building it was not possible to get
started in this space. Currently, it is not clear when Klankschool
might be able to move to the location on Wolphaertstraat. Despite
this, activity around Klankschool has persisted.
## Upcoming at Klankschool
{{ events upcoming }}
## Recently at Klankschool
{{ events passed}}
## FAQs
### What is [Klankschool](https://klank.school)?
Klankschool is a loose affiliation of sound artists and sonic
practitioners based in and around Rotterdam, NL. We hangout on
Thursday evenings in the social space at
[Catu](https://radar.squat.net/en/rotterdam/catu). During these
evenings people [(un)repair](https://unrepair.klank.school) audio
devices, do circuit bending and hack away on servers. Sometimes there
are [peformance
evenings](https://calendar.klank.school/event/3rd-klankschool-dagandavond). Sometimes
there's a bite to eat. Often it's a bit cold -- so layer up and bring
your broken audio equipment! Entrance is gratis and donations are
always welcome.
### What's the purpose of this discussion list?
This list offers a place to chat about experimental sound
practices. It's a discussion list which means communication is
multi-directional. Emails sent to klankbord@we.lurk.org are circulated
to everyone subscribed to the list. It's good for sharing open calls,
promoting relevant events, talking with like-minded folks, asking for
spare electrical components etc.. The list is moderated. To contact a
moderator directly, email klankbord-owner@we.lurk.org.
### Where can I discover off-circuit, sonic events in and around Rotterdam?
Klankschool's [calendar](https://calendar.klank.school) is available
online. There are several ways of subscribing to and sharing events
(RSS, ICS/ICAL, Fediverse, HTML embed). You can also upload your own
events to the calendar. It's moderated by a few people who check it on
a semi-regular basis. Please feel encouraged to
[register](https://calendar.klank.school/register) for an account,
this will allow you to upload events more easily.
### I wrote some software for making sound, where can I share it?
Check out our [gitea](https://code.klank.school)! It's a bit like
GitHub / GitLab. Send an email to klankbord-owner@we.lurk.org if you
want a login.
### I am organising something at Klankschool, how can I spread the word?
Best send an email to this mailing list about your workshop / class /
performance and / or post it on the calendar.
### Is there a membership fee?
Not at the moment.
### Does Klankschool have a system for sharing sounds with other people?
Watch this space! :)
## Shoutouts
Big thanks to
**[V2_](https://v2.nl)**
**[Catu](https://radar.squat.net/en/rotterdam/catu)**
**[Varia](https://vvvvvvaria.org)**
**[Lag](https://laglab.org/)**
**[LURK](https://lurk.org)**
**[NL_CL](https://netherlands-coding-live.github.io/)**

View File

@ -0,0 +1,6 @@
---
title: The newsletters
published: false
nested: 'newsletters'
---
Klank.school newsletters

View File

@ -0,0 +1,130 @@
I'd like to begin this month's Klankbord Digest with a server update.
Let's backtrack a bit to understand how the current circumstances
arose. The server began as a prototype on a Mac Pro Trash Bin computer
which I borrowed from a university. It had 16 GB of RAM and for this
reason, it was possible to run loads of software on the machine. For
this purpose, I used Incus, which is a Linux Container Management
System. It's a fork of LXD, which is made by Canonical. Canonical
decided to make LXD proprietary a while ago, and so Incus was the
natural alternative. So, I set up a bunch of containers inside of this
machine and these were capable of communicating with each other. There
was an advantage to using Incus over using LXD. For example, it was
possible to launch different operating systems on top of the host
operating system. And this was no longer easily doable with LXD.
I thought it would be a good idea to install Arch Linux on the Trash
Bin as the host operating system. This was probably not a good idea,
because Arch Linux offers very up-to-date software and is constantly
changing. If software is not kept up-to-date, things break. And when
the software is updated, sometimes things break. In any case, I wanted
to be able to launch different operating systems because various
pieces of software that I wanted to run on the machine were
well-suited to those operating systems. For example, I wanted to run
an OpenProject instance for collaborative project management. In the
past I attempted to build this Ruby on the Rails application from
source inside a Ubuntu container. I found that that simply didn't work
in the long-run. The background jobs processor wasn't working at
all. Everything got clogged up, and it crashed. Slowly. And that was
the end of that, because the system was simply unusable. Thus, running
OpenProject in a Debian environment, without running Debian on the
machine itself, was the main reason why I wanted to run
Incus. However, the OpenProject instance will not make a
reappearance. Partly because it used 1.6 GB of memory. This was not an
issue on the Trashbin, but was an issue on the next server.
Which brings me to a discussion of the next machine: a second-hand
Supermicro, which I picked up from v2_ around Christmas. This machine,
it turns out, used 90 watts of electricity per hour, which is a lot.
For whatever reason, the fan was running at full blast all the time.
Everyone who saw it said it shouldn't be doing that. But it was doing
it and it wasn't clear why. In any case, the task, as I saw it, before
I understood how much electricity this thing was consuming, was to
transfer the containers from the Trashbin to the Supermicro
machine. There were many containers and I wasn't going to use all of
them. Using a laptop and a VPN and an Ethernet cable, I was able to
transfer the required containers to the Supermicro
server. Technically, when running different operating systems with
Incus it's better to use KVMs, or Kernel Virtual Machines. As I wasn't
doing that it was already suffering from mis-configuration issues.
Furthermore, I decided to install Arch Linux on the Supermicro machine
as well. There was a bit of complexity involved in booting the server,
because it needed to be network booted, and that was something I had
not previously encountered. It was quite the adventure but I set it up
hastily. When I installed the operating system, it was an `fdisk`
situation. I set aside eight GB of SWAP space and a 120 GB root
partition, which makes limited sense. No way was there going to be 120
GB worth of software on the machine. More likely: it was going to run
out of RAM. At least things were up and running at this point. There
was the OpenProject. There was a live coding system, Flok. There was
a SFTP server. There was a container for the websites (why not just
use `/var/www/`...?). There was a Gitea instance and a Gitea runner.
There was a container for the PostgreSQL databases. And, finally, one
for the calendar also. These were all online at one point and using
up a lot of memory. The Supermicro server only had four gigabytes of
memory. Unsurprisingly, it could not handle all of this and
crashed. Therefore migrating some of the data / processes elsewhere
was required. The primary reason for this was to reduce memory
consumption. Accordingly the [calendar](https://calendar.klank.school)
moved to a VPS in Graz, Austria. This is now online and should stay
online as long as the VPS is going!
In any case, the supermicro server joined the Varia hub. Very
exciting. Everything was routed through a VPN, and I had to
reconfigure various web servers inside several containers in order to
make it work as expected. One advantage of using system containers on
a per-application basis is that a more granular picture of web
requests can be assembled. Each container had its own web server as
depicted in the following diagram.
```
live.klank.school
o
|
| code.klank.school
| o
| |
+-----------+---------+-------------------------------------+
| | | |
| +-------+---------+-----+ +-------------------------+ |
| | B | | | | B | |
| | O +---+---------+--+ | | O +-------+ +-------+ | |
| | X | | | | | | X | Nginx | | Gitea | | |
| K | | o HAProxy o--+--+---+----+---o---+--+---o | | |
| L | O | | | | | T | | | | | |
| A | N +---+------------+ | | H +-------+ +-------+ | |
| N | E | | | R | |
| K +-------+---------------+ | E | |
| | | E | |
| S | +-------------------------+ |
| E +-------+------------------+ |
| R | B | | each BOX is a container |
| V | O +--+----+ +------+ | |
| E | X | | | | Flok | | o---o is a web request |
| R | | o----+---+-o | | |
| | T | Nginx | | | | |
| | W +-------+ +------+ | |
| | O | |
| +--------------------------+ |
+-----------------------------------------------------------+
```
Despite the advantages of using containers, the decision was made to
stop using them. Some might say to use Docker instead, but I don't
think it makes a difference. There's no need to containerise all the
services on a machine. Excessive complexity and surprising
dependencies are a downside of containers. Thus, I preferred to keep
it simple because the environments were becoming a messy labyrinth of
proxy devices, system containers and storage units. I understood what
was going on but no-one else did. I wanted to change this, but
couldn't find quite the right moment to do so. And didn't. So I simply
pulled the plug on the Supermicro server.
To be honest, I was having a bit of a strange week when I made this
decision. However, it was the right decision to make, along with
changing the DNS provider. March 8th was a deadline which I set for
myself to change the DNS provider. This was insofar that, for the past
couple of years, March 8th has been a day of International
Trans*Feminist anti-colonial Counter-cloud action. Thus, in an effort
to defund the cloud, there's a new DNS provider.

68
src/templates/base.jinja Normal file
View File

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="/assets/styles/layout.css">
<link rel="stylesheet" type="text/css" href="/assets/styles/typography.css">
<link rel="stylesheet" type="text/css" href="/assets/styles/style.css">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="shortcut icon" type="image/x-icon" href="/assets/favicon.ico">
<link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#ffc40d">
<meta name="theme-color" content="#000">
<meta name="keywords" content="">
<meta name="robots" content="noarchive, noimageindex">
{% block title %}
{%- if page['title'] -%}
<title>{{ page['title'] }}</title>
{%- else -%}
<title>I dont have a title</title>
{%- endif -%}
{% endblock %}
</head>
<body>
<main>
<section>
{%- block content %}{% endblock -%}
</section>
{% block aside %}
<aside>
{% macro render_list(name, title) -%}
{% if documents[name]|length > 0 %}
<h3>{{ title}}</h3>
<ul>
{% for item in documents[name] %}
<li>
<a href="/{{ name }}/{{ item['slug'] }}.html">{{ item['title'] }}</a>
</li>
{% endfor %}
</ul>
{% endif %}
{%- endmacro %}
<p>{{ render_list('repair-logs', 'Repair Logs') }}</p>
<p>{{ render_list('events', 'Events') }}</p>
{% block footer %}
<p>Find the code on Klankservers <a target="_blank"
href="https://code.klank.school/vitrinekast/klank-docs">Git!</a>.</p>
{% endblock %}
</aside>
{% endblock %}
</main>
<dialog>
<img src="" alt="">
<p></p>
</dialog>
</body>
<script type="text/javascript" src="/assets/app.js"></script>
</html>

27
src/templates/index.jinja Normal file
View File

@ -0,0 +1,27 @@
{% extends "base.jinja" %}
{% block content %}
<article>
<header>
<h1>{{page['title']}}</h1>
</header>
{{page['body']|shortcode}}
{% if page['nested'] %}
<ul>
{% for nest in documents[page['nested']] %}
{% if nest['published'] != false and nest['filename'] != page['filename'] %}
<li>
<a href="/{{page['nested']}}/{{nest['filename']}}.html">{{nest['title']}} {{nest['filename']}}</a>
</li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
</article>
{% endblock %}
{% block aside %} {% endblock %}

View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="shortcut icon" type="image/x-icon" href="/assets/favicon.ico">
<link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#ffc40d">
<meta name="theme-color" content="#000">
<meta name="keywords" content="">
<meta name="robots" content="noarchive, noimageindex">
<style>
body {
max-width: 800px;
margin: 2rem auto;
font-family: sans-serif;
}
</style>
{% block title %}
{% if page['title'] %}
<title>{{ page['title'] }}</title>
{% else %}
<title>The title</title>
{% endif %}
{% endblock %}
</head>
</head>
<body>
settings for newssletter only {{ name }}
<main>
<section>
<article>
{{ page['body'] | shortcode }}
</article>
</section>
</main>
</body>
</html>

View File

@ -0,0 +1,48 @@
{%- macro inventory(compare, compareWith) -%}
{%- set ns = namespace(has_inventory=false) -%}
{%- for item in documents.inventory -%}
{%- if (item[compare]) -%}
{%- if (item[compare].capitalize() | slugify) == (compareWith.capitalize() | slugify) -%}
{%- set ns.has_inventory = true -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- if ns.has_inventory -%}
<table>
<thead>
<tr>
<th>Name</th>
<th>Value</th>
<th>type</th>
<th>Where</th>
<th>When</th>
</tr>
</thead>
<tbody>
{%- for item in documents.inventory -%}
{%- if (item[compare]) -%}
{%- if (item[compare].capitalize() | slugify)== compareWith -%}
<tr>
<td>{{item.Name}}</td>
<td>{{item.Value}}</td>
<td><a href="/components/{{item.type | slugify}}.html">{{item.type}}</a></td>
<td><a href="/devices/{{item.Where | slugify}}.html">{{item.Where}}</a></td>
<td>{{item.Date}}</td>
</tr>
{%- endif -%}
{%- else -%}
other {{compare}} {{item}}
{%- endif -%}
{%- endfor -%}
</tbody>
</table>
{%- else -%}
No components were identified yet {{compare}} {{compareWith}}
{%- endif -%}
{%- endmacro -%}

View File

@ -0,0 +1,32 @@
{% if documents[type]|length > 0 %}
<ul class='list--{{ layout }}'>
{% for item in documents[type]|sort(attribute="filename") %}
<li class="list__item">
{% if layout == "list" %}
<span class="date">{{ item['start_datetime'] | prettydate }} </span>
<b>{{ item['title'] }}</b>
{% else %}
{% if item['image'] %}
<img src="{{ item['image'] }}" class="m-0" alt="" />
{% endif %}
<h5 class="m-0" ><a href="/{{ type }}/{{ item['slug'] }}.html">{{ item['title'] }}</a></h5>
{% if item['excerpt'] %}
<p>{{ item['excerpt'] }}</p>
{% endif %}
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}

View File

@ -0,0 +1,35 @@
{% set the_events = events|sort(attribute="start_datetime") %}
{% if filter == "upcoming" %}
{% set the_events = events|sort(attribute="start_datetime")|rejectattr("has_passed")%}
{% elif filter == "passed" %}
{% set the_events = events|sort(attribute="start_datetime", reverse=true)|selectattr("has_passed")%}
{% endif %}
{% if events|length > 0 %}
<ul class='list--list'>
{% for item in the_events %}
<li class="list__item">
<span class="date">{{ item['start_datetime'] | prettydate }} </span>
<b>{{ item['title'] }}</b>
{% if item.has_passed and item.has_log %}
<a href="/events/{{ item['filename'] }}.html" class="link">
<b>Read more</b>
</a>
{% elif not item.has_passed %}
<a href="https://calendar.klank.school/event/{{ item['filename'] }}.html" class="link">
Join!
</a>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}

View File

@ -0,0 +1,13 @@
{%- macro showCircuit(content) -%}
{% if content['pcb'] %}
<article template-type="circuit">
<header class="sm">
<h2>Paper circuit: {{content['title']}}</h2>
</header>
<section class="section--pcb">
<img src="{{ content['pcb']}}" class="media--pcb" />
</section>
</article>
{% endif %}
{%- endmacro -%}

View File

@ -0,0 +1,24 @@
{% from 'snippets/page-detail.jinja' import showDetail with context %}
{% from 'snippets/page-front.jinja' import pageFront with context %}
{% from 'snippets/page-circuit.jinja' import showCircuit with context %}
{%- macro showCoverPage(chapter, documents, index) -%}
<section class="meta">
<span data-chapter-title>{{chapter['title']}}</span>
</section>
<header class="page--cover">
<h3>Chapter {{index}}</h3>
<h1>{{chapter['title']}}</h1>
{% if chapter['nested'] %}
<ul class="list--frontpage">
{% for nest in documents[chapter['nested']] %}
<li><h3>{{nest['title']}} +<ins> (pagenr/link)</ins></h3></li>
{% endfor %}
</ul>
{% endif %}
</header>
{%- endmacro -%}

View File

@ -0,0 +1,84 @@
{%- macro showDetail(content, parentChapter) -%}
<article>
<section class="meta">
<span data-chapter-title>{{content['title']}}</span>
</section>
<header>
<h2>[[chapter title]]</h2>
<h1>{{content['title']}}</h1>
{% if content['alsoKnownAs'] %}
<h5>Also known as {{content['alsoKnownAs']}}</h5>
{% endif %}
{% if content['shortDescription'] %}
<p>{{content['shortDescription'] }}</p>
{% endif %}
{% if content['sample'] %}
<div class="sample fn-sample">
<audio src="{{ content['sample'] }}"></audio>
<svg class="icon play" width="12" height="13" viewBox="0 0 12 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 2.52588V9.52588L9.5 6.02588L4 2.52588Z" fill="black"/>
</svg>
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" class="icon pause" xmlns="http://www.w3.org/2000/svg">
<path d="M3 9.5H5V2.5H3V9.5ZM7 2.5V9.5H9V2.5H7Z" fill="black"/>
</svg>
<label for="">play sample (web only)</label>
</div>
{% endif %}
</header>
{% if content['BOM'] %}
<aside>
<h4>BOM</h4>
<ul>
{% for thing in content['BOM'] %}
<li>
{% if thing['type'] %}
{% if thing['label'] %}{{ thing['label'] }}{% endif %}
{{ thing['count'] }}
{{ thing['value'] }}
<a href="/components/{{ thing['type'] |slugify }}.html">{{thing['type']}}</a>
{% else %}
{{ thing }}
{% endif %}
</li>
{% endfor %}
</ul>
</aside>
{% endif %}
<section>
{{content['body']}}
</section>
{% if content['image'] %}<img
src="{{ content['image'] }}"
alt=""
/>{% endif %} {% if content['material'] %}
<dl>
<dt>Material</dt>
<dd>{{content['material']}}</dd>
<dt>Usage</dt>
<dd>{{content['usage']}}</dd>
<dt>Typically found in</dt>
<dd>{{content['whereToFind']}}</dd>
{% if content['schematicSymbol'] %}
<dt>Schematic symbol</dt>
<dd><img src="{{content['schematicSymbol']}}" /></dd>
{% endif %}
</dl>
{% endif %}
</article>
{%- endmacro -%}

View File

@ -0,0 +1,30 @@
{%- macro showFront(content) -%}
<article>
<section class="meta">
<span data-chapter-title>{{detail['title']}}</span>
</section>
<header>
<h1>{{detail['title']}}</h1>
<h5>Also known as {{detail['alsoKnownAs']}}</h5>
</header>
{% if detail['image'] %}<img src="{{ detail['image'] }}" alt="" />{% endif %}
<dl>
<dt>Material</dt>
<dd>{{detail['material']}}</dd>
<dt>Usage</dt>
<dd>{{detail['usage']}}</dd>
<dt>Typically found in</dt>
<dd>{{detail['whereToFind']}}</dd>
{% if detail['schematicSymbol'] %}
<dt>Schematic symbol</dt>
<dd><img src="{{detail['schematicSymbol']}}" /></dd>
{% endif %}
</dl>
{{detail['body']}}
</article>
{%- endmacro -%}

View File

@ -0,0 +1,14 @@
{% from 'snippets/page-detail.jinja' import showDetail with context %}
{% from 'snippets/page-front.jinja' import pageFront with context %}
{% from 'snippets/page-circuit.jinja' import showCircuit with context %}
{%- macro showNestedPages(chapter, documents) -%}
{% if chapter['nested']%}
<pre>{{ documents[chapter['nested']]|length }} </pre>
{% for nest in documents[chapter['nested']] %}
{{ showDetail(nest, chapter) }}
{{ showCircuit(nest) }}
{% endfor %}
{% endif %}
{%- endmacro -%}