Commit Graph
172 Commits
Author SHA1 Message Date
libretech a12d9d2146 223015b phase 3: aliasing-paar demo (kap1 folie 37 'aliasing in audio + bild parallel'). zwei-spalten audio-orange / bild-blau, jeweils mit original (schnelle welle / dichte streifen) vs gesampelt (alias-welle mit faded original / breite moiré-bänder). audio: 18 khz → 22 khz sampling → 4 khz brumm. bild: 93 feine linien → 5 breite bänder. ear-eye-headlines: 'was das ohr hört' bzw 'was das auge sieht' machen pädagogisch klar dass es um wahrnehmung geht. verdict 'aliasing kennt keine modalität — es ist ein mathematischer fehler, kein technischer. egal ob ton/bild/video/radar/gps — sampling immer doppelt so dicht wie signal'. moiré via svg linear-gradient gefakt (echte moiré-darstellung in svg unmöglich da chromium subpixel-präzise rendert) 2026-05-14 11:27:40 +02:00
libretech fc941c6ac3 223015b phase 3: nyquist-diagram demo (kap1 folie 35 nyquist-theorem). drei vergleichs-cases mit derselben grundwelle (8 cycles über 880px svg): (1) aliasing rot f_s=0.9f, 8 sample-punkte sitzen mathematisch korrekt auf der welle und ergeben verbunden eine ganz andere langsamere kurve, (2) nyquist-grenze gelb f_s=2f, 16 punkte exakt auf peak/tal und zigzag-verbindung zeigt mathematisches minimum, (3) überabtastung grün f_s=8f mit 64 dichten punkten die der welle treu folgen wie eine CD. punkte mit python berechnet (y = 70 - 45*sin(2π*(x-20)/105) für jede sample-position). verdict erklärt 44,1 khz: ohr hört bis 20 khz, 2x20=40 plus 4,1 sicherheitsmarge 2026-05-14 11:25:50 +02:00
libretech 478966903a 223015b phase 3: pivot-signal-zu-byte demo (kap1 folie 27 strang-wechsel). 5-spalten layout welt → sampling+quantisierung (pink 'jetzt dran') → datei (dark center mit hex-bytes) → notation/encoding/format (grau durchgestrichen 'schon durch') → mensch. verdict 'die datei ist die mitte. beide wege führen durch sie hindurch' + erklärung rechts=gelernt links=jetzt. didaktisch: macht den strang-wechsel explizit sichtbar damit studierende nicht den faden verlieren wenn das thema von 'datei → bedeutung' zu 'welt → datei' kippt 2026-05-14 11:17:57 +02:00
libretech de166cf27d 223015b phase 3: kb-vs-kib demo (kap1 folie 25 'KB vs KiB — warum 931 GB?'). zwei panel-vergleich: marketing (1 TB blau, 10^12 byte) vs betriebssystem (931 GB orange, eigentlich 931 GiB), mit pfeil 'geteilt durch 2^30' dazwischen. math-box mit rechnung 10^12 ÷ 2^30 ≈ 931,3 GiB, plus zeile 'etikett: GB · anzeige: GB · bedeutung: zwei verschiedene dinge'. verdict 'es fehlt nichts. es wird nur in zwei sprachen gezählt' mit code-tag-erklärung GiB/GB. lebensweltanker: 1-TB-SSD-etikett, kein emoji 2026-05-14 11:16:43 +02:00
libretech 42ca2e5c83 223015b phase 3: drei-dateien demo (kap1 folie 3 'drei dateien — dasselbe innenleben'). drei spalten: foto/sprachnachricht/PDF mit jeweils thumbnail (svg sunset/waveform/document) + hex-strip mit erstem byte + magic-number in farbe markiert (89 50 4E 47 für PNG, 49 44 33 für ID3, 25 50 44 46 für %PDF) + ascii-übersetzung. verdict 'drei verschiedene dinge — eine sprache: jede datei beginnt mit ihrer visitenkarte (magic number)'. stilreferenz wie kap03-eroeffner (3-spalten-cards mit farbigen rahmen), keine emojis 2026-05-14 11:14:57 +02:00
libretech 1a79289349 223015b phase 3b: kap05-eroeffner (distribution+metadaten als 3-schichten-foto-szenario). smartphone-foto stuttgart→tokyo zeigt: inhalt (svg sunset-city), gepäck (echte EXIF mit kamera/belichtung/zeitstempel/GPS-koordinaten königstraße in pink/software/farbprofil), weg (route-strip mit DNS→TLS→CDN-edge-tokyo + HTTP/3 200 OK headers). drei verschiedene visuelle stile pro schicht (panel-grid + horizontaler strip), nicht pipeline wie kap04. GPS-koords als privacy-anker (mcafee-fall vorbereiten). verdict: eine datei = inhalt + gepäck + weg, drei schichten, eine datei. window 1280x860, no emojis 2026-05-14 11:12:06 +02:00
libretech 68c18ea631 223015b phase 3b: kap04-eroeffner committed (datei-reise als pipeline ssd→laptop→gpu→monitor→auge mit echten bandbreiten 3200 mb/s usb4, 7000 mb/s pcie 4.0, 2200 mb/s hdmi 2.1 und 4k-trailer 1.2 gb szenario). zeigt: speicher und schnittstelle sind keine zwei themen sondern zwei seiten desselben engpasses. rohbild-pixelstrom mit 1.4 gb/s niemals als datei. layout: stationen mit farbcodierten rahmen + links mit raten+protokoll dazwischen, scenario-box mit erklärung, verdict-pinkbox mit kernsatz 2026-05-14 11:08:16 +02:00
libretech f573e9d78b 223015b phase 3b: 2 konkrete eröffner-demos (statt schablone) + STATUS.md für branch-fortsetzung. kap02-eroeffner: FLAC vs MP3-128 mit synth-svg-wellenformen, echten dateigrößen (5.3 MB vs 0.48 MB), bitrate-vergleich, verdict-frage 'hört man den unterschied'. kap03-eroeffner: 3×3-tabelle bild/audio/video × roh/lossy-modern/lossy-aggressiv mit echten zahlen (foto 36MB→4MB→800KB, audio 5.3MB→720KB→240KB, video 12GB→94MB→45MB) + visuelle größenbalken + verdict mit reduktionsfaktoren ×45/×22/×270 und drei verschiedenen wahrnehmungs-tricks pro modalität. kap4+5 eröffner noch offen, status-doc beschreibt nächste schritte für branch-fortsetzung von unterwegs 2026-05-14 10:44:41 +02:00
libretech 1c8185ba10 223015b: 5 advance organizers verworfen — plump, gleichförmig, nicht erkenntnisgewinnend (alle nach gleicher schablone: header → topic-boxen → konvergenz-pinkbox, also nur kapitel-titel in diagramm-form statt struktur/spannung sichtbar machen). zusätzlich emoji-icons in mehreren demos (verstoß gegen no-emoji-konvention). neue strategie: pro kapitel eigene konkrete eröffner-grafik (nicht schablone), z.B. wellenform-vergleich FLAC/MP3 für kap2, JPEG-degradation-paar für kap3, datei-reise-pfad mit datenraten für kap4, foto-mit-EXIF-overlay für kap5. kap1 nutzt byte-fuer-byte als eröffner (kein zusätzliches organizer-bild nötig) 2026-05-14 03:19:06 +02:00
libretech ff21ce9d47 223015b phase 3a: 5 advance organizers gebaut (eröffnungs-folie pro kapitel) — kap01 welt→datei→mensch mit signal-rein/bedeutung-raus split, kap02 lossless vs lossy mit konvergenz zu wann-was, kap03 drei modalitäten (bild/audio/video) unter wahrnehmungs-lücken mit patent-politik-fußnote, kap04 wohnen-vs-reisen (speicher/schnittstellen) mit anwendungs-wahl, kap05 weg-vs-gepäck (distribution/metadaten) mit 'aufmerksamkeit für das was wir nicht sehen' als roter faden. stil-vorlage three-views.html + byte-fuer-byte.html (light-bg, colored-poles, pink-konvergenz, mono-code-blöcke). pro html: chromium-headless render 1280x680-800px, png visuell inspiziert 2026-05-14 03:02:43 +02:00
libretech bf2ca0bb87 223015b docs: 'Hands-On' → 'Selbstlernen' in allen 5 bogen-docs (pädagogisch konventionsgerecht statt industrie-jargon), 'Klausur-Recap'-folie am ende von kap 3 gestrichen (verletzte das prinzip der klausur-fragmentation), klausur-block-terminologie im lernziel-doc explizit als thematischer lernziel-cluster geklärt (block = klausurfragen-konvention, klausur-folien bleiben verstreut im vorlesungsfluss) 2026-05-14 02:37:33 +02:00
libretech bb943f84b9 223015b phase 0+1+2: klausur-themen-tableau (9 blöcke nach D1-D4-lock: alles drin, zukunft raus, JPEG volle DCT-tiefe, granular), 33 operative lernziele (fließsatz, default verstehen/unterscheiden, kein bloom-tag, alltagsanker wo sinnvoll, L1.5 KB/KiB nicht mehr apply sondern einordnen), 5 kapitel-bögen mit advance organizers und folien-skeletten (kap1 datenfundamentale ~40 slides, kap2 kompression ~22, kap3 inhalte ~50, kap4 speicher/schnittstellen ~30, kap5 distribution/metadaten ~25), pro bogen: bedienter klausur-block + lernziel-bezug pro folie + berührungspunkt + reuse/neu-markierung der visualisierungen + streichungsliste mit begründungen + hands-on 2026-05-14 02:27:19 +02:00
libretech f35789d943 223015b 01-grundlagen: encoding+hex strukturiert — encoding-strang (problem→ASCII→unicode→byte zählen) und darstellungs-strang (WTF!?→8-bit→hex→demos) getrennt statt verschachtelt, 3 brücken-folien (ASCII reicht für englisch / byte für byte als advance organizer / hex ist überall), byte-für-byte demo (3 fenster bin/hex/text mit binärdatei-vs-textdatei-marker), lv-original-vs-fake bild ersetzt leere folie zwischen lossless-titles, 'besser erkennen' → 'besser erkennbar', singular Byte plural in eigener brücke korrigiert 2026-05-13 22:53:45 +02:00
libretech 35f3d2c492 didaktisches fundament: CLAUDE.md + README.md + AGENTS.md mit drei meta-lernzielen (gelernte hilflosigkeit ablegen, berührungspunkte schaffen, gefühl für technik), constructive alignment (biggs), advance organizer (ausubel), mayer 12-prinzipien, informatikdidaktik-referenz (magenheim/romeike/hartmann), validierungs-checkliste pro folie, anti-pattern-liste (bullet-vorlesen, motivations-cringe, theorie-first, folien-patchen). AGENTS.md von HdM-only auf uni-slides (3 kurse, unified make-pattern, port 1312, deploy tengo@tuttle, korrekte pfade) aktualisiert. .gitignore um assets-original/ ergänzt (image-backups bleiben lokal) 2026-05-13 22:53:29 +02:00
libretech 82407679b5 dhbw 01_web_eng: ecmascript-history slide (ecma international, ECMA-262, ES15, kompat-tabelle), html-anatomie ascii-diagramm (opening/closing tag, content, element, attribute), css-anatomie ascii-annotation (#description-beispiel mit pfeilen auf property+value), framework-logos als bg right:25% auf react/vue/svelte/astro/webpack/vite/parcel slides, a11y-test-slide layout fix (image inline statt bg-right wie hdm) 2026-05-07 17:21:25 +02:00
libretech c242e0f947 dhbw inhalt: vorlesungsplan tabelle → cards-grid (4×3, milestones hervorgehoben), über-mich logos-collage, internet-101 erweitert (timeline + arpanet-bg + WWW-1989 + mosaic-bg + unterseekabel + heute + five-eyes), a11y/WCAG-block (~12 slides nach native html, vor css), direkt-install slide gesplittet (szenario / symptome), code-block-color → #f48fb1 (alle 8 files), section.invert h2 #f48fb1 für barrierefreiheit, ressourcen-slide auf 01-05 nach cover, alle emojis raus (✓✗⚠️🍞🥬🏆 + ↔), ESM statt CJS in 03/04, librete.ch domain, kleinere fixes (chromium statt chrome, CLI aufgelöst, JetBrains edu, hoppscotch, SOLID-abk., node 24 LTS, brew/winget/scoop/choco-links, vim/neovim/emacs editoren, herzlich willkommen) 2026-05-07 17:09:04 +02:00
libretech 52312f1cb8 dhbw assets: arpanet 1969 + arpanet 90er, mosaic-screenshot, unterseekabel-karte für internet-101 + 5 a11y-demos (kontrast, fokus, error, semantik, keyboard) für barrierefreiheit-block 2026-05-07 17:08:46 +02:00
libretech e2bab75e60 dhbw assets: 13 logos (uni-stuttgart, dhbw, klett, pons, langenscheidt, nextmarkets, re-cinq, experience-one, becklyn, caesargustav) + collage.png für über-mich-slide, dark-varianten der weiß-auf-transparent-logos 2026-05-07 15:29:45 +02:00
libretech b242c7b4e6 223015c 02 + dhbw 01: klausurfolien markiert, prosa-sätze bei allen tabellen, layout-fixes
223015c/02:
- glossar landkarte: klausur, prosa, reihenfolge (host→client→server→req→res→protokoll), tcp/http als beispiel
- glossar adressen/daten/eigenschaften/protokolle: prosa-sätze
- tcp/ip-modell: nichtssagenden satz ersetzt
- dateneinheiten: merkhilfe durch prosa ersetzt
- osi vs tcp/ip: bg right statt h:440, prosa statt einzeiler
- port: tabelle→liste, prosa statt bullets
- ip vs mac vs port: prosa
- tcp vs udp, http-methoden, status-codes, einheiten: prosa
- selektoren id + farben: klausur markiert
- farben: mdn-link, prosa-satz

dhbw/01:
- farben: prosa-satz synchronisiert
- über-mich: collage-bild hinzugefügt
2026-05-07 15:21:40 +02:00
libretech 46b297ada4 dhbw 01_web_eng: direkt-install slide ausgebaut (szenario, symptome), du-formen entfernt (sachlich/akademisch), editor-liste vim/neovim/emacs (helix raus), git inline erklärt 2026-05-07 14:48:33 +02:00
libretech 8dabc4e570 dhbw farb-schema: himbeer (wie hdm 223015c) — highlight #d63384, h1 #a02060, h2 #1f2937 (#f48fb1 auf invert für barrierearmut), pre/code #0f0f23/#d63384, dimmed #4a4a6a, invert-bg #001520→#000; herzlich willkommen statt willkommen; git kurz erklärt 2026-05-07 14:41:07 +02:00
libretech 6b33a79d9c dhbw 01_web_eng: über-mich aktualisiert (systems & platform engineer, dhbw-mail), onboarding-block (werkzeuge/os, node-install pro os mit lts node 24, versionsmanager, alternative runtimes deno/bun, editor, browser-devtools, http-clients, git setup, projekt-skeleton), html-block aus hdm (was ist html, anatomie, metadaten, tags+attribute, native html), css-block aus hdm (selektoren, spezifität, box-modell, farben, einheiten, pseudo-klassen, responsive), mandala-PNG mit erklärungs-folie, font 1.7→1.4rem, semesterplan + prüfungsleistung details, ascii-browser-request raus (PNG bleibt), kleine fixes (chromium statt chrome, cli aufgelöst, brew-link, jetbrains edu, hoppscotch, solid abkürzungen aufgelöst) 2026-05-07 14:21:19 +02:00
libretech a07ab0a3d1 dhbw 02_css_extended: native html-block + basic-selektoren + basic-pseudoclasses + specificity raus (jetzt in 01), einheitliche cover (sitzung 2 — html & css frameworks), font 1.7→1.4rem, fragen-slide raus 2026-05-07 14:21:00 +02:00
libretech 5c25b14a59 dhbw 03-04 (node.js basics+advanced): cjs → esm in code-beispielen (import + node:-präfix), legacy-cjs als vergleichsbeispiel markiert, einheitliche cover, font 1.7→1.4rem, fragen-slides raus, __dirname/__filename via import.meta.url 2026-05-07 14:20:46 +02:00
libretech 79fbe046d9 dhbw 05-08 (testing/typescript/docker/best-practices): einheitliche cover (web engineering / dhbw stuttgart / sose 2026 · sitzung x), font 1.7→1.4rem, fragen+hausaufgabe-slides raus (kein klausur an dhbw) 2026-05-07 14:20:35 +02:00
libretech 4b267bcb8b dhbw assets: html/css demo-pngs aus hdm kopiert (20 files) + web-engineering-mandala.png 2026-05-07 14:20:20 +02:00
libretech df52a8c6a5 makefile: konsolidiere dev — nur 'make dev' (alle kurse, port 1312), per-course dev-targets + _PORT vars raus 2026-05-07 10:58:24 +02:00
libretech 6e41b8c3eb makefile: unified per-course pattern rules (build-/dev-/deploy-/klausur-<course>) statt hdm-/dhbw- duplikate, ~100 zeilen weg, neue kurse via variablen 2026-05-06 18:37:59 +02:00
libretech 96362e2959 dhbw: import original web-eng inhalte (testing, typescript, docker, best practices) + framework-übersicht, native html, prüfungsleistung-detail, sose 2026 2026-05-06 18:28:20 +02:00
libretech 73be35ccb8 dhbw: semesterplan sose 2026 (11 sitzungen) + deploy-path fix (kein doppeltes dhbw) 2026-05-06 17:03:44 +02:00
libretech 3c938b4b1c rebrand: hdm slides → uni slides (dhbw + hdm), make-targets mit hdm-/dhbw- prefix, dhbw_deploy_path typo fix 2026-05-04 20:05:50 +02:00
libretech 841a7ced76 dhbw: neuer kurs technik I — 4 kapitel + demo assets 2026-05-04 20:05:46 +02:00
libretech 5c419c9ed1 gendering: fehlende person-substantive in beiden kursen
- Nutzer/User -> Nutzende
- Endnutzer -> Endnutzende
- Teilnehmer -> Teilnehmende
- Programmierer/Entwickler -> Programmierende/Entwickelnde
- Web-Entwickler -> Web-Entwickelnde
- Tastatur-Nutzer -> Tastatur-Nutzende
- Benutzer -> Nutzende
- Konsumenten -> KonsumentInnen
- Künstler -> KünstlerInnen
- Autor -> AutorIn
- Fotografen -> FotografInnen
- Kunde -> KundIn

ausgenommen: code-identifiers (User, type User, /users/),
Sender/Empfänger (network protocol), Sawyer (konkrete person),
Hersteller/Betreiber (organisations-rolle).
2026-04-27 17:27:19 +02:00
libretech a955a7636a selbstlernen hex links: absolute urls fuer PDF-klick
PDF rendert relative pfade als nicht-klickbar. absolute https-urls
zu librete.ch/hdm/223015b/materials/hex1-5 funktionieren beide
in HTML- und PDF-export.
2026-04-27 16:29:09 +02:00
libretech c978842812 c01 Web-Zugänglichkeit Vertiefung: keine klausur, kein bg
- _class: 'erklaerung klausur' -> _class: erklaerung
- _backgroundColor: #fce4ec entfernt

ist nur eine vertiefung, keine klausur-folie.
2026-04-27 16:10:01 +02:00
libretech 61468d2d3a erklaerung: bg entfernen — soll vertiefung sein, nicht klausur
bug: 'section.erklaerung' hatte '@media print { background }' rule (alle 5
files), was im PDF rosa/blau-klausur-bg setzte. HTML hatte (in c) keinen
bg oder (in b) gradient bg. ergebnis: HTML zeigt erklaerung anders als PDF
— PDF sah aus wie klausurfolie obwohl es nur eine vertiefung ist.

fix: erklaerung behaelt nur 'font-size: 1.1rem' + h1 color/size + table
font-size. KEIN background mehr — weder screen noch print. visuell
unterschieden durch h1-color und font-size, nicht durch bg-farbe.

betroffen: b01, b02, b03, c01, c02 (alle files mit section.erklaerung).
2026-04-27 15:04:45 +02:00
libretech a3c3e259b4 b01: kaputte html-comments fixen (_class directive nicht im comment-prefix)
L603/L850: '<!-- _class: erklaerung' ohne '-->' und ' _class:' ohne '<!--'
in proper '<!--\n_class:\n-->' form gebracht. inhalt bleibt versteckt
wie vorher beabsichtigt, syntax aber jetzt sauber.
2026-04-27 01:26:31 +02:00
libretech ac39f2b746 klausurfragen pdf fix: pre blocks waren schwarz auf schwarz
bug: 'pre code { color: inherit }' fiel auf section --color-foreground (#1a1a2e)
zurueck weil 'pre' selbst keine 'color' hatte. multi-line code-bloecke
unsichtbar (nur hljs-syntax-spans hatten farbe, rest = dark on dark).

fix: 'pre { color: #f8f8f8 }' setzen + inline 'code' und hljs/non-hljs
selectoren analog zu chapter-styles ergaenzt.

verified: c klausurfragen page 60 (G2 mobile-first CSS pre-block) jetzt
voll lesbar.
2026-04-27 00:53:48 +02:00
libretech 19ca5ad3e0 223015b selbstlernen hex files: 5 statt 3 dateien, link wtf->hex, pfad ./materials
- referenzen wtf1/2/3 -> hex1/2/3 (dateinamen tatsächlich)
- hex4 (DOCX) und hex5 (ZIP) ergänzt — alle 5 vorhandenen materialien sichtbar
- pfad ../materials -> ./materials (build/223015b/materials struktur)
2026-04-26 22:05:48 +02:00
libretech aea96edd09 bit/byte/hex folien sync beide kurse + neue viz embeds
223015c (internettechnik):
- byte-aufbau ausgebaut (build-up tabelle 0..127..255 wie b)
- neue slides: why-8-bit, byte-flow, three-views nach byte-nibble-hex/hex-dec-table

223015b (dateiformate):
- byte-nibble-hex slide eingebaut
- neue slides: why-8-bit (vor hex-lead), hex-dec-table, byte-flow, three-views
- wo-begegnet-hex tabelle (CSS, MAC, fehlercodes, speicher, unicode)
- bit-vs-byte verwirrung (Mbit/s vs MB/s)

konvention: 'Byte' und 'Bit' invariant, kein plural-s
2026-04-26 22:05:32 +02:00
libretech a000cdbc8d 223015b: neuauflage ascii-tabelle + sync byte-nibble-hex/hex-dec-table aus c
- ascii-table.html: 16x8 grid, kategorie-gefärbt (ctrl/digit/upper/lower/punct/del)
  hex+dezimal pro zelle, legende, beispiel-zeile
- byte-nibble-hex + hex-dec-table aus 223015c kopiert für slide-parität
2026-04-26 22:04:36 +02:00
libretech 1d29a9f03c neue viz: three-views, why-8-bit, byte-flow (beide kurse)
- three-views.html: bitstream/hex/bedeutung — gleiche bytes drei perspektiven (PNG-header)
- why-8-bit.html: speicher-adressierung byteweise, halbe byte unmöglich
- byte-flow.html: 1 byte = 8 bit = 2 hex = 1 ASCII (Hello, World!) jeder rahmen ein byte
- screenshots in beide assets/demos ordner
2026-04-26 22:04:28 +02:00
libretech 24d7e5f660 byte-nibble-hex visualisierung: html-demo + slide #50
neue stufen-visualisierung (byte → 2 nibbles → 2 hex-ziffern → 4D/77/M)
ersetzt ascii-platzhalter durch sauberes html/css-demo + bg-fit png
2026-04-24 09:44:59 +02:00
libretech a941b81d37 add codecrispies links to html examples 2026-04-24 09:19:26 +02:00
libretech 7bbfa74f1b geschichte-folien: kathleen booth titel, fortran raus, von-neumann ausgebaut
- assembler-folie als kathleen booth (1922-2022) mit motorola-6800-asm bild
- fortran-folie entfernt
- von-neumann 5 komponenten: heute-spalte, kernprinzip, bus-details
- palantir/signal-bild-folie raus
- "bauen, einsetzen und regulieren"
- "bit & byte" statt "bits & bytes", 2⁸ ausgeschrieben
- perceivable-folie: texte/nicht-text umstrukturiert
2026-04-24 01:01:27 +02:00
libretech 7d0173f40e 223015b: inline code syntax highlighting style parity 2026-04-22 13:18:23 +02:00
libretech 2680a745cf inline code syntax highlighting: marpit custom engine + css 2026-04-22 13:15:19 +02:00
libretech 79aaa14c29 a11y feinschliff, hex-dec-table neu, operable-folie verbessert, anatomie klausur 2026-04-22 11:54:51 +02:00
libretech ec800d28ae a11y werkzeuge-folie überarbeitet: screenreader tabelle, orca/talkback, wcag-formulierungen 2026-04-21 23:38:06 +02:00
libretech 80786cb040 a11y folien feinschliff, input-date demo, tag-attribut demo update, synonyme 2026-04-21 23:32:30 +02:00