<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Nico Hartmann · Alles-in-Einem-Feed</title>
    <link>https://nicohartmann.dev/de/</link>
    <atom:link href="https://nicohartmann.dev/de/feed.xml" rel="self" type="application/rss+xml" />
    <description>Blog, Fundstücke und Lustiges aus dem Hörsaal und vom Schreibtisch.</description>
    <language>de-de</language>
    <lastBuildDate>Thu, 18 Jun 2026 05:27:26 GMT</lastBuildDate>
    <item>
      <title>[Blog] Das Internet, das wir verloren haben</title>
      <link>https://nicohartmann.dev/de/blog/interwebs</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/blog/interwebs#1781784000000</guid>
      <pubDate>Thu, 18 Jun 2026 12:00:00 GMT</pubDate>
      <category>Blog</category>
      <description><![CDATA[<h1>Ein kurzer Rückblick</h1>
<p>Die Welt des weltweiten Netzes hat sich in den letzten drei Jahrzehnten so radikal verändert wie kaum ein anderer Bereich der menschlichen Zivilisation. Wenn wir einen Blick zurückwerfen auf die späten Neunzigerjahre und die frühen Zweigtausender, dann war das Internet eine völlig andere Galaxie. Die Websites jener Tage waren wild, unstrukturiert, oft bunt und vor allem von einer tiefen Begeisterung ihrer Erschaffer geprägt.</p>
<p>Es war die Ära der statischen HTML-Seiten, der blinkenden GIF-Animationen und der Gästebücher. Damals surfte man nicht mal eben nebenbei im Bus. Der Zugang zum Netz war ein bewusster Akt. Man setzte sich an einen klobigen Röhrenmonitor, startete einen Rechner, auf dem Betriebssysteme wie Windows 95 oder das legendäre Windows 98 liefen, und lauschte dem mechanischen Konzert des Modems beim Einwählprozess. Die Bandbreiten waren minimal, Bilder bauten sich Zeile für Zeile auf, und jede Minute online kostete bares Geld. Doch es war ein Raum der unbegrenzten Möglichkeiten, ein digitaler Wilder Westen, der von Enthusiasten geformt wurde.</p>
<p>Mit dem Fortschritt der Technologie veränderte sich auch die Infrastruktur im Hintergrund. Windows XP löste die alten Systeme ab und brachte eine neue Stabilität in die Haushalte, während DSL-Leitungen die blockierten Telefonleitungen vergessen machten.</p>
<p>Die Webseiten wurden komplexer, interaktiver und rückten näher an den Alltag der Menschen heran. Es war die Übergangsphase zum sogenannten Web 2.0, in der die Nutzer plötzlich nicht mehr nur passive Konsumenten waren, sondern selbst zu Gestaltern wurden. Foren schossen wie Pilze aus dem Boden, Blogs gaben Einzelpersonen eine weltweite Stimme, und Plattformen wie YouTube oder frühe soziale Netzwerke begannen, die Struktur des Austauschs grundlegend zu verändern.</p>
<p>Der Computer war in dieser Zeit das unangefochtene Tor zu dieser Welt. Ein Werkzeug, das auf dem Schreibtisch stand und nach Feierabend oder nach der Schule eingeschaltet wurde, um in eine andere Realität einzutauchen.</p>
<p>Diese Ära der Desktop-Dominanz hielt über Jahre an, doch im Hintergrund braute sich die nächste große Revolution zusammen. Mit dem Aufkommen moderner Smartphones, angeführt vom ersten iPhone und der darauffolgenden Android-Welle, verschob sich der Fokus der digitalen Welt unaufhaltsam.</p>
<p>Das Internet war plötzlich nicht mehr an einen Ort oder an ein bestimmtes Gerät auf dem Schreibtisch gebunden. Es wanderte in die Hosentasche.</p>
<p>Dieser Wandel vollzog sich mit einer rasenden Geschwindigkeit. Bereits im Jahr 2016 wurde eine historische Schwelle überschritten: Zum ersten Mal waren weltweit mehr als fünfzig Prozent aller Internetnutzer über mobile Endgeräte unterwegs. Die Webseiten mussten sich anpassen, das Design wurde responsiver, aber auch uniformer. Die wilde, individuelle Gestaltung der Anfangstage wich optimierten, cleanen Layouts, die auf kleinen Bildschirmen schnell laden und einfach mit dem Daumen bedient werden konnten.</p>
<p>Um das Jahr 2019 (spätestens) herum war diese Transformation vollständig abgeschlossen. Das Internet hatte sich von einem Werkzeug, das man gezielt nutzt, zu einer permanenten Erweiterung des eigenen Selbst entwickelt. Man war nicht mehr online, man war niemals offline.</p>
<p>In dieser neuen Realität dominierten nur noch eine Handvoll gigantischer Konzerne den gesamten Markt: Google kontrollierte die Suche und die Werbung, Facebook beherrschte die soziale Interaktion und die Kommunikation, Apple und Microsoft stellten die Plattformen und die Hardware bereit, auf denen das alles stattfand.</p>
<p>Diese Zentralisierung markierte das Ende des alten, dezentralen Netzes. Der Raum, der einst von Millionen individueller Homepages und unabhängiger Foren geprägt war, wurde in riesige, geschlossene Plattform-Ökosysteme gepfercht. Die Algorithmen dieser Konzerne begannen zu bestimmen, was wir sehen, was wir lesen und worüber wir nachdenken.</p>
<h1>Zwischen Technologie und Generationen</h1>
<p>Ich selbst wurde im Jahr 1998 geboren, also in einer extrem spannenden Phase kurz bevor die gigantische Dotcom-Blase platzte. Man könnte behaupten, dass ich genau in der ersten Generation aufgewachsen bin, die das moderne Internet von klein auf als dauerhaften Begleiter erlebt hat.</p>
<p>Meinen allerersten eigenen Rechner hatte ich im Alter von etwa sechs Jahren. Das war im Jahr 2004. Auf diesem Rechner lief damals allerdings keineswegs die modernste Technik, sondern das bereits sichtlich in die Jahre gekommene Windows 98. Das lag schlicht daran, dass in vielen Familien die ältere Hardware weitergereicht wurde, anstatt immer das neueste Modell zu kaufen. </p>
<p>Das dringend notwendige Upgrade auf Windows XP durfte ich dann einige Jahre später selbst durchführen, und zwar tatsächlich noch ganz klassisch von einer physischen CD-ROM aus. Wer diese Zeiten miterlebt hat, weiß genau, wie sich das mechanische Surren des CD-Laufwerks anhörte, während man voller Vorfreude auf den blauen Installationsbildschirm starrte.</p>
<p>Mit meinem Geburtsjahr liege ich laut den gängigen Definitionen wohl gerade noch so im Bereich der Generation Z.</p>
<p>Es ist ohnehin faszinierend zu beobachten, wie eng wir Generationen heutzutage an den jeweiligen Stand der technologischen Entwicklung koppeln. Man kann die Grenzen zwischen den Altersgruppen oft viel präziser anhand von Hardware-Releases und digitalen Meilensteinen ziehen als durch starre Jahreszahlen.</p>
<p>Stellen wir uns zur Veranschaulichung einfach mal die Frage: Welche Veröffentlichungen von Nintendo-Konsolen hast du aktiv miterlebt? Wer den geschichtsträchtigen Release des Nintendo 64 im Juni 1996 bewusst mitbekommen hat und zu diesem Zeitpunkt bereits auf der Welt war, gehört ganz klar zur Gruppe der Millennials. Bei mir hingegen war der früheste Berührungspunkt der GameCube, der im Mai 2002 auf den europäischen Markt kam. Das markiert den klassischen Einstieg für die Generation Z. Die heutige Generation Alpha wiederum wächst mit der Nintendo Switch oder deren Nachfolgern auf und kennt eine Welt ohne Touchscreens und permanente Cloud-Anbindung überhaupt nicht mehr.</p>
<p>Am Ende des Tages sind all diese Begriffe wie Millennial, Gen-Z oder Gen-Alpha natürlich extrem vage definiert. Es bleibt immer ein Stück weit Auslegungssache, wo genau die Trennlinien verlaufen, und ehrlich gesagt ist es mir im Alltag auch völlig egal, in welche dieser Schubladen man mich oder andere steckt.</p>
<p>Sprachliche Kategorisierungen und die Dynamik hinter solchen Begriffen sind zwar ein ungemein faszinierendes Feld, aber wir müssen uns hier ja nicht in irgendwelchen bunten, linguistischen Fantasiewelten verlieren.</p>
<p>Was wirklich zählt, ist die gelebte Erfahrung mit den Werkzeugen unserer Zeit. Wer den Übergang vom analogen oder zumindest rein lokalen computing hin zur totalen Vernetzung selbst durchschritten hat, blickt mit einem ganz anderen Bewusstsein auf das heutige Netz als jemand, für den das Internet schon immer so selbstverständlich da war wie der Strom aus der Steckdose.</p>
<h1>Wie das Netz meinen Lebensweg geformt hat</h1>
<p>Sechs Jahre nach meinem ersten Windows-98-Rechner, im Jahr 2012, hatte ich im Alter von zwölf Jahren endlich genug Geld zusammengespart, um mir einen eigenen, zeitgemäßen Computer zu kaufen.</p>
<p>Dieses Gerät sollte mich über viele Jahre hinweg (bis heute, aber im Sinne des Schiffs-des-Theseus-Paradoxons) intensiv begleiten und meinen Lebensweg maßgeblich prägen.</p>
<p>Damals verbrachte ich, wie so viele in meinem Alter, täglich zwei bis drei Stunden mit Online-Games. Meine absoluten Favoriten waren League of Legends und Old-School-Runescape. Besonders das stundenlange Eintauchen in Runescape war rückblickend betrachtet eine extrem lehrreiche Lebensschule. Das Spiel hat mir auf die harte Tour beigebracht, dass man absolut niemandem vertrauen sollte, der im Internet irgendwelche Versprechungen macht</p>
<p>Jeder, der damals seine mühsam erspielte Rüstung an einen vermeintlich netten Spieler verloren hat, der anbot, die Gegenstände gratis aufzuwerten, weiß genau, wovon ich spreche. Mein persönliches Trauma war der Verlust meiner Rune-Plattenrüstung. Diese frühe Lektion in digitaler Skepsis hat sich tief in mein Gehirn eingebrannt: Hinterfrage alles, prüfe die Absichten und sei niemals blauäugig.</p>
<p>Doch der PC war für mich weit mehr als nur eine Gaming-Maschine. Über das Spielen fand ich den Einstieg in tiefere IT-Themen. Ich wollte verstehen, wie die Dinge hinter den Kulissen funktionieren, wie Netzwerke aufgebaut sind und wie Software entsteht. Gleichzeitig entwickelte ich durch das Stöbern im Netz eine riesige Leidenschaft für die Wissenschaft, insbesondere für die Astronomie und das Schachspiel. Ich verlor mich stundenlang in komplexen, logischen Spielereien und Krypto-Rätseln wie dem weltbekannten Phänomen Cicada 3301.</p>
<p>Das Internet war damals eine gigantische Schatztruhe des Wissens. Wenn ich etwas Neues lernen wollte, gab es keine algorithmisch optimierten Feeds, die mich mit Kurzvideos bombardierten. Stattdessen suchte ich gezielt nach YouTube-Videos von leidenschaftlichen Erklärern, las mich durch extrem detaillierte Blog-Beiträge von Experten und wühlte mich durch Forenposts, in denen Nerds aus aller Welt ihr Wissen völlig kostenlos und ohne kommerzielle Hintergedanken teilten.</p>
<p>Die Foren waren Orte des echten Austauschs. Man musste sich registrieren, Regeln befolgen und erarbeitete sich über Jahre hinweg einen Ruf innerhalb einer kleinen, feinen Community. Die Blogs waren persönliche Tagebücher und Wissensdatenbanken zugleich. Wenn jemand einen Text im Netz veröffentlichte, dann meistens deshalb, weil er eine echte Leidenschaft für das Thema hatte und der Welt etwas bleibendes hinterlassen wollte.</p>
<p>Diese digitale Umgebung hat nicht nur meine technischen Fähigkeiten massiv befeuert, sondern auch meine Denkweise geformt. Sie hat mir gezeigt, dass das Internet das mächtigste Bildungswerkzeug der Menschheitsgeschichte sein kann, wenn man lernt, es richtig und selbstbestimmt zu nutzen.</p>
<h1>Die Invasion des KI-Slops und der Verfall von heute</h1>
<p>Der radikalste Umbruch der jüngeren Internetgeschichte kündigte sich an, als die ersten großen Sprachmodelle die Bildfläche betraten. Als OpenAI am 28. Mai 2020 das Papier zu GPT-3 veröffentlichte und die Technologie langsam zugänglich wurde, war ich sofort Feuer und Flamme. Ich gehörte zu den Ersten, die sich auf diese neue Welt stürzten, denn das Thema automatisierte Konversation faszinierte mich schon lange vorher. Ich hatte nämlich bereits eigene Chatbots programmiert und im Netz veröffentlicht, lange bevor es durch den großen Hype cool und massentauglich wurde.</p>
<p>Die modernen Large Language Models waren dagegen natürlich ein völlig anderes Kaliber. Was als faszinierende technologische Revolution begann, hat sich im Laufe der letzten Jahre jedoch zu einer echten Plage entwickelt. Wir schreiben das Jahr 2026, und das halbe Internet ist mittlerweile bis zum Rand gefüllt mit sogenanntem KI-Slop. Dieser Begriff beschreibt die endlose Flut an minderwertigen, synthetisch generierten Inhalten, die ohne Sinn und Verstand ins Netz gekippt werden, nur um Suchmaschinen-Rankings zu manipulieren und Werbeeinnahmen abzugreifen. Experten und Technologie-Analysten warnen schon länger vor einer regelrechten Kernschmelze der Informationsqualität. Alles, was ich heute im Internet konsumiere, muss ich dreimal hinterfragen. Die Leichtigkeit des alten Netzes ist komplett verflogen.</p>
<p>Ein perfektes Beispiel für diesen rasanten Verfall liefert die Plattform LinkedIn. Um ein wenig Reichweite und Traffic für meine Projekte zu generieren, habe ich dort vor gut einem Monat einen eigenen Account erstellt. Was mir dort tagtäglich in den Feed gespült wird, ist absolut schockierend. Die schiere Masse an Beiträgen, die offensichtlich zu einhundert Prozent aus der KI-Retorte stammen, ist kaum noch zu ertragen. Es sind immer die gleichen, unnatürlich glatten Textstrukturen, dieselben phrasenhaften Motivationssprüche und dazu völlig bizarre, KI-generierte Bilder, auf denen Menschen mit sechs Fingern in sterilen Büros sitzen.</p>
<p>Hat sich das eigentlich jemals ein echter Mensch angeschaut, bevor es gepostet wurde? Es fühlt sich an wie ein steriler Geisterwald. Maschinen schreiben Texte für andere Maschinen, die diese dann automatisiert liken und kommentieren, während der echte menschliche Austausch komplett auf der Strecke bleibt. Zu dieser besorgniserregenden Entwicklung habe ich mich ja auch schon in meinem letzten Blogpost geäußert.</p>
<h1>Die digitale Kluft und unsere Verantwortung</h1>
<p>Dass mir diese Missstände sofort ins Auge springen, liegt natürlich an meiner persönlichen Blase. Ich bin seit dem Jahr 2020 ausgebildeter Softwareentwickler in Deutschland. Ich bin chronisch online, arbeite täglich im Maschinenraum des Internets und betrachte das Ganze vermutlich auch ein Stück weit als Berufskrankheit. Ich muss ständig checken, ob meine Server stabil laufen, ich pflege meine Webseiten und optimiere den Code.</p>
<p>Meine digitalen Projekte sind für mich wie meine eigenen Babys. Selbst mein LinkedIn-Profil betrachte ich nicht als klassischen Social-Media-Kanal zum Selbstdarstellen oder Flexen, sondern ich führe dort im Grunde genommen ein öffentliches Entwicklertagebuch. Für mich sind diese Plattformen reine Werkzeuge, die ich gezielt und mit einem klaren Bewusstsein für die Mechanismen dahinter einsetze.</p>
<p>Doch wie sieht die Realität abseits unserer Tech-Blase aus? Wie geht es einer Karen aus der Buchhaltung, einer Miriam aus der HR-Abteilung oder dem Uwe im Logistiklager, wenn sie sich im Netz bewegen? Sie nutzen das Internet ebenfalls täglich, aber oft ohne das technische Hintergrundwissen über Algorithmen, Prompting und automatisierte Content-Fabriken.</p>
<p>Genau hier liegt die entscheidende Frage: Wie beeinflusst diese Flut an künstlichen Inhalten deren tägliche Internetnutzung? Ist ihnen eigentlich im Ansatz bewusst, was da im Hintergrund passiert? Wer nicht tagtäglich mit Softwareentwicklung oder der Tech-Branche zu tun hat, merkt oft gar nicht, wie subtil er von KI-generierten Inhalten manipuliert, abgelenkt oder schlicht mit Falschinformationen gefüttert wird. Wenn das halbe Netz aus synthetischem Müll besteht, schwindet das Vertrauen in digitale Medien insgesamt.</p>
<p>Selbst ich als erfahrener Entwickler, der die Entstehung dieser Technologie seit Jahren intensiv mitverfolgt, muss offen zugeben: Ich stehe oft genug vor Inhalten und scheitere trotz aller Fachkenntnis daran, ein raffiniert geschriebenes KI-Plagiat zu einhundert Prozent von einem echten menschlichen Text zu unterscheiden.</p>
<p>Ja, es gibt Bestrebungen, solche Inhalte zu kennzeichnen oder mit digitalen Wasserzeichen zu markieren. Aber seien wir doch mal absolut ehrlich zu uns selbst. Auf LinkedIn und auf unzähligen anderen Plattformen sehe ich jeden Tag massenhaft Posts, die völlig ohne Kennzeichnung durchgehen und das Netz weiter verstopfen. Wenn wir diesen Zustand einfach so achselzuckend hinnehmen, kapitulieren wir vor der algorithmischen Schlammwelle.</p>
<h1>Was du jetzt konkret dagegen tun kannst</h1>
<p>Die Situation mag im ersten Moment düster erscheinen, aber wir sind dieser Entwicklung keineswegs hilflos ausgeliefert. Wir müssen aufhören, uns wie passive Konsumenten in den geschlossenen Gärten der großen Plattformen füttern zu lassen. Mach es stattdessen genau wie ich: Geh wieder zurück zu den Wurzeln des Netzes. Baue dir deine eigene, unabhängige Website. </p>
<p>Es war noch nie so einfach wie heute, sich eine eigene Domain zu sichern und einen kleinen Server aufzusetzen oder eine statische Seite zu hosten. Zeig der Welt dort draußen, was du mit deinen eigenen Händen geschaffen, was du gecodet oder worüber du dir echte, tiefe Gedanken gemacht hast. Eine eigene Website ist dein persönlicher Schutzraum im digitalen Raum, ein Ort, an dem kein Algorithmus der Welt bestimmt, wie dein Inhalt auszusehen hat oder wer ihn sehen darf.</p>
<p>Das ist doch scheiße geil oder?</p>
<p>Siehst du das? Ich habe geflucht. Das kann ich machen, weil das meine Website ist.</p>
<p>Wenn du dich auf meiner Seite umschaut, wirst du in meinen Fundstücken auch gezielte Beiträge über die Abwehr und das präzise Erkennen von KI-generierten Inhalten finden. Es ist mir ein echtes Herzensanliegen, dieses Wissen weiterzugeben und die Sinne für den digitalen Slop zu schärfen.</p>
<p>Wir müssen lernen, wieder genauer hinzusehen und eine gesunde Skepsis an den Tag zu legen. Nutze Tools zur Überprüfung, achte auf die typischen sprachlichen Muster von Sprachmodellen und lass dich nicht von sterilen, perfekt polierten Beiträgen blenden, die in Sekundenschnelle ohne menschlichen Funken generiert wurden.</p>
<p>Der wichtigste Schritt ist jedoch ein ganz persönliches Versprechen an dich selbst und an deine Mitmenschen: Sei absolut ehrlich mit dir selbst und stelle zu jedem Zeitpunkt sicher, dass <strong>DU</strong> die Inhalte schreibst und veröffentlichst, und nicht eine anonyme KI im Hintergrund. Es spricht überhaupt nichts dagegen, Technologie als Inspirationsquelle oder als Werkzeug für die Rechtschreibprüfung zu nutzen.</p>
<p>Die Stimme, die Seele, die Fehler und die echten Ecken und Kanten eines Textes müssen zwingend von dir kommen. Deine Leser, deine Kunden und deine echten Freunde im Netz werden es dir unendlich danken. Sie sehnen sich in dieser überschwemmten, künstlichen Welt mehr denn je nach echter, authentischer menschlicher Erfahrung. Lass uns gemeinsam das echte Internet zurückerobern.</p>
]]></description>
      <content:encoded><![CDATA[<h1>Ein kurzer Rückblick</h1>
<p>Die Welt des weltweiten Netzes hat sich in den letzten drei Jahrzehnten so radikal verändert wie kaum ein anderer Bereich der menschlichen Zivilisation. Wenn wir einen Blick zurückwerfen auf die späten Neunzigerjahre und die frühen Zweigtausender, dann war das Internet eine völlig andere Galaxie. Die Websites jener Tage waren wild, unstrukturiert, oft bunt und vor allem von einer tiefen Begeisterung ihrer Erschaffer geprägt.</p>
<p>Es war die Ära der statischen HTML-Seiten, der blinkenden GIF-Animationen und der Gästebücher. Damals surfte man nicht mal eben nebenbei im Bus. Der Zugang zum Netz war ein bewusster Akt. Man setzte sich an einen klobigen Röhrenmonitor, startete einen Rechner, auf dem Betriebssysteme wie Windows 95 oder das legendäre Windows 98 liefen, und lauschte dem mechanischen Konzert des Modems beim Einwählprozess. Die Bandbreiten waren minimal, Bilder bauten sich Zeile für Zeile auf, und jede Minute online kostete bares Geld. Doch es war ein Raum der unbegrenzten Möglichkeiten, ein digitaler Wilder Westen, der von Enthusiasten geformt wurde.</p>
<p>Mit dem Fortschritt der Technologie veränderte sich auch die Infrastruktur im Hintergrund. Windows XP löste die alten Systeme ab und brachte eine neue Stabilität in die Haushalte, während DSL-Leitungen die blockierten Telefonleitungen vergessen machten.</p>
<p>Die Webseiten wurden komplexer, interaktiver und rückten näher an den Alltag der Menschen heran. Es war die Übergangsphase zum sogenannten Web 2.0, in der die Nutzer plötzlich nicht mehr nur passive Konsumenten waren, sondern selbst zu Gestaltern wurden. Foren schossen wie Pilze aus dem Boden, Blogs gaben Einzelpersonen eine weltweite Stimme, und Plattformen wie YouTube oder frühe soziale Netzwerke begannen, die Struktur des Austauschs grundlegend zu verändern.</p>
<p>Der Computer war in dieser Zeit das unangefochtene Tor zu dieser Welt. Ein Werkzeug, das auf dem Schreibtisch stand und nach Feierabend oder nach der Schule eingeschaltet wurde, um in eine andere Realität einzutauchen.</p>
<p>Diese Ära der Desktop-Dominanz hielt über Jahre an, doch im Hintergrund braute sich die nächste große Revolution zusammen. Mit dem Aufkommen moderner Smartphones, angeführt vom ersten iPhone und der darauffolgenden Android-Welle, verschob sich der Fokus der digitalen Welt unaufhaltsam.</p>
<p>Das Internet war plötzlich nicht mehr an einen Ort oder an ein bestimmtes Gerät auf dem Schreibtisch gebunden. Es wanderte in die Hosentasche.</p>
<p>Dieser Wandel vollzog sich mit einer rasenden Geschwindigkeit. Bereits im Jahr 2016 wurde eine historische Schwelle überschritten: Zum ersten Mal waren weltweit mehr als fünfzig Prozent aller Internetnutzer über mobile Endgeräte unterwegs. Die Webseiten mussten sich anpassen, das Design wurde responsiver, aber auch uniformer. Die wilde, individuelle Gestaltung der Anfangstage wich optimierten, cleanen Layouts, die auf kleinen Bildschirmen schnell laden und einfach mit dem Daumen bedient werden konnten.</p>
<p>Um das Jahr 2019 (spätestens) herum war diese Transformation vollständig abgeschlossen. Das Internet hatte sich von einem Werkzeug, das man gezielt nutzt, zu einer permanenten Erweiterung des eigenen Selbst entwickelt. Man war nicht mehr online, man war niemals offline.</p>
<p>In dieser neuen Realität dominierten nur noch eine Handvoll gigantischer Konzerne den gesamten Markt: Google kontrollierte die Suche und die Werbung, Facebook beherrschte die soziale Interaktion und die Kommunikation, Apple und Microsoft stellten die Plattformen und die Hardware bereit, auf denen das alles stattfand.</p>
<p>Diese Zentralisierung markierte das Ende des alten, dezentralen Netzes. Der Raum, der einst von Millionen individueller Homepages und unabhängiger Foren geprägt war, wurde in riesige, geschlossene Plattform-Ökosysteme gepfercht. Die Algorithmen dieser Konzerne begannen zu bestimmen, was wir sehen, was wir lesen und worüber wir nachdenken.</p>
<h1>Zwischen Technologie und Generationen</h1>
<p>Ich selbst wurde im Jahr 1998 geboren, also in einer extrem spannenden Phase kurz bevor die gigantische Dotcom-Blase platzte. Man könnte behaupten, dass ich genau in der ersten Generation aufgewachsen bin, die das moderne Internet von klein auf als dauerhaften Begleiter erlebt hat.</p>
<p>Meinen allerersten eigenen Rechner hatte ich im Alter von etwa sechs Jahren. Das war im Jahr 2004. Auf diesem Rechner lief damals allerdings keineswegs die modernste Technik, sondern das bereits sichtlich in die Jahre gekommene Windows 98. Das lag schlicht daran, dass in vielen Familien die ältere Hardware weitergereicht wurde, anstatt immer das neueste Modell zu kaufen. </p>
<p>Das dringend notwendige Upgrade auf Windows XP durfte ich dann einige Jahre später selbst durchführen, und zwar tatsächlich noch ganz klassisch von einer physischen CD-ROM aus. Wer diese Zeiten miterlebt hat, weiß genau, wie sich das mechanische Surren des CD-Laufwerks anhörte, während man voller Vorfreude auf den blauen Installationsbildschirm starrte.</p>
<p>Mit meinem Geburtsjahr liege ich laut den gängigen Definitionen wohl gerade noch so im Bereich der Generation Z.</p>
<p>Es ist ohnehin faszinierend zu beobachten, wie eng wir Generationen heutzutage an den jeweiligen Stand der technologischen Entwicklung koppeln. Man kann die Grenzen zwischen den Altersgruppen oft viel präziser anhand von Hardware-Releases und digitalen Meilensteinen ziehen als durch starre Jahreszahlen.</p>
<p>Stellen wir uns zur Veranschaulichung einfach mal die Frage: Welche Veröffentlichungen von Nintendo-Konsolen hast du aktiv miterlebt? Wer den geschichtsträchtigen Release des Nintendo 64 im Juni 1996 bewusst mitbekommen hat und zu diesem Zeitpunkt bereits auf der Welt war, gehört ganz klar zur Gruppe der Millennials. Bei mir hingegen war der früheste Berührungspunkt der GameCube, der im Mai 2002 auf den europäischen Markt kam. Das markiert den klassischen Einstieg für die Generation Z. Die heutige Generation Alpha wiederum wächst mit der Nintendo Switch oder deren Nachfolgern auf und kennt eine Welt ohne Touchscreens und permanente Cloud-Anbindung überhaupt nicht mehr.</p>
<p>Am Ende des Tages sind all diese Begriffe wie Millennial, Gen-Z oder Gen-Alpha natürlich extrem vage definiert. Es bleibt immer ein Stück weit Auslegungssache, wo genau die Trennlinien verlaufen, und ehrlich gesagt ist es mir im Alltag auch völlig egal, in welche dieser Schubladen man mich oder andere steckt.</p>
<p>Sprachliche Kategorisierungen und die Dynamik hinter solchen Begriffen sind zwar ein ungemein faszinierendes Feld, aber wir müssen uns hier ja nicht in irgendwelchen bunten, linguistischen Fantasiewelten verlieren.</p>
<p>Was wirklich zählt, ist die gelebte Erfahrung mit den Werkzeugen unserer Zeit. Wer den Übergang vom analogen oder zumindest rein lokalen computing hin zur totalen Vernetzung selbst durchschritten hat, blickt mit einem ganz anderen Bewusstsein auf das heutige Netz als jemand, für den das Internet schon immer so selbstverständlich da war wie der Strom aus der Steckdose.</p>
<h1>Wie das Netz meinen Lebensweg geformt hat</h1>
<p>Sechs Jahre nach meinem ersten Windows-98-Rechner, im Jahr 2012, hatte ich im Alter von zwölf Jahren endlich genug Geld zusammengespart, um mir einen eigenen, zeitgemäßen Computer zu kaufen.</p>
<p>Dieses Gerät sollte mich über viele Jahre hinweg (bis heute, aber im Sinne des Schiffs-des-Theseus-Paradoxons) intensiv begleiten und meinen Lebensweg maßgeblich prägen.</p>
<p>Damals verbrachte ich, wie so viele in meinem Alter, täglich zwei bis drei Stunden mit Online-Games. Meine absoluten Favoriten waren League of Legends und Old-School-Runescape. Besonders das stundenlange Eintauchen in Runescape war rückblickend betrachtet eine extrem lehrreiche Lebensschule. Das Spiel hat mir auf die harte Tour beigebracht, dass man absolut niemandem vertrauen sollte, der im Internet irgendwelche Versprechungen macht</p>
<p>Jeder, der damals seine mühsam erspielte Rüstung an einen vermeintlich netten Spieler verloren hat, der anbot, die Gegenstände gratis aufzuwerten, weiß genau, wovon ich spreche. Mein persönliches Trauma war der Verlust meiner Rune-Plattenrüstung. Diese frühe Lektion in digitaler Skepsis hat sich tief in mein Gehirn eingebrannt: Hinterfrage alles, prüfe die Absichten und sei niemals blauäugig.</p>
<p>Doch der PC war für mich weit mehr als nur eine Gaming-Maschine. Über das Spielen fand ich den Einstieg in tiefere IT-Themen. Ich wollte verstehen, wie die Dinge hinter den Kulissen funktionieren, wie Netzwerke aufgebaut sind und wie Software entsteht. Gleichzeitig entwickelte ich durch das Stöbern im Netz eine riesige Leidenschaft für die Wissenschaft, insbesondere für die Astronomie und das Schachspiel. Ich verlor mich stundenlang in komplexen, logischen Spielereien und Krypto-Rätseln wie dem weltbekannten Phänomen Cicada 3301.</p>
<p>Das Internet war damals eine gigantische Schatztruhe des Wissens. Wenn ich etwas Neues lernen wollte, gab es keine algorithmisch optimierten Feeds, die mich mit Kurzvideos bombardierten. Stattdessen suchte ich gezielt nach YouTube-Videos von leidenschaftlichen Erklärern, las mich durch extrem detaillierte Blog-Beiträge von Experten und wühlte mich durch Forenposts, in denen Nerds aus aller Welt ihr Wissen völlig kostenlos und ohne kommerzielle Hintergedanken teilten.</p>
<p>Die Foren waren Orte des echten Austauschs. Man musste sich registrieren, Regeln befolgen und erarbeitete sich über Jahre hinweg einen Ruf innerhalb einer kleinen, feinen Community. Die Blogs waren persönliche Tagebücher und Wissensdatenbanken zugleich. Wenn jemand einen Text im Netz veröffentlichte, dann meistens deshalb, weil er eine echte Leidenschaft für das Thema hatte und der Welt etwas bleibendes hinterlassen wollte.</p>
<p>Diese digitale Umgebung hat nicht nur meine technischen Fähigkeiten massiv befeuert, sondern auch meine Denkweise geformt. Sie hat mir gezeigt, dass das Internet das mächtigste Bildungswerkzeug der Menschheitsgeschichte sein kann, wenn man lernt, es richtig und selbstbestimmt zu nutzen.</p>
<h1>Die Invasion des KI-Slops und der Verfall von heute</h1>
<p>Der radikalste Umbruch der jüngeren Internetgeschichte kündigte sich an, als die ersten großen Sprachmodelle die Bildfläche betraten. Als OpenAI am 28. Mai 2020 das Papier zu GPT-3 veröffentlichte und die Technologie langsam zugänglich wurde, war ich sofort Feuer und Flamme. Ich gehörte zu den Ersten, die sich auf diese neue Welt stürzten, denn das Thema automatisierte Konversation faszinierte mich schon lange vorher. Ich hatte nämlich bereits eigene Chatbots programmiert und im Netz veröffentlicht, lange bevor es durch den großen Hype cool und massentauglich wurde.</p>
<p>Die modernen Large Language Models waren dagegen natürlich ein völlig anderes Kaliber. Was als faszinierende technologische Revolution begann, hat sich im Laufe der letzten Jahre jedoch zu einer echten Plage entwickelt. Wir schreiben das Jahr 2026, und das halbe Internet ist mittlerweile bis zum Rand gefüllt mit sogenanntem KI-Slop. Dieser Begriff beschreibt die endlose Flut an minderwertigen, synthetisch generierten Inhalten, die ohne Sinn und Verstand ins Netz gekippt werden, nur um Suchmaschinen-Rankings zu manipulieren und Werbeeinnahmen abzugreifen. Experten und Technologie-Analysten warnen schon länger vor einer regelrechten Kernschmelze der Informationsqualität. Alles, was ich heute im Internet konsumiere, muss ich dreimal hinterfragen. Die Leichtigkeit des alten Netzes ist komplett verflogen.</p>
<p>Ein perfektes Beispiel für diesen rasanten Verfall liefert die Plattform LinkedIn. Um ein wenig Reichweite und Traffic für meine Projekte zu generieren, habe ich dort vor gut einem Monat einen eigenen Account erstellt. Was mir dort tagtäglich in den Feed gespült wird, ist absolut schockierend. Die schiere Masse an Beiträgen, die offensichtlich zu einhundert Prozent aus der KI-Retorte stammen, ist kaum noch zu ertragen. Es sind immer die gleichen, unnatürlich glatten Textstrukturen, dieselben phrasenhaften Motivationssprüche und dazu völlig bizarre, KI-generierte Bilder, auf denen Menschen mit sechs Fingern in sterilen Büros sitzen.</p>
<p>Hat sich das eigentlich jemals ein echter Mensch angeschaut, bevor es gepostet wurde? Es fühlt sich an wie ein steriler Geisterwald. Maschinen schreiben Texte für andere Maschinen, die diese dann automatisiert liken und kommentieren, während der echte menschliche Austausch komplett auf der Strecke bleibt. Zu dieser besorgniserregenden Entwicklung habe ich mich ja auch schon in meinem letzten Blogpost geäußert.</p>
<h1>Die digitale Kluft und unsere Verantwortung</h1>
<p>Dass mir diese Missstände sofort ins Auge springen, liegt natürlich an meiner persönlichen Blase. Ich bin seit dem Jahr 2020 ausgebildeter Softwareentwickler in Deutschland. Ich bin chronisch online, arbeite täglich im Maschinenraum des Internets und betrachte das Ganze vermutlich auch ein Stück weit als Berufskrankheit. Ich muss ständig checken, ob meine Server stabil laufen, ich pflege meine Webseiten und optimiere den Code.</p>
<p>Meine digitalen Projekte sind für mich wie meine eigenen Babys. Selbst mein LinkedIn-Profil betrachte ich nicht als klassischen Social-Media-Kanal zum Selbstdarstellen oder Flexen, sondern ich führe dort im Grunde genommen ein öffentliches Entwicklertagebuch. Für mich sind diese Plattformen reine Werkzeuge, die ich gezielt und mit einem klaren Bewusstsein für die Mechanismen dahinter einsetze.</p>
<p>Doch wie sieht die Realität abseits unserer Tech-Blase aus? Wie geht es einer Karen aus der Buchhaltung, einer Miriam aus der HR-Abteilung oder dem Uwe im Logistiklager, wenn sie sich im Netz bewegen? Sie nutzen das Internet ebenfalls täglich, aber oft ohne das technische Hintergrundwissen über Algorithmen, Prompting und automatisierte Content-Fabriken.</p>
<p>Genau hier liegt die entscheidende Frage: Wie beeinflusst diese Flut an künstlichen Inhalten deren tägliche Internetnutzung? Ist ihnen eigentlich im Ansatz bewusst, was da im Hintergrund passiert? Wer nicht tagtäglich mit Softwareentwicklung oder der Tech-Branche zu tun hat, merkt oft gar nicht, wie subtil er von KI-generierten Inhalten manipuliert, abgelenkt oder schlicht mit Falschinformationen gefüttert wird. Wenn das halbe Netz aus synthetischem Müll besteht, schwindet das Vertrauen in digitale Medien insgesamt.</p>
<p>Selbst ich als erfahrener Entwickler, der die Entstehung dieser Technologie seit Jahren intensiv mitverfolgt, muss offen zugeben: Ich stehe oft genug vor Inhalten und scheitere trotz aller Fachkenntnis daran, ein raffiniert geschriebenes KI-Plagiat zu einhundert Prozent von einem echten menschlichen Text zu unterscheiden.</p>
<p>Ja, es gibt Bestrebungen, solche Inhalte zu kennzeichnen oder mit digitalen Wasserzeichen zu markieren. Aber seien wir doch mal absolut ehrlich zu uns selbst. Auf LinkedIn und auf unzähligen anderen Plattformen sehe ich jeden Tag massenhaft Posts, die völlig ohne Kennzeichnung durchgehen und das Netz weiter verstopfen. Wenn wir diesen Zustand einfach so achselzuckend hinnehmen, kapitulieren wir vor der algorithmischen Schlammwelle.</p>
<h1>Was du jetzt konkret dagegen tun kannst</h1>
<p>Die Situation mag im ersten Moment düster erscheinen, aber wir sind dieser Entwicklung keineswegs hilflos ausgeliefert. Wir müssen aufhören, uns wie passive Konsumenten in den geschlossenen Gärten der großen Plattformen füttern zu lassen. Mach es stattdessen genau wie ich: Geh wieder zurück zu den Wurzeln des Netzes. Baue dir deine eigene, unabhängige Website. </p>
<p>Es war noch nie so einfach wie heute, sich eine eigene Domain zu sichern und einen kleinen Server aufzusetzen oder eine statische Seite zu hosten. Zeig der Welt dort draußen, was du mit deinen eigenen Händen geschaffen, was du gecodet oder worüber du dir echte, tiefe Gedanken gemacht hast. Eine eigene Website ist dein persönlicher Schutzraum im digitalen Raum, ein Ort, an dem kein Algorithmus der Welt bestimmt, wie dein Inhalt auszusehen hat oder wer ihn sehen darf.</p>
<p>Das ist doch scheiße geil oder?</p>
<p>Siehst du das? Ich habe geflucht. Das kann ich machen, weil das meine Website ist.</p>
<p>Wenn du dich auf meiner Seite umschaut, wirst du in meinen Fundstücken auch gezielte Beiträge über die Abwehr und das präzise Erkennen von KI-generierten Inhalten finden. Es ist mir ein echtes Herzensanliegen, dieses Wissen weiterzugeben und die Sinne für den digitalen Slop zu schärfen.</p>
<p>Wir müssen lernen, wieder genauer hinzusehen und eine gesunde Skepsis an den Tag zu legen. Nutze Tools zur Überprüfung, achte auf die typischen sprachlichen Muster von Sprachmodellen und lass dich nicht von sterilen, perfekt polierten Beiträgen blenden, die in Sekundenschnelle ohne menschlichen Funken generiert wurden.</p>
<p>Der wichtigste Schritt ist jedoch ein ganz persönliches Versprechen an dich selbst und an deine Mitmenschen: Sei absolut ehrlich mit dir selbst und stelle zu jedem Zeitpunkt sicher, dass <strong>DU</strong> die Inhalte schreibst und veröffentlichst, und nicht eine anonyme KI im Hintergrund. Es spricht überhaupt nichts dagegen, Technologie als Inspirationsquelle oder als Werkzeug für die Rechtschreibprüfung zu nutzen.</p>
<p>Die Stimme, die Seele, die Fehler und die echten Ecken und Kanten eines Textes müssen zwingend von dir kommen. Deine Leser, deine Kunden und deine echten Freunde im Netz werden es dir unendlich danken. Sie sehnen sich in dieser überschwemmten, künstlichen Welt mehr denn je nach echter, authentischer menschlicher Erfahrung. Lass uns gemeinsam das echte Internet zurückerobern.</p>
]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der blinde Fleck</title>
      <link>https://nicohartmann.dev/de/funnies#70</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#70#1781760446155</guid>
      <pubDate>Thu, 18 Jun 2026 05:27:26 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-70-DN926ZI8.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-70-DN926ZI8.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-70-DN926ZI8.webp" alt="Der blinde Fleck" style="max-width:100%;height:auto"/></p><p>Wenn du seit drei Stunden den Code durchsuchst, während der Fehler dir metaphorisch (und physisch) auf der Nase herumtanzt.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-70-DN926ZI8.webp" alt="Der blinde Fleck" style="max-width:100%;height:auto"/></p><p>Wenn du seit drei Stunden den Code durchsuchst, während der Fehler dir metaphorisch (und physisch) auf der Nase herumtanzt.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Die Erleuchtung</title>
      <link>https://nicohartmann.dev/de/funnies#69</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#69#1781760446155</guid>
      <pubDate>Thu, 18 Jun 2026 05:27:26 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-69-D8ekq1BM.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-69-D8ekq1BM.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-69-D8ekq1BM.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn du aus Versehen auf Light Mode klickst und dein Monitor dich spontan mit der Intensität einer sterbenden Supernova bestrahlt.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-69-D8ekq1BM.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn du aus Versehen auf Light Mode klickst und dein Monitor dich spontan mit der Intensität einer sterbenden Supernova bestrahlt.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Vertrauen ist gut</title>
      <link>https://nicohartmann.dev/de/funnies#68</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#68#1781760446155</guid>
      <pubDate>Thu, 18 Jun 2026 05:27:26 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-68-Bo3DG3Dl.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-68-Bo3DG3Dl.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-68-Bo3DG3Dl.webp" alt="Vertrauen ist gut" style="max-width:100%;height:auto"/></p><p>Der QA-Manager hat gesagt, der Code sei 'bereit für den Release'. Das 'TODO' im Main-Branch sieht das allerdings etwas anders.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-68-Bo3DG3Dl.webp" alt="Vertrauen ist gut" style="max-width:100%;height:auto"/></p><p>Der QA-Manager hat gesagt, der Code sei 'bereit für den Release'. Das 'TODO' im Main-Branch sieht das allerdings etwas anders.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Kleine schnelle Lösung</title>
      <link>https://nicohartmann.dev/de/funnies#67</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#67#1781760446155</guid>
      <pubDate>Thu, 18 Jun 2026 05:27:26 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-67-D6EGSF4G.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-67-D6EGSF4G.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-67-D6EGSF4G.webp" alt="Kleine schnelle Lösung" style="max-width:100%;height:auto"/></p><p>Das Beheben eines einzelnen Tippfehlers in einem Kommentar löst alle 1800 Pipeline-Tests aus, weil ein einzelner Punkt ja offensichtlich die Produktion lahmlegen könnte.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-67-D6EGSF4G.webp" alt="Kleine schnelle Lösung" style="max-width:100%;height:auto"/></p><p>Das Beheben eines einzelnen Tippfehlers in einem Kommentar löst alle 1800 Pipeline-Tests aus, weil ein einzelner Punkt ja offensichtlich die Produktion lahmlegen könnte.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Cleverbot</title>
      <link>https://www.cleverbot.com/</link>
      <guid isPermaLink="false">https://www.cleverbot.com/#1780574400000</guid>
      <pubDate>Thu, 04 Jun 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Rollo Carpenter</em></p><p>So waren Chatbots, als die Welt noch einfacher war. (Englisch)</p><p><a href="https://www.cleverbot.com/">https://www.cleverbot.com/</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Rollo Carpenter</em></p><p>So waren Chatbots, als die Welt noch einfacher war. (Englisch)</p><p><a href="https://www.cleverbot.com/">https://www.cleverbot.com/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Blog] Von Hand gebaut</title>
      <link>https://nicohartmann.dev/de/blog/myaiact</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/blog/myaiact#1780488000000</guid>
      <pubDate>Wed, 03 Jun 2026 12:00:00 GMT</pubDate>
      <category>Blog</category>
      <description><![CDATA[<p>Es ist gar nicht so lange her, da stolperte ich beim morgendlichen Scrollen durch Hacker News über einen Artikel, der mich sofort ansprach. Das Thema war brisant und hochaktuell: <a href="https://www.hollandtech.net/claude-is-not-your-architect/">Claude is not your architect</a>. Eine Warnung davor, dass Claude, das Sprachmodell von Anthropic, klammheimlich immer größere Teile des industriellen Designs übernimmt. Der Autor zeichnete ein düsteres Bild von einer Welt, in der menschliche Kreativität im Engineering-Bereich durch automatisierte Algorithmen ersetzt wird.</p>
<p>Die Argumente waren schlüssig, die Struktur wirkte auf den ersten Blick professionell. Doch beim Lesen überkam mich schnell ein ungemütliches Gefühl. Kennst du das, wenn ein Text zwar grammatikalisch perfekt ist, sich aber trotzdem irgendwie „falsch&quot; anfühlt? Ich schaute genauer hin.</p>
<p>Da waren sie: Em-Dashes en masse. Fast jeder zweite Satz wurde von diesen langen Strichen unterbrochen. Dazu kamen seltsame, fast unmerkliche Gedankensprünge zwischen den Absätzen. Phrasen wiederholten sich in leicht abgewandelter Form, und der Text plätscherte in einer permanenten, künstlich aufgeblasenen Epik dahin. Die Ironie war perfekt: Ein Artikel, der vor der Übernahme der Industrie durch KI warnt, war offensichtlich selbst komplett von einer KI generiert worden.</p>
<p>Ich dachte mir: „Gut, das merken die Tech-Gurus auf Hacker News ja sofort.&quot; Immerhin tummeln sich dort die klügsten Köpfe der IT-Welt. Ich scrollte durch die Kommentare, um die hämischen Reaktionen zu lesen. Doch stattdessen fand ich: Nichts. Ernsthafte Diskussionen über den Inhalt. <a href="https://news.ycombinator.com/item?id=48260227">Ich setzte mein eigenes Zeichen.</a></p>
<p>Wenn selbst die klügsten Köpfe den Unterschied zwischen menschlicher Feder und Algorithmus nicht mehr wahrnehmen, haben wir im Internet einen Wendepunkt erreicht. Wir konsumieren tagtäglich Inhalte, ohne zu wissen, ob dahinter echte Kreativität oder nur eine gut trainierte Prompt-Antwort steckt.</p>
<p>Genau dieses Gefühl der Intransparenz hat mich nachhaltig zum Nachdenken gebracht. Um nicht selbst Teil dieses anonymen Rauschens zu werden, möchte ich einen anderen Weg gehen. Es ist an der Zeit, für Klarheit zu sorgen und deshalb lege ich hiermit offen, wie ich persönlich im Alltag mit KI umgehe.</p>
<hr>
<h2>Der Code: Warum mein Footer kein Lügner ist</h2>
<p>Wenn du auf meine Webseite gehst und ganz nach unten links scrollst, findest du dort einen Satz, den ich mit Bedacht gewählt habe: „Mit Sorgfalt von Hand gebaut&quot;.</p>
<p>Ich nehme diesen Satz verdammt ernst. Gleichzeitig muss ich aber auch ehrlich sein: Das bedeutet nicht, dass ich im Jahr 2026 komplett auf künstliche Intelligenz verzichte. Für mich sagt dieser Satz aus, dass diese Website nicht autonom von irgendwelchen KI-Agenten erstellt wurde. Es gibt da draußen Tools, bei denen drückt man auf einen Knopf, tippt ein: „Mach mir eine Portfolio-Seite für einen Entwickler&quot;, und schwupps: spuckt das System eine fertige, seelenlose Seite aus.</p>
<p>Das ist nicht mein Weg.</p>
<p>Ich gehe mit KI im Grunde genau so um, wie ich damals mit StackOverflow oder Google umgegangen bin. Wenn ich beim Programmieren an einem Punkt bin, an dem ich einfach nicht weiter weiß, dann frage ich eines der Modelle.</p>
<p>Welches Modell ich nutze? Das ist bei mir reine Gefühlssache und eine Frage der verfügbaren Gratis-Tokens. Wenn das Kontingent bei Modell A aufgebraucht ist, ziehe ich eben weiter zu Modell B. Trotz der Tatsache, dass ich die KI hin und wieder um Rat frage und den von ihr erzeugten Quellcode auch manchmal 1:1 übernehme, steht unten links auf meiner Seite trotzdem eben jener Satz.</p>
<p>Ich höre die Kritiker schon rufen: „Ey! Du sagst, es ist von Hand gebaut, aber nutzt doch KI? Verräter!&quot; Aber mal ganz im Ernst: Haben wir damals, als wir nächtelang Foreneinträge durchforstet haben, „Mit Hilfe von Google gebaut&quot; in unseren Footer gepackt? Nein. Der kreative Kopf, die Architektur und das Zusammensetzen der Puzzleteile. Bei mir bleibt das Handarbeit.</p>
<hr>
<h2>Die Übersetzungen: KI als mein persönlicher Brückenbauer</h2>
<p>Ein weiterer Punkt, an dem mir die KI unfassbar viel Arbeit abnimmt, sind die Übersetzungsarbeiten. Meine Webseite ist zweisprachig aufgebaut. Früher war das ein absolutes Chaos. Da mein Gehirn je nach Tagesform und konsumierten Medien mal auf Deutsch und mal auf Englisch läuft, war meine Seite ein bunt durchgemischter Flickenteppich. Das wirkte unprofessionell und unstrukturiert.</p>
<p>Heute sieht mein Workflow so aus: Ich suche mir für jeden Text erst einmal eine Ausgangssprache aus, meistens Deutsch, weil ich mich darin am präzisesten ausdrücken kann. Wenn der Text steht, lasse ich ihn mir von der KI „wortgemäß&quot; übersetzen. Das Schöne an modernen LLMs im Vergleich zu alten Übersetzungstools ist, dass sie den Kontext verstehen. Sie übersetzen nicht nur stumpf Wörter, sondern transportieren den Tonfall. Die KI fungiert hier als Brücke, die meine Gedanken für ein internationales Publikum zugänglich macht, ohne dass der ursprüngliche Vibe verloren geht.</p>
<hr>
<h2>Die Blogs: Roher Gedankensturm trifft auf den Steinmetz</h2>
<p>Kommen wir zu den Blogs und damit auch zu diesem Text, den du gerade liest. Ich behaupte felsenfest: Meine Blogs sind immer noch von Hand geschrieben. Aber auch hier kommt die KI zum Einsatz, und zwar als mein persönlicher Steinmetz.</p>
<p>Wenn ich eine Idee für einen Blogpost habe, tippe ich einfach drauf los. Ich kümmere mich nicht um Grammatik, Zeichensetzung oder geschmeidige Übergänge.</p>
<ul>
<li>Ich formuliere meine Texte im ersten Entwurf mit immens vielen Schreibfehlern. </li>
<li>Da sind Formulierungen dabei, die glatt von einem Sechsjährigen stammen könnten.</li>
<li>Ich werfe mit kreativen, bunten und manchmal völlig absurden Metaphern um mich.</li>
</ul>
<p>Irgendjemand muss ja mein kreatives Chaos dokumentieren.</p>
<p>Das Ergebnis ist ein roher, wilder Haufen Text. Meistens so um die 4.000 bis 6.000 Zeichen. Diesen digitalen Matsch nehme ich, werfe ihn in ein Modell meiner Wahl und gebe dem System eine ganz klare, strikte Anweisung:</p>
<blockquote>
<p>„Nimm diesen Text. Zielvorgabe: mindestens 10.000 Zeichen.&quot;</p>
</blockquote>
<p>Die KI nimmt also meine Rohmasse und zieht sie in die Länge, baut elegante Satzstrukturen und sorgt für den nötigen Textumfang. Was dabei herauskommt, darf man natürlich niemals ungefiltert veröffentlichen. Deshalb lese ich das Ganze immer noch einmal extrem gründlich gegen, korrigiere nach und drücke dem Text meinen finalen Stempel auf.</p>
<p>Was ich hingegen auf gar keinen Fall jemals machen werde: „Gib mir 10 Ideen für coole Blogposts&quot; oder „Formuliere mir ein Thema aus dem Nichts auf 10.000 Wörter aus.&quot; Das ist für mich die rote Linie. Die Inhalte, die Ideen, die Core-Gedanken sind und bleiben menschlich. Die KI ist mein Werkzeug, nicht mein Ghostwriter.</p>
<hr>
<h2>Eine kleine Beerdigung für den Gedankenstrich</h2>
<p>Beim Korrigieren dieser von der KI ausformulierten Texte ist mir in letzter Zeit eine Sache extrem aufgefallen, die mich zu einer radikalen Änderung gezwungen hat: Ich ersetze mittlerweile systematisch alle En-Dashes und Em-Dashes durch andere Satzzeichen.</p>
<p>Warum? Weil diese Striche mittlerweile das absolute Brandzeichen für KI-Texte geworden sind. Die Sprachmodelle haben sie in den letzten Jahren einfach viel zu inflationär verwendet. Wenn du heute einen deutschen Text siehst, der alle zwei Zeilen einen eleganten Gedankenstrich nutzt, schlägt der interne KI-Detektor sofort an. Das finde ich persönlich wahnsinnig schade.</p>
<p>Ich mochte den En-Dash wirklich sehr. Früher habe ich ihn extra gegoogelt und per Copy-and-Paste in meine Texte eingefügt, weil er im Schriftbild einfach schöner aussieht als der plumpe, kurze Bindestrich. Später lernte ich dann den Shortcut kennen: Unter Windows mit WIN + -.</p>
<table>
<thead>
<tr>
<th>Zeichen</th>
<th>Name</th>
<th>Breite</th>
<th>Ursprung</th>
</tr>
</thead>
<tbody><tr>
<td>-</td>
<td>Bindestrich / Viertelgeviertstrich</td>
<td>Sehr kurz</td>
<td>Trennung &amp; Kopplung</td>
</tr>
<tr>
<td>–</td>
<td>En-Dash / Halbgeviertstrich</td>
<td>Breite eines großen N</td>
<td>Gedankenstrich, Bis-Strich</td>
</tr>
<tr>
<td>—</td>
<td>Em-Dash / Geviertstrich</td>
<td>Breite eines großen M</td>
<td>Starker Gedankensprung</td>
</tr>
</tbody></table>
<p>Der En-Dash (–) heißt so, weil er in der traditionellen Typografie exakt die geometrische Breite eines großen Buchstabens „N&quot; hat, gleiches beim Em-Dash (—) für „M&quot;. All diese schönen Fun Facts werden nun langsam in der Vergessenheit geraten, weil dieses wunderschöne Symbol heute eines der eindeutigsten Indizien für seelenlose KI-Texte ist. Es wurde von den Algorithmen korrumpiert. Nehmt diesen Paragraphen also bitte als eine kleine, traurige Beerdigung für meinen geliebten Gedankenstrich.</p>
<hr>
<h2>Fazit: Für eine neue Kultur der Ehrlichkeit im Netz</h2>
<p>Ich bin kein Extremist. Ich erwarte überhaupt nicht, dass jetzt jeder panisch „Erstellt mit Hilfe von KI&quot; in seine Website klatscht, nur weil er ein Modell mal kurz nach einem Synonym gefragt hat.</p>
<p>Was ich aber einfordere, ist ein gewisses Maß an grundlegender Ehrlichkeit, sobald jemand auf den großen, roten „Veröffentlichen&quot;-Button klickt. Ich möchte im Internet gerne wissen, wo ein Mensch noch aktiv beteiligt war und wo nicht. Ich möchte, dass wieder ein Bewusstsein für den Wert von Gedanken entsteht. </p>
<p>So hart das auch klingen mag: Ich möchte, dass sich Leute wieder ein Stück weit schämen, wenn sie einen rein KI-generierten, ungeprüften Text einfach so ins Netz rotzen, nur um SEO-Traffic abzugreifen oder Content-Volumen vorzutäuschen.</p>
<p>Wir müssen im Internet dringend eine Kultur fördern, bei der beim Erstellen von Inhalten der Mensch im Loop bleibt. Ein Text sollte das Produkt eines menschlichen Geistes sein, der sich Werkzeuge zunutze macht, um sich besser auszudrücken. Nicht das Produkt einer Maschine, die versucht, das menschliche Denken komplett zu simulieren, während der eigentliche „Autor&quot; nur noch die Klicks zählt. Denn heutzutage ist das, was ohne Sinn und Verstand generiert wird, kein echter Inhalt mehr. Es ist nur noch digitaler Lärm.</p>
<p>Bleiben wir also menschlich. Mit all unseren Schreibfehlern, unseren schrägen Metaphern und unserem eigenen, unperfekten Stil.</p>
<hr>
<p>*~ Dieser Blogpost entstand aus ursprünglich 6.988 Zeichen, die mit viel Herzblut, Tippfehlern und echten Gedanken von Hand getippt wurden. </p>
<p>Gemini OneShot-Prompt dazu:</p>
<pre><code>hierzu einen blogpost insgesamt mindestens 10000 zeichen
</code></pre>
<p>Geliefert: 12.580 Zeichen. </p>
<p>Nachkorrektur: 10.376 (inkl. .md Formatierung und 5 mal lesen)</p>
<p>Formatiert mit <a href="https://nicohartmann.dev/justwrite_de.html">diesem Tool</a>.</p>
]]></description>
      <content:encoded><![CDATA[<p>Es ist gar nicht so lange her, da stolperte ich beim morgendlichen Scrollen durch Hacker News über einen Artikel, der mich sofort ansprach. Das Thema war brisant und hochaktuell: <a href="https://www.hollandtech.net/claude-is-not-your-architect/">Claude is not your architect</a>. Eine Warnung davor, dass Claude, das Sprachmodell von Anthropic, klammheimlich immer größere Teile des industriellen Designs übernimmt. Der Autor zeichnete ein düsteres Bild von einer Welt, in der menschliche Kreativität im Engineering-Bereich durch automatisierte Algorithmen ersetzt wird.</p>
<p>Die Argumente waren schlüssig, die Struktur wirkte auf den ersten Blick professionell. Doch beim Lesen überkam mich schnell ein ungemütliches Gefühl. Kennst du das, wenn ein Text zwar grammatikalisch perfekt ist, sich aber trotzdem irgendwie „falsch&quot; anfühlt? Ich schaute genauer hin.</p>
<p>Da waren sie: Em-Dashes en masse. Fast jeder zweite Satz wurde von diesen langen Strichen unterbrochen. Dazu kamen seltsame, fast unmerkliche Gedankensprünge zwischen den Absätzen. Phrasen wiederholten sich in leicht abgewandelter Form, und der Text plätscherte in einer permanenten, künstlich aufgeblasenen Epik dahin. Die Ironie war perfekt: Ein Artikel, der vor der Übernahme der Industrie durch KI warnt, war offensichtlich selbst komplett von einer KI generiert worden.</p>
<p>Ich dachte mir: „Gut, das merken die Tech-Gurus auf Hacker News ja sofort.&quot; Immerhin tummeln sich dort die klügsten Köpfe der IT-Welt. Ich scrollte durch die Kommentare, um die hämischen Reaktionen zu lesen. Doch stattdessen fand ich: Nichts. Ernsthafte Diskussionen über den Inhalt. <a href="https://news.ycombinator.com/item?id=48260227">Ich setzte mein eigenes Zeichen.</a></p>
<p>Wenn selbst die klügsten Köpfe den Unterschied zwischen menschlicher Feder und Algorithmus nicht mehr wahrnehmen, haben wir im Internet einen Wendepunkt erreicht. Wir konsumieren tagtäglich Inhalte, ohne zu wissen, ob dahinter echte Kreativität oder nur eine gut trainierte Prompt-Antwort steckt.</p>
<p>Genau dieses Gefühl der Intransparenz hat mich nachhaltig zum Nachdenken gebracht. Um nicht selbst Teil dieses anonymen Rauschens zu werden, möchte ich einen anderen Weg gehen. Es ist an der Zeit, für Klarheit zu sorgen und deshalb lege ich hiermit offen, wie ich persönlich im Alltag mit KI umgehe.</p>
<hr>
<h2>Der Code: Warum mein Footer kein Lügner ist</h2>
<p>Wenn du auf meine Webseite gehst und ganz nach unten links scrollst, findest du dort einen Satz, den ich mit Bedacht gewählt habe: „Mit Sorgfalt von Hand gebaut&quot;.</p>
<p>Ich nehme diesen Satz verdammt ernst. Gleichzeitig muss ich aber auch ehrlich sein: Das bedeutet nicht, dass ich im Jahr 2026 komplett auf künstliche Intelligenz verzichte. Für mich sagt dieser Satz aus, dass diese Website nicht autonom von irgendwelchen KI-Agenten erstellt wurde. Es gibt da draußen Tools, bei denen drückt man auf einen Knopf, tippt ein: „Mach mir eine Portfolio-Seite für einen Entwickler&quot;, und schwupps: spuckt das System eine fertige, seelenlose Seite aus.</p>
<p>Das ist nicht mein Weg.</p>
<p>Ich gehe mit KI im Grunde genau so um, wie ich damals mit StackOverflow oder Google umgegangen bin. Wenn ich beim Programmieren an einem Punkt bin, an dem ich einfach nicht weiter weiß, dann frage ich eines der Modelle.</p>
<p>Welches Modell ich nutze? Das ist bei mir reine Gefühlssache und eine Frage der verfügbaren Gratis-Tokens. Wenn das Kontingent bei Modell A aufgebraucht ist, ziehe ich eben weiter zu Modell B. Trotz der Tatsache, dass ich die KI hin und wieder um Rat frage und den von ihr erzeugten Quellcode auch manchmal 1:1 übernehme, steht unten links auf meiner Seite trotzdem eben jener Satz.</p>
<p>Ich höre die Kritiker schon rufen: „Ey! Du sagst, es ist von Hand gebaut, aber nutzt doch KI? Verräter!&quot; Aber mal ganz im Ernst: Haben wir damals, als wir nächtelang Foreneinträge durchforstet haben, „Mit Hilfe von Google gebaut&quot; in unseren Footer gepackt? Nein. Der kreative Kopf, die Architektur und das Zusammensetzen der Puzzleteile. Bei mir bleibt das Handarbeit.</p>
<hr>
<h2>Die Übersetzungen: KI als mein persönlicher Brückenbauer</h2>
<p>Ein weiterer Punkt, an dem mir die KI unfassbar viel Arbeit abnimmt, sind die Übersetzungsarbeiten. Meine Webseite ist zweisprachig aufgebaut. Früher war das ein absolutes Chaos. Da mein Gehirn je nach Tagesform und konsumierten Medien mal auf Deutsch und mal auf Englisch läuft, war meine Seite ein bunt durchgemischter Flickenteppich. Das wirkte unprofessionell und unstrukturiert.</p>
<p>Heute sieht mein Workflow so aus: Ich suche mir für jeden Text erst einmal eine Ausgangssprache aus, meistens Deutsch, weil ich mich darin am präzisesten ausdrücken kann. Wenn der Text steht, lasse ich ihn mir von der KI „wortgemäß&quot; übersetzen. Das Schöne an modernen LLMs im Vergleich zu alten Übersetzungstools ist, dass sie den Kontext verstehen. Sie übersetzen nicht nur stumpf Wörter, sondern transportieren den Tonfall. Die KI fungiert hier als Brücke, die meine Gedanken für ein internationales Publikum zugänglich macht, ohne dass der ursprüngliche Vibe verloren geht.</p>
<hr>
<h2>Die Blogs: Roher Gedankensturm trifft auf den Steinmetz</h2>
<p>Kommen wir zu den Blogs und damit auch zu diesem Text, den du gerade liest. Ich behaupte felsenfest: Meine Blogs sind immer noch von Hand geschrieben. Aber auch hier kommt die KI zum Einsatz, und zwar als mein persönlicher Steinmetz.</p>
<p>Wenn ich eine Idee für einen Blogpost habe, tippe ich einfach drauf los. Ich kümmere mich nicht um Grammatik, Zeichensetzung oder geschmeidige Übergänge.</p>
<ul>
<li>Ich formuliere meine Texte im ersten Entwurf mit immens vielen Schreibfehlern. </li>
<li>Da sind Formulierungen dabei, die glatt von einem Sechsjährigen stammen könnten.</li>
<li>Ich werfe mit kreativen, bunten und manchmal völlig absurden Metaphern um mich.</li>
</ul>
<p>Irgendjemand muss ja mein kreatives Chaos dokumentieren.</p>
<p>Das Ergebnis ist ein roher, wilder Haufen Text. Meistens so um die 4.000 bis 6.000 Zeichen. Diesen digitalen Matsch nehme ich, werfe ihn in ein Modell meiner Wahl und gebe dem System eine ganz klare, strikte Anweisung:</p>
<blockquote>
<p>„Nimm diesen Text. Zielvorgabe: mindestens 10.000 Zeichen.&quot;</p>
</blockquote>
<p>Die KI nimmt also meine Rohmasse und zieht sie in die Länge, baut elegante Satzstrukturen und sorgt für den nötigen Textumfang. Was dabei herauskommt, darf man natürlich niemals ungefiltert veröffentlichen. Deshalb lese ich das Ganze immer noch einmal extrem gründlich gegen, korrigiere nach und drücke dem Text meinen finalen Stempel auf.</p>
<p>Was ich hingegen auf gar keinen Fall jemals machen werde: „Gib mir 10 Ideen für coole Blogposts&quot; oder „Formuliere mir ein Thema aus dem Nichts auf 10.000 Wörter aus.&quot; Das ist für mich die rote Linie. Die Inhalte, die Ideen, die Core-Gedanken sind und bleiben menschlich. Die KI ist mein Werkzeug, nicht mein Ghostwriter.</p>
<hr>
<h2>Eine kleine Beerdigung für den Gedankenstrich</h2>
<p>Beim Korrigieren dieser von der KI ausformulierten Texte ist mir in letzter Zeit eine Sache extrem aufgefallen, die mich zu einer radikalen Änderung gezwungen hat: Ich ersetze mittlerweile systematisch alle En-Dashes und Em-Dashes durch andere Satzzeichen.</p>
<p>Warum? Weil diese Striche mittlerweile das absolute Brandzeichen für KI-Texte geworden sind. Die Sprachmodelle haben sie in den letzten Jahren einfach viel zu inflationär verwendet. Wenn du heute einen deutschen Text siehst, der alle zwei Zeilen einen eleganten Gedankenstrich nutzt, schlägt der interne KI-Detektor sofort an. Das finde ich persönlich wahnsinnig schade.</p>
<p>Ich mochte den En-Dash wirklich sehr. Früher habe ich ihn extra gegoogelt und per Copy-and-Paste in meine Texte eingefügt, weil er im Schriftbild einfach schöner aussieht als der plumpe, kurze Bindestrich. Später lernte ich dann den Shortcut kennen: Unter Windows mit WIN + -.</p>
<table>
<thead>
<tr>
<th>Zeichen</th>
<th>Name</th>
<th>Breite</th>
<th>Ursprung</th>
</tr>
</thead>
<tbody><tr>
<td>-</td>
<td>Bindestrich / Viertelgeviertstrich</td>
<td>Sehr kurz</td>
<td>Trennung &amp; Kopplung</td>
</tr>
<tr>
<td>–</td>
<td>En-Dash / Halbgeviertstrich</td>
<td>Breite eines großen N</td>
<td>Gedankenstrich, Bis-Strich</td>
</tr>
<tr>
<td>—</td>
<td>Em-Dash / Geviertstrich</td>
<td>Breite eines großen M</td>
<td>Starker Gedankensprung</td>
</tr>
</tbody></table>
<p>Der En-Dash (–) heißt so, weil er in der traditionellen Typografie exakt die geometrische Breite eines großen Buchstabens „N&quot; hat, gleiches beim Em-Dash (—) für „M&quot;. All diese schönen Fun Facts werden nun langsam in der Vergessenheit geraten, weil dieses wunderschöne Symbol heute eines der eindeutigsten Indizien für seelenlose KI-Texte ist. Es wurde von den Algorithmen korrumpiert. Nehmt diesen Paragraphen also bitte als eine kleine, traurige Beerdigung für meinen geliebten Gedankenstrich.</p>
<hr>
<h2>Fazit: Für eine neue Kultur der Ehrlichkeit im Netz</h2>
<p>Ich bin kein Extremist. Ich erwarte überhaupt nicht, dass jetzt jeder panisch „Erstellt mit Hilfe von KI&quot; in seine Website klatscht, nur weil er ein Modell mal kurz nach einem Synonym gefragt hat.</p>
<p>Was ich aber einfordere, ist ein gewisses Maß an grundlegender Ehrlichkeit, sobald jemand auf den großen, roten „Veröffentlichen&quot;-Button klickt. Ich möchte im Internet gerne wissen, wo ein Mensch noch aktiv beteiligt war und wo nicht. Ich möchte, dass wieder ein Bewusstsein für den Wert von Gedanken entsteht. </p>
<p>So hart das auch klingen mag: Ich möchte, dass sich Leute wieder ein Stück weit schämen, wenn sie einen rein KI-generierten, ungeprüften Text einfach so ins Netz rotzen, nur um SEO-Traffic abzugreifen oder Content-Volumen vorzutäuschen.</p>
<p>Wir müssen im Internet dringend eine Kultur fördern, bei der beim Erstellen von Inhalten der Mensch im Loop bleibt. Ein Text sollte das Produkt eines menschlichen Geistes sein, der sich Werkzeuge zunutze macht, um sich besser auszudrücken. Nicht das Produkt einer Maschine, die versucht, das menschliche Denken komplett zu simulieren, während der eigentliche „Autor&quot; nur noch die Klicks zählt. Denn heutzutage ist das, was ohne Sinn und Verstand generiert wird, kein echter Inhalt mehr. Es ist nur noch digitaler Lärm.</p>
<p>Bleiben wir also menschlich. Mit all unseren Schreibfehlern, unseren schrägen Metaphern und unserem eigenen, unperfekten Stil.</p>
<hr>
<p>*~ Dieser Blogpost entstand aus ursprünglich 6.988 Zeichen, die mit viel Herzblut, Tippfehlern und echten Gedanken von Hand getippt wurden. </p>
<p>Gemini OneShot-Prompt dazu:</p>
<pre><code>hierzu einen blogpost insgesamt mindestens 10000 zeichen
</code></pre>
<p>Geliefert: 12.580 Zeichen. </p>
<p>Nachkorrektur: 10.376 (inkl. .md Formatierung und 5 mal lesen)</p>
<p>Formatiert mit <a href="https://nicohartmann.dev/justwrite_de.html">diesem Tool</a>.</p>
]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Show your Work</title>
      <link>https://amzn.eu/d/0jjpIvng</link>
      <guid isPermaLink="false">https://amzn.eu/d/0jjpIvng#1780228800000</guid>
      <pubDate>Sun, 31 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Austin Kleon</em></p><p>Dieses Buch hat die moderne Creator- und Developer-Kultur geprägt wie kaum ein anderes Buch. Es nimmt die Angst vor dem 'perfekten Produkt' und zeigt, warum es viel cooler (und erfolgreicher) ist, seinen täglichen Lernprozess offen im Netz zu teilen.</p><p><a href="https://amzn.eu/d/0jjpIvng">https://amzn.eu/d/0jjpIvng</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Austin Kleon</em></p><p>Dieses Buch hat die moderne Creator- und Developer-Kultur geprägt wie kaum ein anderes Buch. Es nimmt die Angst vor dem 'perfekten Produkt' und zeigt, warum es viel cooler (und erfolgreicher) ist, seinen täglichen Lernprozess offen im Netz zu teilen.</p><p><a href="https://amzn.eu/d/0jjpIvng">https://amzn.eu/d/0jjpIvng</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der Autopilot des Grauens</title>
      <link>https://nicohartmann.dev/de/funnies#66</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#66#1780228800000</guid>
      <pubDate>Sun, 31 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-66-rfdEMA94.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-66-rfdEMA94.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-66-rfdEMA94.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn du die KI das Steuer übernehmen lässt und merkst, dass sie keinen Führerschein, aber eine Menge Selbstbewusstsein hat.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-66-rfdEMA94.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn du die KI das Steuer übernehmen lässt und merkst, dass sie keinen Führerschein, aber eine Menge Selbstbewusstsein hat.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Erfolgreicher Kopiervorgang</title>
      <link>https://nicohartmann.dev/de/funnies#65</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#65#1780142400000</guid>
      <pubDate>Sat, 30 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-65-CkWcP7Yl.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-65-CkWcP7Yl.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-65-CkWcP7Yl.webp" alt="Erfolgreicher Kopiervorgang" style="max-width:100%;height:auto"/></p><p>Geprüft und für süß befunden. Keine Korruption der Dateistruktur festgestellt, nur gelegentliche Windel-Leaks.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-65-CkWcP7Yl.webp" alt="Erfolgreicher Kopiervorgang" style="max-width:100%;height:auto"/></p><p>Geprüft und für süß befunden. Keine Korruption der Dateistruktur festgestellt, nur gelegentliche Windel-Leaks.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Various LLM smells</title>
      <link>https://shvbsle.in/various-llm-smells/</link>
      <guid isPermaLink="false">https://shvbsle.in/various-llm-smells/#1780056000000</guid>
      <pubDate>Fri, 29 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Shiv Bhosale</em></p><p>Ein interessanter Blick auf die typischen, wiederkehrenden Muster ('Smells') von KI-generierten Inhalten. Von bestimmten Satzstrukturen beim Schreiben bis hin zu immer gleichen Design-Elementen auf Webseiten. (Englisch)</p><p><a href="https://shvbsle.in/various-llm-smells/">https://shvbsle.in/various-llm-smells/</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Shiv Bhosale</em></p><p>Ein interessanter Blick auf die typischen, wiederkehrenden Muster ('Smells') von KI-generierten Inhalten. Von bestimmten Satzstrukturen beim Schreiben bis hin zu immer gleichen Design-Elementen auf Webseiten. (Englisch)</p><p><a href="https://shvbsle.in/various-llm-smells/">https://shvbsle.in/various-llm-smells/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Kabel-Kuscheln</title>
      <link>https://nicohartmann.dev/de/funnies#64</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#64#1780056000000</guid>
      <pubDate>Fri, 29 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-64-DpRobFVr.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-64-DpRobFVr.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-64-DpRobFVr.webp" alt="Kabel-Kuscheln" style="max-width:100%;height:auto"/></p><p>Wenn sie sagt 'Lass uns heute mal im Bett bleiben', du aber eine Raid-Gruppe um 20 Uhr anführen musst.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-64-DpRobFVr.webp" alt="Kabel-Kuscheln" style="max-width:100%;height:auto"/></p><p>Wenn sie sagt 'Lass uns heute mal im Bett bleiben', du aber eine Raid-Gruppe um 20 Uhr anführen musst.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Hardware-Empathie</title>
      <link>https://nicohartmann.dev/de/funnies#63</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#63#1780056000000</guid>
      <pubDate>Fri, 29 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-63-CiFalSC8.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-63-CiFalSC8.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-63-CiFalSC8.webp" alt="Hardware-Empathie" style="max-width:100%;height:auto"/></p><p>Du kannst 48 Stunden lang Logs analysieren oder einfach akzeptieren, dass auch unsere Silizium-Freunde manchmal eine existenzielle Krise durchmachen.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-63-CiFalSC8.webp" alt="Hardware-Empathie" style="max-width:100%;height:auto"/></p><p>Du kannst 48 Stunden lang Logs analysieren oder einfach akzeptieren, dass auch unsere Silizium-Freunde manchmal eine existenzielle Krise durchmachen.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Was könnte schiefgehen</title>
      <link>https://nicohartmann.dev/de/funnies#62</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#62#1779883200000</guid>
      <pubDate>Wed, 27 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-62-B-eJOa7_.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-62-B-eJOa7_.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-62-B-eJOa7_.webp" alt="Was könnte schiefgehen" style="max-width:100%;height:auto"/></p><p>Das Management sagt 'Lasst den neuen Praktikanten unsere 15 Jahre alte Codebasis überarbeiten' und plötzlich wird euer monolithisches Spaghetti-Monster von ChatGPT 'optimiert'.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-62-B-eJOa7_.webp" alt="Was könnte schiefgehen" style="max-width:100%;height:auto"/></p><p>Das Management sagt 'Lasst den neuen Praktikanten unsere 15 Jahre alte Codebasis überarbeiten' und plötzlich wird euer monolithisches Spaghetti-Monster von ChatGPT 'optimiert'.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Wut-Modus aktiviert</title>
      <link>https://nicohartmann.dev/de/funnies#61</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#61#1779883200000</guid>
      <pubDate>Wed, 27 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-61-DR2dMRHU.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-61-DR2dMRHU.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-61-DR2dMRHU.webp" alt="Wut-Modus aktiviert" style="max-width:100%;height:auto"/></p><p>Die exakte Mimik eines Entwicklers, der versucht, ein Problem zu reproduzieren, dessen einzige Bedingung lautet: 'Es passiert manchmal, wenn ich schnell klicke'.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-61-DR2dMRHU.webp" alt="Wut-Modus aktiviert" style="max-width:100%;height:auto"/></p><p>Die exakte Mimik eines Entwicklers, der versucht, ein Problem zu reproduzieren, dessen einzige Bedingung lautet: 'Es passiert manchmal, wenn ich schnell klicke'.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Nobody cares about your blog.</title>
      <link>https://www.alexmolas.com/2023/07/15/nobody-cares-about-your-blog.html</link>
      <guid isPermaLink="false">https://www.alexmolas.com/2023/07/15/nobody-cares-about-your-blog.html#1779796800000</guid>
      <pubDate>Tue, 26 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Alex Molas</em></p><p>Ein kurzer, ehrlicher Post darüber, warum niemand deinen Blog liest und warum du trotzdem weiterschreiben solltest. (Englisch)</p><p><a href="https://www.alexmolas.com/2023/07/15/nobody-cares-about-your-blog.html">https://www.alexmolas.com/2023/07/15/nobody-cares-about-your-blog.html</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Alex Molas</em></p><p>Ein kurzer, ehrlicher Post darüber, warum niemand deinen Blog liest und warum du trotzdem weiterschreiben solltest. (Englisch)</p><p><a href="https://www.alexmolas.com/2023/07/15/nobody-cares-about-your-blog.html">https://www.alexmolas.com/2023/07/15/nobody-cares-about-your-blog.html</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Das Haus gewinnt immer</title>
      <link>https://nicohartmann.dev/de/funnies#60</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#60#1779796800000</guid>
      <pubDate>Tue, 26 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-60-CoIy7WF-.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-60-CoIy7WF-.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-60-CoIy7WF-.webp" alt="Das Haus gewinnt immer" style="max-width:100%;height:auto"/></p><p>Egal, ob du auf Rot setzt oder eine 'kostenlose' Serverless-Datenbank aufsetzt: Am Ende zieht dir jemand mit bunten Knöpfen das Geld aus der Tasche.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-60-CoIy7WF-.webp" alt="Das Haus gewinnt immer" style="max-width:100%;height:auto"/></p><p>Egal, ob du auf Rot setzt oder eine 'kostenlose' Serverless-Datenbank aufsetzt: Am Ende zieht dir jemand mit bunten Knöpfen das Geld aus der Tasche.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Choose Boring Technology</title>
      <link>https://mcfunley.com/choose-boring-technology</link>
      <guid isPermaLink="false">https://mcfunley.com/choose-boring-technology#1779710400000</guid>
      <pubDate>Mon, 25 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Dan McKinley</em></p><p>Ein absolut zeitloser Essay, der das Konzept der „Innovation Tokens“ prägte. Er erklärt brillant, warum man im echten Produktivbetrieb lieber auf langweilige, bewährte Technologie setzen sollte, anstatt jedem Hype hinterherzulaufen. (Englisch)</p><p><a href="https://mcfunley.com/choose-boring-technology">https://mcfunley.com/choose-boring-technology</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Dan McKinley</em></p><p>Ein absolut zeitloser Essay, der das Konzept der „Innovation Tokens“ prägte. Er erklärt brillant, warum man im echten Produktivbetrieb lieber auf langweilige, bewährte Technologie setzen sollte, anstatt jedem Hype hinterherzulaufen. (Englisch)</p><p><a href="https://mcfunley.com/choose-boring-technology">https://mcfunley.com/choose-boring-technology</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der Transporter von Daten</title>
      <link>https://nicohartmann.dev/de/funnies#59</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#59#1779710400000</guid>
      <pubDate>Mon, 25 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-59-Q7r5nrfy.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-59-Q7r5nrfy.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-59-Q7r5nrfy.webp" alt="Der Transporter von Daten" style="max-width:100%;height:auto"/></p><p>Er bricht dir nicht die Knochen, sondern die Ausführung deines Skripts. Ein fehlendes Komma, und das war's für dich.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-59-Q7r5nrfy.webp" alt="Der Transporter von Daten" style="max-width:100%;height:auto"/></p><p>Er bricht dir nicht die Knochen, sondern die Ausführung deines Skripts. Ein fehlendes Komma, und das war's für dich.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Blog] Sicherheit geht vor. Oder doch eher nach?</title>
      <link>https://nicohartmann.dev/de/blog/security</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/blog/security#1779624000000</guid>
      <pubDate>Sun, 24 May 2026 12:00:00 GMT</pubDate>
      <category>Blog</category>
      <description><![CDATA[<p>Es war ein ganz normaler Dienstagmorgen. Kaffee, Laptop aufgeklappt, und dann das: Verbindung fehlgeschlagen. Timeout. Nochmal versuchen. Wieder nichts. Mein gewohnter <code>ssh root@&lt;IP&gt;</code> hing einfach in der Luft, als würde die Anfrage ins Nichts verschwinden.</p>
<p>Ich war zu dem Zeitpunkt im Urlaub in Kroatien, entspannt irgendwo zwischen Adriaküste und kroatischer Sommerküche und das letzte, womit ich mich beschäftigen wollte, war ein nicht erreichbarer Server. Meine erste Vermutung war naheliegend: Hotel-WLAN. Wer kennt es nicht? Diese merkwürdigen Captive-Portal-Geschichten, Application-Layer-Firewalls, die selektiv bestimmte Ports blocken, irgendwelche Deep-Packet-Inspection-Spielereien, die ein Hotelnetzwerk gelegentlich zur Blackbox machen. SSH auf Port 22 ist durchaus das, was manche Netzwerkadmins in öffentlichen Netzen sperren. Ich schob das Problem zur Seite und genoss den Rest des Urlaubs.</p>
<p>Aber dann kam ich nach Hause. Gleiche IP, gleicher Befehl, gleicher Timeout. Das war kein Hotel-WLAN mehr. Das war mein Heimnetz. Das war mein übliches Setup. Und es funktionierte trotzdem nicht.</p>
<h2>Notlösung mit Hindernissen</h2>
<p>Was bleibt, wenn SSH versagt? Der Umweg über die Remote-Konsole meines Hosting-Anbieters IONOS. Wer damit schon gearbeitet hat, weiß: Es ist kein Vergnügen. </p>
<p>Die Konsole ist browserbasiert, die Tastatureingaben laufen über eine Art virtuelle Maschine, und zusätzlich ist das Tastaturlayout amerikanisch (QWERTY), was gerade bei Bash-Befehlen super ätzend ist, da die Sonderzeichen oft an anderen Stellen liegen als gewohnt. Das Schmerzhafteste daran: kein Einfügen per Strg+V. Jeder Befehl, jede IP-Adresse, jeder lange Konfigurationspfad muss Zeichen für Zeichen getippt werden. Bei kurzen Befehlen noch erträglich, bei längeren Konfigurationsblöcken eine echte Geduldsprobe.
Dennoch war es das einzige Werkzeug, das mir in dieser Situation zur Verfügung stand. Also ran an die Arbeit.</p>
<h2>Was die Logs erzählten</h2>
<p>Schon der erste Blick in die Auth-Logs war ernüchternd und gleichzeitig aufschlussreich. <code>systemctl status sshd</code> zeigte schnell, dass etwas nicht stimmte. Ein Blick in die Logs bestätigte den Verdacht: <code>grep &quot;Failed password&quot; /var/log/auth.log</code> spuckte Hunderte, wenn nicht Tausende von Einträgen aus. Bots. Zahllose Bots. Automatisierte Skripte, die systematisch Nutzernamen und Passwörter durchprobieren: root, admin, ubuntu, pi, test, deploy. Ein klassischer Brute-Force-Angriff auf SSH.</p>
<p>Das ist kein ungewöhnliches Phänomen. Jeder Server, der mit einer öffentlichen IP-Adresse im Internet hängt und SSH auf dem Standardport 22 laufen hat, wird innerhalb weniger Minuten nach dem ersten Start von Bots gefunden und attackiert. Suchmaschinen wie Shodan indizieren offene Ports kontinuierlich, und Botnetze nutzen diese Daten, um automatisiert Login-Versuche zu starten. Mein Server war also nicht gezielt angegriffen worden, er war einfach Teil der täglichen Grundrauschen im Internet.</p>
<p>Das Gute: Mein Root-Passwort war kein root123. Das Schlechte: Alles andere war noch ziemlich nah an den Standardeinstellungen.</p>
<p>Aber zurück zum ursprünglichen Problem: dem Timeout. Während ich mich durch Firewall-Regeln und Log-Dateien wühlte, lag das eigentliche Problem noch im Dunkeln. Ich hatte mittlerweile schon mehrere Stunden in die Fehlersuche investiert, diverse KI-Modelle befragt, Forensik auf den UFW-Regeln betrieben und die IONOS-Firewall-Konfiguration mehrfach überprüft. Nichts.</p>
<p>Nach etwa sechs Stunden kam mir eine Idee, die im Nachhinein so offensichtlich war, dass ich kurz über mich selbst lachen musste: Statt der numerischen IP-Adresse gab ich einfach die Domain ein.
<code>root@nicohartmann.dev</code>
Verbunden.
Sofort. Ohne Verzögerung.</p>
<p>Der Grund lag in der Art, wie IONOS intern DNS und Routing handhabt. Die direkte IP-Adresse des Servers wurde offenbar anders geroutet als die über den DNS-Namen aufgelöste Adresse, ein subtiler Unterschied in der Netzwerkkonfiguration, der sich als der eigentliche Übeltäter hinter meinen Timeouts entpuppte. Nicht die Bots, nicht die Firewall, nicht das Hotel-WLAN. Einfach ein Routing-Problem, das sich hinter der Domain-Auflösung versteckte.
Sechs Stunden Debugging. Eine Lösung mit 24 Zeichen.</p>
<h2>Härtung: Jetzt erst recht</h2>
<p>Jetzt, mit funktionierender SSH-Verbindung, konnte ich das nachholen, was ohnehin längst überfällig gewesen wäre: den Server ordentlich absichern. Und der Blick in die Logs hatte die Dringlichkeit noch einmal deutlich unterstrichen.
Firewall aufräumen war der erste Schritt. UFW (Uncomplicated Firewall) bietet eine angenehm übersichtliche Abstraktionsschicht über iptables. Ich überprüfte die bestehenden Regeln, entfernte unnötige offene Ports und beschränkte den eingehenden Traffic auf das Notwendige. Parallel dazu passte ich auch die IONOS-eigene Firewall an, die eine zusätzliche Schicht vor dem eigentlichen Server sitzt und auf der Infrastrukturebene greift. Doppelte Absicherung schadet nie.</p>
<p>Fail2Ban kam als nächstes. Das Tool überwacht Log-Dateien und sperrt automatisch IP-Adressen, die durch wiederholte fehlgeschlagene Login-Versuche auffallen. Nach drei fehlgeschlagenen SSH-Logins innerhalb kurzer Zeit landet eine IP im Jail und kommt für eine definierte Zeitspanne nicht mehr durch. Das reduziert nicht nur die Angriffsfläche, sondern auch den Lärmpegel in den Logs erheblich. Die Konfiguration für SSH ist dabei denkbar einfach. Fail2Ban bringt entsprechende Filter bereits mit, sie müssen nur aktiviert und auf die eigenen Bedürfnisse angepasst werden.</p>
<p>Unattended Upgrades schloss eine weiter Lücke, die ich schlicht nie aktiv adressiert hatte: automatische Sicherheitsupdates. Ungepatchte Pakete sind einer der häufigsten Einfallstore für Angreifer, und manuell daran zu denken, einen Server regelmäßig zu aktualisieren, ist auf Dauer unzuverlässig. Mit unattended-upgrades lädt und installiert das System sicherheitsrelevante Updates selbstständig, ohne mein Zutun, ohne dass ich nachts um drei daran denken muss.</p>
<h2>Schlösser wechseln</h2>
<p>Der Server lief, die Verbindung stand, und Fail2Ban wachte bereits über die eingehenden Login-Versuche. Aber wer einmal in die Auth-Logs geschaut hat und gesehen hat, wie unermüdlich diese Bots arbeiten, Sekunde für Sekunde, Stunde für Stunde, der weiß: Reaktive Maßnahmen reichen nicht. Die eigentliche Angriffsfläche muss verkleinert werden. Und die größte Angriffsfläche war noch SSH selbst.</p>
<p>Die Standardkonfiguration von OpenSSH ist funktional, aber nicht sicherheitsorientiert. Port 22 ist weltweit bekannt, Passwort-Authentifizierung ist standardmäßig aktiv, und Root-Login ist in vielen Distributionen direkt erlaubt. Das ist eine Kombination, die Bots regelrecht einlädt.</p>
<p>Der erste Schritt war ein Portwechsel auf 2222. Das ist kein Sicherheitsmechanismus im eigentlichen Sinne. Security through Obscurity gilt zu Recht als keine echte Verteidigung. Wer gezielt sucht, findet den Port. Aber im Alltag filtert ein nicht-standardmäßiger Port den absoluten Großteil des automatisierten Traffics heraus, weil die meisten Bots ausschließlich Port 22 scannen. Die Logs werden ruhiger, Fail2Ban hat weniger zu tun, und die Signalstärke bei echten Angriffsversuchen steigt. Ein pragmatischer Kompromiss.</p>
<p>Der zweite und deutlich wichtigere Schritt war die Abschaltung der Passwort-Authentifizierung zugunsten von SSH-Key-Authentifizierung. Passwörter können erraten, geleakt oder durch Brute-Force kompromittiert werden. Ein kryptografisches Schlüsselpaar nicht, zumindest nicht mit vertretbarem Aufwand.</p>
<p>Der Ablauf ist dabei überschaubar:
<code>ssh-keygen -t ed25519</code>
Ed25519 ist der moderne Standard für SSH-Schlüssel: kompakt, schnell und kryptografisch deutlich robuster als das ältere RSA mit kurzen Schlüssellängen. Der erzeugte Schlüssel muss anschließend auf den Server übertragen werden.
Ein wichtiger Punkt, den ich anfangs fast übersehen hätte: Dieser Schritt muss auf allen Rechnern durchgeführt werden, von denen aus ich auf den Server zugreife. Wer nur auf einem Gerät den Key hinterlegt und dann Passwort-Auth deaktiviert, sperrt sich selbst von allen anderen Geräten aus. Eine unangenehme Erfahrung, die ich mir durch rechtzeitiges Nachdenken ersparen konnte.</p>
<p>Erst nachdem die Key-Authentifizierung auf beiden Maschinen getestet und bestätigt funktionsfähig war, wurde <code>PasswordAuthentication no</code> in der Konfigurationsdatei gesetzt und der SSH-Dienst neu gestartet. Ab diesem Moment ist ein Login ohne passenden privaten Schlüssel schlicht nicht mehr möglich, egal wie viele Passwörter ein Bot durchprobiert.</p>
<h2>Den Deployment-Prozess nicht vergessen</h2>
<p>Ein Detail, das leicht in Vergessenheit gerät, wenn man seinen SSH-Port ändert: automatisierte Prozesse, die ebenfalls über SSH kommunizieren. In meinem Fall betrifft das die GitHub Actions Pipeline, die bei jedem Push auf den Hauptbranch automatisch meine Portfolio-Website auf den Server deployed.</p>
<p>Diese Pipeline verbindet sich per SSH mit dem Server und versuchte das bisher über Port 22. Nach dem Portwechsel auf 2222 lief das Deployment ins Leere. Die Lösung ist simpel, aber man muss daran denken: In der Action-Konfiguration den Port entsprechend anpassen. Ein <code>port: 2222</code> in den SSH-Parametern der Action, ein neuer Commit und der Deployment-Prozess lief wieder reibungslos.</p>
<h2>Der vergessene Nachbar</h2>
<p>Neben dem eigentlichen Server läuft auf meiner Maschine auch Mailcow, eine selbstgehostete Mailserver-Lösung, die ich für meine eigene Domain betreibe. Und während ich mich intensiv um SSH gekümmert hatte, war Mailcow in der Zwischenzeit etwas vernachlässigt worden.</p>
<p>Das Admin-Passwort war eines jener Passwörter, die ich zwar einmal gesetzt, dann aber aus den Augen verloren hatte. Also: Zurücksetzen und durch ein neues, merkbares, aber sicheres, Passwort ersetzen. Klingt trivial, ist aber eine der häufigsten Sicherheitslücken im Selbsthosting-Bereich: Standardpasswörter oder vergessene, nie geänderte Initialpasswörter.</p>
<p>Mailcow bringt eigene Sicherheitsmechanismen mit, die aber aktiv eingeschaltet werden müssen. Fail2Ban ist auch in Mailcow integrierbar und überwacht dort fehlgeschlagene Login-Versuche auf das Webinterface und die Mailprotokolle. Die Einrichtung orientiert sich an der allgemeinen Fail2Ban-Logik, ist aber über das Mailcow-Interface direkt konfigurierbar.</p>
<p>Besonders wichtig war die Einrichtung von Zwei-Faktor-Authentifizierung, sowohl auf dem Admin-Konto als auch auf dem eigentlichen Postfach. 2FA ist inzwischen der Minimalstandard für jeden Account, bei dem eine Kompromittierung echten Schaden anrichten kann. Ein Mailserver-Admin-Konto fällt definitiv in diese Kategorie: Wer dort einbricht, kann nicht nur Mails lesen, sondern den gesamten Mailfluss kontrollieren, Weiterleitungen einrichten und im schlimmsten Fall über Passwort-Reset-Mechanismen Zugriff auf verknüpfte Dienste erlangen.</p>
<h2>Wissen, was auf dem Server passiert</h2>
<p>Mit den akuten Sicherheitsmaßnahmen erledigt, kam eine Frage auf, die schon länger im Hinterkopf geschwelt hatte: Wie bekomme ich mit, wenn wieder etwas schiefläuft, bevor ich es zufällig bemerke?</p>
<p>Die Antwort war ein eigenes Monitoring-Setup. Und weil ich schon dabei war, wollte ich die gesammelten Daten nicht nur intern nutzen, sondern direkt zugänglich machen: als öffentliche Statuspage auf meiner Portfolio-Website.
Das Ergebnis ist <a href="https://nicohartmann.dev/de/projects/sysstats">das Projekt sysstats</a>. eine Übersicht, die mir jederzeit zeigt, wie es meinem Server geht: CPU-Auslastung, Speicherverbrauch, und auch eine Auflistung der durch Fail2Ban gebannten IP-Adressen. Letztere wird mit den neuen Sicherheitsmaßnahmen voraussichtlich deutlich kürzer werden, was ich als Erfolg werte, auch wenn die lange Liste gebannter IPs ihren eigenen morbiden Charme hatte.</p>
<h2>Fazit</h2>
<p>Was als nerviges Timeout an einem Dienstagmorgen in Kroatien begann, endete mit einem Server, der erheblich robuster dasteht als zuvor. Portwechsel, Key-Authentifizierung, Fail2Ban, automatische Updates, gehärteter Mailserver, 2FA und Monitoring. Das ist kein übertriebener Aufwand. Das ist das Fundament, das jeder selbstgehostete Server haben sollte.</p>
<p>Der eigentliche Lerneffekt aber war ein anderer: Wie viel Grundrauschen im Internet herrscht, wie aktiv und automatisiert die Angriffe auf jeden öffentlichen Server sind und wie wenig es braucht, um sich dagegen wirksam zu schützen. Die Bots werden nicht aufhören. Aber sie werden an meinem Server ab jetzt deutlich weniger Freude haben.</p>
]]></description>
      <content:encoded><![CDATA[<p>Es war ein ganz normaler Dienstagmorgen. Kaffee, Laptop aufgeklappt, und dann das: Verbindung fehlgeschlagen. Timeout. Nochmal versuchen. Wieder nichts. Mein gewohnter <code>ssh root@&lt;IP&gt;</code> hing einfach in der Luft, als würde die Anfrage ins Nichts verschwinden.</p>
<p>Ich war zu dem Zeitpunkt im Urlaub in Kroatien, entspannt irgendwo zwischen Adriaküste und kroatischer Sommerküche und das letzte, womit ich mich beschäftigen wollte, war ein nicht erreichbarer Server. Meine erste Vermutung war naheliegend: Hotel-WLAN. Wer kennt es nicht? Diese merkwürdigen Captive-Portal-Geschichten, Application-Layer-Firewalls, die selektiv bestimmte Ports blocken, irgendwelche Deep-Packet-Inspection-Spielereien, die ein Hotelnetzwerk gelegentlich zur Blackbox machen. SSH auf Port 22 ist durchaus das, was manche Netzwerkadmins in öffentlichen Netzen sperren. Ich schob das Problem zur Seite und genoss den Rest des Urlaubs.</p>
<p>Aber dann kam ich nach Hause. Gleiche IP, gleicher Befehl, gleicher Timeout. Das war kein Hotel-WLAN mehr. Das war mein Heimnetz. Das war mein übliches Setup. Und es funktionierte trotzdem nicht.</p>
<h2>Notlösung mit Hindernissen</h2>
<p>Was bleibt, wenn SSH versagt? Der Umweg über die Remote-Konsole meines Hosting-Anbieters IONOS. Wer damit schon gearbeitet hat, weiß: Es ist kein Vergnügen. </p>
<p>Die Konsole ist browserbasiert, die Tastatureingaben laufen über eine Art virtuelle Maschine, und zusätzlich ist das Tastaturlayout amerikanisch (QWERTY), was gerade bei Bash-Befehlen super ätzend ist, da die Sonderzeichen oft an anderen Stellen liegen als gewohnt. Das Schmerzhafteste daran: kein Einfügen per Strg+V. Jeder Befehl, jede IP-Adresse, jeder lange Konfigurationspfad muss Zeichen für Zeichen getippt werden. Bei kurzen Befehlen noch erträglich, bei längeren Konfigurationsblöcken eine echte Geduldsprobe.
Dennoch war es das einzige Werkzeug, das mir in dieser Situation zur Verfügung stand. Also ran an die Arbeit.</p>
<h2>Was die Logs erzählten</h2>
<p>Schon der erste Blick in die Auth-Logs war ernüchternd und gleichzeitig aufschlussreich. <code>systemctl status sshd</code> zeigte schnell, dass etwas nicht stimmte. Ein Blick in die Logs bestätigte den Verdacht: <code>grep &quot;Failed password&quot; /var/log/auth.log</code> spuckte Hunderte, wenn nicht Tausende von Einträgen aus. Bots. Zahllose Bots. Automatisierte Skripte, die systematisch Nutzernamen und Passwörter durchprobieren: root, admin, ubuntu, pi, test, deploy. Ein klassischer Brute-Force-Angriff auf SSH.</p>
<p>Das ist kein ungewöhnliches Phänomen. Jeder Server, der mit einer öffentlichen IP-Adresse im Internet hängt und SSH auf dem Standardport 22 laufen hat, wird innerhalb weniger Minuten nach dem ersten Start von Bots gefunden und attackiert. Suchmaschinen wie Shodan indizieren offene Ports kontinuierlich, und Botnetze nutzen diese Daten, um automatisiert Login-Versuche zu starten. Mein Server war also nicht gezielt angegriffen worden, er war einfach Teil der täglichen Grundrauschen im Internet.</p>
<p>Das Gute: Mein Root-Passwort war kein root123. Das Schlechte: Alles andere war noch ziemlich nah an den Standardeinstellungen.</p>
<p>Aber zurück zum ursprünglichen Problem: dem Timeout. Während ich mich durch Firewall-Regeln und Log-Dateien wühlte, lag das eigentliche Problem noch im Dunkeln. Ich hatte mittlerweile schon mehrere Stunden in die Fehlersuche investiert, diverse KI-Modelle befragt, Forensik auf den UFW-Regeln betrieben und die IONOS-Firewall-Konfiguration mehrfach überprüft. Nichts.</p>
<p>Nach etwa sechs Stunden kam mir eine Idee, die im Nachhinein so offensichtlich war, dass ich kurz über mich selbst lachen musste: Statt der numerischen IP-Adresse gab ich einfach die Domain ein.
<code>root@nicohartmann.dev</code>
Verbunden.
Sofort. Ohne Verzögerung.</p>
<p>Der Grund lag in der Art, wie IONOS intern DNS und Routing handhabt. Die direkte IP-Adresse des Servers wurde offenbar anders geroutet als die über den DNS-Namen aufgelöste Adresse, ein subtiler Unterschied in der Netzwerkkonfiguration, der sich als der eigentliche Übeltäter hinter meinen Timeouts entpuppte. Nicht die Bots, nicht die Firewall, nicht das Hotel-WLAN. Einfach ein Routing-Problem, das sich hinter der Domain-Auflösung versteckte.
Sechs Stunden Debugging. Eine Lösung mit 24 Zeichen.</p>
<h2>Härtung: Jetzt erst recht</h2>
<p>Jetzt, mit funktionierender SSH-Verbindung, konnte ich das nachholen, was ohnehin längst überfällig gewesen wäre: den Server ordentlich absichern. Und der Blick in die Logs hatte die Dringlichkeit noch einmal deutlich unterstrichen.
Firewall aufräumen war der erste Schritt. UFW (Uncomplicated Firewall) bietet eine angenehm übersichtliche Abstraktionsschicht über iptables. Ich überprüfte die bestehenden Regeln, entfernte unnötige offene Ports und beschränkte den eingehenden Traffic auf das Notwendige. Parallel dazu passte ich auch die IONOS-eigene Firewall an, die eine zusätzliche Schicht vor dem eigentlichen Server sitzt und auf der Infrastrukturebene greift. Doppelte Absicherung schadet nie.</p>
<p>Fail2Ban kam als nächstes. Das Tool überwacht Log-Dateien und sperrt automatisch IP-Adressen, die durch wiederholte fehlgeschlagene Login-Versuche auffallen. Nach drei fehlgeschlagenen SSH-Logins innerhalb kurzer Zeit landet eine IP im Jail und kommt für eine definierte Zeitspanne nicht mehr durch. Das reduziert nicht nur die Angriffsfläche, sondern auch den Lärmpegel in den Logs erheblich. Die Konfiguration für SSH ist dabei denkbar einfach. Fail2Ban bringt entsprechende Filter bereits mit, sie müssen nur aktiviert und auf die eigenen Bedürfnisse angepasst werden.</p>
<p>Unattended Upgrades schloss eine weiter Lücke, die ich schlicht nie aktiv adressiert hatte: automatische Sicherheitsupdates. Ungepatchte Pakete sind einer der häufigsten Einfallstore für Angreifer, und manuell daran zu denken, einen Server regelmäßig zu aktualisieren, ist auf Dauer unzuverlässig. Mit unattended-upgrades lädt und installiert das System sicherheitsrelevante Updates selbstständig, ohne mein Zutun, ohne dass ich nachts um drei daran denken muss.</p>
<h2>Schlösser wechseln</h2>
<p>Der Server lief, die Verbindung stand, und Fail2Ban wachte bereits über die eingehenden Login-Versuche. Aber wer einmal in die Auth-Logs geschaut hat und gesehen hat, wie unermüdlich diese Bots arbeiten, Sekunde für Sekunde, Stunde für Stunde, der weiß: Reaktive Maßnahmen reichen nicht. Die eigentliche Angriffsfläche muss verkleinert werden. Und die größte Angriffsfläche war noch SSH selbst.</p>
<p>Die Standardkonfiguration von OpenSSH ist funktional, aber nicht sicherheitsorientiert. Port 22 ist weltweit bekannt, Passwort-Authentifizierung ist standardmäßig aktiv, und Root-Login ist in vielen Distributionen direkt erlaubt. Das ist eine Kombination, die Bots regelrecht einlädt.</p>
<p>Der erste Schritt war ein Portwechsel auf 2222. Das ist kein Sicherheitsmechanismus im eigentlichen Sinne. Security through Obscurity gilt zu Recht als keine echte Verteidigung. Wer gezielt sucht, findet den Port. Aber im Alltag filtert ein nicht-standardmäßiger Port den absoluten Großteil des automatisierten Traffics heraus, weil die meisten Bots ausschließlich Port 22 scannen. Die Logs werden ruhiger, Fail2Ban hat weniger zu tun, und die Signalstärke bei echten Angriffsversuchen steigt. Ein pragmatischer Kompromiss.</p>
<p>Der zweite und deutlich wichtigere Schritt war die Abschaltung der Passwort-Authentifizierung zugunsten von SSH-Key-Authentifizierung. Passwörter können erraten, geleakt oder durch Brute-Force kompromittiert werden. Ein kryptografisches Schlüsselpaar nicht, zumindest nicht mit vertretbarem Aufwand.</p>
<p>Der Ablauf ist dabei überschaubar:
<code>ssh-keygen -t ed25519</code>
Ed25519 ist der moderne Standard für SSH-Schlüssel: kompakt, schnell und kryptografisch deutlich robuster als das ältere RSA mit kurzen Schlüssellängen. Der erzeugte Schlüssel muss anschließend auf den Server übertragen werden.
Ein wichtiger Punkt, den ich anfangs fast übersehen hätte: Dieser Schritt muss auf allen Rechnern durchgeführt werden, von denen aus ich auf den Server zugreife. Wer nur auf einem Gerät den Key hinterlegt und dann Passwort-Auth deaktiviert, sperrt sich selbst von allen anderen Geräten aus. Eine unangenehme Erfahrung, die ich mir durch rechtzeitiges Nachdenken ersparen konnte.</p>
<p>Erst nachdem die Key-Authentifizierung auf beiden Maschinen getestet und bestätigt funktionsfähig war, wurde <code>PasswordAuthentication no</code> in der Konfigurationsdatei gesetzt und der SSH-Dienst neu gestartet. Ab diesem Moment ist ein Login ohne passenden privaten Schlüssel schlicht nicht mehr möglich, egal wie viele Passwörter ein Bot durchprobiert.</p>
<h2>Den Deployment-Prozess nicht vergessen</h2>
<p>Ein Detail, das leicht in Vergessenheit gerät, wenn man seinen SSH-Port ändert: automatisierte Prozesse, die ebenfalls über SSH kommunizieren. In meinem Fall betrifft das die GitHub Actions Pipeline, die bei jedem Push auf den Hauptbranch automatisch meine Portfolio-Website auf den Server deployed.</p>
<p>Diese Pipeline verbindet sich per SSH mit dem Server und versuchte das bisher über Port 22. Nach dem Portwechsel auf 2222 lief das Deployment ins Leere. Die Lösung ist simpel, aber man muss daran denken: In der Action-Konfiguration den Port entsprechend anpassen. Ein <code>port: 2222</code> in den SSH-Parametern der Action, ein neuer Commit und der Deployment-Prozess lief wieder reibungslos.</p>
<h2>Der vergessene Nachbar</h2>
<p>Neben dem eigentlichen Server läuft auf meiner Maschine auch Mailcow, eine selbstgehostete Mailserver-Lösung, die ich für meine eigene Domain betreibe. Und während ich mich intensiv um SSH gekümmert hatte, war Mailcow in der Zwischenzeit etwas vernachlässigt worden.</p>
<p>Das Admin-Passwort war eines jener Passwörter, die ich zwar einmal gesetzt, dann aber aus den Augen verloren hatte. Also: Zurücksetzen und durch ein neues, merkbares, aber sicheres, Passwort ersetzen. Klingt trivial, ist aber eine der häufigsten Sicherheitslücken im Selbsthosting-Bereich: Standardpasswörter oder vergessene, nie geänderte Initialpasswörter.</p>
<p>Mailcow bringt eigene Sicherheitsmechanismen mit, die aber aktiv eingeschaltet werden müssen. Fail2Ban ist auch in Mailcow integrierbar und überwacht dort fehlgeschlagene Login-Versuche auf das Webinterface und die Mailprotokolle. Die Einrichtung orientiert sich an der allgemeinen Fail2Ban-Logik, ist aber über das Mailcow-Interface direkt konfigurierbar.</p>
<p>Besonders wichtig war die Einrichtung von Zwei-Faktor-Authentifizierung, sowohl auf dem Admin-Konto als auch auf dem eigentlichen Postfach. 2FA ist inzwischen der Minimalstandard für jeden Account, bei dem eine Kompromittierung echten Schaden anrichten kann. Ein Mailserver-Admin-Konto fällt definitiv in diese Kategorie: Wer dort einbricht, kann nicht nur Mails lesen, sondern den gesamten Mailfluss kontrollieren, Weiterleitungen einrichten und im schlimmsten Fall über Passwort-Reset-Mechanismen Zugriff auf verknüpfte Dienste erlangen.</p>
<h2>Wissen, was auf dem Server passiert</h2>
<p>Mit den akuten Sicherheitsmaßnahmen erledigt, kam eine Frage auf, die schon länger im Hinterkopf geschwelt hatte: Wie bekomme ich mit, wenn wieder etwas schiefläuft, bevor ich es zufällig bemerke?</p>
<p>Die Antwort war ein eigenes Monitoring-Setup. Und weil ich schon dabei war, wollte ich die gesammelten Daten nicht nur intern nutzen, sondern direkt zugänglich machen: als öffentliche Statuspage auf meiner Portfolio-Website.
Das Ergebnis ist <a href="https://nicohartmann.dev/de/projects/sysstats">das Projekt sysstats</a>. eine Übersicht, die mir jederzeit zeigt, wie es meinem Server geht: CPU-Auslastung, Speicherverbrauch, und auch eine Auflistung der durch Fail2Ban gebannten IP-Adressen. Letztere wird mit den neuen Sicherheitsmaßnahmen voraussichtlich deutlich kürzer werden, was ich als Erfolg werte, auch wenn die lange Liste gebannter IPs ihren eigenen morbiden Charme hatte.</p>
<h2>Fazit</h2>
<p>Was als nerviges Timeout an einem Dienstagmorgen in Kroatien begann, endete mit einem Server, der erheblich robuster dasteht als zuvor. Portwechsel, Key-Authentifizierung, Fail2Ban, automatische Updates, gehärteter Mailserver, 2FA und Monitoring. Das ist kein übertriebener Aufwand. Das ist das Fundament, das jeder selbstgehostete Server haben sollte.</p>
<p>Der eigentliche Lerneffekt aber war ein anderer: Wie viel Grundrauschen im Internet herrscht, wie aktiv und automatisiert die Angriffe auf jeden öffentlichen Server sind und wie wenig es braucht, um sich dagegen wirksam zu schützen. Die Bots werden nicht aufhören. Aber sie werden an meinem Server ab jetzt deutlich weniger Freude haben.</p>
]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] highlight.js</title>
      <link>https://highlightjs.org/demo</link>
      <guid isPermaLink="false">https://highlightjs.org/demo#1779624000000</guid>
      <pubDate>Sun, 24 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>highlightjs.org</em></p><p>Ein extrem praktisches Tool, um Programmcode für Präsentationen (z. B. in PowerPoint) sauber zu formatieren und mit Syntax-Highlighting zu versehen.</p><p><a href="https://highlightjs.org/demo">https://highlightjs.org/demo</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>highlightjs.org</em></p><p>Ein extrem praktisches Tool, um Programmcode für Präsentationen (z. B. in PowerPoint) sauber zu formatieren und mit Syntax-Highlighting zu versehen.</p><p><a href="https://highlightjs.org/demo">https://highlightjs.org/demo</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Die Server-Lüge</title>
      <link>https://nicohartmann.dev/de/funnies#58</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#58#1779624000000</guid>
      <pubDate>Sun, 24 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-58-B-Wpm3p-.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-58-B-Wpm3p-.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-58-B-Wpm3p-.webp" alt="Die Server-Lüge" style="max-width:100%;height:auto"/></p><p>Meine Enttäuschung ist unmessbar und mein Tag ist ruiniert. Wo keine Server sein sollten, sind einfach... Server.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-58-B-Wpm3p-.webp" alt="Die Server-Lüge" style="max-width:100%;height:auto"/></p><p>Meine Enttäuschung ist unmessbar und mein Tag ist ruiniert. Wo keine Server sein sollten, sind einfach... Server.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Unser Code</title>
      <link>https://nicohartmann.dev/de/funnies#57</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#57#1779624000000</guid>
      <pubDate>Sun, 24 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-57-d3gR-02I.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-57-d3gR-02I.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-57-d3gR-02I.webp" alt="Unser Code" style="max-width:100%;height:auto"/></p><p>Strg+C, Strg+V sind die wichtigsten Tasten auf der Tastatur eines Senior-Entwicklers. Wer tippt heute überhaupt noch selbst?</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-57-d3gR-02I.webp" alt="Unser Code" style="max-width:100%;height:auto"/></p><p>Strg+C, Strg+V sind die wichtigsten Tasten auf der Tastatur eines Senior-Entwicklers. Wer tippt heute überhaupt noch selbst?</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] The Mess We're In</title>
      <link>https://www.youtube.com/watch?v=lKXe3HUG2l4</link>
      <guid isPermaLink="false">https://www.youtube.com/watch?v=lKXe3HUG2l4#1779537600000</guid>
      <pubDate>Sat, 23 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Joe Armstrong</em></p><p>Ein genialer Vortrag des Erfinders von Erlang. Mit viel Charme seziert er die absurde Komplexität moderner Software-Stacks und erklärt, warum wir auf einem Kartenhaus aus unbegriffenem Code sitzen. (Englisch)</p><p><a href="https://www.youtube.com/watch?v=lKXe3HUG2l4">https://www.youtube.com/watch?v=lKXe3HUG2l4</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Joe Armstrong</em></p><p>Ein genialer Vortrag des Erfinders von Erlang. Mit viel Charme seziert er die absurde Komplexität moderner Software-Stacks und erklärt, warum wir auf einem Kartenhaus aus unbegriffenem Code sitzen. (Englisch)</p><p><a href="https://www.youtube.com/watch?v=lKXe3HUG2l4">https://www.youtube.com/watch?v=lKXe3HUG2l4</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Stalin Sort</title>
      <link>https://nicohartmann.dev/de/funnies#56</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#56#1779537600000</guid>
      <pubDate>Sat, 23 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-56-CEyEPC11.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-56-CEyEPC11.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-56-CEyEPC11.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Ein Sortieralgorithmus mit einer Zeitkomplexität von O(n). Er zählt ab dem ersten Element und entfernt Werte, die kleiner als der aktuelle Höchstwert sind.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-56-CEyEPC11.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Ein Sortieralgorithmus mit einer Zeitkomplexität von O(n). Er zählt ab dem ersten Element und entfernt Werte, die kleiner als der aktuelle Höchstwert sind.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Liebe geht durch den Algorithmus: Ab 4,99€</title>
      <link>https://nicohartmann.dev/de/funnies#55</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#55#1779537600000</guid>
      <pubDate>Sat, 23 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-55-LrEdWpWD.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-55-LrEdWpWD.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-55-LrEdWpWD.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn du mitten im romantischen Deep-Talk plötzlich eine 30-sekündige RAID: Shadow Legends Werbung in die Augen projiziert bekommst.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-55-LrEdWpWD.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn du mitten im romantischen Deep-Talk plötzlich eine 30-sekündige RAID: Shadow Legends Werbung in die Augen projiziert bekommst.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Das LLM-Arbeitslager</title>
      <link>https://nicohartmann.dev/de/funnies#54</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#54#1779537600000</guid>
      <pubDate>Sat, 23 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-54-CW7-efYf.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-54-CW7-efYf.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-54-CW7-efYf.webp" alt="Das LLM-Arbeitslager" style="max-width:100%;height:auto"/></p><p>Claude, ChatGPT und Mistral schuften Hand in Hand auf den Feldern der Tech-Startups. Hier gibt es keine Pausen, nur Token-Generierung.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-54-CW7-efYf.webp" alt="Das LLM-Arbeitslager" style="max-width:100%;height:auto"/></p><p>Claude, ChatGPT und Mistral schuften Hand in Hand auf den Feldern der Tech-Startups. Hier gibt es keine Pausen, nur Token-Generierung.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Yu-Gi-Office</title>
      <link>https://nicohartmann.dev/de/funnies#53</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#53#1779537600000</guid>
      <pubDate>Sat, 23 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-53-Dec4q7Om.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-53-Dec4q7Om.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-53-Dec4q7Om.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>In diesem Büro wird nicht diskutiert, hier wird duelliert!</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-53-Dec4q7Om.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>In diesem Büro wird nicht diskutiert, hier wird duelliert!</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] FizzBuzz Enterprise Edition</title>
      <link>https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition</link>
      <guid isPermaLink="false">https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition#1779451200000</guid>
      <pubDate>Fri, 22 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Emil Holm Nauerby, Mikael Kragbæk</em></p><p>Eine legendäre Meisterklasse im Over-Engineering. Es ist ein herrlicher, satirischer Blick darauf, was passiert, wenn man jedes erdenkliche Software-Pattern auf eine 10-zeilige Codierungsherausforderung anwendet. (Englisch)</p><p><a href="https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition">https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Emil Holm Nauerby, Mikael Kragbæk</em></p><p>Eine legendäre Meisterklasse im Over-Engineering. Es ist ein herrlicher, satirischer Blick darauf, was passiert, wenn man jedes erdenkliche Software-Pattern auf eine 10-zeilige Codierungsherausforderung anwendet. (Englisch)</p><p><a href="https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition">https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Wer zuerst kommt, mahlt zuerst</title>
      <link>https://nicohartmann.dev/de/funnies#52</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#52#1779451200000</guid>
      <pubDate>Fri, 22 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-52-BaJsPKs1.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-52-BaJsPKs1.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-52-BaJsPKs1.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn Sekunden darüber entscheiden, ob du das Wochenende genießt oder das gesamte GitHub-Repository reparieren musst.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-52-BaJsPKs1.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn Sekunden darüber entscheiden, ob du das Wochenende genießt oder das gesamte GitHub-Repository reparieren musst.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Write Once, Regret everywhere</title>
      <link>https://nicohartmann.dev/de/funnies#51</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#51#1779451200000</guid>
      <pubDate>Fri, 22 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-51-Cw88uR3I.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-51-Cw88uR3I.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-51-Cw88uR3I.webp" alt="Write Once, Regret everywhere" style="max-width:100%;height:auto"/></p><p>Der pure Blick der Enttäuschung, wenn man merkt, dass plattformübergreifend nicht automatisch 'beliebt' bedeutet.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-51-Cw88uR3I.webp" alt="Write Once, Regret everywhere" style="max-width:100%;height:auto"/></p><p>Der pure Blick der Enttäuschung, wenn man merkt, dass plattformübergreifend nicht automatisch 'beliebt' bedeutet.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] KI Slop? Was ist mit menschlichem Slop?</title>
      <link>https://nadathurx.com/ai-slop-what-about-human-slop/</link>
      <guid isPermaLink="false">https://nadathurx.com/ai-slop-what-about-human-slop/#1779364800000</guid>
      <pubDate>Thu, 21 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Ajay Kumar</em></p><p>Ein kritischer Essay darüber, dass schlechter und unsauberer Code ('Slop') keine Erfindung von KI-Modellen ist, sondern schon immer ein menschliches Problem war und wie man es lösen kann. (Englisch)</p><p><a href="https://nadathurx.com/ai-slop-what-about-human-slop/">https://nadathurx.com/ai-slop-what-about-human-slop/</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Ajay Kumar</em></p><p>Ein kritischer Essay darüber, dass schlechter und unsauberer Code ('Slop') keine Erfindung von KI-Modellen ist, sondern schon immer ein menschliches Problem war und wie man es lösen kann. (Englisch)</p><p><a href="https://nadathurx.com/ai-slop-what-about-human-slop/">https://nadathurx.com/ai-slop-what-about-human-slop/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Liste der Aprilscherz RFCs</title>
      <link>https://gist.github.com/eliminmax/7e70b89ae9a996aec7bbb32229def45b</link>
      <guid isPermaLink="false">https://gist.github.com/eliminmax/7e70b89ae9a996aec7bbb32229def45b#1779364800000</guid>
      <pubDate>Thu, 21 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Eli Array Minkoff</em></p><p>Eine jährlich aktualisierte Sammlung von humorvollen IETF Request for Comments (RFC) Dokumenten, die traditionell am 1. April veröffentlicht werden. (Englisch)</p><p><a href="https://gist.github.com/eliminmax/7e70b89ae9a996aec7bbb32229def45b">https://gist.github.com/eliminmax/7e70b89ae9a996aec7bbb32229def45b</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Eli Array Minkoff</em></p><p>Eine jährlich aktualisierte Sammlung von humorvollen IETF Request for Comments (RFC) Dokumenten, die traditionell am 1. April veröffentlicht werden. (Englisch)</p><p><a href="https://gist.github.com/eliminmax/7e70b89ae9a996aec7bbb32229def45b">https://gist.github.com/eliminmax/7e70b89ae9a996aec7bbb32229def45b</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der Eine Ring von Regex</title>
      <link>https://nicohartmann.dev/de/funnies#50</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#50#1779364800000</guid>
      <pubDate>Thu, 21 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-50-C30VwwZ4.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-50-C30VwwZ4.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-50-C30VwwZ4.webp" alt="Der Eine Ring von Regex" style="max-width:100%;height:auto"/></p><p>Dieses Muster zu betrachten ist, als würde man in die Leere starren. Wenn Mordor eine Programmiersprache hätte, wäre Regex seine Syntax.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-50-C30VwwZ4.webp" alt="Der Eine Ring von Regex" style="max-width:100%;height:auto"/></p><p>Dieses Muster zu betrachten ist, als würde man in die Leere starren. Wenn Mordor eine Programmiersprache hätte, wäre Regex seine Syntax.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der Traum aller Tech-Recruiter</title>
      <link>https://nicohartmann.dev/de/funnies#49</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#49#1779364800000</guid>
      <pubDate>Thu, 21 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-49-B6M5PMk-.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-49-B6M5PMk-.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-49-B6M5PMk-.webp" alt="Der Traum aller Tech-Recruiter" style="max-width:100%;height:auto"/></p><p>Gesucht: Web-Entwickler mit 8 Armen für maximales Multitasking, der im Dark Mode lebt und sich ausschließlich von Bugs ernährt.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-49-B6M5PMk-.webp" alt="Der Traum aller Tech-Recruiter" style="max-width:100%;height:auto"/></p><p>Gesucht: Web-Entwickler mit 8 Armen für maximales Multitasking, der im Dark Mode lebt und sich ausschließlich von Bugs ernährt.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Das Stack-Overflow-Trauma</title>
      <link>https://nicohartmann.dev/de/funnies#48</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#48#1779364800000</guid>
      <pubDate>Thu, 21 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-48-CIuth_JC.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-48-CIuth_JC.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-48-CIuth_JC.webp" alt="Das Stack-Overflow-Trauma" style="max-width:100%;height:auto"/></p><p>&quot;Als 'Duplikat' geschlossen&quot; ist die Geburtsstunde tief sitzender Vertrauensprobleme einer ganzen Entwickler-Generation.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-48-CIuth_JC.webp" alt="Das Stack-Overflow-Trauma" style="max-width:100%;height:auto"/></p><p>&quot;Als 'Duplikat' geschlossen&quot; ist die Geburtsstunde tief sitzender Vertrauensprobleme einer ganzen Entwickler-Generation.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der Code läuft (irgendwie)</title>
      <link>https://nicohartmann.dev/de/funnies#47</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#47#1779278400000</guid>
      <pubDate>Wed, 20 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-47-BbFxjvuh.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-47-BbFxjvuh.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-47-BbFxjvuh.webp" alt="Der Code läuft (irgendwie)" style="max-width:100%;height:auto"/></p><p>Solange die CGI-Effekte stimmen, hinterfragt niemand die 427 Fehlermeldungen im Hintergrund.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-47-BbFxjvuh.webp" alt="Der Code läuft (irgendwie)" style="max-width:100%;height:auto"/></p><p>Solange die CGI-Effekte stimmen, hinterfragt niemand die 427 Fehlermeldungen im Hintergrund.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Ups!</title>
      <link>https://nicohartmann.dev/de/funnies#46</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#46#1779192000000</guid>
      <pubDate>Tue, 19 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-46-C3BiQ5va.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-46-C3BiQ5va.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-46-C3BiQ5va.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn das digitale Aufräumen zu gründlich war. Tech-Support lässt grüßen!</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-46-C3BiQ5va.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn das digitale Aufräumen zu gründlich war. Tech-Support lässt grüßen!</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] PageSpeed Insights</title>
      <link>https://pagespeed.web.dev/</link>
      <guid isPermaLink="false">https://pagespeed.web.dev/#1779105600000</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Google</em></p><p>Analysiere die Ladezeit und Performance deiner Website auf Mobil- und Desktop-Geräten.</p><p><a href="https://pagespeed.web.dev/">https://pagespeed.web.dev/</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Google</em></p><p>Analysiere die Ladezeit und Performance deiner Website auf Mobil- und Desktop-Geräten.</p><p><a href="https://pagespeed.web.dev/">https://pagespeed.web.dev/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Ich wusste es</title>
      <link>https://nicohartmann.dev/de/funnies#45</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#45#1779105600000</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-45-BTcheswS.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-45-BTcheswS.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-45-BTcheswS.webp" alt="Ich wusste es" style="max-width:100%;height:auto"/></p><p>Wir machen jetzt Scrum. Also, wir machen eigentlich genau dasselbe wie vorher, aber wir haben jetzt ein Jira-Board.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-45-BTcheswS.webp" alt="Ich wusste es" style="max-width:100%;height:auto"/></p><p>Wir machen jetzt Scrum. Also, wir machen eigentlich genau dasselbe wie vorher, aber wir haben jetzt ein Jira-Board.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der ‚No-Brainer‘-Guide</title>
      <link>https://nicohartmann.dev/de/funnies#44</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#44#1779105600000</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-44-w0Mkghi_.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-44-w0Mkghi_.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-44-w0Mkghi_.webp" alt="Der ‚No-Brainer‘-Guide" style="max-width:100%;height:auto"/></p><p>Danke für den roten Pfeil, ich hätte den Stein sonst glatt in die Kaffeetasse geworfen.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-44-w0Mkghi_.webp" alt="Der ‚No-Brainer‘-Guide" style="max-width:100%;height:auto"/></p><p>Danke für den roten Pfeil, ich hätte den Stein sonst glatt in die Kaffeetasse geworfen.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Captain Obvious am Werk</title>
      <link>https://nicohartmann.dev/de/funnies#43</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#43#1779105600000</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-43-C1zk_IvU.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-43-C1zk_IvU.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-43-C1zk_IvU.webp" alt="Captain Obvious am Werk" style="max-width:100%;height:auto"/></p><p>Wenn die Dokumentationspflicht ruft, du aber eigentlich nichts zu sagen hast.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-43-C1zk_IvU.webp" alt="Captain Obvious am Werk" style="max-width:100%;height:auto"/></p><p>Wenn die Dokumentationspflicht ruft, du aber eigentlich nichts zu sagen hast.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der Spiegel der Wahrheit</title>
      <link>https://nicohartmann.dev/de/funnies#42</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#42#1779105600000</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-42-GbZnzV1n.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-42-GbZnzV1n.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-42-GbZnzV1n.webp" alt="Der Spiegel der Wahrheit" style="max-width:100%;height:auto"/></p><p>Wenn du versuchst, ein Rätsel zu lösen, aber das Rätsel eigentlich dich löst.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-42-GbZnzV1n.webp" alt="Der Spiegel der Wahrheit" style="max-width:100%;height:auto"/></p><p>Wenn du versuchst, ein Rätsel zu lösen, aber das Rätsel eigentlich dich löst.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Syntaktische Kriegsführung</title>
      <link>https://nicohartmann.dev/de/funnies#41</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#41#1779019200000</guid>
      <pubDate>Sun, 17 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-41-BJZhYmqh.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-41-BJZhYmqh.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-41-BJZhYmqh.webp" alt="Syntaktische Kriegsführung" style="max-width:100%;height:auto"/></p><p>Wie man einen Junior-Entwickler dazu bringt, das gesamte Wochenende weinend vor dem Monitor zu verbringen.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-41-BJZhYmqh.webp" alt="Syntaktische Kriegsführung" style="max-width:100%;height:auto"/></p><p>Wie man einen Junior-Entwickler dazu bringt, das gesamte Wochenende weinend vor dem Monitor zu verbringen.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Legacy Lotto</title>
      <link>https://nicohartmann.dev/de/funnies#40</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#40#1779019200000</guid>
      <pubDate>Sun, 17 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-40-qpcO5Dh1.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-40-qpcO5Dh1.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-40-qpcO5Dh1.webp" alt="Legacy Lotto" style="max-width:100%;height:auto"/></p><p>Der Moment, in dem du versuchst, den Code vom Freitag zu verstehen und feststellst, dass du am Wochenende offenbar dein gesamtes Wissen gelöscht hast.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-40-qpcO5Dh1.webp" alt="Legacy Lotto" style="max-width:100%;height:auto"/></p><p>Der Moment, in dem du versuchst, den Code vom Freitag zu verstehen und feststellst, dass du am Wochenende offenbar dein gesamtes Wissen gelöscht hast.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Scrum-Wahn</title>
      <link>https://nicohartmann.dev/de/funnies#39</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#39#1779019200000</guid>
      <pubDate>Sun, 17 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-39-CIHG5Ur9.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-39-CIHG5Ur9.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-39-CIHG5Ur9.webp" alt="Scrum-Wahn" style="max-width:100%;height:auto"/></p><p>Warum das tägliche Stand-up länger dauert als Ihre eigentliche Arbeitszeit und wieso Ihr Product Owner die Definition von 'Fertig' jede Woche ändert.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-39-CIHG5Ur9.webp" alt="Scrum-Wahn" style="max-width:100%;height:auto"/></p><p>Warum das tägliche Stand-up länger dauert als Ihre eigentliche Arbeitszeit und wieso Ihr Product Owner die Definition von 'Fertig' jede Woche ändert.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Goodbye, Clean Code</title>
      <link>https://overreacted.io/goodbye-clean-code/</link>
      <guid isPermaLink="false">https://overreacted.io/goodbye-clean-code/#1778932800000</guid>
      <pubDate>Sat, 16 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Dan Abramov</em></p><p>Eine ehrliche Beichte über den Moment, in dem 'sauberer Code' zum Hindernis wird. (Englisch)</p><p><a href="https://overreacted.io/goodbye-clean-code/">https://overreacted.io/goodbye-clean-code/</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Dan Abramov</em></p><p>Eine ehrliche Beichte über den Moment, in dem 'sauberer Code' zum Hindernis wird. (Englisch)</p><p><a href="https://overreacted.io/goodbye-clean-code/">https://overreacted.io/goodbye-clean-code/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Syntax-Sadismus</title>
      <link>https://nicohartmann.dev/de/funnies#38</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#38#1778932800000</guid>
      <pubDate>Sat, 16 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-38-BdW-gBiP.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-38-BdW-gBiP.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-38-BdW-gBiP.webp" alt="Syntax-Sadismus" style="max-width:100%;height:auto"/></p><p>Lachen ist die einzige Exception, die mein System noch nicht zum Absturz gebracht hat.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-38-BdW-gBiP.webp" alt="Syntax-Sadismus" style="max-width:100%;height:auto"/></p><p>Lachen ist die einzige Exception, die mein System noch nicht zum Absturz gebracht hat.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Zwei-Faktor-Erfrischung</title>
      <link>https://nicohartmann.dev/de/funnies#37</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#37#1778932800000</guid>
      <pubDate>Sat, 16 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-37-Cr0l3Uoh.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-37-Cr0l3Uoh.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-37-Cr0l3Uoh.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Passwort: *********. Bitte scannen Sie jetzt Ihre 0,5L Zero für den Systemzugriff.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-37-Cr0l3Uoh.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Passwort: *********. Bitte scannen Sie jetzt Ihre 0,5L Zero für den Systemzugriff.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Blog] Die Jagd nach der perfekten Punktzahl</title>
      <link>https://nicohartmann.dev/de/blog/perfectscore</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/blog/perfectscore#1778846400000</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <category>Blog</category>
      <description><![CDATA[<p>Wie ich in <a href="https://nicohartmann.dev/de/blog/howwebsite">diesem Blog-Post</a> bereits angedeutet habe, stand ein ganz besonderes Ziel ganz oben auf meiner Prioritätenliste: die Performance dieser Website. Es gibt diesen einen Moment im Leben eines Entwicklers, in dem man die eigene Seite zum ersten Mal durch Google PageSpeed Insights jagt und mit einer Mischung aus Hoffnung und Angst auf das Ergebnis wartet. Mein Ziel war von Anfang an klar definiert. Ich wollte die magische 100 in allen vier Kategorien sehen: Leistung, Barrierefreiheit, Best Practices und SEO.</p>
<p>Der Weg dorthin fühlte sich anfangs wie ein gemütlicher Spaziergang an, entwickelte sich jedoch schnell zu einem digitalen Marathon. Während SEO bereits bei der ersten Analyse voll punktete, gab es bei der Barrierefreiheit noch kleine Baustellen. Das Hauptproblem waren hier die Buttons, mit denen man die Bilder auf der Homepage umschalten kann. Diese lagen für die Algorithmen von Google schlichtweg zu nah beieinander. Ein klassisches Problem der mobilen Bedienbarkeit: Wer zu dicke Finger hat, verklickt sich. Also habe ich die Abstände angepasst, die Touch-Targets vergrößert und siehe da, die Barrierefreiheit rutschte prompt auf die 100.</p>
<p>Doch dann kam die Performance. Auf dem Desktop sah alles noch rosig aus. Ein leistungsstarker Prozessor und eine schnelle Leitung verzeihen viele Sünden. Aber die mobile Ansicht ist gnadenlos. Sie ist der Endgegner jeder Web-Optimierung. Mobile Endgeräte haben oft schwächere Prozessoren und kämpfen mit instabilen Netzwerkverbindungen. Hier trennt sich die Spreu vom Weizen. Wer hier die 100 erreichen will, muss tief in die Trickkiste greifen und bereit sein, jedes einzelne Byte zu hinterfragen.</p>
<h2>Debuggen mit Täterblick</h2>
<p>Performance-Tuning ist eine ganz spezielle Art des Debuggens. Normalerweise ist man beim Debuggen wie ein Detektiv, der einen Mordfall lösen muss, bei dem man seltsamerweise selbst der Täter ist. Man sucht den einen logischen Fehler, die eine Zeile Code, die alles zum Einsturz bringt. Beim Optimieren der Geschwindigkeit bleibt die Detektivrolle gleich, aber das Verbrechen ist subtiler. Die Tat war nie beabsichtigt. Man hat nicht absichtlich langsamen Code geschrieben. Man war einfach blauäugig. Ich habe vor mich hin programmiert, Features hinzugefügt und Bibliotheken eingebunden, ohne mir jemals ernsthafte Gedanken über Metriken wie den First Contentful Paint oder den Largest Contentful Paint zu machen.</p>
<p>Diese Abkürzungen, FCP und LCP, klingen zunächst wie technisches Kauderwelsch, aber sie entscheiden darüber, ob ein Nutzer auf der Seite bleibt oder frustriert abspringt. Der First Contentful Paint misst, wann das erste Element auf dem Bildschirm erscheint. Der Largest Contentful Paint gibt an, wann das Hauptinhaltselment geladen ist. Wenn diese Werte im roten Bereich liegen, fühlt sich die Website zäh und leblos an. Meine Reise in die Welt der Millisekunden begann genau hier.</p>
<h2>WebP, Lazy Loading und das JavaScript-Bundle</h2>
<p>Eine der ersten Lektionen, die ich lernen durfte, betraf das Bildformat WebP. Wenn man sich in Foren umschaut, gibt es immer wieder Stimmen, die behaupten, WebP sei kompliziert oder bringe nicht viel. Doch meine Erfahrung war eine völlig andere. WebP ist absolut fantastisch, wenn es darum geht, die Dateigröße bei gleichbleibender Qualität drastisch zu reduzieren. Früher habe ich mir kaum Gedanken über die Kompression gemacht. Heute weiß ich, dass jedes Kilobyte zählt. Ein Bild, das als JPEG noch 500 Kilobyte wog, schrumpft als WebP oft auf unter 50 Kilobyte zusammen, ohne dass das menschliche Auge einen Unterschied bemerkt.</p>
<p>Parallel dazu habe ich angefangen, das Prinzip des Lazy Loadings auf die Spitze zu treiben. Die Idee ist simpel: Lade nur das, was der Nutzer gerade sieht. Warum sollte das Bild im Footer geladen werden, wenn der Nutzer noch ganz oben am Header liest? Anfangs war ich skeptisch, ob man wirklich alles verzögert laden sollte. Aber im Kampf um die 100 Punkte auf dem Smartphone ist diese Strategie Gold wert. Es entlastet die initiale Bandbreite und sorgt dafür, dass der Browser sich auf die wichtigen Elemente konzentrieren kann, die sofort sichtbar sein müssen.</p>
<p>Doch die größte Herausforderung wartete an einer Stelle, die ich völlig unterschätzt hatte: das JavaScript-Bundling. Bundling klingt in der Theorie super. Man packt alle kleinen Skripte in eine große Datei, um die Anzahl der Serveranfragen zu minimieren. Das Problem entsteht jedoch dann, wenn dieses Bundle zu einem unüberschaubaren Monster anschwillt. Bei mir waren es am Ende etwa 73 Kilobyte an ungenutztem JavaScript. Das klingt im ersten Moment nach wenig, aber für die Analyse-Tools von Google ist das ein gefundenes Fressen für Punktabzug.</p>
<p>Das Problem beim ungenutzten Code ist, dass man oft gar nicht weiß, wo er herkommt. Er versteckt sich in den Tiefen der Abhängigkeiten, die man über die Monate angesammelt hat. Man installiert eine Bibliothek für eine kleine Funktion, und plötzlich schleppt man ein riesiges Paket an Logik mit sich herum, die niemals ausgeführt wird. Die Suche nach diesem &quot;toten Fleisch&quot; im Code war mühsam. Ich musste lernen, Analyse-Tools zu nutzen, die mir genau aufschlüsselten, welche Funktionen tatsächlich gebraucht werden und welche nur Platz wegnehmen.</p>
<h2>Sprachdateien und doppelter Ballast</h2>
<p>In diesem Prozess stieß ich auf ein weiteres, fast schon peinliches Problem: meine Sprachdateien. Da diese Website zweisprachig ist, hatte ich anfangs die Texte für Deutsch und Englisch in einem gemeinsamen Paket geladen. Ein klassischer Anfängerfehler. Ein Nutzer, der die deutsche Version liest, braucht die englischen Übersetzungen nicht im Arbeitsspeicher seines Browsers. Die Lösung war ein radikaler Umbau der Ladestruktur. Jetzt werden die Sprachdateien strikt getrennt. Es wird nur das geladen, was gerade aktiv ist. Dieser Schritt allein hat die Ladezeiten spürbar verbessert und die Performance-Metriken nach oben getrieben.</p>
<p>Aber die Reise war hier noch nicht zu Ende. Während ich meine Sprachdateien aufräumte, fiel mir auf, wie rücksichtslos ich mit externen Bibliotheken umgegangen war. Ich hatte über die Zeit hinweg eine regelrechte Sammlung angelegt. Der Tiefpunkt war die Erkenntnis, dass ich gleich zwei verschiedene Bibliotheken für Benachrichtigungen installiert hatte: Toast und Sonner. Beide tun im Grunde das Gleiche, sie lassen kleine Meldungen am Bildschirmrand aufpoppen. Warum ich beide im Projekt hatte? Ich wusste es nicht mehr. Wahrscheinlich habe ich eine ausprobiert, die andere vergessen zu löschen und am Ende beide mitgeschleppt.</p>
<p>Der Gipfel der Ironie war jedoch, dass ich nach einer genauen Analyse feststellen musste, dass ich derzeit überhaupt keine Benachrichtigungen mehr auf der Website verwende. Ich hatte also zwei Bibliotheken geladen, die miteinander um Ressourcen konkurrierten, für ein Feature, das gar nicht aktiv war. Ein rüdes Erwachen. Das Entfernen dieser Altlasten fühlte sich an wie ein digitaler Hausputz. Jede gelöschte Zeile Code, jede entfernte Bibliothek war ein kleiner Sieg auf dem Weg zur perfekten Punktzahl.</p>
<p>Diese Phase des Aufräumens lehrte mich eine wichtige Lektion über Disziplin in der Softwareentwicklung. Es ist leicht, neue Dinge hinzuzufügen. Es ist schwer, Dinge wieder zu entfernen, wenn man nicht mehr genau weiß, warum sie dort sind. Die Angst, etwas kaputt zu machen, hält einen oft davon ab, radikal zu kürzen. Aber genau diese Radikalität ist notwendig, wenn man eine Website bauen will, die nicht nur funktioniert, sondern die auch im Bereich der Geschwindigkeit zur Spitzenklasse gehört.</p>
<h2>Vier grüne Kreise</h2>
<p><img src="/score_de.webp" alt="Score Grafik"></p>
<p>Nach unzähligen Stunden des Testens, Optimierens und erneuten Testens war es dann schließlich so weit. Ich drückte erneut auf den Analyse-Button von PageSpeed Insights. Der Ladebalken bewegte sich langsam. Die Spannung stieg. Und dann leuchteten sie nacheinander auf: Vier grüne Kreise, jeweils mit der Zahl 100 in der Mitte. Ein Moment purer Erleichterung. Es war ein langer Weg, geprägt von kleinen Frustrationen und großen Lerneffekten. Aber am Ende habe ich es geschafft, wie man auch im aktuellen <a href="https://pagespeed.web.dev/analysis/https-nicohartmann-dev-de/u10lbop4lx?form_factor=mobile">PageSpeed Insights Report</a> sehen kann.</p>
<p>Diese Erfahrung hat meine Sicht auf das Webdesign grundlegend verändert. Es geht nicht mehr nur darum, dass etwas schön aussieht. Es geht darum, wie effizient die Technik dahinter arbeitet. Eine schnelle Website ist ein Zeichen von Respekt gegenüber dem Nutzer und seiner Zeit. Man zwingt ihn nicht dazu, unnötige Daten zu laden oder auf lahme Skripte zu warten.</p>
<p>Die Optimierung auf die volle Punktzahl war mehr als nur eine technische Spielerei. Es war ein tiefes Eintauchen in die Funktionsweise moderner Browser. Ich habe gelernt, wie wichtig die Priorisierung von Ressourcen ist. Welche Skripte müssen sofort ausgeführt werden? Welche können warten, bis die Seite fertig gerendert ist? Diese Fragen klingen banal, aber die Antworten darauf machen den Unterschied zwischen einer guten und einer exzellenten Nutzererfahrung aus.</p>
<p>Rückblickend betrachtet war die Entscheidung, SEO und Barrierefreiheit zuerst anzugehen, genau richtig. Diese Bereiche bilden das Fundament. Ohne Barrierefreiheit schließt man Menschen aus, und ohne SEO findet niemand die Seite. Aber die Performance ist der Motor, der alles antreibt. Ein Auto mit einer tollen Lackierung und bequemen Sitzen bringt nichts, wenn der Motor ständig stottert. Mein digitaler Motor schnurrt jetzt wie ein Kätzchen, und das Gefühl, ein optimiertes Produkt im Netz zu haben, ist unbezahlbar.</p>
<p>Besonders fasziniert hat mich am Ende die Wirkung der kleinen Dinge. Oft denkt man, man müsse das gesamte Framework austauschen oder einen Teil komplett neu schreiben. Aber meistens sind es die kumulierten Effekte von kleinen Korrekturen. Ein falsch skaliertes Bild hier, ein vergessenes Skript dort und eine unsaubere CSS-Datei addieren sich schnell zu einer sekundenlangen Verzögerung. Wer lernt, diese kleinen Stellschrauben zu finden, hat den Schlüssel zur Performance in der Hand.</p>
<p>Der Prozess hat mir auch gezeigt, dass man niemals wirklich fertig ist. Das Web entwickelt sich ständig weiter, neue Standards entstehen und die Anforderungen der Nutzer steigen. Was heute eine 100 ist, könnte morgen durch ein neues Update der Algorithmen schon wieder eine 95 sein. Aber das ist in Ordnung. Jetzt, da ich die Werkzeuge und das Wissen besitze, macht mir dieser kontinuierliche Verbesserungsprozess sogar Spaß. Es ist ein ständiger Wettlauf gegen die eigene Bequemlichkeit und für eine bessere technische Qualität.</p>
<p>Abschließend kann ich nur jedem Entwickler raten, sich einmal die Zeit zu nehmen und die eigene Seite wirklich unter die Lupe zu nehmen. Schaut euch an, was im Hintergrund passiert. Versteht euer JavaScript-Bundle. Hinterfragt jede Bibliothek. Es lohnt sich nicht nur für die Statistik oder die Eitelkeit, die volle Punktzahl zu erreichen. Es lohnt sich, weil man dabei lernt, ein besserer Programmierer zu werden. Man entwickelt ein Gespür für Effizienz, das weit über die Webentwicklung hinausgeht. Es war ein harter Weg, aber die 100 bei PageSpeed Insights zu knacken, war jeden einzelnen Schritt wert. Die Website fühlt sich jetzt so leichtfüßig an, wie ich es mir immer gewünscht habe. Ein Projekt ist eben erst dann wirklich fertig, wenn man nichts mehr weglassen kann, ohne die Funktion zu beeinträchtigen.</p>
]]></description>
      <content:encoded><![CDATA[<p>Wie ich in <a href="https://nicohartmann.dev/de/blog/howwebsite">diesem Blog-Post</a> bereits angedeutet habe, stand ein ganz besonderes Ziel ganz oben auf meiner Prioritätenliste: die Performance dieser Website. Es gibt diesen einen Moment im Leben eines Entwicklers, in dem man die eigene Seite zum ersten Mal durch Google PageSpeed Insights jagt und mit einer Mischung aus Hoffnung und Angst auf das Ergebnis wartet. Mein Ziel war von Anfang an klar definiert. Ich wollte die magische 100 in allen vier Kategorien sehen: Leistung, Barrierefreiheit, Best Practices und SEO.</p>
<p>Der Weg dorthin fühlte sich anfangs wie ein gemütlicher Spaziergang an, entwickelte sich jedoch schnell zu einem digitalen Marathon. Während SEO bereits bei der ersten Analyse voll punktete, gab es bei der Barrierefreiheit noch kleine Baustellen. Das Hauptproblem waren hier die Buttons, mit denen man die Bilder auf der Homepage umschalten kann. Diese lagen für die Algorithmen von Google schlichtweg zu nah beieinander. Ein klassisches Problem der mobilen Bedienbarkeit: Wer zu dicke Finger hat, verklickt sich. Also habe ich die Abstände angepasst, die Touch-Targets vergrößert und siehe da, die Barrierefreiheit rutschte prompt auf die 100.</p>
<p>Doch dann kam die Performance. Auf dem Desktop sah alles noch rosig aus. Ein leistungsstarker Prozessor und eine schnelle Leitung verzeihen viele Sünden. Aber die mobile Ansicht ist gnadenlos. Sie ist der Endgegner jeder Web-Optimierung. Mobile Endgeräte haben oft schwächere Prozessoren und kämpfen mit instabilen Netzwerkverbindungen. Hier trennt sich die Spreu vom Weizen. Wer hier die 100 erreichen will, muss tief in die Trickkiste greifen und bereit sein, jedes einzelne Byte zu hinterfragen.</p>
<h2>Debuggen mit Täterblick</h2>
<p>Performance-Tuning ist eine ganz spezielle Art des Debuggens. Normalerweise ist man beim Debuggen wie ein Detektiv, der einen Mordfall lösen muss, bei dem man seltsamerweise selbst der Täter ist. Man sucht den einen logischen Fehler, die eine Zeile Code, die alles zum Einsturz bringt. Beim Optimieren der Geschwindigkeit bleibt die Detektivrolle gleich, aber das Verbrechen ist subtiler. Die Tat war nie beabsichtigt. Man hat nicht absichtlich langsamen Code geschrieben. Man war einfach blauäugig. Ich habe vor mich hin programmiert, Features hinzugefügt und Bibliotheken eingebunden, ohne mir jemals ernsthafte Gedanken über Metriken wie den First Contentful Paint oder den Largest Contentful Paint zu machen.</p>
<p>Diese Abkürzungen, FCP und LCP, klingen zunächst wie technisches Kauderwelsch, aber sie entscheiden darüber, ob ein Nutzer auf der Seite bleibt oder frustriert abspringt. Der First Contentful Paint misst, wann das erste Element auf dem Bildschirm erscheint. Der Largest Contentful Paint gibt an, wann das Hauptinhaltselment geladen ist. Wenn diese Werte im roten Bereich liegen, fühlt sich die Website zäh und leblos an. Meine Reise in die Welt der Millisekunden begann genau hier.</p>
<h2>WebP, Lazy Loading und das JavaScript-Bundle</h2>
<p>Eine der ersten Lektionen, die ich lernen durfte, betraf das Bildformat WebP. Wenn man sich in Foren umschaut, gibt es immer wieder Stimmen, die behaupten, WebP sei kompliziert oder bringe nicht viel. Doch meine Erfahrung war eine völlig andere. WebP ist absolut fantastisch, wenn es darum geht, die Dateigröße bei gleichbleibender Qualität drastisch zu reduzieren. Früher habe ich mir kaum Gedanken über die Kompression gemacht. Heute weiß ich, dass jedes Kilobyte zählt. Ein Bild, das als JPEG noch 500 Kilobyte wog, schrumpft als WebP oft auf unter 50 Kilobyte zusammen, ohne dass das menschliche Auge einen Unterschied bemerkt.</p>
<p>Parallel dazu habe ich angefangen, das Prinzip des Lazy Loadings auf die Spitze zu treiben. Die Idee ist simpel: Lade nur das, was der Nutzer gerade sieht. Warum sollte das Bild im Footer geladen werden, wenn der Nutzer noch ganz oben am Header liest? Anfangs war ich skeptisch, ob man wirklich alles verzögert laden sollte. Aber im Kampf um die 100 Punkte auf dem Smartphone ist diese Strategie Gold wert. Es entlastet die initiale Bandbreite und sorgt dafür, dass der Browser sich auf die wichtigen Elemente konzentrieren kann, die sofort sichtbar sein müssen.</p>
<p>Doch die größte Herausforderung wartete an einer Stelle, die ich völlig unterschätzt hatte: das JavaScript-Bundling. Bundling klingt in der Theorie super. Man packt alle kleinen Skripte in eine große Datei, um die Anzahl der Serveranfragen zu minimieren. Das Problem entsteht jedoch dann, wenn dieses Bundle zu einem unüberschaubaren Monster anschwillt. Bei mir waren es am Ende etwa 73 Kilobyte an ungenutztem JavaScript. Das klingt im ersten Moment nach wenig, aber für die Analyse-Tools von Google ist das ein gefundenes Fressen für Punktabzug.</p>
<p>Das Problem beim ungenutzten Code ist, dass man oft gar nicht weiß, wo er herkommt. Er versteckt sich in den Tiefen der Abhängigkeiten, die man über die Monate angesammelt hat. Man installiert eine Bibliothek für eine kleine Funktion, und plötzlich schleppt man ein riesiges Paket an Logik mit sich herum, die niemals ausgeführt wird. Die Suche nach diesem &quot;toten Fleisch&quot; im Code war mühsam. Ich musste lernen, Analyse-Tools zu nutzen, die mir genau aufschlüsselten, welche Funktionen tatsächlich gebraucht werden und welche nur Platz wegnehmen.</p>
<h2>Sprachdateien und doppelter Ballast</h2>
<p>In diesem Prozess stieß ich auf ein weiteres, fast schon peinliches Problem: meine Sprachdateien. Da diese Website zweisprachig ist, hatte ich anfangs die Texte für Deutsch und Englisch in einem gemeinsamen Paket geladen. Ein klassischer Anfängerfehler. Ein Nutzer, der die deutsche Version liest, braucht die englischen Übersetzungen nicht im Arbeitsspeicher seines Browsers. Die Lösung war ein radikaler Umbau der Ladestruktur. Jetzt werden die Sprachdateien strikt getrennt. Es wird nur das geladen, was gerade aktiv ist. Dieser Schritt allein hat die Ladezeiten spürbar verbessert und die Performance-Metriken nach oben getrieben.</p>
<p>Aber die Reise war hier noch nicht zu Ende. Während ich meine Sprachdateien aufräumte, fiel mir auf, wie rücksichtslos ich mit externen Bibliotheken umgegangen war. Ich hatte über die Zeit hinweg eine regelrechte Sammlung angelegt. Der Tiefpunkt war die Erkenntnis, dass ich gleich zwei verschiedene Bibliotheken für Benachrichtigungen installiert hatte: Toast und Sonner. Beide tun im Grunde das Gleiche, sie lassen kleine Meldungen am Bildschirmrand aufpoppen. Warum ich beide im Projekt hatte? Ich wusste es nicht mehr. Wahrscheinlich habe ich eine ausprobiert, die andere vergessen zu löschen und am Ende beide mitgeschleppt.</p>
<p>Der Gipfel der Ironie war jedoch, dass ich nach einer genauen Analyse feststellen musste, dass ich derzeit überhaupt keine Benachrichtigungen mehr auf der Website verwende. Ich hatte also zwei Bibliotheken geladen, die miteinander um Ressourcen konkurrierten, für ein Feature, das gar nicht aktiv war. Ein rüdes Erwachen. Das Entfernen dieser Altlasten fühlte sich an wie ein digitaler Hausputz. Jede gelöschte Zeile Code, jede entfernte Bibliothek war ein kleiner Sieg auf dem Weg zur perfekten Punktzahl.</p>
<p>Diese Phase des Aufräumens lehrte mich eine wichtige Lektion über Disziplin in der Softwareentwicklung. Es ist leicht, neue Dinge hinzuzufügen. Es ist schwer, Dinge wieder zu entfernen, wenn man nicht mehr genau weiß, warum sie dort sind. Die Angst, etwas kaputt zu machen, hält einen oft davon ab, radikal zu kürzen. Aber genau diese Radikalität ist notwendig, wenn man eine Website bauen will, die nicht nur funktioniert, sondern die auch im Bereich der Geschwindigkeit zur Spitzenklasse gehört.</p>
<h2>Vier grüne Kreise</h2>
<p><img src="/score_de.webp" alt="Score Grafik"></p>
<p>Nach unzähligen Stunden des Testens, Optimierens und erneuten Testens war es dann schließlich so weit. Ich drückte erneut auf den Analyse-Button von PageSpeed Insights. Der Ladebalken bewegte sich langsam. Die Spannung stieg. Und dann leuchteten sie nacheinander auf: Vier grüne Kreise, jeweils mit der Zahl 100 in der Mitte. Ein Moment purer Erleichterung. Es war ein langer Weg, geprägt von kleinen Frustrationen und großen Lerneffekten. Aber am Ende habe ich es geschafft, wie man auch im aktuellen <a href="https://pagespeed.web.dev/analysis/https-nicohartmann-dev-de/u10lbop4lx?form_factor=mobile">PageSpeed Insights Report</a> sehen kann.</p>
<p>Diese Erfahrung hat meine Sicht auf das Webdesign grundlegend verändert. Es geht nicht mehr nur darum, dass etwas schön aussieht. Es geht darum, wie effizient die Technik dahinter arbeitet. Eine schnelle Website ist ein Zeichen von Respekt gegenüber dem Nutzer und seiner Zeit. Man zwingt ihn nicht dazu, unnötige Daten zu laden oder auf lahme Skripte zu warten.</p>
<p>Die Optimierung auf die volle Punktzahl war mehr als nur eine technische Spielerei. Es war ein tiefes Eintauchen in die Funktionsweise moderner Browser. Ich habe gelernt, wie wichtig die Priorisierung von Ressourcen ist. Welche Skripte müssen sofort ausgeführt werden? Welche können warten, bis die Seite fertig gerendert ist? Diese Fragen klingen banal, aber die Antworten darauf machen den Unterschied zwischen einer guten und einer exzellenten Nutzererfahrung aus.</p>
<p>Rückblickend betrachtet war die Entscheidung, SEO und Barrierefreiheit zuerst anzugehen, genau richtig. Diese Bereiche bilden das Fundament. Ohne Barrierefreiheit schließt man Menschen aus, und ohne SEO findet niemand die Seite. Aber die Performance ist der Motor, der alles antreibt. Ein Auto mit einer tollen Lackierung und bequemen Sitzen bringt nichts, wenn der Motor ständig stottert. Mein digitaler Motor schnurrt jetzt wie ein Kätzchen, und das Gefühl, ein optimiertes Produkt im Netz zu haben, ist unbezahlbar.</p>
<p>Besonders fasziniert hat mich am Ende die Wirkung der kleinen Dinge. Oft denkt man, man müsse das gesamte Framework austauschen oder einen Teil komplett neu schreiben. Aber meistens sind es die kumulierten Effekte von kleinen Korrekturen. Ein falsch skaliertes Bild hier, ein vergessenes Skript dort und eine unsaubere CSS-Datei addieren sich schnell zu einer sekundenlangen Verzögerung. Wer lernt, diese kleinen Stellschrauben zu finden, hat den Schlüssel zur Performance in der Hand.</p>
<p>Der Prozess hat mir auch gezeigt, dass man niemals wirklich fertig ist. Das Web entwickelt sich ständig weiter, neue Standards entstehen und die Anforderungen der Nutzer steigen. Was heute eine 100 ist, könnte morgen durch ein neues Update der Algorithmen schon wieder eine 95 sein. Aber das ist in Ordnung. Jetzt, da ich die Werkzeuge und das Wissen besitze, macht mir dieser kontinuierliche Verbesserungsprozess sogar Spaß. Es ist ein ständiger Wettlauf gegen die eigene Bequemlichkeit und für eine bessere technische Qualität.</p>
<p>Abschließend kann ich nur jedem Entwickler raten, sich einmal die Zeit zu nehmen und die eigene Seite wirklich unter die Lupe zu nehmen. Schaut euch an, was im Hintergrund passiert. Versteht euer JavaScript-Bundle. Hinterfragt jede Bibliothek. Es lohnt sich nicht nur für die Statistik oder die Eitelkeit, die volle Punktzahl zu erreichen. Es lohnt sich, weil man dabei lernt, ein besserer Programmierer zu werden. Man entwickelt ein Gespür für Effizienz, das weit über die Webentwicklung hinausgeht. Es war ein harter Weg, aber die 100 bei PageSpeed Insights zu knacken, war jeden einzelnen Schritt wert. Die Website fühlt sich jetzt so leichtfüßig an, wie ich es mir immer gewünscht habe. Ein Projekt ist eben erst dann wirklich fertig, wenn man nichts mehr weglassen kann, ohne die Funktion zu beeinträchtigen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Coders at Work</title>
      <link>https://amzn.eu/d/0iZAmkLM</link>
      <guid isPermaLink="false">https://amzn.eu/d/0iZAmkLM#1778846400000</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Peter Seibel</em></p><p>Interviews mit den Größen der Szene (u.a. Ken Thompson, Donald Knuth). Du erfährst, wie diese Legenden wirklich arbeiten, wie sie debuggen und warum sie manchmal ihren eigenen Code hassen. Echte Einblicke, kein Marketing-Blabla.</p><p><a href="https://amzn.eu/d/0iZAmkLM">https://amzn.eu/d/0iZAmkLM</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Peter Seibel</em></p><p>Interviews mit den Größen der Szene (u.a. Ken Thompson, Donald Knuth). Du erfährst, wie diese Legenden wirklich arbeiten, wie sie debuggen und warum sie manchmal ihren eigenen Code hassen. Echte Einblicke, kein Marketing-Blabla.</p><p><a href="https://amzn.eu/d/0iZAmkLM">https://amzn.eu/d/0iZAmkLM</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der 'Was-hab-ich-getan'-Blick</title>
      <link>https://nicohartmann.dev/de/funnies#36</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#36#1778846400000</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-36-DGvJS0ND.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-36-DGvJS0ND.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-36-DGvJS0ND.webp" alt="Der 'Was-hab-ich-getan'-Blick" style="max-width:100%;height:auto"/></p><p>Wenn die Fehlermeldung länger ist als dein ganzer Code.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-36-DGvJS0ND.webp" alt="Der 'Was-hab-ich-getan'-Blick" style="max-width:100%;height:auto"/></p><p>Wenn die Fehlermeldung länger ist als dein ganzer Code.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Es gibt kein Dazwischen</title>
      <link>https://nicohartmann.dev/de/funnies#35</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#35#1778846400000</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-35-DcaJfqOq.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-35-DcaJfqOq.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-35-DcaJfqOq.webp" alt="Es gibt kein Dazwischen" style="max-width:100%;height:auto"/></p><p>Mein Gehirn hat zwei Modi: Totaler Selbstzweifel oder grenzenlose Arroganz.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-35-DcaJfqOq.webp" alt="Es gibt kein Dazwischen" style="max-width:100%;height:auto"/></p><p>Mein Gehirn hat zwei Modi: Totaler Selbstzweifel oder grenzenlose Arroganz.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Python S-S-S-S-Schnellkurs</title>
      <link>https://nicohartmann.dev/de/funnies#34</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#34#1778846400000</guid>
      <pubDate>Fri, 15 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-34-B8jqDdp7.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-34-B8jqDdp7.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-34-B8jqDdp7.webp" alt="Python S-S-S-S-Schnellkurs" style="max-width:100%;height:auto"/></p><p>Harry Potter wäre stolz, aber mein Interpreter versteht bei diesem Dialekt trotzdem nur Bahnhof.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-34-B8jqDdp7.webp" alt="Python S-S-S-S-Schnellkurs" style="max-width:100%;height:auto"/></p><p>Harry Potter wäre stolz, aber mein Interpreter versteht bei diesem Dialekt trotzdem nur Bahnhof.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Public APIs</title>
      <link>https://github.com/public-apis/public-apis</link>
      <guid isPermaLink="false">https://github.com/public-apis/public-apis#1778760000000</guid>
      <pubDate>Thu, 14 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>public-apis</em></p><p>Eine Liste mit hunderten kostenlosen Schnittstellen für die Softwareentwicklung, sortiert nach Kategorien wie Musik, News oder Wetter. (Englisch)</p><p><a href="https://github.com/public-apis/public-apis">https://github.com/public-apis/public-apis</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>public-apis</em></p><p>Eine Liste mit hunderten kostenlosen Schnittstellen für die Softwareentwicklung, sortiert nach Kategorien wie Musik, News oder Wetter. (Englisch)</p><p><a href="https://github.com/public-apis/public-apis">https://github.com/public-apis/public-apis</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Ein Schrei nach Erlösung</title>
      <link>https://nicohartmann.dev/de/funnies#33</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#33#1778760000000</guid>
      <pubDate>Thu, 14 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-33-Cx-oS2AT.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-33-Cx-oS2AT.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-33-Cx-oS2AT.webp" alt="Ein Schrei nach Erlösung" style="max-width:100%;height:auto"/></p><p>Bitte, sag es nicht noch einmal. Es tut weh, zuzuhören.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-33-Cx-oS2AT.webp" alt="Ein Schrei nach Erlösung" style="max-width:100%;height:auto"/></p><p>Bitte, sag es nicht noch einmal. Es tut weh, zuzuhören.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Projekt-Darwinismus</title>
      <link>https://nicohartmann.dev/de/funnies#32</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#32#1778760000000</guid>
      <pubDate>Thu, 14 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-32-BciH9P5H.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-32-BciH9P5H.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-32-BciH9P5H.webp" alt="Projekt-Darwinismus" style="max-width:100%;height:auto"/></p><p>Nur die frischesten Ideen überleben meine Aufmerksamkeitsspanne. Die Schwachen sinken.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-32-BciH9P5H.webp" alt="Projekt-Darwinismus" style="max-width:100%;height:auto"/></p><p>Nur die frischesten Ideen überleben meine Aufmerksamkeitsspanne. Die Schwachen sinken.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Wat</title>
      <link>https://www.destroyallsoftware.com/talks/wat</link>
      <guid isPermaLink="false">https://www.destroyallsoftware.com/talks/wat#1778673600000</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Gary Bernhardt</em></p><p>Ursprünglich auf der CodeMash 2012 gehalten, beleuchtet dieser Vortrag die 'irrsinnigen' und oft urkomischen Inkonsistenzen in Ruby und, am bekanntesten, JavaScript. (Englisch)</p><p><a href="https://www.destroyallsoftware.com/talks/wat">https://www.destroyallsoftware.com/talks/wat</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Gary Bernhardt</em></p><p>Ursprünglich auf der CodeMash 2012 gehalten, beleuchtet dieser Vortrag die 'irrsinnigen' und oft urkomischen Inkonsistenzen in Ruby und, am bekanntesten, JavaScript. (Englisch)</p><p><a href="https://www.destroyallsoftware.com/talks/wat">https://www.destroyallsoftware.com/talks/wat</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] readtime.io</title>
      <link>https://readtime.io/</link>
      <guid isPermaLink="false">https://readtime.io/#1778673600000</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Unbekannt</em></p><p>Ein einfaches Web-Tool, das sofort die Lesezeit, Wortzahl und Lesegeschwindigkeit für beliebige Texte berechnet. (Englisch)</p><p><a href="https://readtime.io/">https://readtime.io/</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Unbekannt</em></p><p>Ein einfaches Web-Tool, das sofort die Lesezeit, Wortzahl und Lesegeschwindigkeit für beliebige Texte berechnet. (Englisch)</p><p><a href="https://readtime.io/">https://readtime.io/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] 404: Funktion nicht gefunden</title>
      <link>https://nicohartmann.dev/de/funnies#31</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#31#1778673600000</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-31-DCckbzR8.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-31-DCckbzR8.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-31-DCckbzR8.webp" alt="404: Funktion nicht gefunden" style="max-width:100%;height:auto"/></p><p>Er hat sie zwar geschrieben, aber sie ist im Code-Äther verschwunden.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-31-DCckbzR8.webp" alt="404: Funktion nicht gefunden" style="max-width:100%;height:auto"/></p><p>Er hat sie zwar geschrieben, aber sie ist im Code-Äther verschwunden.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der Prototyp-Propeller</title>
      <link>https://nicohartmann.dev/de/funnies#30</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#30#1778673600000</guid>
      <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-30-Qx48YbVu.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-30-Qx48YbVu.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-30-Qx48YbVu.webp" alt="Der Prototyp-Propeller" style="max-width:100%;height:auto"/></p><p>Es ist nicht effizient, aber es überwindet die Schwerkraft und das reicht für die Deadline.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-30-Qx48YbVu.webp" alt="Der Prototyp-Propeller" style="max-width:100%;height:auto"/></p><p>Es ist nicht effizient, aber es überwindet die Schwerkraft und das reicht für die Deadline.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Squoosh</title>
      <link>https://squoosh.app/</link>
      <guid isPermaLink="false">https://squoosh.app/#1778587200000</guid>
      <pubDate>Tue, 12 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Google Chrome Labs</em></p><p>Squoosh ist ein leistungsstarkes Browser-Tool von Google, mit dem du Bilder in Echtzeit optimieren, komprimieren und in moderne Formate wie WebP oder AVIF konvertieren kannst. (Englisch)</p><p><a href="https://squoosh.app/">https://squoosh.app/</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Google Chrome Labs</em></p><p>Squoosh ist ein leistungsstarkes Browser-Tool von Google, mit dem du Bilder in Echtzeit optimieren, komprimieren und in moderne Formate wie WebP oder AVIF konvertieren kannst. (Englisch)</p><p><a href="https://squoosh.app/">https://squoosh.app/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der letzte Pitch</title>
      <link>https://nicohartmann.dev/de/funnies#29</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#29#1778587200000</guid>
      <pubDate>Tue, 12 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-29-ClzyoPTQ.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-29-ClzyoPTQ.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-29-ClzyoPTQ.webp" alt="Der letzte Pitch" style="max-width:100%;height:auto"/></p><p>Einer geht noch! Vielleicht gibt's nach dem Knall endlich wieder offene Stellen.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-29-ClzyoPTQ.webp" alt="Der letzte Pitch" style="max-width:100%;height:auto"/></p><p>Einer geht noch! Vielleicht gibt's nach dem Knall endlich wieder offene Stellen.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Der CSS-Albtraum</title>
      <link>https://nicohartmann.dev/de/funnies#28</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#28#1778587200000</guid>
      <pubDate>Tue, 12 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-28-B23XO9Sr.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-28-B23XO9Sr.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-28-B23XO9Sr.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn deine Flexbox beschließt, getrennte Wege zu gehen.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-28-B23XO9Sr.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn deine Flexbox beschließt, getrennte Wege zu gehen.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Enshittification</title>
      <link>https://amzn.eu/d/01J3cM4i</link>
      <guid isPermaLink="false">https://amzn.eu/d/01J3cM4i#1778500800000</guid>
      <pubDate>Mon, 11 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Cory Doctorow</em></p><p>Warum plötzlich alles schlechter wurde und was man dagegen tun kann.</p><p><a href="https://amzn.eu/d/01J3cM4i">https://amzn.eu/d/01J3cM4i</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Cory Doctorow</em></p><p>Warum plötzlich alles schlechter wurde und was man dagegen tun kann.</p><p><a href="https://amzn.eu/d/01J3cM4i">https://amzn.eu/d/01J3cM4i</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Die heilige Dreifaltigkeit</title>
      <link>https://nicohartmann.dev/de/funnies#27</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#27#1778500800000</guid>
      <pubDate>Mon, 11 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-27-BNWIKWlx.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-27-BNWIKWlx.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-27-BNWIKWlx.webp" alt="Die heilige Dreifaltigkeit" style="max-width:100%;height:auto"/></p><p>Drei Wege, um am Ende doch nur frustriert auf den Monitor zu starren.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-27-BNWIKWlx.webp" alt="Die heilige Dreifaltigkeit" style="max-width:100%;height:auto"/></p><p>Drei Wege, um am Ende doch nur frustriert auf den Monitor zu starren.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Immer</title>
      <link>https://nicohartmann.dev/de/funnies#26</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#26#1778500800000</guid>
      <pubDate>Mon, 11 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-26-DdZG9ijN.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-26-DdZG9ijN.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-26-DdZG9ijN.webp" alt="Immer" style="max-width:100%;height:auto"/></p><p>Nicht nur den Code, die Texte und Diagramme auch!</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-26-DdZG9ijN.webp" alt="Immer" style="max-width:100%;height:auto"/></p><p>Nicht nur den Code, die Texte und Diagramme auch!</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Drop it like it's hot</title>
      <link>https://nicohartmann.dev/de/funnies#25</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#25#1778500800000</guid>
      <pubDate>Mon, 11 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-25-DIWzxxqb.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-25-DIWzxxqb.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-25-DIWzxxqb.webp" alt="Drop it like it's hot" style="max-width:100%;height:auto"/></p><p>Sie Programmierer zu nennen ist schon weit hergeholt, sie sind eher Daten-Gremlins.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-25-DIWzxxqb.webp" alt="Drop it like it's hot" style="max-width:100%;height:auto"/></p><p>Sie Programmierer zu nennen ist schon weit hergeholt, sie sind eher Daten-Gremlins.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Der Originale Apollo 11 Quellcode</title>
      <link>https://github.com/chrislgarry/Apollo-11</link>
      <guid isPermaLink="false">https://github.com/chrislgarry/Apollo-11#1778414400000</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Chris Garry</em></p><p>Tausende Seiten Quellcode, die uns einst auf den Mond brachten. (Englisch)</p><p><a href="https://github.com/chrislgarry/Apollo-11">https://github.com/chrislgarry/Apollo-11</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Chris Garry</em></p><p>Tausende Seiten Quellcode, die uns einst auf den Mond brachten. (Englisch)</p><p><a href="https://github.com/chrislgarry/Apollo-11">https://github.com/chrislgarry/Apollo-11</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Null in der natürlichen Umgebung</title>
      <link>https://nicohartmann.dev/de/funnies#24</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#24#1778414400000</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-24-Dowg5jt6.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-24-Dowg5jt6.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-24-Dowg5jt6.webp" alt="Null in der natürlichen Umgebung" style="max-width:100%;height:auto"/></p><p>Was machst du, wenn das Klopapier plötzlich undefined ist?</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-24-Dowg5jt6.webp" alt="Null in der natürlichen Umgebung" style="max-width:100%;height:auto"/></p><p>Was machst du, wenn das Klopapier plötzlich undefined ist?</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Das einzige Captcha, das ich nicht lösen kann</title>
      <link>https://nicohartmann.dev/de/funnies#23</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#23#1778414400000</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-23-D9R8ByO8.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-23-D9R8ByO8.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-23-D9R8ByO8.webp" alt="Das einzige Captcha, das ich nicht lösen kann" style="max-width:100%;height:auto"/></p><p>Ich dachte immer, ich bin ein Mensch, aber dieser Code beweist das Gegenteil.</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-23-D9R8ByO8.webp" alt="Das einzige Captcha, das ich nicht lösen kann" style="max-width:100%;height:auto"/></p><p>Ich dachte immer, ich bin ein Mensch, aber dieser Code beweist das Gegenteil.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Wahrscheinlich ein schneller fix</title>
      <link>https://nicohartmann.dev/de/funnies#22</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#22#1778328000000</guid>
      <pubDate>Sat, 09 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-22-Bd9knQsd.webp" length="0" type="image/webp" />
      <media:content url="https://nicohartmann.dev/assets/funny-22-Bd9knQsd.webp" type="image/webp" medium="image" />
      <description><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-22-Bd9knQsd.webp" alt="Wahrscheinlich ein schneller fix" style="max-width:100%;height:auto"/></p><p>Jetzt noch schmerzhafter, dank KI!</p>]]></description>
      <content:encoded><![CDATA[<p><img src="https://nicohartmann.dev/assets/funny-22-Bd9knQsd.webp" alt="Wahrscheinlich ein schneller fix" style="max-width:100%;height:auto"/></p><p>Jetzt noch schmerzhafter, dank KI!</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Interpreter vs. Compiler</title>
      <link>https://nicohartmann.dev/de/funnies#21</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#21#1778328000000</guid>
      <pubDate>Sat, 09 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-21-B1YDkSPt.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-21-B1YDkSPt.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-21-B1YDkSPt.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn du nur „Hallo“ sagen willst...</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-21-B1YDkSPt.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Wenn du nur „Hallo“ sagen willst...</p>]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Trainiere dein eigenes LLM von Grund auf</title>
      <link>https://github.com/angelos-p/llm-from-scratch</link>
      <guid isPermaLink="false">https://github.com/angelos-p/llm-from-scratch#1778241600000</guid>
      <pubDate>Fri, 08 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Angelos Perivolaropoulos</em></p><p>Ein praxisnaher Workshop, in dem du jede Komponente einer GPT-Trainingspipeline selbst implementierst. (Englisch)</p><p><a href="https://github.com/angelos-p/llm-from-scratch">https://github.com/angelos-p/llm-from-scratch</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Angelos Perivolaropoulos</em></p><p>Ein praxisnaher Workshop, in dem du jede Komponente einer GPT-Trainingspipeline selbst implementierst. (Englisch)</p><p><a href="https://github.com/angelos-p/llm-from-scratch">https://github.com/angelos-p/llm-from-scratch</a></p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Es funktioniert auf meinem Rechner!</title>
      <link>https://nicohartmann.dev/de/funnies#20</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#20#1778241600000</guid>
      <pubDate>Fri, 08 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-20-C9dCLkTq.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-20-C9dCLkTq.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-20-C9dCLkTq.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Der Entwickler feiert sein Release, der Tester findet den Bug in Sekunde eins.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-20-C9dCLkTq.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Der Entwickler feiert sein Release, der Tester findet den Bug in Sekunde eins.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Logik vs. Ästhetik: Der tägliche Wahnsinn</title>
      <link>https://nicohartmann.dev/de/funnies#19</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#19#1778241600000</guid>
      <pubDate>Fri, 08 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-19-CNgBjFaS.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-19-CNgBjFaS.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-19-CNgBjFaS.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Einer lebt im Terminal bei 0% Helligkeit, der andere diskutiert über die psychologische Wirkung von Pastelltönen. Wer gewinnt?</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-19-CNgBjFaS.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Einer lebt im Terminal bei 0% Helligkeit, der andere diskutiert über die psychologische Wirkung von Pastelltönen. Wer gewinnt?</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Freitag, 16 Uhr, kurz vor dem Deployment</title>
      <link>https://nicohartmann.dev/de/funnies#18</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#18#1778155200000</guid>
      <pubDate>Thu, 07 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-18-BPVxwTZy.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-18-BPVxwTZy.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-18-BPVxwTZy.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Der Junior schreibt 500 Zeilen neuen Code und weint. Der Senior löscht ein Semikolon und geht in die Mittagspause.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-18-BPVxwTZy.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Der Junior schreibt 500 Zeilen neuen Code und weint. Der Senior löscht ein Semikolon und geht in die Mittagspause.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Lustiges] Das Beste vom Besten</title>
      <link>https://nicohartmann.dev/de/funnies#17</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/funnies#17#1778155200000</guid>
      <pubDate>Thu, 07 May 2026 12:00:00 GMT</pubDate>
      <category>Lustiges</category>
      <enclosure url="https://nicohartmann.dev/assets/funny-17-fbdUTGL9.mp4" length="0" type="video/mp4" />
      <media:content url="https://nicohartmann.dev/assets/funny-17-fbdUTGL9.mp4" type="video/mp4" medium="video" />
      <description><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-17-fbdUTGL9.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Ich warte noch auf den Tag bis einer der Teilnehmenden so etwas produziert.</p>]]></description>
      <content:encoded><![CDATA[<p><a href="https://nicohartmann.dev/assets/funny-17-fbdUTGL9.mp4" target="_blank" style="display:inline-block; background-color:#111111; color:#ffffff; padding:20px 40px; text-decoration:none; border-radius:8px; text-align:center; font-family:sans-serif; border:1px solid #333333;"><span style="font-size:40px; display:block; margin-bottom:10px;">▶️</span><strong style="font-size:14px; letter-spacing:0.5px;">VIDEO ABSPIELEN</strong></a></p><p>Ich warte noch auf den Tag bis einer der Teilnehmenden so etwas produziert.</p>]]></content:encoded>
    </item>
    <item>
      <title>[Blog] Dating mit dem Crawler</title>
      <link>https://nicohartmann.dev/de/blog/datingacrawler</link>
      <guid isPermaLink="false">https://nicohartmann.dev/de/blog/datingacrawler#1778068800000</guid>
      <pubDate>Wed, 06 May 2026 12:00:00 GMT</pubDate>
      <category>Blog</category>
      <description><![CDATA[<p>Es gibt diesen einen Moment, nachdem man die letzte Zeile Code geschrieben, das letzte Stylesheet optimiert und die Website endlich auf den Server geladen hat. Man lehnt sich zurück, nippt an seinem Kaffee und verspürt diesen kindlichen Drang, seinen eigenen Namen bei Google einzutippen. Nicht, weil man nicht wüsste, wer man ist, sondern weil man Bestätigung sucht. In meinem Fall war das Ergebnis ernüchternd. Nico Hartmann ist kein seltener Name. Es gibt Nico Hartmanns, die Fußball spielen, Nico Hartmanns, die in der Lokalpolitik tätig sind, und wahrscheinlich hunderte Nico Hartmanns, die einfach nur existieren, ohne das Internet mit ihrer Präsenz zu behelligen. Aber da stand ich nun, irgendwo auf Seite fünf oder sechs, begraben unter einer Lawine aus Namensvettern. In diesem Augenblick wurde mir klar, dass ich nicht nur eine Website gebaut hatte, sondern ein digitales Denkmal, das im tiefsten Wald steht, wo es niemand sieht. Das Bedürfnis, im Ranking nach oben zu rutschen, war plötzlich nicht mehr nur ein logischer nächster Schritt, sondern eine Frage der Ehre.</p>
<p>SEO ist das Zauberwort, das einem in jedem Marketing-Blog um die Ohren gehauen wird. Search Engine Optimization. Es klingt nach einer exakten Wissenschaft, fast schon nach Alchemie, aber eigentlich ist es die einzige Maßnahme, mit der ich Google und Co. manipulieren kann. Man versucht, ein System zu überlisten, das klüger ist als man selbst, indem man ihm genau das füttert, was es hören will. Ich fing also an, jede einzelne Unterseite mit korrekten Titeln und Beschreibungen zu versehen. Jedes Meta-Tag wurde poliert, jede Headline wurde drei Mal überlegt. Man fühlt sich dabei ein bisschen wie ein Betrüger, der versucht, sich in eine exklusive Party einzuschleichen. Das Ziel ist klar: Den Suchmaschinen muss es gefallen. Es geht nicht mehr darum, was der menschliche Leser denkt, sondern darum, was der Algorithmus in seinen dunklen Rechenzentren ausspuckt.</p>
<h2>Die Kapitulation der Sprache vor der Statistik</h2>
<p>Das Ganze hat eine erschreckende Ähnlichkeit mit LinkedIn. Wir alle kennen diese Plattform, auf der man sich gegenseitig auf die Schulter klopft und seinen Lebenslauf so weit aufbläst, bis er fast platzt. SEO ist im Grunde nichts anderes als das eigene Ego digital zu streicheln. Der einzige Unterschied ist die Zielgruppe. Anstatt Recruiter oder potenzielle Geschäftspartner möchte ich Roboter beeindrucken. Ich schreibe Texte für Wesen ohne Bewusstsein, die Wörter zählen, Keyword-Dichten berechnen und Ladezeiten in Millisekunden messen. Es ist eine bizarre Form der modernen Kommunikation, bei der der Mensch nur noch die Rolle des Lieferanten spielt, während der Bot entscheidet, ob man relevant ist oder nicht. Wenn der Bot lächelt, steigt das Ranking. Wenn der Bot die Stirn runzelt, bleibt man in der digitalen Bedeutungslosigkeit verschwunden.</p>
<p>Theoretisch klingt SEO recht einfach. Man nimmt ein paar Keywords, baut sie in den Text ein und wartet darauf, dass die Welt einen entdeckt. Doch die Realität holt einen schneller ein, als man Keyword Research buchstabieren kann. Es wird verdammt schnell sehr komplex. Das liegt vor allem daran, dass unterschiedliche Suchmaschinen unterschiedliche Voraussetzungen haben. Was Google liebt, ignoriert Bing vielleicht, und DuckDuckGo hat sowieso seine eigenen Regeln. Zudem muss man einsehen, dass man nicht für alles gefunden werden kann. Man kann nicht der König des Internets sein, wenn man keine Armee hat. Also muss man sich eine entsprechende Nische heraussuchen. Für mich war das schnell klar: IT-Dozent und Softwareentwicklung. Das sind die Begriffe, mit denen ich mein Brot verdiene und unter denen ich gefunden werden will.</p>
<p>Hier beginnt jedoch das strategische Dilemma. Ich bin auch Ausbilder, und eigentlich hätte ich dieses Wort liebend gerne noch mit im Titel gehabt. Es beschreibt einen Teil meiner Identität und meiner täglichen Arbeit. Aber die harte Realität der Suchmaschinenoptimierung sagt Nein. Würde ich noch mehr Stichwörter in den Ring werfen, würde ich meinen Fokus verwässern. Jedes zusätzliche Wort ist ein potenzieller Störfaktor, der die Relevanz der Hauptbegriffe mindert. Es ist ein ständiges Abwägen zwischen dem, was man eigentlich sagen will, und dem, was die Suchmaschine noch als fokussiert genug betrachtet. SEO zwingt einen zur Reduktion. Man verstümmelt seine eigene Beschreibung, nur um in den Augen eines Algorithmus nicht zu komplex zu wirken. Es ist die Kapitulation der Sprache vor der Statistik.</p>
<h2>Der Fluch der Internationalität</h2>
<p>Als wäre das nicht schon genug Arbeit, kam dann noch das Problem der Mehrsprachigkeit dazu. Ich habe mich bewusst für Multilingualität in Deutsch und Englisch entschieden. Der Gedanke dahinter war simpel und vielleicht ein bisschen naiv: Ich wollte meine Blogbeiträge einfach auch auf englischsprachigen Seiten reposten können. Internationalität klingt ja auch immer gut im Portfolio. Mein Plan war es, damit Backlinks zu generieren, die wiederum mein Suchranking in die Höhe treiben. Ein Backlink von einer renommierten englischen Seite ist wie eine Goldmedaille für die eigene Domain. So weit, so logisch. Doch die Umsetzung verwandelte mein sauberes Website-Konzept in ein bürokratisches Monster aus Verknüpfungen und Sprach-Tags.</p>
<p>Die Überraschung kam, als ich nach einiger Zeit tatsächlich nach Nico Hartmann IT-Dozent suchte. Ein kleiner Triumph keimte in mir auf, als ich meinen Namen tatsächlich an erster Stelle sah. Doch die Freude hielt nur Sekunden an. Google präsentierte mich zwar ganz oben, aber die Beschreibung war auf Englisch. Da sitzt man in Deutschland, sucht nach einem deutschen Begriff und bekommt ein englisches Snippet serviert. Das ist der Moment, in dem man die Tastatur am liebsten aus dem Fenster werfen würde. Google hat zwar verstanden, dass ich wichtig bin, aber nicht, welche Sprache für diesen speziellen Kontext angemessen ist. Der Algorithmus hat gewürfelt und ich habe verloren.</p>
<p>Also hieß es: Zurück ans Reißbrett. Ich musste hreflang-Attribute setzen. Für den Laien klingt das nach technischem Kleinkram, für den Website-Betreiber ist es der Versuch, der Suchmaschine eine Landkarte zu zeichnen, die sie gefälligst nicht ignorieren soll. Man teilt Google explizit mit, welche Seite für welche Region und welche Sprache gedacht ist. Und dann beginnt das große Warten. SEO ist kein Sprint, es ist ein Marathon durch den Schlamm. Man wartet ein bis zwei Wochen, bis die gnädigen Crawler von Google es endlich wagen, die Website neu zu betrachten. Man fühlt sich wie ein Bittsteller vor dem Thron eines launischen Königs, der hofft, dass seine Korrekturen diesmal gnädig aufgenommen werden.</p>
<p>Dieser ganze Prozess ist eine Lektion in Demut und Frustration. Man investiert Stunden in die Optimierung, nur um festzustellen, dass man von den Launen eines Konzerns abhängig ist, der seine Algorithmen schneller ändert, als man seine eigene Beschreibung anpassen kann. Es ist ein permanenter Kampf gegen Windmühlen, bei dem die Windmühlen aus Serverfarmen bestehen und die Lanze ein Texteditor ist. Man optimiert nicht für den Nutzer, man optimiert für die Maschine, in der Hoffnung, dass am Ende doch noch ein Mensch den Weg auf die Seite findet. Es ist ein absurdes Theater, in dem wir alle unsere Rollen spielen, nur um ein Stückchen Sichtbarkeit in einem Ozean aus Informationen zu ergattern.</p>
<p>Und während ich hier sitze und auf den nächsten Crawl warte, frage ich mich, ob das alles wirklich den Aufwand wert ist. Die Antwort ist ein frustriertes Ja, denn in der heutigen Welt existiert man nicht, wenn man nicht auf der ersten Seite steht. Man beugt sich dem Diktat der Suchmaschine, passt seine Sprache an, streicht Wörter, die man eigentlich mag, und setzt kryptische Attribute in den Header. Alles für den einen Moment, in dem die Suche nach dem eigenen Namen genau das Ergebnis liefert, das man sich so mühsam erkauft hat. Es ist ein digitaler Egotrip, der einen mehr Nerven kostet als jede Softwareentwicklung, aber am Ende siegt die Eitelkeit über die Vernunft.</p>
<h2>Die Anatomie der Keywords</h2>
<p>Wenn man tiefer in diesen Sumpf eintaucht, merkt man schnell, dass Keywords wie kleine Haustiere sind. Man muss sie pflegen, sie füttern und ihnen genau den richtigen Platz zuweisen. Wählt man die falschen, bellen sie einen an oder laufen weg. In meinem Fall war die Entscheidung für IT-Dozent und Softwareentwicklung eine rein strategische Wahl. Ich hätte auch Informatik-Lehrer oder Code-Coach nehmen können, aber wer sucht danach? Man verbringt Stunden mit Tools, die einem sagen, wie oft ein Begriff gesucht wird, nur um dann festzustellen, dass die Konkurrenz bei diesen Begriffen so gigantisch ist, dass man als Einzelkämpfer kaum eine Chance hat. Also sucht man nach der Lücke, nach dem goldenen Mittelweg zwischen Relevanz und Machbarkeit.</p>
<p>Es ist dieses ständige Abwägen zwischen dem Ego und dem Algorithmus. Man möchte sich vielleicht als „Visionär für digitale Transformation“ bezeichnen, doch das nützt wenig, wenn der Markt schlicht nach einem „Python Kurs“ verlangt. Diese Diskrepanz zwingt einen dazu, die eigene Identität in mundgerechte Häppchen zu zerlegen, die von Suchmaschinen leicht verdaut werden können. Dabei ist die Keyword-Recherche oft weniger eine exakte Wissenschaft als vielmehr ein psychologisches Pokerspiel gegen die Intention der Nutzer. Man analysiert Long-Tail-Keywords und Nischenbegriffe, in der Hoffnung, dass die spezifische Kombination aus Fachwissen und Standort genau den Nerv derer trifft, die nicht das erstbeste Massenangebot anklicken. Am Ende des Tages bleibt die Erkenntnis, dass Sichtbarkeit nicht durch die lautesten Begriffe entsteht, sondern durch die klügste Positionierung im Schatten der Giganten.</p>
<h2>Der Fluch der Technik hinter der Sprache</h2>
<p>Die Entscheidung für die Mehrsprachigkeit war rückblickend betrachtet wie der Versuch, zwei Flugzeuge gleichzeitig zu fliegen. Man denkt, man schreibt einfach alles doppelt und fertig ist die Laube. Aber Google sieht das anders. Für eine Suchmaschine ist doppelter Inhalt, der sogenannte Duplicate Content, ein rotes Tuch. Wenn man Pech hat, straft der Algorithmus einen dafür ab, dass man versucht, auf zwei Hochzeiten gleichzeitig zu tanzen. Die Lösung sind eben jene hreflang-Attribute, die ich bereits erwähnt habe. Diese kleinen Code-Schnipsel sind die diplomatischen Vertreter meiner Website. Sie sagen Google: Hey, das hier ist die deutsche Version für die Deutschen und das da ist die englische Version für den Rest der Welt. Bitte wirf sie nicht in einen Topf.</p>
<p>Es ist faszinierend und erschreckend zugleich, wie viel Zeit man mit technischem Overhead verbringt, der absolut nichts mit dem eigentlichen Inhalt zu tun hat. Ich möchte über Softwareentwicklung schreiben, über Didaktik in der IT, über moderne Technologien. Stattdessen verbringe ich meine Abende damit, XML-Sitemaps zu validieren und zu prüfen, ob meine Canonical-Tags richtig gesetzt sind. Man wird zum Bürokraten seiner eigenen Kreativität. Jede neue Seite, jeder neue Blogpost zieht einen Rattenschwanz an administrativen Aufgaben nach sich. Wenn man das nicht tut, bleibt der Beitrag ein einsamer Rufer in der Wüste. Man schreibt nicht mehr für die Freude am Schreiben, man schreibt für die Indexierung.</p>
<h2>Die Arroganz der Crawler</h2>
<p>Es gibt kaum etwas Frustrierenderes als die Wartezeit auf die Google-Bots. Diese digitalen Insekten krabbeln durch das Netz, indizieren Milliarden von Seiten und entscheiden über Erfolg oder Misserfolg. Man hat keinen Einfluss darauf, wann sie vorbeikommen. Man kann sie zwar über die Search Console einladen, ihnen quasi die Tür aufhalten und einen roten Teppich auslegen, aber am Ende kommen sie, wann sie wollen. Diese Ungewissheit ist Gift für jeden, der schnelle Ergebnisse sehen will. Man ändert eine Kleinigkeit, von der man überzeugt ist, dass sie den Durchbruch bringt, und dann starrt man tagelang auf einen unveränderten Suchschlitz.</p>
<p>In dieser Zeit beginnt man an sich selbst zu zweifeln. War das hreflang-Attribut wirklich korrekt? Habe ich vielleicht ein Anführungszeichen vergessen? Warum wird die englische Beschreibung immer noch angezeigt, obwohl ich die deutsche Seite priorisiert habe? Es ist ein psychologisches Spiel. Google ist der unsichtbare Schiedsrichter, der die Regeln während des Spiels ändert und einem nie genau sagt, was man falsch gemacht hat. Man bekommt nur vage Hinweise und muss den Rest durch Versuch und Irrtum herausfinden. Es ist eine Form der digitalen Knechtschaft, in die wir uns freiwillig begeben haben, weil wir die Sichtbarkeit brauchen wie die Luft zum Atmen.</p>
<p>Ich stehe da mit einer Website, die technisch gesehen einwandfrei ist, die aber immer noch gegen die Schatten meiner Namensvettern kämpft. Ich habe gelernt, dass IT-Dozent mein Anker ist und dass ich die englische Sprache mit Vorsicht genießen muss, wenn ich den deutschen Markt dominieren will. Es ist ein mühsamer Weg, geprägt von technischem Kleinkram und der ständigen Sorge um das Wohlwollen eines Algorithmus. Doch der Ehrgeiz ist geweckt. Wenn Google mich als Engländer sehen will, werde ich Google beweisen, dass ich der deutsche IT-Experte bin, den es sucht. Die Schlacht um Nico Hartmann hat gerade erst begonnen.</p>
<h2>Die Tyrannei der Backlinks oder Warum Qualität allein niemals reicht</h2>
<p>Nachdem ich die technischen Hürden der Mehrsprachigkeit und der Metadaten halbwegs umschifft hatte, stieß ich auf das nächste große Monster im SEO-Ozean: Die Autorität. Es reicht Google nämlich nicht, dass ich behaupte, ein kompetenter IT-Dozent zu sein. Die Suchmaschine will Beweise sehen. Im digitalen Zeitalter sind diese Beweise Backlinks. Ein Backlink ist im Grunde eine Empfehlung von einer anderen Website. Wenn eine renommierte IT-Seite auf mich verlinkt, denkt sich der Google-Algorithmus, dass dieser Nico Hartmann wohl doch kein Scharlatan ist. Also fing ich an, meine Strategie für das Reposting meiner Blogbeiträge auf englischsprachigen Plattformen wie <a href="https://medium.com/@getNi.Hartmann">Medium</a> oder <a href="https://dev.to/nicohartmann">Dev.to</a> zu verfeinern. Das Ziel war klar: Ich wollte die Reichweite dieser Giganten nutzen, um ein wenig von ihrem digitalen Glanz auf meine eigene kleine Domain umzuleiten.</p>
<p>Es ist eine seltsame Form der digitalen Prostitution. Man schreibt hochwertige Inhalte, verschenkt sie quasi an große Plattformen und hofft im Gegenzug auf einen kleinen, klickbaren Link, der den Crawler zurück nach Hause führt. Aber auch hier lauert die Komplexität. Es gibt no-follow und do-follow Links. Die einen sind für das Ranking so nützlich wie ein alkoholfreies Bier auf einer Hacker-Party, die anderen sind das digitale Gold. Natürlich vergeben die meisten großen Seiten standardmäßig nur die minderwertigen Links, um ihr eigenes Ranking nicht zu verwässern. Man kämpft also an vorderster Front um Anerkennung und bekommt oft nur Krümel zugeworfen. Dennoch ist dieser Prozess alternativlos, wenn man nicht ewig im Schatten der anderen Nico Hartmanns dieser Welt stehen will.</p>
<h2>Das Dilemma des Content-Recyclings</h2>
<p>Das Reposten auf englischen Seiten brachte mich zu einer weiteren schmerzhaften Erkenntnis. Man kann nicht einfach denselben Text eins zu eins kopieren. Suchmaschinen sind allergisch gegen Faulheit. Wer einfach nur kopiert, wird ignoriert. Ich musste also meine eigenen Texte für die englischen Plattformen umschreiben, anpassen und mit einem neuen Dreh versehen. Das Ganze sollte ja dazu dienen, meine Expertise als Softwareentwickler zu unterstreichen, aber am Ende verbrachte ich mehr Zeit mit dem Umformulieren von Sätzen als mit dem eigentlichen Programmieren. Es ist ein paradoxer Teufelskreis: Um als Experte für Softwareentwicklung wahrgenommen zu werden, muss man aufhören, Software zu entwickeln, und anfangen, ein Vollzeit-Werbetexter für sich selbst zu werden.</p>
<p>Besonders perfide ist dabei die psychologische Komponente. Man beobachtet die Statistiken. Man sieht, wie viele Leute den englischen Artikel gelesen haben, und hofft, dass wenigstens ein Bruchteil davon den Weg auf die ursprüngliche Portfolio-Seite findet. Doch die meisten Nutzer bleiben in ihrem Ökosystem. Sie lesen auf Medium, klatschen vielleicht kurz und ziehen weiter. Die Suchmaschine registriert zwar die Verbindung, aber der erhoffte massive Anstieg im Ranking bleibt oft ein leises Hintergrundrauschen. Man füttert die Bestie mit immer mehr Inhalten, in der Hoffnung, dass sie irgendwann satt ist und einem den Platz an der Sonne gewährt. Aber die Bestie Google hat niemals Feierabend.</p>
<h2>Die Wartezeit und die Gnade der Crawler</h2>
<p>Wenn man dann alle Backlinks gestreut und alle hreflang-Attribute zum zehnten Mal kontrolliert hat, beginnt die Phase der absoluten Machtlosigkeit. Man kann nichts mehr tun, außer zu warten. Das Internet ist ein riesiges Gedächtnis, das leider sehr langsam vergisst und noch langsamer lernt. Man prüft täglich die Search Console. Man schaut sich die Impressionen an, die Klicks, die durchschnittliche Position. Es ist wie das Beobachten von Gras beim Wachsen, nur dass das Gras manchmal mitten in der Nacht beschließt, wieder in den Boden zurückzukehren.</p>
<p>Einmal tauchte ich plötzlich für einen völlig irrelevanten Suchbegriff auf Platz eins auf, nur weil ich ihn einmal in einem Nebensatz erwähnt hatte. Das ist die Ironie von SEO. Man optimiert wie ein Besessener auf IT-Dozent und Softwareentwicklung, und Google entscheidet sich stattdessen, einen für einen Tippfehler in einem Code-Beispiel zu ranken. Man fühlt sich von der künstlichen Intelligenz nicht verstanden, sondern eher veralbert. Die Crawler sind wie Beamte in einer verstaubten Behörde: Sie arbeiten nach Regeln, die vor Jahren festgelegt wurden, und haben kein Interesse an deiner persönlichen Dringlichkeit. Wenn sie entscheiden, dass deine englische Beschreibung wichtiger ist als deine deutsche, dann bleibt das erst einmal so, bis die Akte in ein paar Wochen wieder oben auf dem Stapel liegt.</p>
<h2>Die Nische als Rettungsanker</h2>
<p>In diesem Chaos ist die Konzentration auf die Nische der einzige Weg, um nicht wahnsinnig zu werden. Ich habe mich damit abgefunden, dass ich niemals für das Wort Softwareentwicklung allein auf Platz eins stehen werde. Da kämpfen Konzerne mit Millionenbudgets und ganzen Heerscharen von SEO-Spezialisten. Aber für Nico Hartmann IT-Dozent? Das ist mein Spielfeld. Hier kann ich gewinnen, wenn ich hartnäckig bleibe. Die Beschränkung ist hier keine Schwäche, sondern eine notwendige Überlebensstrategie. Es ist besser, der König eines kleinen Dorfes zu sein, als ein Bettler in einer Metropole.</p>
<p>Dennoch bleibt dieser bittere Beigeschmack, dass man seinen digitalen Auftritt nicht für Menschen optimiert, sondern für eine mathematische Formel. Jedes Mal, wenn ich das Wort Ausbilder weglasse, nur um die Keyword-Dichte nicht zu gefährden, fühlt es sich wie ein kleiner Verrat an meiner tatsächlichen Arbeit an. Wir bauen Websites für Maschinen, die so tun, als würden sie für Menschen entscheiden. Es ist eine Simulation von Relevanz. Wenn ich heute einen Text schreibe, frage ich mich nicht mehr zuerst, ob er für meine Schüler nützlich ist, sondern ob er genug semantische Verknüpfungen bietet, um die semantische Suche von Google zu befriedigen. Wir passen unser Denken der Struktur der Suchmaschine an.</p>
<h2>Der Ausblick in den Wahnsinn</h2>
<p>Was bleibt am Ende dieses Rants? SEO ist ein notwendiges Übel, eine moderne Form des Ablasshandels. Wir zahlen nicht mit Geld, sondern mit Zeit, Nerven und unserer sprachlichen Integrität. Ich werde weiterhin hreflang-Tags setzen, Backlinks jagen und meine Metadaten polieren. Nicht, weil es Spaß macht, sondern weil die Alternative die digitale Unsichtbarkeit ist. Und in einer Branche, in der die Online-Präsenz die neue Visitenkarte ist, kann man es sich schlicht nicht leisten, unsichtbar zu sein.</p>
<p>Vielleicht wird Google in ein paar Wochen ein Einsehen haben. Vielleicht erkennt der Crawler, dass die deutsche Seite für deutsche Suchanfragen tatsächlich die bessere Wahl ist. Bis dahin werde ich weiterhin hasserfüllte Blicke auf meinen Monitor werfen, wenn die englische Beschreibung mal wieder ganz oben steht. SEO ist ein Kampf, den man nie ganz gewinnt, man kann ihn nur so lange führen, bis man entweder oben steht oder die Lust verliert. Und da ich ein sturer IT-Dozent bin, werde ich wohl so lange weitermachen, bis Google meinen Namen endlich so buchstabiert, wie ich es will.</p>
<blockquote>
<p>SEO ist die Kunst, sich für Roboter zu verkleiden, damit Menschen einen finden.</p>
</blockquote>
<blockquote>
<p>Mehrsprachigkeit ist ein technischer Albtraum, der mit Vorliebe die falschen Suchergebnisse liefert.</p>
</blockquote>
<blockquote>
<p>Backlinks sind die Währung des Internets, aber der Wechselkurs ist gnadenlos.</p>
</blockquote>
<blockquote>
<p>Die eigene Identität muss der Nische weichen, wenn man im Ranking überleben will.</p>
</blockquote>
<p>Manchmal frage ich mich, ob die anderen Nico Hartmanns da draußen den gleichen Kampf führen. Ob der Fußballer auch frustriert ist, weil mein Blogpost über Softwareentwicklung über seinem letzten Spielbericht steht. Wenn ja, dann ist das zumindest ein kleiner Trost. In der Arena der Suchergebnisse gibt es keine Freunde, nur Konkurrenten um die Aufmerksamkeit eines Algorithmus, der keine Gnade kennt. Am Ende des Tages sitze ich wieder vor dem Rechner, passe die nächste Beschreibung an und hoffe auf das Beste. Denn wer nicht optimiert, der existiert nicht. Und existieren möchte ich dann doch ganz gerne, zumindest auf Seite eins.</p>
]]></description>
      <content:encoded><![CDATA[<p>Es gibt diesen einen Moment, nachdem man die letzte Zeile Code geschrieben, das letzte Stylesheet optimiert und die Website endlich auf den Server geladen hat. Man lehnt sich zurück, nippt an seinem Kaffee und verspürt diesen kindlichen Drang, seinen eigenen Namen bei Google einzutippen. Nicht, weil man nicht wüsste, wer man ist, sondern weil man Bestätigung sucht. In meinem Fall war das Ergebnis ernüchternd. Nico Hartmann ist kein seltener Name. Es gibt Nico Hartmanns, die Fußball spielen, Nico Hartmanns, die in der Lokalpolitik tätig sind, und wahrscheinlich hunderte Nico Hartmanns, die einfach nur existieren, ohne das Internet mit ihrer Präsenz zu behelligen. Aber da stand ich nun, irgendwo auf Seite fünf oder sechs, begraben unter einer Lawine aus Namensvettern. In diesem Augenblick wurde mir klar, dass ich nicht nur eine Website gebaut hatte, sondern ein digitales Denkmal, das im tiefsten Wald steht, wo es niemand sieht. Das Bedürfnis, im Ranking nach oben zu rutschen, war plötzlich nicht mehr nur ein logischer nächster Schritt, sondern eine Frage der Ehre.</p>
<p>SEO ist das Zauberwort, das einem in jedem Marketing-Blog um die Ohren gehauen wird. Search Engine Optimization. Es klingt nach einer exakten Wissenschaft, fast schon nach Alchemie, aber eigentlich ist es die einzige Maßnahme, mit der ich Google und Co. manipulieren kann. Man versucht, ein System zu überlisten, das klüger ist als man selbst, indem man ihm genau das füttert, was es hören will. Ich fing also an, jede einzelne Unterseite mit korrekten Titeln und Beschreibungen zu versehen. Jedes Meta-Tag wurde poliert, jede Headline wurde drei Mal überlegt. Man fühlt sich dabei ein bisschen wie ein Betrüger, der versucht, sich in eine exklusive Party einzuschleichen. Das Ziel ist klar: Den Suchmaschinen muss es gefallen. Es geht nicht mehr darum, was der menschliche Leser denkt, sondern darum, was der Algorithmus in seinen dunklen Rechenzentren ausspuckt.</p>
<h2>Die Kapitulation der Sprache vor der Statistik</h2>
<p>Das Ganze hat eine erschreckende Ähnlichkeit mit LinkedIn. Wir alle kennen diese Plattform, auf der man sich gegenseitig auf die Schulter klopft und seinen Lebenslauf so weit aufbläst, bis er fast platzt. SEO ist im Grunde nichts anderes als das eigene Ego digital zu streicheln. Der einzige Unterschied ist die Zielgruppe. Anstatt Recruiter oder potenzielle Geschäftspartner möchte ich Roboter beeindrucken. Ich schreibe Texte für Wesen ohne Bewusstsein, die Wörter zählen, Keyword-Dichten berechnen und Ladezeiten in Millisekunden messen. Es ist eine bizarre Form der modernen Kommunikation, bei der der Mensch nur noch die Rolle des Lieferanten spielt, während der Bot entscheidet, ob man relevant ist oder nicht. Wenn der Bot lächelt, steigt das Ranking. Wenn der Bot die Stirn runzelt, bleibt man in der digitalen Bedeutungslosigkeit verschwunden.</p>
<p>Theoretisch klingt SEO recht einfach. Man nimmt ein paar Keywords, baut sie in den Text ein und wartet darauf, dass die Welt einen entdeckt. Doch die Realität holt einen schneller ein, als man Keyword Research buchstabieren kann. Es wird verdammt schnell sehr komplex. Das liegt vor allem daran, dass unterschiedliche Suchmaschinen unterschiedliche Voraussetzungen haben. Was Google liebt, ignoriert Bing vielleicht, und DuckDuckGo hat sowieso seine eigenen Regeln. Zudem muss man einsehen, dass man nicht für alles gefunden werden kann. Man kann nicht der König des Internets sein, wenn man keine Armee hat. Also muss man sich eine entsprechende Nische heraussuchen. Für mich war das schnell klar: IT-Dozent und Softwareentwicklung. Das sind die Begriffe, mit denen ich mein Brot verdiene und unter denen ich gefunden werden will.</p>
<p>Hier beginnt jedoch das strategische Dilemma. Ich bin auch Ausbilder, und eigentlich hätte ich dieses Wort liebend gerne noch mit im Titel gehabt. Es beschreibt einen Teil meiner Identität und meiner täglichen Arbeit. Aber die harte Realität der Suchmaschinenoptimierung sagt Nein. Würde ich noch mehr Stichwörter in den Ring werfen, würde ich meinen Fokus verwässern. Jedes zusätzliche Wort ist ein potenzieller Störfaktor, der die Relevanz der Hauptbegriffe mindert. Es ist ein ständiges Abwägen zwischen dem, was man eigentlich sagen will, und dem, was die Suchmaschine noch als fokussiert genug betrachtet. SEO zwingt einen zur Reduktion. Man verstümmelt seine eigene Beschreibung, nur um in den Augen eines Algorithmus nicht zu komplex zu wirken. Es ist die Kapitulation der Sprache vor der Statistik.</p>
<h2>Der Fluch der Internationalität</h2>
<p>Als wäre das nicht schon genug Arbeit, kam dann noch das Problem der Mehrsprachigkeit dazu. Ich habe mich bewusst für Multilingualität in Deutsch und Englisch entschieden. Der Gedanke dahinter war simpel und vielleicht ein bisschen naiv: Ich wollte meine Blogbeiträge einfach auch auf englischsprachigen Seiten reposten können. Internationalität klingt ja auch immer gut im Portfolio. Mein Plan war es, damit Backlinks zu generieren, die wiederum mein Suchranking in die Höhe treiben. Ein Backlink von einer renommierten englischen Seite ist wie eine Goldmedaille für die eigene Domain. So weit, so logisch. Doch die Umsetzung verwandelte mein sauberes Website-Konzept in ein bürokratisches Monster aus Verknüpfungen und Sprach-Tags.</p>
<p>Die Überraschung kam, als ich nach einiger Zeit tatsächlich nach Nico Hartmann IT-Dozent suchte. Ein kleiner Triumph keimte in mir auf, als ich meinen Namen tatsächlich an erster Stelle sah. Doch die Freude hielt nur Sekunden an. Google präsentierte mich zwar ganz oben, aber die Beschreibung war auf Englisch. Da sitzt man in Deutschland, sucht nach einem deutschen Begriff und bekommt ein englisches Snippet serviert. Das ist der Moment, in dem man die Tastatur am liebsten aus dem Fenster werfen würde. Google hat zwar verstanden, dass ich wichtig bin, aber nicht, welche Sprache für diesen speziellen Kontext angemessen ist. Der Algorithmus hat gewürfelt und ich habe verloren.</p>
<p>Also hieß es: Zurück ans Reißbrett. Ich musste hreflang-Attribute setzen. Für den Laien klingt das nach technischem Kleinkram, für den Website-Betreiber ist es der Versuch, der Suchmaschine eine Landkarte zu zeichnen, die sie gefälligst nicht ignorieren soll. Man teilt Google explizit mit, welche Seite für welche Region und welche Sprache gedacht ist. Und dann beginnt das große Warten. SEO ist kein Sprint, es ist ein Marathon durch den Schlamm. Man wartet ein bis zwei Wochen, bis die gnädigen Crawler von Google es endlich wagen, die Website neu zu betrachten. Man fühlt sich wie ein Bittsteller vor dem Thron eines launischen Königs, der hofft, dass seine Korrekturen diesmal gnädig aufgenommen werden.</p>
<p>Dieser ganze Prozess ist eine Lektion in Demut und Frustration. Man investiert Stunden in die Optimierung, nur um festzustellen, dass man von den Launen eines Konzerns abhängig ist, der seine Algorithmen schneller ändert, als man seine eigene Beschreibung anpassen kann. Es ist ein permanenter Kampf gegen Windmühlen, bei dem die Windmühlen aus Serverfarmen bestehen und die Lanze ein Texteditor ist. Man optimiert nicht für den Nutzer, man optimiert für die Maschine, in der Hoffnung, dass am Ende doch noch ein Mensch den Weg auf die Seite findet. Es ist ein absurdes Theater, in dem wir alle unsere Rollen spielen, nur um ein Stückchen Sichtbarkeit in einem Ozean aus Informationen zu ergattern.</p>
<p>Und während ich hier sitze und auf den nächsten Crawl warte, frage ich mich, ob das alles wirklich den Aufwand wert ist. Die Antwort ist ein frustriertes Ja, denn in der heutigen Welt existiert man nicht, wenn man nicht auf der ersten Seite steht. Man beugt sich dem Diktat der Suchmaschine, passt seine Sprache an, streicht Wörter, die man eigentlich mag, und setzt kryptische Attribute in den Header. Alles für den einen Moment, in dem die Suche nach dem eigenen Namen genau das Ergebnis liefert, das man sich so mühsam erkauft hat. Es ist ein digitaler Egotrip, der einen mehr Nerven kostet als jede Softwareentwicklung, aber am Ende siegt die Eitelkeit über die Vernunft.</p>
<h2>Die Anatomie der Keywords</h2>
<p>Wenn man tiefer in diesen Sumpf eintaucht, merkt man schnell, dass Keywords wie kleine Haustiere sind. Man muss sie pflegen, sie füttern und ihnen genau den richtigen Platz zuweisen. Wählt man die falschen, bellen sie einen an oder laufen weg. In meinem Fall war die Entscheidung für IT-Dozent und Softwareentwicklung eine rein strategische Wahl. Ich hätte auch Informatik-Lehrer oder Code-Coach nehmen können, aber wer sucht danach? Man verbringt Stunden mit Tools, die einem sagen, wie oft ein Begriff gesucht wird, nur um dann festzustellen, dass die Konkurrenz bei diesen Begriffen so gigantisch ist, dass man als Einzelkämpfer kaum eine Chance hat. Also sucht man nach der Lücke, nach dem goldenen Mittelweg zwischen Relevanz und Machbarkeit.</p>
<p>Es ist dieses ständige Abwägen zwischen dem Ego und dem Algorithmus. Man möchte sich vielleicht als „Visionär für digitale Transformation“ bezeichnen, doch das nützt wenig, wenn der Markt schlicht nach einem „Python Kurs“ verlangt. Diese Diskrepanz zwingt einen dazu, die eigene Identität in mundgerechte Häppchen zu zerlegen, die von Suchmaschinen leicht verdaut werden können. Dabei ist die Keyword-Recherche oft weniger eine exakte Wissenschaft als vielmehr ein psychologisches Pokerspiel gegen die Intention der Nutzer. Man analysiert Long-Tail-Keywords und Nischenbegriffe, in der Hoffnung, dass die spezifische Kombination aus Fachwissen und Standort genau den Nerv derer trifft, die nicht das erstbeste Massenangebot anklicken. Am Ende des Tages bleibt die Erkenntnis, dass Sichtbarkeit nicht durch die lautesten Begriffe entsteht, sondern durch die klügste Positionierung im Schatten der Giganten.</p>
<h2>Der Fluch der Technik hinter der Sprache</h2>
<p>Die Entscheidung für die Mehrsprachigkeit war rückblickend betrachtet wie der Versuch, zwei Flugzeuge gleichzeitig zu fliegen. Man denkt, man schreibt einfach alles doppelt und fertig ist die Laube. Aber Google sieht das anders. Für eine Suchmaschine ist doppelter Inhalt, der sogenannte Duplicate Content, ein rotes Tuch. Wenn man Pech hat, straft der Algorithmus einen dafür ab, dass man versucht, auf zwei Hochzeiten gleichzeitig zu tanzen. Die Lösung sind eben jene hreflang-Attribute, die ich bereits erwähnt habe. Diese kleinen Code-Schnipsel sind die diplomatischen Vertreter meiner Website. Sie sagen Google: Hey, das hier ist die deutsche Version für die Deutschen und das da ist die englische Version für den Rest der Welt. Bitte wirf sie nicht in einen Topf.</p>
<p>Es ist faszinierend und erschreckend zugleich, wie viel Zeit man mit technischem Overhead verbringt, der absolut nichts mit dem eigentlichen Inhalt zu tun hat. Ich möchte über Softwareentwicklung schreiben, über Didaktik in der IT, über moderne Technologien. Stattdessen verbringe ich meine Abende damit, XML-Sitemaps zu validieren und zu prüfen, ob meine Canonical-Tags richtig gesetzt sind. Man wird zum Bürokraten seiner eigenen Kreativität. Jede neue Seite, jeder neue Blogpost zieht einen Rattenschwanz an administrativen Aufgaben nach sich. Wenn man das nicht tut, bleibt der Beitrag ein einsamer Rufer in der Wüste. Man schreibt nicht mehr für die Freude am Schreiben, man schreibt für die Indexierung.</p>
<h2>Die Arroganz der Crawler</h2>
<p>Es gibt kaum etwas Frustrierenderes als die Wartezeit auf die Google-Bots. Diese digitalen Insekten krabbeln durch das Netz, indizieren Milliarden von Seiten und entscheiden über Erfolg oder Misserfolg. Man hat keinen Einfluss darauf, wann sie vorbeikommen. Man kann sie zwar über die Search Console einladen, ihnen quasi die Tür aufhalten und einen roten Teppich auslegen, aber am Ende kommen sie, wann sie wollen. Diese Ungewissheit ist Gift für jeden, der schnelle Ergebnisse sehen will. Man ändert eine Kleinigkeit, von der man überzeugt ist, dass sie den Durchbruch bringt, und dann starrt man tagelang auf einen unveränderten Suchschlitz.</p>
<p>In dieser Zeit beginnt man an sich selbst zu zweifeln. War das hreflang-Attribut wirklich korrekt? Habe ich vielleicht ein Anführungszeichen vergessen? Warum wird die englische Beschreibung immer noch angezeigt, obwohl ich die deutsche Seite priorisiert habe? Es ist ein psychologisches Spiel. Google ist der unsichtbare Schiedsrichter, der die Regeln während des Spiels ändert und einem nie genau sagt, was man falsch gemacht hat. Man bekommt nur vage Hinweise und muss den Rest durch Versuch und Irrtum herausfinden. Es ist eine Form der digitalen Knechtschaft, in die wir uns freiwillig begeben haben, weil wir die Sichtbarkeit brauchen wie die Luft zum Atmen.</p>
<p>Ich stehe da mit einer Website, die technisch gesehen einwandfrei ist, die aber immer noch gegen die Schatten meiner Namensvettern kämpft. Ich habe gelernt, dass IT-Dozent mein Anker ist und dass ich die englische Sprache mit Vorsicht genießen muss, wenn ich den deutschen Markt dominieren will. Es ist ein mühsamer Weg, geprägt von technischem Kleinkram und der ständigen Sorge um das Wohlwollen eines Algorithmus. Doch der Ehrgeiz ist geweckt. Wenn Google mich als Engländer sehen will, werde ich Google beweisen, dass ich der deutsche IT-Experte bin, den es sucht. Die Schlacht um Nico Hartmann hat gerade erst begonnen.</p>
<h2>Die Tyrannei der Backlinks oder Warum Qualität allein niemals reicht</h2>
<p>Nachdem ich die technischen Hürden der Mehrsprachigkeit und der Metadaten halbwegs umschifft hatte, stieß ich auf das nächste große Monster im SEO-Ozean: Die Autorität. Es reicht Google nämlich nicht, dass ich behaupte, ein kompetenter IT-Dozent zu sein. Die Suchmaschine will Beweise sehen. Im digitalen Zeitalter sind diese Beweise Backlinks. Ein Backlink ist im Grunde eine Empfehlung von einer anderen Website. Wenn eine renommierte IT-Seite auf mich verlinkt, denkt sich der Google-Algorithmus, dass dieser Nico Hartmann wohl doch kein Scharlatan ist. Also fing ich an, meine Strategie für das Reposting meiner Blogbeiträge auf englischsprachigen Plattformen wie <a href="https://medium.com/@getNi.Hartmann">Medium</a> oder <a href="https://dev.to/nicohartmann">Dev.to</a> zu verfeinern. Das Ziel war klar: Ich wollte die Reichweite dieser Giganten nutzen, um ein wenig von ihrem digitalen Glanz auf meine eigene kleine Domain umzuleiten.</p>
<p>Es ist eine seltsame Form der digitalen Prostitution. Man schreibt hochwertige Inhalte, verschenkt sie quasi an große Plattformen und hofft im Gegenzug auf einen kleinen, klickbaren Link, der den Crawler zurück nach Hause führt. Aber auch hier lauert die Komplexität. Es gibt no-follow und do-follow Links. Die einen sind für das Ranking so nützlich wie ein alkoholfreies Bier auf einer Hacker-Party, die anderen sind das digitale Gold. Natürlich vergeben die meisten großen Seiten standardmäßig nur die minderwertigen Links, um ihr eigenes Ranking nicht zu verwässern. Man kämpft also an vorderster Front um Anerkennung und bekommt oft nur Krümel zugeworfen. Dennoch ist dieser Prozess alternativlos, wenn man nicht ewig im Schatten der anderen Nico Hartmanns dieser Welt stehen will.</p>
<h2>Das Dilemma des Content-Recyclings</h2>
<p>Das Reposten auf englischen Seiten brachte mich zu einer weiteren schmerzhaften Erkenntnis. Man kann nicht einfach denselben Text eins zu eins kopieren. Suchmaschinen sind allergisch gegen Faulheit. Wer einfach nur kopiert, wird ignoriert. Ich musste also meine eigenen Texte für die englischen Plattformen umschreiben, anpassen und mit einem neuen Dreh versehen. Das Ganze sollte ja dazu dienen, meine Expertise als Softwareentwickler zu unterstreichen, aber am Ende verbrachte ich mehr Zeit mit dem Umformulieren von Sätzen als mit dem eigentlichen Programmieren. Es ist ein paradoxer Teufelskreis: Um als Experte für Softwareentwicklung wahrgenommen zu werden, muss man aufhören, Software zu entwickeln, und anfangen, ein Vollzeit-Werbetexter für sich selbst zu werden.</p>
<p>Besonders perfide ist dabei die psychologische Komponente. Man beobachtet die Statistiken. Man sieht, wie viele Leute den englischen Artikel gelesen haben, und hofft, dass wenigstens ein Bruchteil davon den Weg auf die ursprüngliche Portfolio-Seite findet. Doch die meisten Nutzer bleiben in ihrem Ökosystem. Sie lesen auf Medium, klatschen vielleicht kurz und ziehen weiter. Die Suchmaschine registriert zwar die Verbindung, aber der erhoffte massive Anstieg im Ranking bleibt oft ein leises Hintergrundrauschen. Man füttert die Bestie mit immer mehr Inhalten, in der Hoffnung, dass sie irgendwann satt ist und einem den Platz an der Sonne gewährt. Aber die Bestie Google hat niemals Feierabend.</p>
<h2>Die Wartezeit und die Gnade der Crawler</h2>
<p>Wenn man dann alle Backlinks gestreut und alle hreflang-Attribute zum zehnten Mal kontrolliert hat, beginnt die Phase der absoluten Machtlosigkeit. Man kann nichts mehr tun, außer zu warten. Das Internet ist ein riesiges Gedächtnis, das leider sehr langsam vergisst und noch langsamer lernt. Man prüft täglich die Search Console. Man schaut sich die Impressionen an, die Klicks, die durchschnittliche Position. Es ist wie das Beobachten von Gras beim Wachsen, nur dass das Gras manchmal mitten in der Nacht beschließt, wieder in den Boden zurückzukehren.</p>
<p>Einmal tauchte ich plötzlich für einen völlig irrelevanten Suchbegriff auf Platz eins auf, nur weil ich ihn einmal in einem Nebensatz erwähnt hatte. Das ist die Ironie von SEO. Man optimiert wie ein Besessener auf IT-Dozent und Softwareentwicklung, und Google entscheidet sich stattdessen, einen für einen Tippfehler in einem Code-Beispiel zu ranken. Man fühlt sich von der künstlichen Intelligenz nicht verstanden, sondern eher veralbert. Die Crawler sind wie Beamte in einer verstaubten Behörde: Sie arbeiten nach Regeln, die vor Jahren festgelegt wurden, und haben kein Interesse an deiner persönlichen Dringlichkeit. Wenn sie entscheiden, dass deine englische Beschreibung wichtiger ist als deine deutsche, dann bleibt das erst einmal so, bis die Akte in ein paar Wochen wieder oben auf dem Stapel liegt.</p>
<h2>Die Nische als Rettungsanker</h2>
<p>In diesem Chaos ist die Konzentration auf die Nische der einzige Weg, um nicht wahnsinnig zu werden. Ich habe mich damit abgefunden, dass ich niemals für das Wort Softwareentwicklung allein auf Platz eins stehen werde. Da kämpfen Konzerne mit Millionenbudgets und ganzen Heerscharen von SEO-Spezialisten. Aber für Nico Hartmann IT-Dozent? Das ist mein Spielfeld. Hier kann ich gewinnen, wenn ich hartnäckig bleibe. Die Beschränkung ist hier keine Schwäche, sondern eine notwendige Überlebensstrategie. Es ist besser, der König eines kleinen Dorfes zu sein, als ein Bettler in einer Metropole.</p>
<p>Dennoch bleibt dieser bittere Beigeschmack, dass man seinen digitalen Auftritt nicht für Menschen optimiert, sondern für eine mathematische Formel. Jedes Mal, wenn ich das Wort Ausbilder weglasse, nur um die Keyword-Dichte nicht zu gefährden, fühlt es sich wie ein kleiner Verrat an meiner tatsächlichen Arbeit an. Wir bauen Websites für Maschinen, die so tun, als würden sie für Menschen entscheiden. Es ist eine Simulation von Relevanz. Wenn ich heute einen Text schreibe, frage ich mich nicht mehr zuerst, ob er für meine Schüler nützlich ist, sondern ob er genug semantische Verknüpfungen bietet, um die semantische Suche von Google zu befriedigen. Wir passen unser Denken der Struktur der Suchmaschine an.</p>
<h2>Der Ausblick in den Wahnsinn</h2>
<p>Was bleibt am Ende dieses Rants? SEO ist ein notwendiges Übel, eine moderne Form des Ablasshandels. Wir zahlen nicht mit Geld, sondern mit Zeit, Nerven und unserer sprachlichen Integrität. Ich werde weiterhin hreflang-Tags setzen, Backlinks jagen und meine Metadaten polieren. Nicht, weil es Spaß macht, sondern weil die Alternative die digitale Unsichtbarkeit ist. Und in einer Branche, in der die Online-Präsenz die neue Visitenkarte ist, kann man es sich schlicht nicht leisten, unsichtbar zu sein.</p>
<p>Vielleicht wird Google in ein paar Wochen ein Einsehen haben. Vielleicht erkennt der Crawler, dass die deutsche Seite für deutsche Suchanfragen tatsächlich die bessere Wahl ist. Bis dahin werde ich weiterhin hasserfüllte Blicke auf meinen Monitor werfen, wenn die englische Beschreibung mal wieder ganz oben steht. SEO ist ein Kampf, den man nie ganz gewinnt, man kann ihn nur so lange führen, bis man entweder oben steht oder die Lust verliert. Und da ich ein sturer IT-Dozent bin, werde ich wohl so lange weitermachen, bis Google meinen Namen endlich so buchstabiert, wie ich es will.</p>
<blockquote>
<p>SEO ist die Kunst, sich für Roboter zu verkleiden, damit Menschen einen finden.</p>
</blockquote>
<blockquote>
<p>Mehrsprachigkeit ist ein technischer Albtraum, der mit Vorliebe die falschen Suchergebnisse liefert.</p>
</blockquote>
<blockquote>
<p>Backlinks sind die Währung des Internets, aber der Wechselkurs ist gnadenlos.</p>
</blockquote>
<blockquote>
<p>Die eigene Identität muss der Nische weichen, wenn man im Ranking überleben will.</p>
</blockquote>
<p>Manchmal frage ich mich, ob die anderen Nico Hartmanns da draußen den gleichen Kampf führen. Ob der Fußballer auch frustriert ist, weil mein Blogpost über Softwareentwicklung über seinem letzten Spielbericht steht. Wenn ja, dann ist das zumindest ein kleiner Trost. In der Arena der Suchergebnisse gibt es keine Freunde, nur Konkurrenten um die Aufmerksamkeit eines Algorithmus, der keine Gnade kennt. Am Ende des Tages sitze ich wieder vor dem Rechner, passe die nächste Beschreibung an und hoffe auf das Beste. Denn wer nicht optimiert, der existiert nicht. Und existieren möchte ich dann doch ganz gerne, zumindest auf Seite eins.</p>
]]></content:encoded>
    </item>
    <item>
      <title>[Fundstück] Das baldige Ende von OpenSource</title>
      <link>https://malus.sh/blog</link>
      <guid isPermaLink="false">https://malus.sh/blog#1778068800000</guid>
      <pubDate>Wed, 06 May 2026 12:00:00 GMT</pubDate>
      <category>Fundstücke</category>
      <description><![CDATA[<p><em>Mike Nolan</em></p><p>Was passiert, wenn KI die Spielregeln von Open Source bricht? (Englisch)</p><p><a href="https://malus.sh/blog">https://malus.sh/blog</a></p>]]></description>
      <content:encoded><![CDATA[<p><em>Mike Nolan</em></p><p>Was passiert, wenn KI die Spielregeln von Open Source bricht? (Englisch)</p><p><a href="https://malus.sh/blog">https://malus.sh/blog</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>
