Classic Trek mit ein paar moralischen Rissen

Mit „300th Night“ biegt Starfleet Academy auf die Zielgerade seiner ersten Staffel ein. Es ist eine dieser klassischen vorletzten Folgen, in denen sich plötzlich viele Fäden zusammenziehen und man merkt, wie vieles aus den vorherigen Episoden auf einmal zusammenpasst.

Interessant ist dabei vor allem, wie sehr die Episode auf vertraute Star-Trek-Motive setzt. Caleb stiehlt ein Shuttle, ein Captain missachtet indirekt Befehle, eine kleine Crew fliegt hinterher und am Ende hängt alles an einem einzigen Schiff. Das sind Tropen, die so alt sind wie das Franchise selbst. Und doch wirkt es hier nicht wie bloße Nostalgie: Kirsten Beyers Drehbuch versucht gar nicht erst, diese Muster zu verstecken, die Figuren wissen selbst ziemlich genau, was hier gerade passiert. Dadurch erspart sich die Episode viele der üblichen Diskussionen über Befehle, Disziplinarmaßnahmen und mögliche Kriegsgerichte, die ohnehin nie wirklich Konsequenzen haben.

Caleb zwischen zwei Familien

Im Zentrum steht dabei weiterhin Caleb Mir. Sein gesamter Charakter wird seit Beginn der Staffel von der Suche nach seiner Mutter bestimmt, mal mehr, mal weniger im Fokus der Drehbücher. Er ordnet anscheinend immer noch alles diesem Ziel unter. Beziehungen, Freundschaften, sogar seine eigene Zukunft in der Sternenflotte.

Das ist auch der Grund, warum seine Reaktion beim klingonischen Ritual von Jay-Den für mich zunächst etwas irritierend wirkte. Eigentlich ist Caleb im Laufe der Staffel gewachsen. Die Dynamik mit Jay-Den fühlt sich längst wie eine Art Brüderverhältnis an. Umso seltsamer wirkt es, dass er ausgerechnet in diesem Moment wieder in dieses alte Muster zurückfällt und sich entzieht.

Man spürt ziemlich deutlich, dass diese Szene dramaturgisch vorbereitet, was später mit seiner Mutter passiert. Genau dadurch wirkt sie etwas konstruiert. Caleb ist zu diesem Zeitpunkt eigentlich schon weiter. Trotzdem zwingt ihn das Trauma seiner Kindheit und Kirsten Beyer zurück in diese alte Rolle.

Gerade darin liegt aber auch die Stärke der Episode. Caleb ist sich seiner eigenen Haltung nicht einmal vollständig sicher. Er weiß, dass er inzwischen eine neue Familie gefunden hat. Gleichzeitig zwingt er sich selbst dazu, seine Mutter über alles andere zu stellen. Als wäre er ihr das schuldig.

Eine Begegnung mit Emotion

Das Wiedersehen zwischen Caleb und seiner Mutter funktioniert genau deshalb so gut, weil die Serie hier Raum für Emotion lässt.

Nach sechzehn Jahren stehen sich zwei Menschen gegenüber, die beide nicht mehr dieselben sind. Man merkt Caleb an, wie sehr er diesen Moment idealisiert hat. Und man merkt Anisha sofort an, dass sie längst gelernt hat, in einer Welt zu überleben, in der Vertrauen ein Luxus ist.

Die Szene lebt weniger von großen Dialogen als von kleinen Momenten. Von der Mischung aus Erleichterung, Skepsis und der vorsichtigen Erkenntnis, dass da immer noch eine Verbindung existiert. Diese emotionale Ebene gehört zu den Momenten, in denen Starfleet Academy zeigt, dass die Serie ihre Figuren wirklich versteht.

Ein Universum voller Tropen

Parallel dazu arbeitet die Folge bewusst mit klassischen Star-Trek-Versatzstücken.

Der Shuttle-Diebstahl gehört quasi zum Pflichtprogramm des Franchise. Dass Sam, Genesis und der unglückliche Darem noch mit hineinstolpern, ist offensichtlich konstruiert. Gleichzeitig ist die Szene so charmant inszeniert, dass man ihr das gerne verzeiht. Die Dynamik zwischen den Figuren funktioniert einfach.

