Connect with us

Künstliche Intelligenz

Tausende strömen zum früheren Wohnort des „Drachenlords“


Der Streit zwischen dem Youtuber „Drachenlord“ und seinen Gegnern, den sogenannten Hatern, schwelt seit Jahren – insbesondere im Internet. Immer wieder verlassen die „Hater“ jedoch den digitalen Raum und halten die Polizei auf Trab.

Mehrere Tausend Menschen folgten am Samstag dem Aufruf zu einem „Schanzenfest“ und versammelten sich in und um Altschauerberg, einem Ortsteil von Emskirchen in Mittelfranken. Laut Polizei versammelten sich zeitweise rund 4000 Menschen. Sie wollten zum früheren Wohnhaus des „Drachenlords“ in dem Dorf gelangen, was die Polizei aber unterband.

Der Markt Emskirchen hatte den Ansturm erwartet und eine Allgemeinverfügung erlassen. In den Gemarkungen von Emskirchen und Schauerberg wurden etwa größere Menschenansammlungen, Lärm und Feuerwerkskörper verboten.

Der Polizei gelang es aufgrund der Menge an Menschen nicht immer, diese Auflagen vollständig durchzusetzen. Sie war mit zahlreichen Kräften, einer Reiterstaffel und einem Unterstützungskommando vor Ort.

Ein Polizeisprecher bezeichnete die Lage am Samstag als weitgehend friedlich. Es sei aber zu einer Beleidigung, einer Sachbeschädigung und in einem Fall zum Widerstand gegen Vollstreckungsbeamte gekommen. Zudem sei in einem Waldstück Pyrotechnik gezündet worden. Von rund 160 Menschen nahm die Polizei die Personalien auf.

Ein 20-Jähriger zog sich eine Schnittwunde zu, als er versuchte, in eine Hütte in einem Waldstück zu gelangen und dabei ein Fensterglas einschlug. Aufgrund des unwegsamen Geländes musste die Feuerwehr zu Hilfe eilen.

Im Laufe des Abends zogen die meisten Teilnehmer wieder ab. Rund 250 blieben demnach bis in die Nacht im Ort und wurden von der Polizei auf Abstand zu Altschauerberg gehalten. Größere Zwischenfälle blieben dabei aus.

Seit Jahren streitet sich der „Drachenlord“ mit seinen Gegnern im Internet. In der Vergangenheit tauchten diese immer wieder vor seinem Anwesen im Dorf Altschauerberg auf, um ihn zu provozieren. Die Polizei musste über Jahre zumeist mehrmals täglich wegen Ruhestörung, Sachbeschädigung, Körperverletzung und anderer Anzeigen ausrücken. Auch zu „Schanzenfesten“, bei denen zahlreiche Menschen nach Altschauerberg zogen, war es in der Vergangenheit bereits gekommen. Das Haus hat der Youtuber inzwischen verkauft und ist weggezogen.

Mehrere der „Hater“ wurden in den vergangenen Jahren bereits wegen Straftaten gegen den Videoblogger verurteilt oder wegen Ordnungswidrigkeiten bestraft. Auch der „Drachenlord“ selbst wurde nach gegenseitigen Beschimpfungen gewalttätig und musste sich wegen mehrerer Fälle vor Gericht verantworten. 2022 wurde er vom Landgericht Nürnberg-Fürth zu einer Bewährungsstrafe von einem Jahr verurteilt.


(dmk)



Source link

Künstliche Intelligenz

Datenparallele Typen in C++26: SIMD-Algorithmen


Die SIMD-Bibliothek bietet in C++26 portable Typen zur expliziten Angabe von Datenparallelität und zur Strukturierung von Daten für einen effizienteren SIMD-Zugriff.


Rainer Grimm

Rainer Grimm

Rainer Grimm ist seit vielen Jahren als Softwarearchitekt, Team- und Schulungsleiter tätig. Er schreibt gerne Artikel zu den Programmiersprachen C++, Python und Haskell, spricht aber auch gerne und häufig auf Fachkonferenzen. Auf seinem Blog Modernes C++ beschäftigt er sich intensiv mit seiner Leidenschaft C++.

Die Kurzserie zu datenparallelen Typen hat bisher folgende Themen behandelt:

Mit dem aktuellen Beitrag schließe ich die Serie ab. Diesmal geht es um vier spezielle Algorithmen für SIMD-Vektoren: min, max, minmax und clamp.

Den zwei Algorithmen min und max ist gemein, dass sie jeweils zwei SIMD-Vektoren annehmen und einen SIMD-Vektor zurückgeben. Dieser enthält die elementweisen Minimum oder Maximum der Eingabevektoren. Der minmax-Algorithmus nimmt ebenfalls zwei SIMD-Vektoren an und gibt ein Paar von SIMD-Vektoren zurück. Der erste Vektor des Paares enthält die elementweisen Minimum, der zweite die elementweisen Maximum der Eingabevektoren.

