<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Muscheln Engel on Shells Angels</title>
    <link>http://localhost:1313/de/</link>
    <description>Recent content in Muscheln Engel on Shells Angels</description>
    <generator>Hugo</generator>
    <language>de-de</language>
    <lastBuildDate>Mon, 18 May 2026 11:00:00 +0200</lastBuildDate>
    <atom:link href="http://localhost:1313/de/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Was das neuronale Modul von rspamd tatsächlich lernt</title>
      <link>http://localhost:1313/de/posts/rspamd-neural-demystified/</link>
      <pubDate>Mon, 18 May 2026 11:00:00 +0200</pubDate>
      <guid>http://localhost:1313/de/posts/rspamd-neural-demystified/</guid>
      <description>&lt;p&gt;Wenn Sie das &lt;code&gt;neural&lt;/code&gt; Modul von rspamd eingeschaltet haben, es ein Vierteljahr lang beobachtet haben und festgestellt haben, dass das Netzwerk so gut wie nichts Nützliches beiträgt - &lt;code&gt;NEURAL_HAM&lt;/code&gt; feuert auf den größten Teil des eingehenden Datenstroms und bewegt die Punktzahl nie in irgendeine Richtung, die von Bedeutung ist - ist die Erklärung normalerweise kein Fehler. Das Modul tut das, was die Konfiguration ihm vorgibt. Das mentale Modell in Ihrem Kopf stimmt nicht überein.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Was `set -e` wirklich tut (und warum Ihr Skript trotzdem undicht ist)</title>
      <link>http://localhost:1313/de/posts/what-set-minus-e-actually-does/</link>
      <pubDate>Tue, 12 May 2026 08:00:00 +0200</pubDate>
      <guid>http://localhost:1313/de/posts/what-set-minus-e-actually-does/</guid>
      <description>&lt;p&gt;Sie haben diese Zeile schon einmal gesehen. Wahrscheinlich haben Sie sie heute morgen geschrieben. Fast jedes &amp;ldquo;robuste Bash-Skript&amp;rdquo; im Internet beginnt mit einer Variante von:&lt;/p&gt;&#xA;&lt;div class=&#34;codeblock&#34; data-lang=&#34;bash&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/usr/bin/env bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; -euo pipefail&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;IFS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;$&amp;#39;\n\t&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;p&gt;Es ist, Zeile für Zeile, das am häufigsten kopierte Snippet in der DevOps-Welt. Und fast jeder Ingenieur, mit dem ich gearbeitet habe, einschließlich (bis vor kurzem) mir, hat sich geirrt, was &lt;code&gt;set -e&lt;/code&gt; tut.&lt;/p&gt;&#xA;&lt;p&gt;In diesem Beitrag geht es um die Regeln. Nicht die Folklore.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SIGSEGV um 03:14 - wenn forbid(unsafe_code) dich nicht rettet</title>
      <link>http://localhost:1313/de/posts/sigsegv-at-0314/</link>
      <pubDate>Tue, 28 Apr 2026 09:30:00 +0200</pubDate>
      <guid>http://localhost:1313/de/posts/sigsegv-at-0314/</guid>
      <description>&lt;p&gt;Die erste Seite kam an einem Dienstag herein. 03:14 Uhr Ortszeit. Nicht 03:00, nicht 03:30. 03:14 Uhr, in vier aufeinander folgenden Nächten.&lt;/p&gt;&#xA;&lt;p&gt;Der Tagebucheintrag, der mich geweckt hat:&lt;/p&gt;&#xA;&lt;div class=&#34;codeblock&#34; data-lang=&#34;text&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[2026-04-22T03:14:07.882Z] worker[7]: received signal: SIGSEGV (11)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[2026-04-22T03:14:07.882Z] worker[7]: fault address: 0x7f9c1afc0000 (not mapped)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[2026-04-22T03:14:07.882Z] worker[7]: dumping core to /var/crash/inventory-7.core.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[2026-04-22T03:14:08.014Z] worker[7]: exit code 139&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[2026-04-22T03:14:08.014Z] systemd[1]: inventory-svc.service: Main process exited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[2026-04-22T03:14:08.015Z] systemd[1]: inventory-svc.service: Scheduling restart in 5s.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;p&gt;Der Dienst ist in Rust. Siebzehn Kisten im Arbeitsbereich, jede mit &lt;code&gt;#![forbid(unsafe_code)]&lt;/code&gt; an der Spitze. Rust-Dienste stürzen ab, aber sie stürzen so selten ab, dass dieser Dienst das gesamte Team innerhalb einer Stunde aufweckte. In der dritten Nacht hatten wir einen Kriegsraum.&lt;/p&gt;</description>
    </item>
    <item>
      <title>io_uring für Leute, die epoll bereits kennen</title>
      <link>http://localhost:1313/de/posts/io-uring-for-epoll-users/</link>
      <pubDate>Mon, 30 Mar 2026 11:00:00 +0200</pubDate>
      <guid>http://localhost:1313/de/posts/io-uring-for-epoll-users/</guid>
      <description>&lt;p&gt;Wenn Sie in den letzten zwanzig Jahren einen Netzwerkdienst in C oder Rust auf Linux geschrieben haben, kennen Sie &lt;code&gt;epoll&lt;/code&gt;. Sie kennen den Tanz: &lt;code&gt;epoll_create1&lt;/code&gt;, &lt;code&gt;epoll_ctl&lt;/code&gt;, &lt;code&gt;epoll_wait&lt;/code&gt;, nicht-blockierend setzen, lesen bis &lt;code&gt;EAGAIN&lt;/code&gt;, schreiben bis &lt;code&gt;EAGAIN&lt;/code&gt;, beachten Sie die flankengetriggerte Semantik, beachten Sie &lt;code&gt;EPOLLRDHUP&lt;/code&gt;, beachten Sie &lt;code&gt;EPOLLET&lt;/code&gt; + &lt;code&gt;EPOLLONESHOT&lt;/code&gt; und das Dutzend Fußnoten, die zu jeder dieser Methoden gehören.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;io_uring&lt;/code&gt; ist die [Linux-Antwort] (&lt;a href=&#34;https://kernel.dk/io_uring.pdf&#34; rel=&#34;noopener external&#34; target=&#34;_blank&#34;&gt;https://kernel.dk/io_uring.pdf&lt;/a&gt;&#xA;) auf die Frage: &amp;ldquo;Was wäre, wenn wir aufhören würden, einen Syscall pro E/A auszuführen, und stattdessen gebündelte, asynchrone, abschlussbasierte E/A durchführen würden?&amp;rdquo; Es wurde in 5.1 (2019) eingeführt und ist seitdem in jeder Kernel-Version gewachsen. Im Jahr 2026 ist die API-Oberfläche groß und das Ökosystem hat endlich aufgeholt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Über</title>
      <link>http://localhost:1313/de/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>http://localhost:1313/de/about/</guid>
      <description>&lt;h2 id=&#34;was-das-ist&#34;&gt;Was das ist&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Shells Angels&lt;/strong&gt; ist der technische Blog von &lt;a href=&#34;https://netitwork.net&#34; rel=&#34;noopener external&#34; target=&#34;_blank&#34;&gt;NETitwork&lt;/a&gt;&#xA;. Die Art von Blog, die man an einem Sonntagnachmittag liest, um etwas Neues von Leuten zu lernen, die an den Grenzen der technischen Herausforderungen oder der täglichen betrieblichen Routine in Unternehmensnetzwerken leben. Jeder Beitrag ist als Nachschlagewerk gedacht - etwas, das das Überfliegen überlebt und dennoch eine sorgfältige Lektüre lohnt.&lt;/p&gt;&#xA;&lt;p&gt;Die Themen, die hier zur Sprache kommen:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Unix-Shells &amp;amp; POSIX-Trivialitäten&lt;/strong&gt; - Die seltsamen Ecken und Kanten von &lt;code&gt;bash&lt;/code&gt;, &lt;code&gt;zsh&lt;/code&gt;, &lt;code&gt;fish&lt;/code&gt;, &lt;code&gt;dash&lt;/code&gt;; Signalhandhabung; Subshells; Pipelines mit Exit-Codes, die niemand respektiert. - &lt;strong&gt;Kernel- &amp;amp; System-Interna&lt;/strong&gt; - Linux/Unix-Prozessmodell, Syscalls, Namespaces, eBPF, die io_uring-Saga - &lt;strong&gt;Exploit-Entwicklung &amp;amp; defensive Sicherheit&lt;/strong&gt; - Heap-Formen, Mitigations, Sandbox-Eskapaden; die Engel/Teufel-Dichotomie in unseren Bedrohungsmodellen.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fehlervermeidung bei verteilten Systemen&lt;/strong&gt; - was um 03:14 Uhr morgens passiert und warum es fast nie das Ding auf dem Armaturenbrett ist - &lt;strong&gt;Tooling &amp;amp; Ergonomie&lt;/strong&gt; - Terminals, Debugger, Profiler und die langsame Kunst, eine Werkstatt zu bauen, der man vertraut - &lt;strong&gt;Cool Tech &amp;amp; Lösungen&lt;/strong&gt; - Cool Tech aus Umgebungen mit den höchstmöglichen Anforderungen an Stabilität, Sicherheit und/oder Kompatibilität&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;was-das-nicht-ist&#34;&gt;Was das nicht ist&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ein Rundschreiben. Fügen Sie [den RSS-Feed] ein (/index.xml) und Sie sind fertig. - Eine Liste von zehn Dingen, einschließlich derjenigen, die Sie schockieren wird. - Überall, wo Ihre Daten hingehen. Es gibt kein Analyseskript, keine Schriftart von Drittanbietern, kein Cookie-Banner, weil es keine Cookies gibt. - Eine Geldquelle. Wir verfolgen den TED-Ansatz: &amp;ldquo;Ideen, die es wert sind, geteilt zu werden&amp;rdquo;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;wie-es-aufgebaut-ist&#34;&gt;Wie es aufgebaut ist&lt;/h2&gt;&#xA;&lt;p&gt;Der gesamte Quelltext - einschließlich dieser Seite - besteht aus einfachem Markdown, einfachem CSS und ~3 KB optionalem JavaScript, das die Themenumschaltung und etwas Bling-Bling steuert. Alles funktioniert auch mit deaktiviertem JavaScript; der Inhalt ist das Wichtigste.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
