krasse datenbanken oder so ! weib coding vom feinsten ! Coding & Tech
3D-Druck-Schach, Vibe-Coding-Kritik und Datenbankaufbau mit Python
Es wurde ein mehrteiliges 3D-gedrucktes Schachset in Rosa und Marmorweiß vorgestellt. Anschließend wurde ein Reaktionsvideo zu Vibe-Coding analysiert, wobei Werbecharakter, App-Sicherheit und Bewertungsmuster kritisch betrachtet wurden. Danach wurde die Datenbank Aura mit Python, Pydantic und FastAPI neu strukturiert, ein BaseSchema gegen Mass Assignment eingeführt und eine Alembic-Migration für ein neues Feld durchgeführt.
Krankheitsbedingte Pause und Schach-Projekt
00:04:57Zum Einstieg berichtet die Streamerin über eine Erkältung der vergangenen Tage, von der sie sich bereits wieder erholt hat, und nutzt die gewonnene Zeit für ein lange geplantes 3D-Druck-Projekt: ein komplettes Schachbrett, das in mehrere zusammensetzbare Platten unterteilt ist. Die Figuren wurden in zwei Farben gedruckt, nämlich ein helles Rosa und ein marmoriertes Weiß, wobei einzelne Teile wie eine abgebrochene Springer-Schnauze geklebt werden mussten. Das Design stammt von der Plattform Maker World, und die restlichen Platten sollen in den folgenden Nächten gedruckt werden.
Farbwahl und Rage-Bait mit Rosa
00:10:10Die Farbgebung des Schachsets wird ausführlich diskutiert: Statt des üblichen harten Schwarz-Weiß-Kontrasts fiel die Wahl auf Rosa und Marmorweiß, nicht zuletzt, um die Erwartungen an vermeintliche Frauenfarben ironisch zu bedienen. Die Streamerin spielt dabei bewusst mit dem Klischee, dass Rosa eine Frau und Blau oder Grün eine Männerfarbe sei, und bezeichnet das als kleinen Rage-Bait. In diesem Zusammenhang wird auch angekündigt, dass das Frag-T-Event bei Schlag den Star auf ProSieben direkt in den Kalender einzutragen ist.
Reaktion von NiklasXFitness als Einstieg
00:12:56Der eigentliche Schwerpunkt des Streams wird angekündigt: Es geht zunächst nicht wie im Titel versprochen um Datenbanken, sondern um ein React-Video von NiklasXFitness auf das frühere Vibe-Coding-Video. Die mehrfach geäußerte Enttäuschung über die Reaktion dient als Rahmen, wobei ausdrücklich betont wird, dass keine Beleidigungen im Chat geduldet werden und man respektvoll auch mit abweichenden Meinungen umgehen will. Gleichzeitig wird klargestellt, dass die Kritik an der Verteidigung von Vibe-Coding durch einen IT-Beschäftigten inhaltlich nicht zurückgenommen wird.
Analyse der gekürzten Fassung
00:18:07Vor dem gemeinsamen Ansehen wird auf die unterschiedlichen Versionen des Videos hingewiesen: Auf TikTok existiert die vollständige Fassung, während die Instagram-Version zusammengeschnitten wurde und zudem der Teil fehlt, in dem ein eingeblendeter Clip mit dem Fünf-Euro-Narrativ zu sehen war. Diese Auslassung wird als interessante, aber bewusste Entscheidung interpretiert, weil das Narrativ zwischen Miete zahlen und Reichwerden mit der App dadurch unaufgelöst bleibt. Zusätzlich wird die Reichweitenentwicklung auf den verschiedenen Plattformen verglichen und ein zweiter, größerer Social-Media-Account von Niklas erwähnt.
Kritik am Umgang mit Kritik und Recherche
00:20:12Ein zentraler Vorwurf richtet sich gegen die Argumentationsweise: Niklas habe unter dem Ursprungsvideo kommentiert und diskutiert, im eigenen Reaktionsvideo aber so getan, als kenne er den Inhalt nicht, etwa bei der Frage, warum er als Vibe-Coder wahrgenommen wurde. Zugleich wird der Vorwurf der schlechten Recherche zurückgewiesen, indem die eigene Instagram-Bibliothek mit 375 Beiträgen, von denen nur etwa zehn bis zwanzig Vibe-Coding betreffen, als Gegenbeweis herangezogen wird. Viele dieser Videos hätten zudem auffällig gute Reichweiten, was den Eindruck verstärkt haben dürfte, das Thema dominiere den gesamten Kanal.
Namensgebung und Sport-Vergleich
00:31:24Am Beispiel des Namens Niklas X Fitness wird aufgezeigt, dass Fitness im Profilnamen eine fachliche Qualifikation suggeriert, die sich anhand des öffentlichen Auftritts nicht belegen lässt; stattdessen sei Niklas als IT-Consultant tätig. Im Kontrast dazu steht der eigene Werdegang mit Sport seit mehreren Jahren und rund zwanzig Kilo Gewichtsverlust, der scherzhaft zu einer Selbsternennung als Leo X Fitness führt. Der Stream betont dabei, dass sensible Details wie Nachname und Arbeitgeber bewusst aus Videos herausgehalten wurden, gerade weil man selbst nett sein wollte.
Kalorien per Foto: Kritik an Genauigkeit und Datenschutz
00:34:28Die Funktion der gegnerischen Fitness-App, Kalorien anhand eines Fotos zu schätzen, wird als grundsätzlich unzuverlässig bewertet, weil die KI Größen und Zutaten nicht kennt und Kontext wie zusätzliche Butter oder Öl erst manuell ergänzt werden muss. Hinzu kommt der Hinweis, dass solche Health-Daten besonders sensibel sind: Wer sein Gewicht oder Zyklusdaten einträgt, gibt diese Daten an eine womöglich unbeaufsichtigte Vibe-Coding-App weiter. Als Konsequenz wird die eigene App-Entwicklung beschrieben, bei der man vor der Veröffentlichung gezielt jemanden mit Security-Erfahrung über den Code schauen lassen will.
Marketing, Einnahmen und Werbecharakter
00:45:53Mehrere Ausschnitte aus Videos von Niklas zeigen, wie dieser für Apps, einen Skill zum Erstellen von Apps und Revenue-Tracking wirbt, unter anderem mit der Aussage, an einem Tag 60 Euro eingenommen zu haben. Das wird als stark werblicher Charakter der Reaktion kritisiert, die weniger Argumente als Produktwerbung liefere. Gleichzeitig wird der Punkt aufgegriffen, dass Erfolg auch Konsequenzen hat und Steuern sowie Datenschutz nicht ignoriert werden sollten, zumal die Furcht vor dem Finanzamt im Stream scherzhaft als größer als die vor der Polizei beschrieben wird.
Analyse der eigenen Apps und der 5-Euro-Geschäftsmodelle
00:52:30Zwei weitere Apps werden vorgestellt, bei denen Nutzer für fünf Euro animierte Live-Aktivitäten für Haustiere oder Fahrzeuge auf dem Sperrbildschirm erhalten und zusätzliche Daten wie Tankpreise eintragen können. Dabei wird hinterfragt, welchen eigentlichen Mehrwert das Abo gegenüber kostenlosen Lösungen bietet und ob die Präsentation im Video vor allem der Bewerbung der eigenen Produkte dient. Auch die Angaben zu über 21.000 Nutzern und rund 600 Premium-Mitgliedern werden später relativiert, weil Lizenzen offenbar zeitweise verschenkt wurden.
Blick in den App Store und Bewertungsmuster
01:02:17Lenn Together, so der Name der Fitness-App, wird im Apple App Store untersucht, einschließlich Version, Altersfreigabe und Screenshots, die einen starken KI-Eindruck machen. Auffällig sind die Bewertungen, die gehäuft in einem bestimmten Zeitraum im März auftauchen, was mit einer damaligen Aktion zusammenpassen könnte, bei der Premium-Lizenzen verschenkt wurden. Zugleich wird über die Android-Veröffentlichung gesprochen, für die man mittlerweile mindestens zwölf Tester über vierzehn Tage nachweisen muss, eine Regelung, die als inkonsequent gegenüber Slop-Apps kritisiert wird.
Hinweis auf Sicherheitslücken und Ankündigung
01:13:55Im Anschluss an die Videoanalyse kündigt die Streamerin an, sich wegen möglicher Sicherheitslücken zunächst vertraulich an Niklas zu wenden und ihm Gelegenheit zur Korrektur zu geben, bevor öffentlich darüber berichtet wird. Das Vorgehen wird ausdrücklich an das bisherige Verhalten bei anderen Projekten angelehnt, wonach die Reaktion des Gegenübers stark beeinflusst, wie ein Video ausfällt. Außerdem wird ein noch größeres, anderes Thema angedeutet, zu dem derzeit Gespräche geführt werden und das erst nach Verifikation veröffentlicht werden soll.
Rückblick auf den bisherigen Datenbank-Stand
01:18:04Nach dem Exkurs folgt die Rückkehr zum eigentlichen Coding-Projekt: Aura. Eine Datenbank wurde zunächst manuell über Docker aufgesetzt und später gelöscht, um sie mit Python und Pydantic neu zu strukturieren, sodass der Code SQL automatisch erzeugt. FastAPI verbindet das Backend mit PostgreSQL, während das Frontend später nur noch Reports einsendet und die Verarbeitung im Python-Code erfolgt. Im Stream wird außerdem der Vivaldi-Kommentar unter dem Browser-Video erwähnt und der weitere Aufbau der Projektstruktur mit Routern erläutert.
Router, Schemas und Base-Schema
01:29:22Die Architektur wird anhand der Dateien nachvollzogen: Router leiten Anfragen an die richtigen Stellen weiter, während Schemas die übergebenen Daten validieren. Als zentrales Sicherheitsproblem wird Mass Assignment identifiziert, bei dem ein Client Felder wie Status oder ID selbst setzen könnte, weshalb eine gemeinsame Elternklasse BaseSchema mit ModelConfig eingeführt wird. Diese Konfiguration soll Werte aus Objektattributen lesen, unbekannte Felder verbieten und Leerzeichen trimmen, damit manipulierte Eingaben zuverlässig abgewiesen werden.
Tests, DevOps und Diskussion um Testabdeckung
01:34:06Eine längere Chat-Diskussion dreht sich um Unit-Tests und Test-Driven Development: In der Theorie sollen Tests vor der Implementierung geschrieben werden, um Eingaben und erwartete Ausgaben vorab zu definieren, in der Praxis wird das aber selten konsequent umgesetzt. Im Arbeitsumfeld gelten mindestens fünfzig Prozent Testabdeckung, während im Stream bislang nur manuell nach jedem Schritt getestet wurde. Am Beispiel des Base-Schemas wird argumentiert, dass das Schema selbst bereits eine Art Spezifikation darstellt, weil es festlegt, welche Daten überhaupt akzeptiert werden.
Umsetzung des Base-Schemas und Vererbung
01:43:32Konkret wird die Datei Base.py mit BaseSchema und ModelConfig angelegt, wobei from_attributes aktiviert, extra auf forbid gesetzt und das Strippen von Leerzeichen eingeschaltet wird. Anschließend erben die Klassen Report und ReportCreate vom BaseSchema, während eigene ModelConfig-Definitionen entfallen. Dabei treten kleinere Verwirrungen beim Import und beim Umgang mit dem BaseModel auf, die schrittweise korrigiert werden, bis das Schema wie geplant funktioniert und das Feedback im Chat als Fortschritt gewertet wird.
Projektplanung Aura und neues Datenfeld is_emergency
02:05:01Als Perspektive wird beschrieben, dass Aura eine Flutter-App mit Python-Backend auf Basis von PostgreSQL werden soll, wobei das Frontend weiterhin als bevorzugter Bereich gilt. Anschließend wird das Datenmodell um ein Feld is_emergency erweitert, das als Boolean in das Modell und den Report aufgenommen wird. Die Frage, ob ein Standardwert sinnvoll ist, bleibt offen, wird aber vorläufig bejaht. Zugleich wird deutlich gemacht, dass eine Änderung am Modell nicht automatisch die PostgreSQL-Tabelle verändert, sondern eine Alembic-Migration erzeugt und angewendet werden muss.
Alembic-Migration, Validierungsfehler und Abschluss
02:14:32Für die Migration wird ein eigener Terminal-Befehl mit Alembic und Upgrade verwendet, um die Spaltenänderung in die Datenbank zu übertragen. Ein Test mit übergebenem Status endet erwartungsgemäß in einem 422-Fehler, weil das Base-Schema unbekannte Werte blockt, was als funktionierender Schutz vor Mass Assignment eingeordnet wird. Gegen Ende werden weitere Fragen zu Tests, Tooling und Frontend beantwortet, bevor der Stream mit Hinweisen auf Sonntag 19:30 Uhr, das Frank-Thelen-Event am Samstag und einen angekündigten Raid zum Re-Inventor of Wheel ausklingt.