Das folgende Beispiel zeigt die drei Algorithmen in Aktion:


// minmax.cpp

#include 
#include 
#include 

namespace stdx = std::experimental;
 
void println(auto rem, auto const v) {
    std::cout << rem << ": ";
    for (std::size_t i = 0; i != v.size(); ++i)
        std::cout << std::setw(2) << v[i] << ' ';
    std::cout << '\n';
}

void printPairs(auto rem, auto const v1) {
    std::cout << rem << ": ";
    for (std::size_t i = 0; i != v1.first.size(); ++i)
        std::cout << '(' << v1.first[i] << ", " << v1.second[i] << ')' << ' ';
    std::cout << '\n';
}

int main() {

    stdx::fixed_size_simd a{[](int i) {
        static constexpr auto c = {10, 9, 8, 7, 6, 5, 4, 3};
        return c.begin()[i];
    }};
    println("a", a);
    
    stdx::fixed_size_simd b{[](int i) {
        static constexpr auto c = {3, 4, 5, 6, 7, 8, 9, 10,};
        return c.begin()[i];
    }};
    println("b", b);

    std::cout << '\n';

   auto minimum = stdx::min(a, b);
   println("minimum", minimum);

   auto maximum = stdx::max(a, b);
   println("maximum", maximum);

   /*
   auto minmax = stdx::minmax(a, b);
   printPairs("minmax", minmax);
   */

}


Als Eingabevektoren verwende ich die SIMD-Vektoren a und b. Diese werden auf eine besondere Art initialisiert. Dazu lege ich eine Initialisierungsliste c in der Lambda-Funktion an, die einen Iterator auf sie zurückgibt.


Beispiel Minmax

Beispiel Minmax

Der Screenshot zeigt die Ausgabe des Programms mit min und max.

Die Anwendung des Algorithmus minmax habe ich auskommentiert, weil ich die Zeile stdx::minmax(a, b) weder mit dem GCC noch mit dem clang -Compiler übersetzen konnte.

std::datapar::clamp wendet elementweise die Funktion std::clamp auf den SIMD-Vektor an. Dabei wird jedes Element in einen minimalen und maximalen Grenzwert eingesperrt.

Das folgende Programm basiert auf einem Beispiel aus cppreference:


// clamp.cpp

#include 
#include 
#include 
#include 
#include 

namespace stdx = std::experimental;
 
void println(auto rem, auto const v) {
    std::cout << rem << ": ";
    for (std::size_t i = 0; i != v.size(); ++i)
        std::cout << std::setw(4) << v[i] << ' ';
    std::cout << '\n';
}
 
int main() {

    std::cout << "INT8_MIN: " << INT8_MIN << '\n';
    std::cout << "INT8_MAX: " << INT8_MAX << '\n';
    std::cout << "UINT8_MAX: " << UINT8_MAX << '\n';

    std::cout << '\n';

    stdx::fixed_size_simd a{[](int i) {
        static constexpr auto c = {-129, -128, -1, 0, 42, 127, 128, 255};
        return c.begin()[i];
    }};
    println("a", a);
 
    stdx::fixed_size_simd lo1{INT8_MIN};
    stdx::fixed_size_simd hi1{INT8_MAX};
    const auto b = stdx::clamp(a, lo1, hi1);
    println("b", b);
 
    stdx::fixed_size_simd lo2{0};
    stdx::fixed_size_simd hi2{UINT8_MAX};
    const auto c = stdx::clamp(a, lo2, hi2);
    println("c", c);

}



Beispiel clamp

Beispiel clamp

Der Screenshot zeigt die Ausgabe des Programms mit clamp

Schön ist in der Ausgabe des SIMD-Vektors b zu sehen, wie die Werte des SIMD-Vektors a in die Grenzwerte INT8_MIN und INT8_MAX eingepasst werden. Bei dem SIMD-Vektor c kommen hingegen die Grenzwerte 0 und UINT8_MAX zum Einsatz.

Nun ist es Zeit für meinen zweiten Durchlauf durch den neuen C++26-Standard. Dabei werde ich mich in erster Linie auf die Funktionen konzentrieren, die ich im ersten Durchgang nicht im Detail behandelt habe.

Beginnen werde ich mit Contracts.


(rme)



Source link

Weiterlesen

Künstliche Intelligenz

iX-Workshop: Angriffe auf Entra ID abwehren


Microsofts Cloud-basierter Identitäts- und Zugriffsverwaltungsdienst Entra ID ist als zentraler Bestandteil vieler Unternehmensnetzwerke ein beliebtes Ziel für Ransomware und andere Angriffe.