Auch der Planet Ukeck hat für mich genau das richtige Gefühl erzeugt. Eine schmutzige, halb gesetzlose Welt am Rand des Föderationsraums, voller bekannter und unbekannter Spezies. Obwohl vieles vor der AR-Wall entstanden ist, wirkt der Ort erstaunlich glaubwürdig. Genau so sehen diese grauen Zonen des Star-Trek-Universums in meiner Vorstellung aus.

Und dann ist da natürlich die Athena.

Dass Ake den Kadetten hinterherfliegt, gehört zu den Momenten, in denen die Serie auf Tradition setzt. Es ist diese Art von Entscheidung, die man früher bei anderen Starfleet-Captains im Kino der im Fernsehen gesehen hat. Der Unterschied liegt diesmal darin, dass kein „Badmiral“ auftaucht, um künstlich Konflikt zu erzeugen. Admiral Vance weiß genau, was Ake tun wird. Und er lässt es geschehen.

Die moralische Schieflage der Föderation

Das eigentliche Problem der Folge ist jedoch eine ganz andere Enthüllung.

Die Föderation hat am Omega-Molekül geforscht.

Wer sich an Star Trek: Voyager erinnert, weiß, was das bedeutet. Omega ist kein gewöhnliches Partikel. Seine Zerstörung kann den Subraum dauerhaft beschädigen und Warp-Reisen unmöglich machen. In der Logik des Star-Trek-Universums gehört es zu den gefährlichsten Phänomenen überhaupt.

Dass die Föderation nicht nur daran forscht, sondern offenbar sogar eine verbesserte Variante namens Omega-47 (ha! 47!) entwickelt hat, wirft unangenehme Fragen auf. Natürlich kann man argumentieren, dass wissenschaftliche Forschung auch bei gefährlichen Themen notwendig ist. Trotzdem wirkt es moralisch zweifelhaft, wenn ausgerechnet die Organisation, die sich selbst als moralisches Zentrum der Galaxis versteht, mit einer potenziellen Massenvernichtungswaffe experimentiert.

Und wenn ich versuche, es positiv zu beschreiben: Die Föderation ist nicht mehr die makellose Utopie früherer Jahrzehnte. Sie ist eine politische Struktur mit eigenen Widersprüchen und moralischen Grauzonen.

„300th Night“ streift dieses Thema nur am Rande. Aber allein die Tatsache, dass Omega-47 existiert, verschiebt das moralische Fundament der Welt ein Stück weit. Die Föderation wirkt dadurch weniger wie ein idealistisches Projekt und mehr wie eine Zivilisation, die in einem gefährlichen Universum versucht mitzuhalten.

Das kann spannend sein. Aber es fühlt sich so an, als ob es an einem der Grundpfeiler von Star Trek kratzt.

Problematisch wird es erst im letzten Teil der Episode.

Der Plan der Venari Ral ist als Idee zunächst interessant: Die Föderation wird isoliert, abgeschnitten vom Rest der Galaxis. Ein Konflikt, der die Serie in eine völlig neue Situation bringen könnte.

Leider wird diese Idee so extrem umgesetzt, dass sie schwer ernst zu nehmen ist. Omega-Minen, die ganze Sternensysteme beeinflussen und den Föderationsraum praktisch einkesseln, bewegen sich bereits sehr nah an der Grenze zwischen Science-Fiction und Fantasy.

Hier erinnert die Episode ein wenig an frühere Momente aus Discovery, in denen große Metaphern irgendwann zu technobabbeligen Spektakeln wurden. Wenn ein Konzept so gewaltig wird, dass es kaum noch plausibel erscheint, verliert es bei mi9r gleichzeitig auch erzählerisch an Spannung. Sag ich mal so.

Gerade deshalb wirkt der Cliffhanger am Ende zwar spektakulär, aber auch etwas überdreht.

Ein Gefühl von echtem Star Trek

