ArneBab's Avatar

ArneBab

@arnebab.rollenspiel.social.ap.brid.gy

#TTRPG, #Filk and #FreeSoftware. Physicist by training, PhD in climate science, software developer by trade. I write German and English, as #freeculture by […] 🌉 bridged from ⁂ https://rollenspiel.social/@ArneBab, follow @ap.brid.gy to interact

23 Followers  |  0 Following  |  1,218 Posts  |  Joined: 29.09.2024  |  1.5321

Latest posts by arnebab.rollenspiel.social.ap.brid.gy on Bluesky

@Mapka Faulkner: «Schall und Wahn»

#seite42

19.11.2025 10:54 — 👍 0    🔁 1    💬 1    📌 0

@Mapka Rules:

• Grab the nearest book.
• Turn to page 42.
• Find the 2nd sentence.
• Post the sentence in a toot with the hashtag
& write the rules as a comment.
• Don’t look for your favourite, coolest or
wittiest book. Go for the closest

19.11.2025 10:54 — 👍 0    🔁 0    💬 0    📌 0

@Mapka Faulkner: «Schall und Wahn»

#seite42

19.11.2025 10:54 — 👍 0    🔁 1    💬 1    📌 0
Original post on sueden.social

Die @stz_news berichtet von 1 „Auszeichnung“ des #AfD - Frontmanns für #BadenWuerttemberg, #Frohnmaier, durch US-Republikaner in #NY. Auch wurde der seit Jahren gg. #BW wütende, islamfeindliche Rassist #Weinthal nach langer Sperre wieder auf #X freigeschaltet.

Schon 2021 wurde ich von 1 #Trump […]

19.11.2025 07:52 — 👍 3    🔁 6    💬 1    📌 0
Original post on sueden.social

Schuld an der #Wasserkrise des #Iran sind gerade nicht Frauen, sondern der #Fossilismus & #Antisemitismus korrupter Männer. Die sog. #IslamischeRevolution brachte das Öl-Regime einer dualistischen #Theokratie an die Macht. Die sog. #Revolutionsgarde verschleuderte Milliarden für #Kriege […]

19.11.2025 05:20 — 👍 4    🔁 4    💬 1    📌 0
Original post on sueden.social

Warne seit Jahren vor der Klima- als #Wasserkrise. Und wissenschaftsfeindliche Dualisten wieder so: „Islamische Hardliner im #Iran machen den „unislamischen“ Lebensstil vieler Bürger, insbesondere in der Millionenmetropole #Teheran, für die Trockenheit verantwortlich. „Zweifellos wirkt sich das […]

19.11.2025 05:13 — 👍 6    🔁 9    💬 1    📌 0
*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@
To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm:

#+begin_src wisp :results output :tangle hoot.w
;; file: hoot.w
use-modules : hoot ffi ;; guile specific import

;; the interface
define-foreign document-body "document" "body"
  . -> (ref null extern)
define-foreign make-text-node "document" "createTextNode"
  . (ref string) -> (ref null extern)
define-foreign append-child! "element" "appendChild"
  . (ref null extern) (ref null extern) 
  . -> (ref null extern)

;; your code
append-child! : document-body
  make-text-node "Hello, world!"
#+end_src

Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix:

#+begin_src bash
guix shell guile guile-wisp -- \
  wisp2lisp hoot.w > hoot.scm && \
    guix shell guile-hoot guile-next -- \
      guild compile-wasm -o hoot.wasm hoot.scm
#+end_src

Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix:
#+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}%

#+begin_src bash
guix shell guile-hoot guile-next --  bash -c \
 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./'
#+end_src

