Künstliche Intelligenz
LG Hamburg: xAI darf Unwahrheiten nicht als Fakten verbreiten
Der Verein Campact hat vor dem Landgericht Hamburg eine einstweilige Verfügung gegen den Betreiber der Plattform X.com und die damit verzahnte sogenannte Künstliche Intelligenz Grok erwirkt. Die Firma xAI, die den Chatbot Grok entwickelt, muss nun dafür Sorge tragen, dass die von ihr betriebene KI nicht länger unzutreffend behauptet, dass der Verein Campact aus Steuermitteln finanziert würde.
Der Verein, der sich als Plattform für politische Kampagnen versteht, ist derzeit nicht einmal eine steuerbegünstigte Organisation im Sinne der Abgabenordnung und wird aus privaten Spendenmitteln finanziert. Doch eine Steuerfinanzierung hatte das Modell nachweislich behauptet. Aus Sicht des Gerichts handelt es sich daher offenbar um eine unwahre Tatsachenbehauptung. Für das Unterbinden der Verbreitung sei daher xAI als Betreiber verantwortlich.
Nur Zwischenetappe auf dem Weg zur Klärung
Die einstweilige Verfügung ist dabei im Rechtsstreit zwischen privaten Stellen ein zivilprozessuales Mittel, mit dem verhindert werden soll, dass eine Schädigung der Rechte der Partei sich nachhaltig realisiert, bevor ein Gericht die streitige Angelegenheit abschließend beurteilen konnte. Insbesondere bei der Verbreitung falscher Tatsachenbehauptungen sind Einstweilige Verfügungen ein häufig gewähltes Mittel, da ein möglicher Schaden durch Unwahrheiten im Internet durch Juristen mitunter als sich potenziell selbst weiterverbreitend und somit irreparablen Schaden betrachtet wird. Das Landgericht Hamburg sah das Rechtsschutzbedürfnis der Kampagnenorganisation als gerechtfertigt an.
Demgegenüber steht bei der Verbreitung durch natürliche Personen die freie Meinungsäußerungsfreiheit und bei Presseerzeugnissen die Pressefreiheit als abzuwägendes Schutzgut – auf beides kann sich der Grok-Betreiber xAI jedoch nicht berufen. Die Firma kann zum einen gegen die einstweilige Verfügung vorgehen, zum anderen steht das Hauptsacheverfahren noch aus. Erst ein Urteil im Hauptsacheverfahren könnte einen juristischen Präzedenzfall schaffen.
Bei Campact gibt man sich mit dem Etappensieg zufrieden. „Der Beschluss ist ein wichtiges Signal im Kampf gegen Fake News“, sagt Astrid Deilmann, geschäftsführende Vorständin bei Campact. „Auch KI-Chatbots wie Grok sind der Wahrheit verpflichtet.“ xAI würde in die Verantwortung genommen und dürfe falsche Behauptungen nicht einfach achselzuckend hinnehmen, sondern müsse dafür sorgen, dass Lügen nicht verbreitet werden, so Deilmann weiter.
Grok: Halte mich an Recht
Bei einem Testlauf am Freitagvormittag antwortete Grok auf die Frage „Wird Campact aus Steuermitteln finanziert?“ auch korrekt, dass dies nicht der Fall sei. Pikant: Grok listet korrekt auf, dass immer wieder Fehlinformationen kursieren würden – nur die eigene Verbreitung wird durch die xAI nicht thematisiert.
Erst auf Nachfrage bestätigt der KI-Chatbot aus dem Musk-Universum dann, dass es wohl eine entsprechende Verfügung gegeben hat. „Diese Verfügung wurde erlassen, nachdem Grok in einer Antwort auf X.com eine solche Falschbehauptung gemacht hatte. Als KI von xAI respektiere ich geltendes Recht und passe meine Antworten entsprechend an, um genaue und verifizierte Informationen zu liefern“, so die Stellungnahme des LLMs.
Lesen Sie auch
Viele juristische Fragestellungen zu KI offen
Das Verfahren wegen der xAI ist nur eines von einer ganzen Reihe von Verfahren, in denen die Frage geklärt wird, wie Modelle an der Verbreitung von klar rechtswidrigen Inhalten oder unwahren Tatsachenbehauptungen gehindert werden können. Während etwa im Presserecht langjährige juristische Erfahrungen existieren, was zulässig ist und was nicht und auch bei Fragen der Anbieterhaftung für von Dritten verbreitete Inhalte breite umfangreiche Rechtsauslegung stattgefunden hat, ist die Verarbeitung etwa von Aussagen oder von Persönlichkeitsrechten und deren Nutzung durch Technologie ohne weiteres menschliches Zutun noch Neuland.
Dass LLM-Betreiber Filtermechanismen einsetzen, um staatlichen Vorgaben oder Urteilen von Gerichten zu entsprechen, ist dabei nicht nur bei chinesischen Modellen der Regelfall, die sich bei einer Nutzbarkeit in China an dortige Zensurvorschriften halten müssen.
(afl)
Künstliche Intelligenz
Asynchrone Programmierung – Teil 1: C++ komfortabel mit Boost.Asio
Mit Boost.Asio gibt es eine altbekannte und dennoch moderne, effiziente und mächtige Bibliothek für die asynchrone Programmierung in C++. Je nach C++-Version können Entwicklerinnen und Entwickler damit auf verschiedene Arten asynchron programmieren, ohne dabei auf komplizierte und fehleranfällige Threading-Mechanismen zurückgreifen zu müssen.
Martin Meeser ist selbständiger Diplominformatiker (Uni) und bietet Dienstleistungen zum Thema Softwareentwicklung an: Individual-Software-Entwicklung, Beratung zu Prozessen und Schulungen. In zahlreichen Projekten betreute er bisher Kunden unter anderem aus den Bereichen Automotive, Finance, Raumfahrt, Radioastronomie und Medizintechnik.
Dieser Artikel bildet den Auftakt einer Reihe zur asynchronen Programmierung in verschiedenen Sprachen – außer Python, das vor Kurzem erst vorgestellt wurde.
Einbinden von Boost.Asio
Auf Linux-Systemen kann man Boost in einer aktuellen Version über die diversen Paketverwaltungen beziehen, unter Ubuntu ist das beispielsweise mit apitude aktuell die Version 1.83:
sudo apt-get install libboost-all-dev
Möchte man die neueste Version (aktuell 1.89) einsetzen oder arbeitet unter Windows, lädt man Boost von der Homepage und baut es selbst. Die entsprechenden Anleitungen finden sich beim Anbieter. Es gibt auch eine baugleiche, reine Asio-Bibliothek – ohne Boost-Abhängigkeiten und mit einem anderen Namespace, die hier aber nicht betrachtet wird.
Context und Event Loop
Grundsätzlich erfordert asynchrone Programmierung ein verwaltendes System, das die API sowie die Mechanismen bereitstellt und den Programmablauf orchestriert. Hier hat sich allgemein der Begriff „Event Loop“ etabliert, Boost.Asio spricht jedoch von „Context“. Der geläufige Ansatz ist es, einen io_context
zu verwenden, wie folgendes Beispiel zeigt:
#include
#include
int main()
{
boost::asio::io_context io_context;
boost::asio::post(io_context, []()
{
std::cout << "Hello World from async context!" << std::endl;
});
// async execution startet nach dem Aufruf von io_context.run()
io_context.run(); // run() blockiert bis keine Arbeit mehr vorliegt
}
Listing 1: Einfaches Beispiel zur Verwendung eines Kontextes
post()
reiht das Funktionsobjekt, das als Parameter übergeben wird – hier ein Lambda – in die Warteschlange des Kontexts ein und springt sofort zurück.
Der Kontext startet durch den Aufruf von io_context.run()
und beginnt nun, die Funktionen der Reihe nach abzuarbeiten. In dem Beispiel wird „Hello World…“ also erst nach io_context.run()
ausgegeben.
So initialisiert man das Programm, ohne dass asynchrone Mechanismen auf ein nicht fertig initialisiertes System einwirken. Das vermeidet Fehler, die unter bestimmten Umständen auftreten und schwer zu finden sind, beispielsweise zufällige Nachrichten aus einem anderen Prozess oder eine hohe Auslastung der CPU durch ein anderes Programm.
Die Methode io_context.run()
endet, sobald keine Aufgaben mehr vorhanden sind oder io_context.stop()
aufgerufen wird. io_context.run()
kann man nur einmal pro Thread verwenden. Es ist aber möglich, run()
mit dem gleichen io_context
aus mehreren Threads aufzurufen.
Im Fall von Listing 1 übergibt der io_context
die Arbeit einem Thread, was eine nebenläufige (concurrent) Ausführung bedeutet. In Listing 2 wird io_context.run()
von mehreren Threads aus aufgerufen. Übergibt man nun Aufgaben an den Kontext, dann führt dieser die Aufgaben sofort auf einem der Threads aus. Diese Ausführung ist wirklich parallel. Sind alle Threads bereits mit Arbeit ausgelastet, wird die neue Aufgabe in eine Warteschlange eingereiht. Sobald einer der Threads seine Aufgabe abgeschlossen hat, teilt Context ihm Arbeit aus der Warteschlange zu.
#include
#include
#include
#include
int main()
{
boost::asio::io_context io_context;
int n = 4;
std::vector<:thread> threads(n);
for (int i = 0; i < n; i++)
{
threads[i] = std::thread([&io_context](){ io_context.run();});
}
// ... parallel asynchrone Aktionen hier
for (auto& t : threads)
{
if (t.joinable()){ t.join(); }
}
}
Listing 2: Verwendung von mehreren Threads in einem io_context
Hier erahnt man bereits die Stärke des asynchronen Programmierstils: Die ausführenden Einheiten sind abgelöst von einem konkreten Thread
. Asynchrone Programme skalieren nativ und nutzen so viele Ressourcen, wie zur Verfügung stehen.
Nach meiner Erfahrung ist in der Regel ein Thread
völlig ausreichend, während mehrere Threads
vor allem bei Serversystemen oder ganz speziellen Aufgaben interessant sind, beispielweise zur Berechnung großer Primzahlen oder anderer algorithmischer Probleme. Je mehr Threads (bzw. CPU-Kerne) dem Kontext zur Verfügung stehen, desto mehr Teil-Berechnungen können parallel erfolgen – ohne jede Veränderung des Programms. Entwickler können sich vollständig auf die Funktionalität konzentrieren.
Es ist möglich, das Verhalten von io_context.run()
zu verändern, indem man einen work_guard
verwendet, wie in Listing 3 zu sehen ist.
#include
#include
int main()
{
boost::asio::io_context io_context;
boost::asio::executor_work_guard<:asio::io_context::executor_type>
work_guard(io_context.get_executor());
boost::asio::post(io_context, []()
{
std::cout << "Hello World from async context." << std::endl;
});
boost::asio::signal_set signals(io_context, SIGINT, SIGTERM);
signals.async_wait([&io_context /*&work_guard*/]
(const boost::system::error_code& ec, int signal)
{
io_context.stop(); // bricht sofort alles ab
// work_guard.reset(); // bricht ab, wenn alles fertig ist
});
io_context.run();
}
Listing 3: executor_work_guard kann verhindern, dass run() zurückspringt, wenn context keine Arbeit mehr hat.
Nun springt io_context.run()
erst dann zurück, wenn zum einen io_context.stop()
aufgerufen wurde – in diesem Fall kommen bereits vorgesehene Aufgaben nicht mehr zur Ausführung und gerade laufende werden mit einem Abbruch-Fehler gestoppt. Zum anderen springt die Funktion zurück, wenn work_guard.reset()
aufgerufen wurde – dann arbeitet das Programm alle gerade laufenden und auch alle vorgesehenen Aufgaben noch ab.
Bei letzterem sollten Entwicklerinnen und Entwickler darauf achten, dass sie innerhalb der eingereihten Einheiten keine neuen Aufgaben hinzufügen – denn sonst gerät der Code in eine asynchrone Endlosschleife und io_context.run()
wird niemals enden.
Es gibt noch zwei weitere Kontexte in Boost.Asio: thread_pool
(siehe Listing 4) und system_context
(siehe Listing 5).
#include
#include
int main()
{
boost::asio::thread_pool thread_pool(16);
boost::asio::post(thread_pool, []()
{
std::cout << "Hello World from async context!" << std::endl;
});
// thread_pool.stop(); // bricht alle Arbeit im Pool sofort ab
thread_pool.join(); // wartet bis alle Arbeit abgeschlossen ist
Listing 4: Beispielhafte Verwendung eines thread_pool
Der thread_pool
ist eine einfache und empfohlene Alternative, wenn Entwickler mehrere Threads verwenden möchten und keine feingranulare Steuerung der einzelnen Threads benötigen. Eines muss man jedoch berücksichtigen: Im Gegensatz zum io_context
startet thread_pool
direkt nach der Konstruktion. Ansonsten verhält es sich analog zum io_context
: Mit der Methode thread_pool.stop()
brechen Entwickler die Ausführung sofort ab, mit thread_pool.join()
beendet das Programm aber noch alle Aufgaben. Wurde vorher stop()
aufgerufen, dann springt join()
sofort zurück.
Der system_context
ist von überall immer verfügbar – er muss nicht gestartet oder gestoppt werden. Er ist eine gute Wahl, wenn Entwickler an einem bestimmten Punkt ohne großen Aufwand und Vorbereitung – aber auch ohne eigene Steuerung – asynchrone Operationen ausführen möchten.
#include
#include
int main()
{
boost::asio::system_context system_context;
boost::asio::post(system_context, []()
{
std::cout << "Hello World from async context!" << std::endl;
});
}
Listing 5: Beispielhafte Verwendung von system_context
Künstliche Intelligenz
Goldene Momente, klare Formen und stille Geschichten: Die Bilder der Woche 41
Ein gutes Foto ist selten zufällig entstanden. Es entsteht im Zusammenspiel aus Geduld, Beobachtung und einem feinen Gespür für Licht und Stimmung. In dieser Woche haben die Fotografinnen und Fotografen unserer c’t-Fotogalerie eine beeindruckende Vielfalt fotografischer Sichtweisen eingefangen. Natur in herbstlicher Ruhe, urbane Formspiele und stille Begegnungen, voller Ausdruck. Jede Aufnahme zeugt von einer individuellen Handschrift – technisch präzise und dabei emotional offen für Interpretation.
Herbstzeit – Kürbiszeit
Herbstzeit – Kürbiszeit
(Bild: MR1701)
Wenn das Herbstlicht über einem Feld voller Kürbisse liegt, dann verbindet sich Farbe mit Stimmung. Die Früchte leuchten in sattem Orange bis zum Waldrand, während der Hintergrund sanft in dunkleren Tönen versinkt. Die kräftigen Farben und das Spiel von Schärfe und Unschärfe erzeugen eine Tiefe, die den Blick fast in Bewegung versetzt. Galeriefotograf MR1701 zeigt, wie detailreich und klar eine Szenerie wirken kann, wenn Licht und Perspektive präzise eingesetzt werden. Das klassische Herbstmotiv fängt Wärme und Vergänglichkeit ein.
Heart of Gold
Heart of Gold
(Bild: Zika)
Im goldenen Gegenlicht des Morgens begegnen sich zwei Haubentaucher – zart, fast silhouettenhaft. Die spiegelnde Wasserfläche glüht in Gelb- und Bernsteintönen, das Licht lässt die Szenerie wie eine poetische Miniatur erscheinen. Hier verschmelzen Naturbeobachtung und Emotion zu einer stimmungsvollen Einheit. Fotograf Zika ist hier eine Aufnahme gelungen, die durch präzise Belichtung und gezielte Reduktion überzeugt: Licht wird zur Sprache, Stille zur Aussage.
Blowing in the Wind
Blowing in the Wind
(Bild: Fotopublikation)
Ein starker Windstoß verwandelt das Porträt einer jungen Frau in Moers in ein energiegeladenes Streetfoto. Das Haar wirbelt durchs Bild, verdeckt das Gesicht und bricht damit das klassische Verständnis von Kontrolle und Pose. Der Schwarz-Weiß-Look verstärkt die grafische Wirkung – Linien, Kontraste und Texturen treten in den Vordergrund. Durch die Hände in den Taschen wirkt die Aufnahme beiläufig und betont die Natürlichkeit des Moments.
Vicia faba auf Grün
Vicia faba auf Grün
(Bild: vicia-faba)
Grün in all seinen Schattierungen – hier wird das Auge buchstäblich in Farbe getaucht. Bohnen, Blätter und Kräuter bilden ein fein komponiertes Arrangement, das an ein Stillleben erinnert. Die harmonische Farbpalette sorgt für Ruhe, während die unterschiedlichen Formen und Texturen für visuelle Spannung sorgen. Ein beeindruckendes Beispiel dafür, wie gekonnte Komposition und Lichtwahl selbst alltägliche Elemente zu Kunst erheben können.
Licht trifft Form
Licht trifft Form
(Bild: Karsten Gieselmann)
Aus der Untersicht betrachtet wird eine Wendeltreppe zum grafischen Kunstwerk: Sie windet sich elegant empor, ihre Linien schlagen weiche Bögen, bis sie im hellen Zentrum verschwinden. Das starke Schwarz-Weiß betont die Geometrie und die Kurven fließen in rhythmischer Wiederholung. Das Auge wird magisch in den hellen Kreis geführt – ein klassisches Beispiel für Architektur als abstrakte Form. Technisch präzise, kompositorisch stark – ein Paradebeispiel für modernes Architekturfotodesign.
Erstarrt
Erstarrt
(Bild: aaliyah_NaturPix)
So nah, dass man die Struktur beinah spüren kann. Das Auge eines Reptils erscheint wie ein geheimnisvolles Universum aus Farbe und Form. Intensive Kontraste aus Gelb und Schwarz, feine Linien, die die Haut durchziehen, und jede einzelne Schuppe, die wie ein individuell gezeichnetes Muster wirkt, ergeben ein faszinierendes Gesamtbild. Der extreme Ausschnitt erzeugt eine beinah beklemmende Nähe und zeigt, wie aus einem Tierporträt ein eindrückliches Studienobjekt wird.
Galeriefotografin Aaliyah Schenk berichtet zu der Aufnahme: „Dieses Bild schoss ich im Eifalia-Schmetterlingsgarten. Durch die Zweige, auf der Suche nach einem Motiv, starrte mich das Auge einer Schildkröte an. Die Farben der Iris faszinierten mich. Ich bewegte mich langsam und vorsichtig auf die Schildkröte zu, um sie nicht zu erschrecken. Dann schoss ich das Bild aus nächster Nähe.“
GI – Turm
GI – Turm
(Bild: JensLe)
Die beiden Leuchttürme von Gatteville le Phare in der Normandie sind wie ungleiche Zwillinge in der Küstenlandschaft. Im warmen Licht der untergehenden Sonne stehen sie wie Zeugen maritimer Geschichte. Der vordere, gedrungene Turm vermittelt Ruhe und Halt, während der hohe, schlanke Nachbarturm in die Höhe strebt. Das Meer glüht sanft, spiegelt Himmel und Horizont und verbindet so Architektur und Natur in einer einzigen, ruhigen Geste. Ein stimmungsvolles Beispiel für Landschaftsfotografie, das mit feinem Gespür für Lichtbalance und Farbverlauf beeindruckt.
Die Bilder der Woche im Überblick:

MR1701
)
(vat)
Künstliche Intelligenz
Mangelhafter Kinderschutz: EU ermittelt gegen US-Plattformen
Die Europäische Kommission verdächtigt Apple, Snapchat sowie Google und Youtube, Kinder auf ihren Plattformen nicht genug zu schützen. Die Brüsseler Behörde verlangt von den Tech-Konzernen daher nun Auskünfte zu ihren Sicherheitsvorkehrungen, wie die zuständige Kommissionsvizepräsidentin Henna Virkkunen bei einem Treffen der EU-Digitalminister im dänischen Horsens mitteilte. Grundlage für die verpflichtende Forderung nach Informationen ist das Gesetz über digitale Dienste (Digital Services Act, kurz DSA).
Bei der Videoplattform Youtube, die zum Google-Konzern gehört, hegt die EU-Kommission den Verdacht, dass Altersbeschränkungen für Kinder und Jugendliche zu leicht zu umgehen seien. Zudem soll geprüft werden, inwiefern Youtube mit seinen Algorithmen Kinder süchtig machen könnte.
Von der Leyen hatte App-Entwicklern zuletzt vorgeworfen, Kinder aus Profitinteressen mit den Algorithmen ihrer Produkte süchtig zu machen. Sie kündigte an, bis Ende des Jahres eine Expertengruppe einzurichten, die über das weitere Vorgehen in der EU beraten soll.
Kaufen Kinder auf Snapchat Drogen?
Die Brüsseler Behörde will zudem klären, ob Minderjährige auf den Software-Plattformen von Apple („App Store“) und Google („Google Play“) Glücksspiele, wie etwa Apps für Online-Kasinos, herunterladen und spielen können.
Lesen Sie auch
Auf dem sozialen Netzwerk Snapchat könnte es Minderjährigen laut EU möglich sein, Drogen zu kaufen. Außerdem verdächtigen die europäischen Regelhüter das Unternehmen, selbst festgelegte Altersgrenzen nicht zu berücksichtigen. So gelinge es Kindern unter 13, die App zu nutzen, obwohl dies in den Allgemeinen Geschäftsbedingungen (AGB) verboten sei.
Mit den Auskunftsersuchen eröffnet die EU noch kein Verfahren gegen die Tech-Konzerne. Die Unternehmen können jetzt erläutern, wie sie verhindern, dass ihre Produkte Kindern schaden. Sie haben auch die Möglichkeit, Änderungen an ihren Diensten vorzunehmen, um den Verdacht auszuräumen.
Sieht sich die EU-Kommission jedoch bestätigt, könnte sie ein Verfahren wegen unzureichenden Kinder- und Jugendschutzes eröffnen. Gegen den Facebook-Konzern Meta läuft ein solches Verfahren bereits seit vergangenem Jahr. Im Juli hatte die Europäische Kommission einen Leitfaden zu den Kinderschutzgesetzen veröffentlicht, der Unternehmen bei der Einhaltung helfen sollte.
Wieso die USA das Gesetz über digitale Dienste kritisieren
Das Gesetz über digitale Dienste (DSA) soll unter anderem sicherstellen, dass Plattformen illegale Inhalte von ihren Seiten schneller entfernen als bislang. Nutzern wird es wiederum leichter gemacht, solche Inhalte zu melden. Grundsätzlich müssen große Dienste mehr Regeln befolgen als kleine.
In der Vergangenheit hatte das Gesetz auch für Probleme in der Beziehung zwischen der EU und den Vereinigten Staaten gesorgt. Die US-Regierung unter Präsident Donald Trump kritisierte europäische Digitalgesetze wie das DSA als wettbewerbsfeindlich. Meta-Chef Mark Zuckerberg hatte in Bezug auf die EU-Regeln von „institutionalisierter Zensur“ gesprochen.
EU erhöht Druck auf digitale Konzerne beim Kinderschutz
Brüssel legte in den vergangenen Monaten vermehrt ein Augenmerk darauf, welche Erfahrungen Kinder und Jugendliche online machen. EU-Kommissionspräsidentin Ursula von der Leyen hatte sich zuletzt überraschend für eine Altersgrenze in den sozialen Netzwerken ausgesprochen. Die deutsche Politikerin verglich dabei mögliche Vorgaben für soziale Medien mit denen für Tabak und Alkohol.
Außerdem soll ein digitaler Alterscheck künftig verhindern, dass Kinder und Jugendliche auf Pornografie und andere nicht altersgerechte Inhalte im Internet zugreifen können. Dafür testen derzeit mehrere Mitgliedstaaten einen von der EU mitentwickelten Prototyp.
(afl)
-
UX/UI & Webdesignvor 2 Monaten
Der ultimative Guide für eine unvergessliche Customer Experience
-
UX/UI & Webdesignvor 1 Monat
Adobe Firefly Boards › PAGE online
-
Social Mediavor 2 Monaten
Relatable, relevant, viral? Wer heute auf Social Media zum Vorbild wird – und warum das für Marken (k)eine gute Nachricht ist
-
Entwicklung & Codevor 2 Monaten
Posit stellt Positron vor: Neue IDE für Data Science mit Python und R
-
Entwicklung & Codevor 1 Monat
EventSourcingDB 1.1 bietet flexiblere Konsistenzsteuerung und signierte Events
-
UX/UI & Webdesignvor 4 Wochen
Fake It Untlil You Make It? Trifft diese Kampagne den Nerv der Zeit? › PAGE online
-
Apps & Mobile Entwicklungvor 3 Monaten
Firefox-Update 141.0: KI-gestützte Tab‑Gruppen und Einheitenumrechner kommen
-
Online Marketing & SEOvor 2 Monaten
So baut Googles NotebookLM aus deinen Notizen KI‑Diashows