Trotz dieser Schwächen hat „300th Night“ bei mir erstaunlich gut funktioniert.

Vielleicht gerade deshalb, weil die Episode so viele klassische Elemente des Franchise aufgreift. Die Figuren handeln wie Star-Trek-Figuren. Sie treffen Entscheidungen aus Loyalität, aus Freundschaft und aus einem gewissen Idealismus heraus.

Und zwischendurch gibt es immer wieder diese kleinen Momente, in denen die Serie einfach Spaß macht. Humor, Emotion, ein bisschen Pathos. All das gehört zu diesem Universum dazu.

Am Ende bleibt deshalb vor allem ein Gefühl zurück: Dieses warme, vertraute Gefühl, das man bekommt, wenn eine Star-Trek-Episode ihre Figuren versucht ernst zu nehmen und ihnen Raum gibt, miteinander zu wachsen. Genau das macht „300th Night“ über weite Strecken richtig.

Die Folge bringt viele Handlungsstränge zusammen, steigert die Spannung für das Finale und erinnert gleichzeitig daran, warum dieses Universum seit Jahrzehnten funktioniert.

Oder anders gesagt: eine klassische vorletzte Folge, die Lust auf das Staffelfinale macht.

@hnz.io

Die Show als Guilty Pleasure zu bezeichnen, wäre schon eine Untertreibung. Klar, gibt es nach 11 Staffeln die ein oder andere Wiederholung. Aber, was die Florida immer wieder an Hirnschmalz reinsteckt, finde ich nicht nur genial, sondern auch sehr, sehr unterhaltsam.

Foto – Göttingen – 2026-03-09

Heute Nachmittag wieder einmal im Stadtwald unterwegs gewesen. Das nächste mal hoffentlich wieder mit Jogging-Schuhen.

Sechs Sekunden bis zur Startseite

Sechs Sekunden bis zur Startseite

Manchmal merkt man erst, wie langsam eine Website geworden ist, wenn man sie selbst aufruft und plötzlich Zeit hat, sich einen Kaffee zu holen.

Genau so ging es mir mit meiner Seite hier: Die Startseite brauchte plötzlich bis zu sechs Sekunden, bis überhaupt etwas passierte. Um mich nicht falsch zu verstehen: bis der erste HTML-Response kam. Danach liefen CSS, JavaScript und Bilder völlig normal durch. Das Problem lag also ziemlich offensichtlich vor dem Browser, irgendwo auf dem Server.

Sechs Sekunden sind nicht nur für einen Androiden, sondern generell im Web eine Ewigkeit. Also habe ich mir Chatty dazugeholt, um mir beim Debuggen zu helfen.

Die Ausgangslage war schnell klar: Der erste Request auf hnz.io/ hing. Danach ging alles zügig weiter. Das spricht meistens dafür, dass der Server beim Rendern der Seite lange beschäftigt ist.

Mein erster Reflex war die klassische Performance-Lösung: Caching.

Der erste Versuch: Staticache

Kirby hat von Haus aus schon ein Caching-Modul an Board, ich habe mich aber zusätzlich noch für Staticache entschieden. Das berechnet im ebsten Fall eine Seite bis zur nächsten Änderung einmal vor und gibt dann die Vorberrechnete Version an die Browser weiter.

Zusätzlich habe ich die gzip-Komprimierung eingeschaltet. Gzip ist eine Technik, mit der Textantworten wie HTML oder CSS kleiner gemacht werden, bevor sie übertragen werden. Das spart Bandbreite und beschleunigt die Übertragung.

Der erste Test brachte allerdings eine kleine Überraschung: Die Startseite brauchte immer noch mehrere Sekunden.

Wenn Caching nicht hilft

Das war der Punkt, an dem klar wurde, dass der Cache gar nicht das eigentliche Problem löst.

Wenn eine Seite trotz Cache mehrere Sekunden braucht, dann passiert eines von zwei Dingen:

  • Entweder der Request landet gar nicht im Cache.
  • Oder der Request muss trotzdem noch viel dynamische Logik ausführen.