*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@ To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm: #+begin_src wisp :results output :tangle hoot.w ;; file: hoot.w use-modules : hoot ffi ;; guile specific import ;; the interface define-foreign document-body "document" "body" . -> (ref null extern) define-foreign make-text-node "document" "createTextNode" . (ref string) -> (ref null extern) define-foreign append-child! "element" "appendChild" . (ref null extern) (ref null extern) . -> (ref null extern) ;; your code append-child! : document-body make-text-node "Hello, world!" #+end_src Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix: #+begin_src bash guix shell guile guile-wisp -- \ wisp2lisp hoot.w > hoot.scm && \ guix shell guile-hoot guile-next -- \ guild compile-wasm -o hoot.wasm hoot.scm #+end_src Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix: #+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}% #+begin_src bash guix shell guile-hoot guile-next -- bash -c \ 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./' #+end_src

Load your interface (includes startup time optimizations):
#+begin_src js :tangle hoot.js
/* file: hoot.js */
var f = window.fetch; window.fetch = (inp, ini) => f(inp, 
  {credentials: 'include', mode: 'no-cors', ...ini});
window.addEventListener("load", () =>
  fetch("hoot.wasm")
    .then(r => r.arrayBuffer())
    .then(bytes => Scheme.load_main(bytes, {
      user_imports: { // mapped via define-foreign
        document: {
          body() { return document.body; },
          createTextNode: Document.prototype
            .createTextNode.bind(document)
        }, 
        element: {
          appendChild(parent, child) { 
            return parent.appendChild(child);}}}})));
#+end_src

Include =reflect.js= and =hoot.js= from a HTML page:

#+begin_src html :tangle hoot.html
<!DOCTYPE html> <!-- file: hoot.html -->
<html><head><title>Hello Hoot</title>
<script type="text/javascript" src="reflect.js"></script>
<script type="text/javascript" src="hoot.js"></script>
<link rel="preload" as="fetch" href="hoot.wasm"></link>
<link rel="preload" as="fetch" href="wtf8.wasm"></link>
<link rel="preload" as="fetch" href="reflect.wasm"></link>
</head><body><h1>Hoot Test</h1></body></html>
#+end_src

For local testing, hoot provides a minimal webserver:

#+begin_src bash
guix shell guile-hoot guile-next -- \
  guile -c '((@ (hoot web-server) serve))'
#+end_src

Load your interface (includes startup time optimizations): #+begin_src js :tangle hoot.js /* file: hoot.js */ var f = window.fetch; window.fetch = (inp, ini) => f(inp, {credentials: 'include', mode: 'no-cors', ...ini}); window.addEventListener("load", () => fetch("hoot.wasm") .then(r => r.arrayBuffer()) .then(bytes => Scheme.load_main(bytes, { user_imports: { // mapped via define-foreign document: { body() { return document.body; }, createTextNode: Document.prototype .createTextNode.bind(document) }, element: { appendChild(parent, child) { return parent.appendChild(child);}}}}))); #+end_src Include =reflect.js= and =hoot.js= from a HTML page: #+begin_src html :tangle hoot.html <!DOCTYPE html> <!-- file: hoot.html --> <html><head><title>Hello Hoot</title> <script type="text/javascript" src="reflect.js"></script> <script type="text/javascript" src="hoot.js"></script> <link rel="preload" as="fetch" href="hoot.wasm"></link> <link rel="preload" as="fetch" href="wtf8.wasm"></link> <link rel="preload" as="fetch" href="reflect.wasm"></link> </head><body><h1>Hoot Test</h1></body></html> #+end_src For local testing, hoot provides a minimal webserver: #+begin_src bash guix shell guile-hoot guile-next -- \ guile -c '((@ (hoot web-server) serve))' #+end_src

#spritely #hoot in a toot: how to deploy #Guile #Scheme as static website via #webassembly (complete example).

The code from the two attached images, as written, runs on
https://www.draketo.de/software/hoot.html

Try it out!

It’s two pages from Naming & […]

[Original post on rollenspiel.social]

18.11.2025 17:32 — 👍 2    🔁 1    💬 0    📌 0
Original post on rollenspiel.social

Der UNO-Sicherheitsrat hat dem US-amerikanischen Gaza-Friedensplan zugestimmt. Die militant-islamistische Hamas lehnte die Resolution umgehend ab. Die Palästinensische Autonomiebehörde forderte dagegen eine rasche Umsetzung.