Im zweitägigen Online-Workshop Angriffe auf und Absicherung von Entra ID erfahren Sie, wie Angreifer Fehlkonfigurationen in Microsofts Identitätsverwaltungsdienst und fehlende Härtungsmaßnahmen erkennen und ausnutzen. Darauf aufbauend zeigt Ihnen Thomas Kudlacek, wie Sie Ihre Entra ID-Umgebung inklusive der Azure-Dienste effektiv absichern und gibt Ihnen Empfehlungen. Mit den Unterlagen, die Sie in dieser Schulung erhalten, können Sie im Anschluss selbstständig üben.

September
11.09. – 12.09.2025
Online-Workshop, 09:00 – 17:00 Uhr
10 % Frühbucher-Rabatt bis zum 13. Aug. 2025
Dezember
03.12. – 04.12.2025
Online-Workshop, 09:00 – 17:00 Uhr
10 % Frühbucher-Rabatt bis zum 04. Nov. 2025

Der Workshop richtet sich an Mitarbeitende aus den Bereichen Administration, IT-Leitung und IT-Sicherheit. Ihr Trainer Thomas Kudlacek ist Cyber Security Specialist bei der Cyber Security Academy von Oneconsult. Zuvor war er als Penetrationstester für einen internationalen Dienstleister tätig.


Upgrade for Skills

Upgrade for Skills


(ilk)



Source link

Weiterlesen

Künstliche Intelligenz

Der breitestgestreute Index der Welt: Wie der MSCI ACWI IMI abschneidet


Wer sein Geld mit geringem Aufwand möglichst breit investieren und gleichzeitig nennenswerte Renditen erwirtschaften möchte, landete in der Vergangenheit regelmäßig beim MSCI World. Der Index und die dazugehörigen ETFs galten als guter Kompromiss aus Sicherheit und Ertrag. Doch zuletzt wuchs die Kritik an der US-Lastigkeit des MSCI World – auch aufgrund der Trumpschen Unberechenbarkeit. Wer dem entgehen möchte, stößt auf der Suche nach einer anderen Anlagemöglichkeit mit hoher Wahrscheinlichkeit auf den MSCI ACWI oder MSCI ACWI IMI. Beide decken große Teile der Weltwirtschaft ab und reduzieren damit auf den ersten Blick die Abhängigkeit von den Vereinigten Staaten.

Beim MSCI ACWI (All Country World Index) und MSCI ACWI IMI (All Country World Investable Market Index) handelt es sich um zwei von MSCI herausgegebene Indizes, die im Sommer 2025 Aktiengesellschaften aus 47 Ländern berücksichtigen. Die Zusammensetzung entspricht der des MSCI World, der 23 Industriestaaten abdeckt, zuzüglich des MSCI Emerging Markets mit seinen 24 Schwellenländern. Der wesentliche Unterschied: Während der ACWI 2524 Unternehmen enthält, sind es beim ACWI IMI mit 8274 deutlich mehr. Letztgenannter gilt deshalb als der weltweit am breitesten gestreute Index, der zudem 99 Prozent der Aktien in den 47 Ländern abdeckt. Zum Vergleich: Der MSCI World enthält 1322 unterschiedliche Positionen.

  • Alle vom MSCI World berücksichtigten Unternehmen sind auch Bestandteile des MSCI ACWI und ACWI IMI, etwa Apple, Microsoft und SAP.
  • Wie bei jedem Index gibt es auch beim MSCI ACWI und ACWI IMI klare Regeln für die Zusammensetzung. Veränderungen bezüglich der Gewichtung von Branchen und Staaten oder bei den enthaltenen Unternehmen sind dennoch möglich und üblich, wenn sich die Börsenwerte nach oben oder unten entwickeln.
  • Die Auswahl an ETFs, die den MSCI ACWI oder ACWI IMI abbilden, ist vergleichsweise gering. Dennoch gibt es größere Unterschiede, die Sie bei der Auswahl berücksichtigen sollten.

Im Folgenden erklären wir die wesentlichen Unterschiede zwischen den beiden ACWI-Indizes und zeigen die Entwicklung seit 2015. Dabei vergleichen wir den MSCI ACWI und MSCI ACWI IMI mit drei anderen Indizes: dem MSCI World, MSCI Europe und S&P 500. Letzterer bildet die Entwicklung der 500 wertvollsten, börsennotierten US-Unternehmen ab und steht damit stellvertretend für die Wirtschaft der Vereinigten Staaten. Der MSCI Europe konzentriert sich auf die wichtigsten Unternehmen Europas und ist damit eine mögliche Wahl für alle Anleger, die nicht in die USA investieren möchten. Am Ende steht die Frage, ob sich die breite Streuung der beiden ACWI-Produkte wirklich lohnt. Wichtig für Sie: Alle Bewertungen basieren auf Wertentwicklungen in der Vergangenheit. Diese stellen keine Garantie für künftige Gewinne oder Verluste dar.


Das war die Leseprobe unseres heise-Plus-Artikels „Der breitestgestreute Index der Welt: Wie der MSCI ACWI IMI abschneidet“.
Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.



Source link

Weiterlesen

Beliebt