Raten bringt an dieser Stelle nichts. Also haben Chatty und ich angefangen zu messen.

Ein kleiner Performance-Schalter

Ich wollte eine möglichst leichte Lösung, etwas, das direkt auf dem Server mitläuft und nur dann aktiv ist, wenn ich es brauche und habe ich einen kleinen Schalter eingebaut.

Wenn man die Seite mit ?perf=1 aufruft und eingeloggt ist, schreibt die Anwendung Performance-Daten in ein Log. Zusätzlich erscheinen Timing-Informationen im HTTP-Header, die ich dann im Browser anzeigen kann.

Gemessen wurden drei Dinge:

  • Bootstrap: der Start von PHP und Kirby
  • Renderzeit: das eigentliche Erzeugen der HTML-Seite
  • Gesamtzeit: alles zusammen

Zusätzlich habe ich kleine Marker eingebaut, mit denen man bestimmte Stellen im Code messen kann. Wenn ein Snippet oder eine Funktion auffällig langsam ist, taucht sie im Log sofort auf.

Das Ganze ist im Grunde ein sehr einfacher Profiler. Nicht besonders elegant, aber extrem hilfreich.

Die Spur führt ins Rendering

Die Messungen zeigten ziemlich eindeutig, wo die Zeit verloren ging und zwar, und das hat mir ungemein geholfen, nich im Netzwerk, DNS oder im TLS-Handshakke. Die ganze Zeit ging für das PHP-Rendering der Seite drauf: Der Server war mehrere Sekunden damit beschäftigt, die Startseite zu berechnen, bevor überhaupt etwas an den Browser geschickt wurde.

Damit war klar, dass wir uns meine Templates und Snippets anschauen müssen. War ja irgendwie auch klar.

In Kirby sind Snippets kleine wiederverwendbare Template-Blöcke. Man kann sie sich wie Komponenten vorstellen, die HTML generieren.

Viele kleine Verzögerungen

Die Logs zeigten ein interessantes Muster: Der heftigste Block war die Liste der Beiträge auf der Startseite. Das Snippet, das die Feed-Karten erzeugt, brauchte mehrere Sekunden.

Innerhalb dieses Blocks tauchten immer wieder ähnliche Zeitwerte auf. Viele einzelne Schritte lagen jeweils bei ungefähr 300 Millisekunden.

Das klingt erstmal nicht dramatisch, aber wenn ein Feed zehn Beiträge hat und jeder Beitrag mehrere solcher Schritte ausführt, summiert sich das schnell auf mehrere Sekunden.

Ein Beispiel waren Social-Links aus dem IndieConnector. Dabei handelt es sich um Funktionen, die automatisch prüfen, ob ein Beitrag auf Mastodon oder Bluesky veröffentlicht wurde und welche URL dazu gehört. Die hatte ich mal auf die Schnelle eingebaut. Und nun ja.

Man sollte nichts auf die Schnelle einbauen.

Niemals.

Zwar ist die Auflösung auf einer Detailseite völlig okay. Im Feed bedeutet sie aber, dass dieselben Informationen mehrfach berechnet werden.

Dazu kamen kleine Dinge wie Bild-Fallbacks oder Kommentarzählungen, die ebenfalls für jeden Beitrag erneut ausgeführt wurden. Teilweise mehrfach.

Der entscheidende Schritt

Die Lösung bestand letztlich darin, zwei verschiedene Kontexte sauber zu trennen: Die Startseite ist ein Listing. Sie zeigt viele Beiträge gleichzeitig. In diesem Kontext muss alles möglichst leichtgewichtig sein.

Eine Detailseite dagegen zeigt nur einen einzigen Beitrag. Dort kann man sich mehr Rechenzeit leisten.

Also habe ich einige Funktionen im Feed bewusst abgeschaltet oder vereinfacht.

  • Social-Links werden im Listing nicht mehr komplett aufgelöst.
  • Kommentarzahlen greifen auf bereits berechnete Metriken zurück.
  • Einige Bildlogiken wurden reduziert.