Mehrere arabische Länder in der Region hatten bereits signalisiert […]

18.11.2025 06:51 — 👍 0    🔁 2    💬 0    📌 0
Handdrawn sketch with ink:

- A <link tag with preload

- A javascript hack with f=fetch; window.fetch = (...) =>

- Two sets of loading bars:

on the left, a starting bar, then three bars a bit later, then three more, each following the previous one.
on the right a starting bar, then six bars all starting at the same time.

Below timing information that shows that the left bars take 300ms while the right bars take 200ms.

Handdrawn sketch with ink: - A <link tag with preload - A javascript hack with f=fetch; window.fetch = (...) => - Two sets of loading bars: on the left, a starting bar, then three bars a bit later, then three more, each following the previous one. on the right a starting bar, then six bars all starting at the same time. Below timing information that shows that the left bars take 300ms while the right bars take 200ms.

Here are the promised details (including a complete example):

https://rollenspiel.social/@ArneBab/115571892921956503

Along with an #ink #sketch of the #optimization that I drew as part of my best-thing-today sketches¹ because I actually am proud that I […]

[Original post on rollenspiel.social]

18.11.2025 17:42 — 👍 0    🔁 0    💬 0    📌 0
*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@
To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm:

#+begin_src wisp :results output :tangle hoot.w
;; file: hoot.w
use-modules : hoot ffi ;; guile specific import

;; the interface
define-foreign document-body "document" "body"
  . -> (ref null extern)
define-foreign make-text-node "document" "createTextNode"
  . (ref string) -> (ref null extern)
define-foreign append-child! "element" "appendChild"
  . (ref null extern) (ref null extern) 
  . -> (ref null extern)

;; your code
append-child! : document-body
  make-text-node "Hello, world!"
#+end_src

Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix:

#+begin_src bash
guix shell guile guile-wisp -- \
  wisp2lisp hoot.w > hoot.scm && \
    guix shell guile-hoot guile-next -- \
      guild compile-wasm -o hoot.wasm hoot.scm
#+end_src

Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix:
#+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}%

#+begin_src bash
guix shell guile-hoot guile-next --  bash -c \
 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./'
#+end_src

*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@ To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm: #+begin_src wisp :results output :tangle hoot.w ;; file: hoot.w use-modules : hoot ffi ;; guile specific import ;; the interface define-foreign document-body "document" "body" . -> (ref null extern) define-foreign make-text-node "document" "createTextNode" . (ref string) -> (ref null extern) define-foreign append-child! "element" "appendChild" . (ref null extern) (ref null extern) . -> (ref null extern) ;; your code append-child! : document-body make-text-node "Hello, world!" #+end_src Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix: #+begin_src bash guix shell guile guile-wisp -- \ wisp2lisp hoot.w > hoot.scm && \ guix shell guile-hoot guile-next -- \ guild compile-wasm -o hoot.wasm hoot.scm #+end_src Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix: #+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}% #+begin_src bash guix shell guile-hoot guile-next -- bash -c \ 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./' #+end_src

Load your interface (includes startup time optimizations):
#+begin_src js :tangle hoot.js
/* file: hoot.js */
var f = window.fetch; window.fetch = (inp, ini) => f(inp, 
  {credentials: 'include', mode: 'no-cors', ...ini});
window.addEventListener("load", () =>
  fetch("hoot.wasm")
    .then(r => r.arrayBuffer())
    .then(bytes => Scheme.load_main(bytes, {
      user_imports: { // mapped via define-foreign
        document: {
          body() { return document.body; },
          createTextNode: Document.prototype
            .createTextNode.bind(document)
        }, 
        element: {
          appendChild(parent, child) { 
            return parent.appendChild(child);}}}})));
#+end_src

Include =reflect.js= and =hoot.js= from a HTML page:

#+begin_src html :tangle hoot.html
<!DOCTYPE html> <!-- file: hoot.html -->
<html><head><title>Hello Hoot</title>
<script type="text/javascript" src="reflect.js"></script>
<script type="text/javascript" src="hoot.js"></script>
<link rel="preload" as="fetch" href="hoot.wasm"></link>
<link rel="preload" as="fetch" href="wtf8.wasm"></link>
<link rel="preload" as="fetch" href="reflect.wasm"></link>
</head><body><h1>Hoot Test</h1></body></html>
#+end_src

For local testing, hoot provides a minimal webserver:

#+begin_src bash
guix shell guile-hoot guile-next -- \
  guile -c '((@ (hoot web-server) serve))'
#+end_src

Load your interface (includes startup time optimizations): #+begin_src js :tangle hoot.js /* file: hoot.js */ var f = window.fetch; window.fetch = (inp, ini) => f(inp, {credentials: 'include', mode: 'no-cors', ...ini}); window.addEventListener("load", () => fetch("hoot.wasm") .then(r => r.arrayBuffer()) .then(bytes => Scheme.load_main(bytes, { user_imports: { // mapped via define-foreign document: { body() { return document.body; }, createTextNode: Document.prototype .createTextNode.bind(document) }, element: { appendChild(parent, child) { return parent.appendChild(child);}}}}))); #+end_src Include =reflect.js= and =hoot.js= from a HTML page: #+begin_src html :tangle hoot.html <!DOCTYPE html> <!-- file: hoot.html --> <html><head><title>Hello Hoot</title> <script type="text/javascript" src="reflect.js"></script> <script type="text/javascript" src="hoot.js"></script> <link rel="preload" as="fetch" href="hoot.wasm"></link> <link rel="preload" as="fetch" href="wtf8.wasm"></link> <link rel="preload" as="fetch" href="reflect.wasm"></link> </head><body><h1>Hoot Test</h1></body></html> #+end_src For local testing, hoot provides a minimal webserver: #+begin_src bash guix shell guile-hoot guile-next -- \ guile -c '((@ (hoot web-server) serve))' #+end_src

#spritely #hoot in a toot: how to deploy #Guile #Scheme as static website via #webassembly (complete example).

The code from the two attached images, as written, runs on
https://www.draketo.de/software/hoot.html

Try it out!

It’s two pages from Naming & […]

[Original post on rollenspiel.social]

18.11.2025 17:32 — 👍 2    🔁 1    💬 0    📌 0

@Eatsbluecrayon (bin technisch kein totaler Noob, aber Firefox gewinnt aktuell für mich trotzdem deutlich :-) )

18.11.2025 13:21 — 👍 0    🔁 0    💬 0    📌 0
Original post on rollenspiel.social

@Eatsbluecrayon Ich mag Firefox auch weit mehr als Chrome.

Und für die nächsten Jahr bleibt Firefox wohl auch die beste Lösung.

Ist übrigens auf dem Desktop auch gar nicht so wenig verbreitet, wie undifferenzierte Statistiken Glauben machen:
https://www.draketo.de/software/firefox-usercount […]

18.11.2025 09:02 — 👍 0    🔁 0    💬 1    📌 0
Original post on rollenspiel.social

@Eatsbluecrayon Was ich daran v.a. übel finde: die 1,3 Milliarden zur Seite zu legen war wirklich eine gute Idee.