Die Detailseiten behalten weiterhin die vollständige Funktionalität.

Das Ergebnis ist eine klare Trennung: Der Feed bleibt schnell, während Detailseiten alle Informationen anzeigen.

Und Chatty hat dabei geholfen, die kritischen Stellen zu identifizieren und die Messungen sauber auszuwerten.

Ein kleiner Nebeneffekt

Während wir ohnehin am Feed gearbeitet haben, habe ich auch die Bildgrößen angepasst.

Die Startseite lädt jetzt kleinere Vorschaubilder. Große Originale werden erst geladen, wenn man sie tatsächlich öffnet.

Das reduziert Bandbreite und sorgt dafür, dass der Browser weniger Arbeit beim Layout hat. Der eigentliche Performance-Gewinn kam aber weiterhin vom Server.

Was ich aus der Geschichte gelernt habe

Die wichtigste Lektion ist überraschend simpel:

  • Performanceprobleme löst man nicht durch Rumratwn, sondern durch Messungen Und die Spurensuche hat echt Spaß gemacht, war mein erstes Mal.
  • Caching ist hilfreich, aber kein Allheilmittel. Wenn der Flaschenhals im Rendering liegt, muss man verstehen, was genau dort passiert.
  • Oft sind es nicht große, offensichtliche Probleme, sondern viele kleine Kosten pro Eintrag.
  • Baue niemals auf die schnelle irgendetwas ein, ohne dir vorher Gedanken zu machen oder es zumindest zu testen.

Wenn Trauma auf der Bühne landet

Diese Episode ist schwierig. Ich kann alle verstehen, die mit Erzählweise und Pacing nicht klarkommen und sie deshalb eher frustrierend als gelungen finden. Ich war selbst lange nicht sicher, wo die Folge eigentlich hinwill.

Das liegt vor allem daran, dass sie gleich drei große Themen gleichzeitig aufmacht. Das ist mindestens eines zu viel. Da ist zunächst Lieutenant Tilly, die aufgrund ihrer offenen und freundlichen Art, diesmal nicht als Wissenschaftlerin, sondern als Traumtherapeutin von der Leitung gerufen wird, um eine Theater-AG zu gründen. Dann ist da Tarima, die mit den Ereignissen auf der Miyazaki überhaupt nicht klarkommt und deren posttraumatische Belastungsstörung immer deutlicher hervortritt. Und schließlich Sam, deren Programmierung offenbar einen fundamentalen Designfehler enthält – etwas, das sich nicht einfach reparieren lässt und das sie emotional schwer belastet.

Wir haben also Tarima, die mit der Situation auf der Miyazaki ringt und den Verlust von B'Avi irgendwie verarbeiten muss. Wir haben Sam, die ebenfalls noch an den Folgen leidet. Wir haben die übrigen Kadetten, die nicht wissen, wohin mit ihrer Überforderung. Und wir haben eine Akademieleitung, die selbst nicht so richtig weiß, was man damit eigentlich anfangen soll und deshalb externe Hilfe organisiert. Das ist schon extrem viel Stoff für eine einzige Episode. Und dann kommt noch das Theaterstück Our Town dazu, ein kultureller Referenzpunkt, der für amerikanische Zuschauerinnen und Zuschauer vermutlich sofort verständlich ist. Für mich hingegen überhaupt nicht. Ich kannte das Stück nicht, hatte nie davon gehört und habe beim ersten Schauen viele Anspielungen schlicht nicht verstanden. Und hier wird dann auch klar, warum Star Trek so oft Shakespeare oder andere Klassiker zitiert: Diese Texte funktionieren auch außerhalb der USA. Das alles sorgt bei mir dafür, dass sich die erste Hälfte der Episode ziemlich orientierungslos anfühlt.

Und trotzdem gibt es in dieser Folge Momente, die mich komplett umgehauen haben.

Allen voran Tarima. Die Darstellung ihrer posttraumatischen Belastungsstörung ist großartig und gleichzeitig herzzerreißend. Dass sie nach den Ereignissen vom War College zur Academy versetzt wurde, lässt sich erzählerisch nur halb erklären, aber ich verstehe auch, warum die Autorinnen nicht noch zusätzliche War-College-Figuren in diese ohnehin schon überfüllte Episode beleuchten wollten. Tarima steht nun vor einer Reihe ungelöster Konflikte. Sie muss sich darüber klar werden, was Caleb für sie bedeutet. Sie muss verarbeiten, was auf der Miyazaki passiert ist und vor allem mit den Konsequenzen, die daraus für sie entstanden sind. Und sie muss damit klarkommen, dass das, was ihr bisher Halt gegeben hat, plötzlich verschwunden ist: Struktur, Regeln, Sicherheit.

Besonders deutlich wird das in der Szene im Quartier zwischen ihr und Caleb. Zoë Steiner spielt Tarima hier absolut fantastisch. Der betrunkenen Version ihrer Figur gelingt etwas sehr Schwieriges: Sie bleibt vollkommen ernst. Tarima wirkt in diesem Moment wie jemand, der sich völlig fremdbestimmt fühlt. Wahrscheinlich war es nie ihre eigene Entscheidung, sich nach dem Vorfall mit ihrem Vater diesen Inhibitor-Knopf einsetzen zu lassen. Und das ihr eine neue Version nach der Miyazaki, eingesetzt wurde, wahrscheinlich noch weniger. Und der Wunsch für ihre Versetzung zur Academy stammt definitiv nicht von ihr. Sie fühlt sich allein, missverstanden und kontrolliert. Sie spürt, dass andere an ihrer Autonomie kratzen. Sie will Caleb küssen und selbst das wird ihr verwehrt. Und deshalb stößt sie ihn dann weg. Das Wegstoßen bezieht sich nicht auf Caleb, sondern auf sie selbst: Ich werde dich auf kurz oder lang verletzen. Deshalb werde dich schützen. Ich bin nicht gut für dich. Der Subtext dieser Szene schreit förmlich: Lasst mich doch bitte versuchen, selbst damit klarzukommen. Nehmt mich so, wie ich bin, ich schaffe das schon. Ich brauche dafür kein dummes Theaterstück. Und vor allem brauche ich keine Leute um mich herum, die sich Sorgen machen, weil ich einfach weiß, dass alle Leute, die mir was bedeuten, früher oder später sowieso verschwinden oder Schaden nehmen. Genau das macht diese Szene so traurig und gleichzeitig so ehrlich. Traumata funktionieren selten rational. Natürlich ist aus der Distanz klar, dass alle versuchen, ihr zu helfen. Aber Tarima kann das in diesem Moment nicht sehen.

Parallel dazu erzählt die Folge Sams Geschichte. Sam ist ein photonisches Lebewesen, das mit Glitches kämpft, die niemand erklären kann, und das trotzdem versucht, für seine Freundinnen immer ein Lächeln auf den Lippen zu behalten. Und auch hier gibt es eine Szene, die mich komplett erwischt hat: den Moment, in dem Sam den Doktor bittet, ihre Hand zu halten. Eigentlich ist das ein kleiner Moment, aber er steckt voller Bedeutung. Sam sucht Sicherheit, vielleicht Geborgenheit, vielleicht einfach das Gefühl, dass der Doktor nicht nur Arzt, sondern auch ihr Mentor ist. Und der Doktor verweigert es. Ich saß davor und dachte nur: Du bist ein fast tausend Jahre altes Hologramm, jetzt gib ihr doch einfach deine verdammte Hand! Natürlich stellt sich heraus, dass der Doktor selbst traumatisiert ist, und zwar durch eine alte Voyager-Episode, die ich ehrlich gesagt längst vergessen hatte. Dass ausgerechnet dieses Erlebnis seine Blockade erklärt, wirkt erzählerisch ein wenig konstruiert, passt aber immerhin zum übergeordneten Thema der Staffel: Verlust von Kindern und die Traumata, die daraus entstehen. Gefilmt wurde die Szene auch wieder im Atrium der Academy. Alles andere wäre vermutlich zu teuer gewesen. Regisseurin Andi Armaganian war das sehr bewusst, und sie hat sich deshalb entschieden, die Szenen dort alle in schwarz-weiß ausstrahlen zu lassen.