Die auch viel zu wenig beleuchtet wurde. Sie hätten Mozilla den nötigen Puffer gegeben, um sich offen gegen Google stellen zu können (was ihre Finanzierung durch Google gebrochen […]

18.11.2025 07:16 — 👍 0    🔁 0    💬 1    📌 0
Original post on rollenspiel.social

Mozilla hat 1,3 Milliarden Dollar beiseitegelegt und verbrennt die jetzt in KI (statt damit Firefox zu verbessern) ☹

https://taz.de/Mozilla-Chef-ueber-Allianzen-gegen-Big-Tech-KI-und-die-Zukunft-von-Firefox/!6130381/

Das hätte die Sicherheit sein können, damit Firefox ohne Google funktionieren […]

17.11.2025 22:50 — 👍 0    🔁 4    💬 2    📌 0
Original post on rollenspiel.social

Der UNO-Sicherheitsrat hat dem US-amerikanischen Gaza-Friedensplan zugestimmt. Die militant-islamistische Hamas lehnte die Resolution umgehend ab. Die Palästinensische Autonomiebehörde forderte dagegen eine rasche Umsetzung.

Mehrere arabische Länder in der Region hatten bereits signalisiert […]

18.11.2025 06:51 — 👍 0    🔁 2    💬 0    📌 0
Original post on rollenspiel.social

Mozilla hat 1,3 Milliarden Dollar beiseitegelegt und verbrennt die jetzt in KI (statt damit Firefox zu verbessern) ☹

https://taz.de/Mozilla-Chef-ueber-Allianzen-gegen-Big-Tech-KI-und-die-Zukunft-von-Firefox/!6130381/

Das hätte die Sicherheit sein können, damit Firefox ohne Google funktionieren […]

17.11.2025 22:50 — 👍 0    🔁 4    💬 2    📌 0
Original post on rollenspiel.social

Wir gucken auf dein meisten Videoplattformen anderen nicht bei ihren Hobbies zu. Wir beobachten größtenteils bezahlte Hobbysimulation mit Sponsorenvertrag.

Wer Medienproduktion nämlich wirklich als Hobby macht, hat durch die ganzen selbständig beschäftigten Spaßverkäufer kaum eine Chance, viele […]

16.11.2025 21:38 — 👍 0    🔁 0    💬 0    📌 0
Original post on rollenspiel.social

Wir gucken auf dein meisten Videoplattformen anderen nicht bei ihren Hobbies zu. Wir beobachten größtenteils bezahlte Hobbysimulation mit Sponsorenvertrag.

Wer Medienproduktion nämlich wirklich als Hobby macht, hat durch die ganzen selbständig beschäftigten Spaßverkäufer kaum eine Chance, viele […]

16.11.2025 21:38 — 👍 0    🔁 0    💬 0    📌 0
Farben in Sechsecken aneinander gezeichnet, so dass jede Farbe mindestens eine Kante mit jeder anderen hat.

Rot, Blau, Orange, Geld und Lila haben dafür je zwei Felder.

Farben mit ihren Zahlen in der Farbtabelle:

- Gelb 109
- Orange 113
- Rot 121
- Lila 134
- Blau 154
- Grün 170
- Grau 232

Farben in Sechsecken aneinander gezeichnet, so dass jede Farbe mindestens eine Kante mit jeder anderen hat. Rot, Blau, Orange, Geld und Lila haben dafür je zwei Felder. Farben mit ihren Zahlen in der Farbtabelle: - Gelb 109 - Orange 113 - Rot 121 - Lila 134 - Blau 154 - Grün 170 - Grau 232

Vor einem halben Jahr haben ich meine Best Thing Today¹ Stifte um Rot und Lila ergänzt:

https://www.draketo.de/kreatives/farbersatz#sieben

(Alle 6 Farben und Grau jeweils mit allen anderen verglichen, auf der Seite auch für Rotblinde, Grünblinde […]

[Original post on rollenspiel.social]

16.11.2025 21:23 — 👍 0    🔁 0    💬 0    📌 0
Original post on rollenspiel.social

Mit Hobbies Geld zu verdienen geht, ohne intrinsische Motivation zu verlieren, wenn du dabei ein verlässliches Einkommen hast, das nicht von deiner gemessenen Leistung abhängig ist und für das du positive Rückmeldung erhältst.

Da durch intrinsische Motivation mehr Leistung entsteht, wäre das […]

16.11.2025 19:39 — 👍 0    🔁 0    💬 0    📌 0
Original post on rollenspiel.social

I wanted to do something productive. Then I realized that I could cut down the load time for my spritely hoot hello world file by 10%.

Did that. Almost went to something productive. Just googled one more time. Found one more solution: rebind window.fetch.

Got the load time down via fully […]

16.11.2025 18:55 — 👍 0    🔁 0    💬 1    📌 0

Weil das jetzt in verschiedenen Medien falsch dargestellt wurde: Lindner wird nicht Gebrauchtwarenhändler, sondern stellvertretender Vorstandsvorsitzender eines der großten Automobilhändler Deutschlands.

Er geht nicht in „die Freie Wirtschaft“, sondern direkt in die CEO-Klüngel-Liga.

16.11.2025 15:48 — 👍 1    🔁 0    💬 0    📌 0

@BlumeEvolution So sehr ich die dunkelhäutigen Adam und Eva in Good Omens feiere: etwas zu beschmieren, das anderen Halt gibt, ist Scheiße.

16.11.2025 12:10 — 👍 0    🔁 1    💬 0    📌 0
Original post on sueden.social

Nach #Langenau in #BadenWuerttemberg wurde nun auch in #Homberg in #Hessen eine weitere evangelische #Kirche das Ziel von #Antisemitismus. Verschandelt wurde auch eine plastische #Darstellung des Juden #Jesus am römischen Kreuz (sog. #Kruzifix). Wie #RabbiSacks sel. Ang. schon sagte: Dieser […]

16.11.2025 11:59 — 👍 2    🔁 5    💬 1    📌 0
Original post on rollenspiel.social

DLF Diskussion: "Fehlen konservative Stimmen in den öffentlich-rechtlichen Medien?"
https://www.deutschlandfunk.de/extra-fehlen-konservative-stimmen-in-den-medien-nikolaus-blome-vs-georg-restle-100.html

RTL Journalist steigt ein mit: "hab durchaus das Gefühl, dass die Zahl konservativer Stimmen […]

16.11.2025 10:23 — 👍 0    🔁 1    💬 1    📌 0

Milliardäre, deren Firmen zig Milliarden Staatsgelder bekommen und kaum Steuern zahlen, kaufen sich Zeitungen und Social Media Plattformen, um den Leuten einzureden, dass Leute, die sich nicht genug zu Essen leisten können, dem Staat auf der Tasche liegen.

14.11.2025 12:52 — 👍 6    🔁 33    💬 1    📌 0
Original post on mastodon.social

Unsere demokratische Öffentlichkeit braucht offene Netzwerke!

Gemeinsam mit @offene_netzwerke fordern wir, dass öffentliche Mittel in Freie Software sowie offene, dezentralisierte Infrastrukturen investiert werden.

Unsere diese Woche veröffentlichten Forderungen (de/en/fr) […]

14.11.2025 10:51 — 👍 3    🔁 5    💬 0    📌 0
Original post on rollenspiel.social

Die Droge, die alle problemlos haben konnten, wird auch dann nicht stärker konsumiert, wenn sie alle problemlos haben dürfen:
https://www.deutschlandfunk.de/studie-deutet-nur-leichte-zunahme-von-cannabis-konsum-an-trotz-teillegalisierung-100.html

(ja, keine Überraschung, aber lustig, dass es […]

14.11.2025 10:24 — 👍 0    🔁 1    💬 0    📌 0
Original post on rollenspiel.social

Die Droge, die alle problemlos haben konnten, wird auch dann nicht stärker konsumiert, wenn sie alle problemlos haben dürfen:
https://www.deutschlandfunk.de/studie-deutet-nur-leichte-zunahme-von-cannabis-konsum-an-trotz-teillegalisierung-100.html

(ja, keine Überraschung, aber lustig, dass es […]

14.11.2025 10:24 — 👍 0    🔁 1    💬 0    📌 0
Original post on rollenspiel.social

„Dark Ads“ bei Facebook: Wie mit Falschnachrichten Stimmung für den Brexit gemacht wurde

https://correctiv.org/faktencheck/hintergrund/2018/08/06/dark-ads-bei-facebook-wie-mit-falschnachrichten-stimmung-fuer-den-brexit-gemacht-wurde/

Zur Erinnerung.

Denn wir holen uns gerade Palentir von […]

13.11.2025 19:49 — 👍 0    🔁 0    💬 0    📌 0