Die anschließende Montage in Farbe wirkt wie eine moderne Version von „The Inner Light“, unterlegt mit dem Voiceover aus Our Town. Für mich funktionierte das beim ersten Schauen nur teilweise. Die Bilder waren stark, die Atmosphäre ebenfalls, aber ich habe schlicht nicht verstanden, welchen Subtext das alles hat. Was ich verstanden habe: Der Doktor kann Sam heilen, in dem er ihr Vater ist und sie eine Kindheit und Jugend erleben kann, um für das Jetzt die notwendige Resilienz aufbauen zu können. Und dem Doktor hilft es, weil er dadurch auch sein Trauma bezwingen kann.

Interessanterweise verändert das auch den Blick auf die vorherige Episode. Die wirkt jetzt noch unnötiger, durch diese Folge. Nichts hätte sich geändert, wenn dass die Anschlussfolge zu Miyazaki gewesen wäre. Schade.

Am Ende bleibt für mich deshalb eine Folge, die in der ersten Hälfte ziemlich verloren wirkt und in der zweiten Hälfte plötzlich zeigt, was sie eigentlich sein wollte. Eine Episode über Trauma, über Nähe und darüber, wie schwer es sein kann, Hilfe anzunehmen, selbst wenn sie direkt vor einem steht.

Neue Strategie: EU setzt auf Künstliche Intelligenz gegen Terror

https://netzpolitik.org/2026/neue-strategie-eu-setzt-auf-kuenstliche-intelligenz-gegen-terror/

Was viele immer wieder aus dem Blick verlieren:

Sollte eine derartige Regelung kommen, dürfte die Zahl der Fehlalarme drastisch ansteigen: Einer Studie zufolge werden jährlich mindestens 500.000 Personen zu Unrecht verdächtigt.

Die erhobenen Daten können also jetzt schon nicht ausgewertet werden, also will man noch mehr erheben und dann eine Zauber-KI regeln lassen? Joah. Kann man machen…

Vom Rumfrickeln zum Medienstrom

Vom Rumfrickeln zum Medienstrom

Die letzten Wochen habe ich wieder im Hintergrund an meinem Kirby rumgeschraubt. Oder besser gesagt: rumschrauben lassen. Ich habe Codex mit meinem Visual Studio Code getestet und mal geschaut, wie dieses Vibe Coding so funktioniert. Und ich muss sagen: Zunächst wirkt es wie Zauberei, im Laufe des Projekts wird es dann etwas ernüchternder. Es fühlt sich eben an wie die Arbeit mit einer LLM, die schneller den Kontext verliert, als einem lieb ist, und ab und an schöne Dinge halluziniert. Im Endeffekt ging es trotzdem viel schneller als gedacht.

Mein ursprüngliches Ziel, das Layout komplett konsistent neu aufzuziehen, habe ich dabei allerdings etwas aus den Augen verloren. Manche Rundungen unterscheiden sich noch, manche Schriftgrößen stimmen noch nicht ganz. Aber ich bin auf jeden Fall auf einem guten Weg. Und ja, die Seite sieht jetzt anders aus. Beim ursprünglichen Layout habe ich mich noch stark an meiner alten micro.blog-Seite orientiert. Mit der Zeit und dem ganzen Rumfrickeln passiert es bei mir automatisch, dass ich mich Schritt für Schritt davon emanzipiere.

Was ich eigentlich noch gar nicht einbauen wollte, jetzt aber schon live ist, ist das Medientracking. Da habe ich mich natürlich auch wieder inspirieren lassen.

Felix hat auf seiner Seite einen River aufgesetzt, in den er alles reinschmeißt, was er gut findet oder konsumiert. Thomas hat mit seinem Recorder zwar eine andere Umsetzung, aber ein ähnliches Konzept. Das Leben zu loggen finde ich spannend. Auswertungen und Charts zu generieren finde ich ebenfalls großartig. Und jetzt gibt es das auch hier: Den Medienstrom.

Ich wollte mich dabei am IndieWeb orientieren, bin aber ehrlich gesagt noch in der Findungsphase. Es gibt jetzt die Bookmarks, in die alles reinkommt, was ich so lese und für veröffentlichenswert halte. Dann gibt es das Watchlog mit Videos für YouTube, Filme und Serien. Und schließlich noch den Audiofeed, in den ich alles werfe, was ich gerade höre. All das läuft jetzt im Medienstrom zusammen, den man auch, ich weiß zwar nicht genau warum, als RSS abonnieren kann.

Warum bin ich noch in der Findungsphase? Weil sich das für mich gerade so anfühlt, als wären das gleichzeitig auch Favoriten. Die Trennschärfe fehlt mir noch. Wenn alles klappt, sollen Einbindungen hier als Reposts gesehen werden. Eigentlich sollen sie das auch sein. Oder sind es doch Favoriten, weil ich auf einen bestimmten Text hinweisen möchte oder auf einen besonders guten Tröt? Ich bin da gerade selbst noch etwas verwirrt und hoffe, dass ich das alles so offen gebaut habe, dass ich es bei Bedarf schnell wieder umbauen kann.

Da ich mein eigenes Hirn aber gut kenne und weiß, dass es gerne den Weg des geringsten Widerstands geht, habe ich mir ein paar Prozesse ausgedacht, mit denen Inhalte automatisiert hier landen können. Oder zumindest ohne großen Aufwand.

Filme tracke ich über Letterboxd. Die bieten einen wirklich vernünftigen RSS-Feed an, in dem sogar schon eine TMDB-ID steht. Darüber kann ich mir über die TMDB-API noch zusätzliche Daten zu dem Film ziehen. Ein Importscript sorgt per Cron dafür, dass regelmäßig nachgeschaut wird und neue Filme automatisch hier auf der Seite erscheinen.

Bei Serien nutze ich trakt.tv und dessen API. Dort bewerte ich schnell eine Folge, die ich gesehen habe, und durch ein Importscript landet sie dann auch hier. Wenn ich noch schnell einen Kommentar schreiben möchte, geht das ebenfalls. Und wenn ich den Eintrag später auf die Startseite heben will, klappt das auch noch. Wie zum Beispiel hier.

Ganz automatisch funktioniert auch der Import über meinen RSS-Service Miniflux. Wenn ich dort einen Artikel markiere, habe ich hier einen Endpunkt eingerichtet, der die Daten per POST übergeben bekommt und dann entsprechend darstellt.

Und für den Rest habe ich mir tatsächlich Kurzbefehle auf meinem iPhone gebaut. Das Einrichten war ein ziemlicher Pain. Aber irgendwie hat es funktioniert. Und zwar sogar besser, als ich am Anfang erwartet hatte. Die Kurzbefehle nehmen einfach die URL aus der Zwischenablage, geben mir die Möglichkeit, einen Kommentar zu schreiben, und fragen dann ab, ob der Beitrag im entsprechenden Segment oder auch auf der Startseite veröffentlicht werden soll. So bekomme ich YouTube und Vimeo hier rein und generell Bookmarks, die ich nicht in meinem Feedreader finde.

Bei Podcasts habe ich es mir ehrlich gesagt etwas einfacher gemacht. Ich nutze die App Pocket Casts, die viele Verzeichnisse noch einmal selbst spiegeln. Die Daten hole ich mir dann einfach von dort. Falls ihr euch also fragt, warum meine Podcasts auf Pocketcast.com verlinken und nicht irgendwo anders: Das ist keine Empfehlung für die App oder sogar Werbung, es macht für mich einfach das Teilen leichter.

Deshalb habe ich jetzt auch drei Kurzbefehle. Einen für den Audiostream, einen für Bookmarks und einen für das Watchlog. Über „Teilen“ ist dann schnell ein Beitrag hier angelegt, der zumindest niemanden stört. Und mich freut.