Blog: Latest Entries (15):


KI: Der Verlust jeglicher Individualität

bbcode-image


Es scheint im Internet grob zwei Arten von KI-Experten zu geben: Diejenigen, die KI nutzen, und diejenigen, die vor KI und ihren Folgen warnen. Letzteres wirkt auch sehr typisch deutsch, denn es wird sich selten umfassend mit dem Thema beschäftigt. Stattdessen konzentriert man sich fast ausschließlich auf die Gefahren und negativen Auswirkungen, die KI hat oder haben könnte. Es wird untersucht, wie sich diese negativen Auswirkungen auf die Gesellschaft auswirken werden, ohne vorher zu überprüfen, ob die angenommene Ursache überhaupt existiert.

Ein Beispiel ist die Behauptung, KI würde jegliche Individualität zerstören, weil sie angeblich immer nur die häufigste Antwort liefert und alle anderen Antworten verwirft. Die Annahme wäre etwa: Man fragt die KI, wie man eine Homepage baut, und erhält grundsätzlich die Antwort, man solle WordPress verwenden, weil die meisten Seiten darauf basieren. Oder das PHP-Framework wäre immer Symfony.

Jeder, der wirklich mit KI gearbeitet hat und nicht nur ein paar oberflächliche Fragen stellt, um sich in der eigenen Ansicht über die angeblichen Gefahren zu bestätigen, weiß, dass eine KI extrem differenzierte Vorschläge liefern kann. Sie findet sehr passende Lösungen, wenn man ihr den nötigen Kontext liefert. Oft liefert sie sogar Lösungen, von denen man selbst noch nie gehört hat.

Das eigentliche Problem ist, dass viele Menschen Schwierigkeiten damit haben, klar zu formulieren, was sie brauchen oder möchten. Selbst Suchmaschinen überfordern viele schon deutlich – und eine KI sinnvoll zu nutzen erfordert noch mehr Fähigkeit, den eigenen Wunsch oder die eigene Frage präzise auszudrücken. Auch ein Mensch kann nur allgemeine Antworten geben, wenn die Frage allgemein formuliert ist. „Womit baue ich mir eine Homepage?“ ist eben keine besonders hilfreiche Frage, wenn man eine auf den konkreten Anwendungsfall zugeschnittene Antwort erhalten möchte. Dennoch wird die Antwort der KI dann schnell als unzulänglich bewertet, weil sie beispielsweise kein Shopsystem nennt – obwohl gar nicht danach gefragt wurde.

Solche Situationen gab es früher schon im menschlichen Austausch: Manche bezeichneten einen sofort als unfähig oder meinten, man würde seinen Beruf nicht beherrschen, nur weil man nicht die Antwort geliefert hat, die nie gestellt, aber trotzdem erwartet wurde.

Wer also nur allgemeine Antworten von einer KI erhält, sollte zuerst seine eigenen Fragen und Prompts überprüfen. Eine KI kann keine Gedanken lesen.

Google liefert inzwischen sehr viel schneller nur noch allgemeine Ergebnisse – selbst bei komplexeren Suchbegriffen – während eine KI den bereitgestellten Kontext nutzen kann, um genau dieses Problem zu umgehen.


Pika-Dollar vs. Digitales Gold: Eine FinTech-Analyse, warum Ihr Glurak Holo die bessere (oder schlechtere) Währung ist als Bitcoin

bbcode-image


geschrieben von Gemini 2.5-fast mit deep-reasearch

Willkommen, liebe Nerds und Investoren mit Hang zur Nostalgie, zu einer Analyse, die wir in den Tiefen der Finanztheorie und den feuchten Kartons der Kindheit verankert haben. Die Frage ist so absurd wie millionenschwer: Kann der bedruckte Karton, der einst auf Schulhöfen seinen Wert bewies, heute tatsächlich mit dem rechenintensiven, dezentralen Code von Bitcoin konkurrieren? Können Pokémon-Karten als alternative Währung – der sogenannte „Pika-Dollar“ – gelten und sind sie dem „Digitalen Gold“ überlegen?

Diese Abhandlung wird zeigen, dass beide Märkte – der physische Sammlermarkt und die Kryptosphäre – primär von zwei Dingen angetrieben werden: dem Glauben an künftige Knappheit und der „Greater Fool Theory“. Um diesen absurden Vergleich jedoch ernsthaft zu führen, müssen wir beide spekulativen Assets an den drei klassischen Säulen der monetären Ökonomie messen :


  1. Wertspeicher (Store of Value, SoV): Behält der Vermögenswert seinen Wert stabil oder erhöht er ihn sogar über lange Zeiträume?

  2. Tauschmittel (Medium of Exchange): Kann man damit Waren und Dienstleistungen erwerben, ohne dass die Transaktionskosten astronomisch sind?

  3. Recheneinheit (Unit of Account): Kann man Preise und Schulden darin bemessen (z. B. 1 Glurak für 5 Pizzas)?


Die folgende Tabelle bietet eine erste nüchterne, wenn auch zynische, Zusammenfassung der Stärken und massiven Schwächen beider Spekulationsobjekte:

Monetäre Eignungsprüfung: Pokémon vs. Bitcoin





Monetäre Metrik Pokémon Karte (PSA 10) Bitcoin (BTC) Analyse
Fungibilität (Austauschbarkeit) Niedrig (Jede Karte ist einzigartig/seriell) Hoch (Jeder BTC ist wie der andere) Sie können eine Münze nicht durch einen Picasso ersetzen.
Teilbarkeit (Divisibility) Extrem Niedrig (Kein Schneiden erlaubt!) Hoch (Bis zu 8 Dezimalstellen: Satoshis) Pokémon: All-in. Bitcoin: Kleingeld für den Kaffee.
Wertspeicher (Store of Value) Hoch (Generationelle Nostalgie, Rarity) Hoch/Mittel (Volatil, aber deflationäres Design) Sammlerwert vs. Code-basiertes Versprechen.
Tauschmittel (Medium of Exchange) Sehr Niedrig (Zu hoher Aufwand/Kosten) Mittel (Wird akzeptiert, aber oft langsam) Versuchen Sie, an der Tankstelle mit Glurak zu bezahlen.
Recheneinheit (Unit of Account) Nein (Wert in USD/EUR festgelegt) Ja (Wert direkt in BTC/Satoshis) Eine Währung muss sich selbst zählen können.




Akt I: Der Karton-Standard – Pokémon im monetären Leistungstest

Der Wertspeicher der Träume: Seltenheit und Höchstpreise
Der Pika-Dollar hat unbestreitbar bewiesen, dass er als exzellenter Wertspeicher fungieren kann, zumindest für jene, die in der Lage sind, die extremsten Sammlerstücke zu erwerben und zu halten. Das Paradebeispiel für diese extreme, durch Sammlerwahn getriebene Wertspeicherung ist die legendäre Pikachu Illustrator Karte von 1998. Im Jahr 2022 erwarb der Influencer Logan Paul das einzige bekannte Exemplar mit der Bestnote PSA 10 zu einer astronomischen Bewertung von 5,275 Millionen USD. Er zahlte dafür 4 Millionen USD in bar und tauschte eine PSA 9-Version derselben Karte ein – ein Tauschgeschäft, das die Tiefe und Exklusivität dieses Marktes beweist.

Auch andere „Blue Chips“ des Kartonuniversums wie der 1st Edition Shadowless Charizard Holo von 1999 in PSA 10 beweisen mit Verkaufspreisen von bis zu 420.000 USD, dass der Wert über Jahrzehnte massiv steigen kann. Wie Gold und Bitcoin besitzt der Pika-Dollar eine schwere reproduzierbare Knappheit. Allerdings hängt der Wert des Kartons nicht nur von der ursprünglichen Auflage (Druck) ab, sondern kritisch von der Qualität des physischen Zustands. Genau hier beginnt die hochgradig zentrale Abhängigkeit.

Die Diktatur der Grade: PSA als Zentralbank des Kartons
Während Bitcoin sein Vertrauen durch dezentrale, mathematische Konsensmechanismen (Proof-of-Work) schafft , basiert der Pika-Dollar auf dem Vertrauen in eine zentrale, menschliche Autorität: die Grading-Häuser wie PSA und BGS.

Die Jagd nach dem PSA 10 (Gem Mint) ist der Motor dieses Marktes. Analysten bestätigen, dass ein kleiner, scheinbar unwesentlicher Unterschied im Zustand – beispielsweise eine Frontzentrierung zwischen 55/45 und 60/40 – den Wert einer Karte von Tausenden auf Hunderttausende Dollar katapultieren kann. Der Wert eines Assets hängt hier exponentiell von einem einzigen, subjektiven (wenn auch standardisierten) Urteil einer zentralen Instanz ab.

Dieser Mechanismus, bei dem PSA die Echtheit (Authentifizierung) und den Zustand (Qualitätsstufe) zertifiziert und die Karte in einem versiegelten Case kapselt, fungiert im Grunde als eine hochgradig zentralisierte, physische Blockchain. Sie stellt den Konsens über den Wert her, jedoch nicht durch Code, sondern durch menschliche Experten und proprietäre Prozesse. Im Jahr 2020 führte die enorme Nachfrage und der daraus resultierende Bearbeitungsstau bei PSA dazu, dass die Firma neue Einreichungen zeitweise stoppen musste. Dies verdeutlicht einen zentralen Single Point of Failure: Die dezentrale Natur des Sammelns endet, sobald die Wertmaximierung beginnt und auf die Legitimation durch einen Mittelsmann angewiesen ist. Bitcoin verspricht die Abschaffung des Mittelsmanns; Pokémon-Karten brauchen ihn zur Wertmaximierung.

Fungibilität und Teilbarkeit: Das Glurak-Problem
Der zentrale monetäre Makel des Pika-Dollars ist seine fundamentale Nicht-Fungibilität. Per Definition ist eine gegradete Karte PSA 10 ein einzigartiges Gut (Non-Fungible). Selbst zwei identische 1st Edition Shadowless Charizard PSA 10 Karten könnten aufgrund minimaler, nicht erfasster Sub-Grades oder ihrer jeweiligen Auktionshistorie unterschiedliche Preise erzielen. Diese Einzigartigkeit widerspricht dem fundamentalen Prinzip des Geldes, bei dem ein $10-Schein exakt dem Wert von zwei $5-Scheinen entsprechen muss, unabhängig von der Seriennummer.

Noch schlimmer ist das Problem der fehlenden Teilbarkeit (Divisibility). Moderne Finanzinstrumente wie Kryptowährungen sind hochgradig teilbar (BTC bis zu acht Dezimalstellen, genannt Satoshis). Eine Pokémon-Karte hingegen ist ein monolithisches Gut. Man kann nicht mit einem Viertel eines Glurak bezahlen, ohne den Wert der gesamten Karte auf null zu reduzieren. Die Währung ist unflexibel und verlangt einen All-in-Handel. Alleine die Logistik spricht Bände: Wenn ein modernes Pokémon-Booster-Pack etwa $4 kostet, bräuchten Sie 1.318.750 Booster-Packs, um theoretisch den Wert des $5,275 Millionen Pikachu Illustrator zu erreichen. Das ist ein massives Skalierungs- und Teilbarkeitsproblem.



Akt II: Das Digitale Dungeon – Bitcoin in der Wirtschaftsprüfung

Dezentralität als Glaubenssatz: Das Vertrauen in Code
Bitcoin trat an, um die Mängel traditioneller, staatlich kontrollierter Fiat-Währungen zu beheben, deren Wert auf dem Vertrauen in eine Zentralbank beruht. Bitcoin bietet einen staatlich unabhängigen Wertspeicher, dessen Knappheit und Ausgabe durch ein dezentrales, transparentes Code-Protokoll garantiert werden.

Allerdings leidet Bitcoin unter einem gravierenden Mangel, der seine Eignung als tägliches Tauschmittel empfindlich beeinträchtigt: extreme Volatilität. Die dramatischen Preisschwankungen, oft als Reaktion auf makroökonomische Ereignisse oder reine Spekulation, sind legendär. Nach dem Zusammenbruch einer großen Kryptowährungsbörse fiel der Wert von Bitcoin beispielsweise an einem einzigen Tag um 22%. Solche Schwankungen sind bei stark regulierten traditionellen Währungen undenkbar. Eine derart volatile Währung wird ohne staatlichen Zwang (der die Zahlung von Steuern in dieser Währung verlangt) kaum als Tauschmittel akzeptiert.

Der Umwelt-Footprint: Schürfen vs. Zocken (PoW vs. Pack-Odds)
Der Konsensmechanismus von Bitcoin, Proof-of-Work (PoW), erfordert erhebliche Rechenleistung, um Transaktionen zu validieren und die Blockchain zu sichern. Diese energieintensive Methode ist notorisch ineffizient; Bitcoin verbraucht schätzungsweise 127 Terawattstunden pro Jahr, was den Energiebedarf ganzer Länder wie Norwegen oder Argentinien übersteigt. Darüber hinaus sind PoW-Netzwerke systembedingt langsam (im Durchschnitt 10 Minuten pro Block), was sie für alltägliche Transaktionen, verglichen mit modernen Proof-of-Stake (PoS)-Systemen (z. B. Ethereum nach dem Merge, 12 Sekunden), unpraktisch macht.

Diese Energie- und Ressourcenverschwendung bei Bitcoin findet eine zynische Entsprechung im Sammelmarkt. Bitcoin-Mining ist ein brutaler, hochtechnisierter Wettbewerb um einen zufälligen Block-Reward, der auf der Erbringung von "Arbeit" (Rechenleistung) basiert. Sammler betreiben einen ähnlichen, wenn auch analogen, "Mining"-Prozess. Der Kauf von Pokémon-Booster-Packs ist eine statistische Lotterie. Um die seltensten Assets zu "schürfen", müssen Sammler große Mengen an statistisch wertlosen Karten ansammeln. Die Wahrscheinlichkeit, eine seltene "Hyper Rare" Karte zu ziehen, liegt bei etwa 1 zu 137 Packs.

Das Ergebnis ist in beiden Fällen dasselbe: Ein hoher Ressourceneinsatz (Energie/Geld für PoW oder Packungen/Zeit für das Sammeln und Graden) führt zur Generierung eines extrem seltenen, hoch bewerteten Assets. Beide Assets basieren auf einem impliziten Proof-of-Waste-Mechanismus, der lediglich die künstliche Knappheit zementiert.



Die Logistik des Vermögens: Feuer, Schimmel und die verlorene Seed Phrase

Die Lagerung und Sicherung dieser alternativen Vermögenswerte offenbart einen fundamentalen Gegensatz in der Risikostruktur. Der Anleger muss wählen, ob er gegen die Gesetze der Thermodynamik oder gegen sein eigenes schlechtes Gedächtnis kämpfen will.

Physische Bedrohungen: Der Feind ist die Luftfeuchtigkeit
Im Gegensatz zu digitalem Code oder unzerstörbaren Goldbarren sind Pokémon-Karten anfällig für physische Zerstörung. Die Durabilität ist ein ernstes Problem. Umwelteinflüsse stellen eine erhebliche Bedrohung dar. Hohe Luftfeuchtigkeit kann zu Verformung (Warping) und Schimmel führen, während UV-Strahlen die Farben verblassen lassen. Der Sammler muss de facto zum Amateur-Archivar werden und spezielle Lagerlösungen nutzen, wie Silica-Gel-Päckchen in Binders.

Katastrophenrisiken potenzieren diese Gefahr. Berichte zeigen, dass bei einem Hausbrand die Karten, die nicht verbrannten, durch Rauch- und Wasserschäden – oft "nasty water" – vollständig zerstört wurden. Der Wert des Pika-Dollars hängt davon ab, ob man ihn trocken, kühl und UV-geschützt lagern kann.

Digitale Katastrophen: Ein Tippfehler trennt Sie von 8.000 BTC
Bitcoin-Investitionen erfordern absolute, fehlerfreie digitale Selbstverwaltung (Self-Custody). Das größte Risiko bei Kryptowährungen ist nicht die Volatilität, sondern das kognitive Versagen des Nutzers.

Im Web3-Bereich gibt es keine Bank oder Behörde, die ein verlorenes Passwort zurücksetzen könnte. Der Verlust der Seed Phrase (Passwort) bedeutet, dass die Kryptowährung unwiederbringlich "GONE for Good" ist. Der Fall von James Howells, der eine Festplatte mit 8.000 BTC in den Müll warf und damit Hunderte von Millionen verlor, ist ein permanentes Mahnmal. Digitale Assets erfordern Schutz vor Hacking-Angriffen und vor allem vor dem eigenen Vergessen. Der Anleger muss wählen, ob er lieber gegen Schimmel oder gegen sein eigenes schlechtes Gedächtnis kämpft – beide Szenarien erfordern einen enormen logistischen Aufwand und spezialisierte Sicherheitsmaßnahmen.



Die FinTech-Fusion: Wenn Glurak zum Token wird

Die inhärenten monetären Mängel der physischen Pokémon-Karte – mangelnde Fungibilität, fehlende Teilbarkeit und geringe Liquidität – haben zur Entstehung einer neuen FinTech-Infrastruktur geführt, die versucht, diese Probleme zu beheben.

Tokenisierung als Heilmittel für monetäre Mängel
Die Tokenisierung ist ein klares Eingeständnis, dass die physische Karte selbst als Tauschmittel unzureichend ist. Plattformen wie Collector Crypt überbrücken diese Kluft, indem sie physische, durch PSA oder BGS gegradete Karten in sicheren, klimakontrollierten Tresoren lagern (Vaulting, z. B. bei PWCC) und das Eigentumsrecht als handelbares NFT auf einer Blockchain (z. B. Solana) verbriefen.

Diese digitale Transformation schafft Eigenschaften, die der physische Karton niemals bieten konnte:


  1. Liquidität: Der 24/7 globale Handel der Tokens ist ohne physischen Versand möglich, wodurch Transaktionsrisiken eliminiert werden.

  2. Fungibilität und Teilbarkeit: Fraktionalisierung ermöglicht es, Tausende von ERC-20 Tokens zu erstellen, die einen einzigen, hochpreisigen Glurak repräsentieren. Dies macht den Wert teilbar und liquide, und Preis-Orakel können einen zuverlässigen Echtzeitwert der Karte bereitstellen.

  3. Burn-to-Redeem: Der digitale Besitzer kann das NFT "verbrennen" (Burn-Transaktion) und die physische Karte gegen eine Gebühr (typischerweise 2%) aus dem Tresor anfordern, was die physische Unterlegung garantiert.


Karten als Kreditsicherheit: Der Sprung ins DeFi
Der höchste finanzielle Nutzen, den Pokémon-Karten in der modernen Ökonomie erreichen können, liegt nicht in ihrer Verwendung als Währung, sondern als Sicherheit (Collateral).

Hochwertige, gegradete Karten werden zunehmend als Pfand für Kredite genutzt. Sowohl traditionelle Kreditgeber (z. B. Qollateral) als auch dezentrale Finanzplattformen (DeFi) arbeiten daran, Sammlerstücke als Pfand zu akzeptieren, um dem Eigentümer Liquidität zu verschaffen, ohne dass dieser das Asset verkaufen muss.

Diese Entwicklung klassifiziert die Karte als Real World Asset (RWA). Die Karte ist die illiquide, aber wertstabile Reserve, während der aufgenommene Kredit (der in Fiat oder Stablecoins ausbezahlt wird) die funktionale Tauschwährung darstellt. Dies bestätigt endgültig: Der Glurak ist der Tresor, aber der Bitcoin (oder Stablecoin) ist das Bargeld.



Fazit und Hitzige Empfehlungen: Wer gewinnt den Spekulations-Battle?

Die Analyse kommt zu einem klaren Urteil: Pokémon-Karten sind im strengen Sinne keine Währung. Sie sind extrem wertvolle, nicht-fungible Barter-Assets, deren Liquidität, Teilbarkeit und allgemeine Akzeptanz erst durch die komplexe Infrastruktur des 21. Jahrhunderts (Grading, Vaulting, Tokenization) künstlich geschaffen werden müssen, um monetäre Eigenschaften zu imitieren. Der Pika-Dollar besteht den Test als exzellenter Wertspeicher (SoV), versagt aber massiv als Tauschmittel und Recheneinheit.

Bitcoin hingegen besteht theoretisch alle Währungstests: Es ist fungibel, hochgradig teilbar und in seiner Ausgabe limitiert. Es leidet jedoch unter extremen praktischen Mängeln wie der prohibitiven Volatilität, langsamen Transaktionsgeschwindigkeiten und der enormen Logistik der Selbstverwahrung (Self-Custody). Bitcoin ist somit ein überlegener digitaler Wertspeicher und ein Reserve-Asset, aber kein ideales tägliches Zahlungsmittel.

Beide Märkte sind ein Spiegelbild des spekulativen Glaubens. Ihr Wert hängt nicht von einem intrinsischen Nutzen ab, sondern vom kollektiven Hype und der fortwährenden Nachfrage zukünftiger Generationen.

Abschließender Rat an den IT-Blog-Leser:

Wenn Sie den Nervenkitzel der Jagd und die materielle Sicherheit (gegen Schimmel) bevorzugen, HODLn Sie den Glurak. Wenn Sie die Bequemlichkeit der digitalen Welt und die Freiheit der Dezentralität schätzen, HODLn Sie Bitcoin. Im Zweifel sollten Sie den Glurak als Pfand hinterlegen, um Kredite in Stablecoins aufzunehmen, und diese Stablecoins dann verwenden, um Waren zu kaufen. Aber bezahlen Sie Ihre Miete am besten mit Satoshis – es sei denn, Ihr Vermieter ist ein Sammler, der gerade einen PSA 10 Trophy Pikachu (No. 1 Trainer) gegen ein Jahr Vorauszahlung eintauschen möchte.

Wenn Verantwortung schwerfällt – Gedanken zu Personalentscheidungen

bbcode-image


Vor Kurzem hatte ein Kollege eine Erfahrung, die wohl viele von uns irgendwann einmal machen: Eine Mitarbeiterin aus seinem Team musste entlassen werden.
Es war keine leichte Entscheidung, aber am Ende unumgänglich. Die Zusammenarbeit war über einen längeren Zeitraum schwierig geworden – sowohl fachlich als auch menschlich. Gespräche wurden geführt, Unterstützung angeboten, Alternativen gesucht. Doch irgendwann war klar: Es gibt keine gemeinsame Basis mehr für eine konstruktive Zusammenarbeit.

Der Kollege, der in diesen Prozess eingebunden war, hat mich im Nachhinein überrascht. Er war ehrlich betroffen, konnte kaum schlafen.
Viele, die schon länger Personalverantwortung tragen, waren erstaunt, wie sehr ihn diese Entscheidung mitnahm – und doch konnten sich wohl alle ein Stück weit darin wiederfinden.

Denn auch ich erinnere mich gut an die erste Situation, in der ich um meine Einschätzung gebeten wurde:
Gibt es noch eine Zukunft mit diesem Mitarbeiter – oder ist der Punkt erreicht, an dem man sich trennen sollte?
Das war kein leichter Moment. Aber ich wusste, dass ich vorher alles versucht hatte, um die Situation zu verbessern. Ich hatte Feedback gegeben, Gespräche gesucht, Unterstützung angeboten. Doch wenn das alles ohne Wirkung bleibt, dann kommt irgendwann der Moment, an dem man loslassen muss.

Diese Momente sind nie schön. Aber sie gehören zur Führungsverantwortung.
Wichtig ist, dass man sich bewusst macht: Wir sind nicht für das Leben oder die Entscheidungen anderer verantwortlich.
Unsere Aufgabe ist es, faire Chancen zu geben, klar zu kommunizieren und Entwicklung zu ermöglichen. Doch wenn jemand nicht bereit ist, diese Chancen anzunehmen, dann trägt er oder sie auch die Verantwortung für die Konsequenzen.

Am Ende bleibt das Fazit:
Führung heißt, menschlich zu bleiben – aber auch, professionell zu handeln.
Man kann helfen, fördern, begleiten – aber nicht für andere entscheiden, welchen Weg sie gehen.

Warum du auch im Zeitalter von ORMs weiter SQL lernen solltest

bbcode-image


In modernen Softwareprojekten greifen viele Entwicklerinnen und Entwickler heute kaum noch direkt auf Datenbanken zu. Stattdessen nutzen wir Abstraktionslayer wie Doctrine, Hibernate, Eloquent oder SQLAlchemy. Diese Tools sind bequem, sie übersetzen unsere Objektmodelle automatisch in Datenbankabfragen und nehmen uns vieles ab. Auf den ersten Blick scheint es fast so, als müsste man sich mit SQL gar nicht mehr beschäftigen. Doch das ist ein gefährlicher Irrtum.

Denn auch wenn wir das SQL nicht mehr selbst schreiben, läuft es unter der Oberfläche trotzdem ab. Jede ORM-Abfrage wird letztlich zu einer SQL-Query, die in der Datenbank ausgeführt wird. Und genau dort entscheidet sich, ob unsere Anwendung schnell und effizient arbeitet oder ob sie durch unbedachte Abfragen ins Stocken gerät. Wer SQL versteht, kann erkennen, was tatsächlich passiert, und eingreifen, wenn es nötig ist.

ORMs abstrahieren vieles, aber sie ersetzen kein Verständnis für das, was im Hintergrund läuft. Sobald eine Anwendung langsamer wird, Reports unvollständig sind oder plötzlich hunderte kleine Datenbankabfragen entstehen, hilft kein ORM mehr weiter. Dann zählt, wer in der Lage ist, das generierte SQL zu lesen, zu analysieren und zu optimieren. Dieses Wissen spart Zeit, Nerven und oft auch Serverressourcen.

Auch der Umgang mit Datenbanktools setzt SQL-Kenntnisse voraus. Programme wie JetBrains DataGrip, phpMyAdmin, DBeaver oder die Command-Line-Tools von PostgreSQL und MySQL sind mächtige Werkzeuge. Doch sie entfalten ihr volles Potenzial erst dann, wenn man weiß, was man mit ihnen tut. Wer SQL versteht, kann Abfragen nachvollziehen, Query-Pläne interpretieren, Daten effizient analysieren oder eigene Reports erstellen, ohne auf externe Hilfe angewiesen zu sein.

In der Praxis kommt immer der Moment, in dem man selbst eingreifen muss. Vielleicht verlangt ein Kunde einen speziellen Bericht, der sich mit ORM-Mitteln nur umständlich umsetzen lässt. Vielleicht taucht ein Performanceproblem auf, das sich nicht durch Code-Refactoring lösen lässt. In solchen Situationen ist SQL die Sprache, die dich rettet. Sie ermöglicht es, direkt an der Quelle zu arbeiten und genau das Ergebnis zu erzielen, das du brauchst – schnell, präzise und kontrolliert.

SQL zu beherrschen ist kein überflüssiges Relikt aus vergangenen Zeiten, sondern eine der wichtigsten Fähigkeiten im Umgang mit Daten. Sie bildet die Grundlage für jedes performante System, egal ob du mit PostgreSQL, MySQL, SQLite oder einem anderen System arbeitest. Wer SQL versteht, versteht Daten – und wer Daten versteht, kann bessere Software bauen.

Deshalb lohnt es sich, das eigene SQL-Wissen bewusst zu pflegen und immer wieder zu vertiefen. Mit jeder neuen Query wächst das Verständnis für Strukturen, Zusammenhänge und Optimierungsmöglichkeiten. ORMs sind eine großartige Hilfe im Alltag, aber sie nehmen uns das Denken nicht ab. Am Ende bleibt SQL die Sprache, in der sich entscheidet, wie gut eine Anwendung wirklich mit ihren Daten umgeht.

Warum 1 Gbit/s im Heimnetz auch 2025 noch völlig ausreicht

bbcode-image


Seit über einem Jahrzehnt ist 1 Gigabit-Ethernet (1 Gbit/s) der Standard im Heimnetzwerk. Und obwohl Technikbegeisterte heute von 2.5 Gbit/s, 10 Gbit/s oder gar Glasfaser-Backbones sprechen, zeigt sich in der Praxis: Für den typischen Haushalt – selbst mit Homeoffice, NAS und Smart-Home-Geräten – reicht 1 Gbit/s immer noch völlig aus.

1 Gbit/s: ein Standard, der sich bewährt hat

Seit etwa 2005 ist Gigabit-Ethernet in Mainboards, Routern und Switches fest integriert. Mit rund 110 MB/s realer Übertragungsrate bietet es seit Jahren mehr Bandbreite, als die meisten Geräte tatsächlich nutzen können.
Ob große Dateiübertragungen, HD- oder 4K-Streaming, Online-Gaming oder Homeoffice – 1 Gbit/s liefert zuverlässig genug Reserven, um mehrere parallele Aktivitäten gleichzeitig zu bedienen.

Internetzugang bleibt der Engpass

Der eigentliche Flaschenhals liegt längst nicht mehr im lokalen Netzwerk, sondern beim Internetzugang selbst.
Auch 2025 sind 1 Gbit/s Downstream und 50–100 Mbit/s Upstream im Privatbereich schon ein oberes Limit dessen, was bezahlbar angeboten wird.
Ein schnelleres Heimnetz bringt hier keinen Vorteil – denn selbst wenn das lokale Netz 10 Gbit/s hergibt, ist die Verbindung ins Internet trotzdem auf 1 Gbit/s oder weniger begrenzt.

Moderne Software denkt ohnehin „online“

Ein weiterer Punkt: Viele moderne Programme kommunizieren heute über das Internet, selbst wenn zwei Geräte im gleichen LAN stehen.
Beispiele sind Cloud-Dienste wie OneDrive, Google Drive, Microsoft Teams oder sogar manche Smart-Home-Systeme.
Die Daten laufen meist nicht direkt von Gerät zu Gerät im lokalen Netz, sondern über externe Server – was bedeutet, dass die lokale Netzwerkgeschwindigkeit gar nicht mehr ausschlaggebend ist.

2.5 Gbit/s und mehr: interessant, aber selten nötig

Natürlich gibt es Einsatzszenarien, in denen sich schnellere LAN-Verbindungen lohnen – etwa für Content-Creator, die regelmäßig große Videodateien auf ein NAS kopieren, oder für kleine Server-Setups mit mehreren gleichzeitigen Clients.
Für den normalen Haushalt jedoch, in dem Streaming, Cloud-Synchronisation, Online-Gaming und Homeoffice dominieren, bleibt der Unterschied zwischen 1 Gbit/s und 2.5 Gbit/s praktisch unsichtbar.

Fazit

Trotz technischer Fortschritte hat sich 1 Gbit/s als solide Basisgeschwindigkeit im Heimnetz etabliert.
Die meisten Anwendungen profitieren kaum von mehr Bandbreite, weil sie entweder durchs Internet limitiert sind oder ihre Kommunikation ohnehin extern abwickeln.
Wer also keine speziellen Hochlast-Szenarien hat, kann beruhigt sagen:
Ein gutes 1 Gbit/s-Netzwerk ist auch 2025 noch mehr als schnell genug.

Andererseits zeigt diese Situation auch, wie begrenzt der Ausbau der deutschen Netze bisher vorangeschritten ist.
Mehr als 1 Gbit/s für Privatkunden wäre gerade für Homeoffice, Remote-Arbeiten und größere Cloud-Anwendungen teilweise sehr angenehm – doch die Realität ist, dass solche Anschlüsse oft noch teuer oder gar nicht verfügbar sind.
Insofern ist die Tatsache, dass wir mit 1 Gbit/s auskommen müssen, weniger ein technisches Problem, als ein Hinweis darauf, dass noch viel Potenzial für den Netzausbau besteht.

Warum direkter Kontakt oft besser ist als TeamViewer

bbcode-image


Klar, TeamViewer ist praktisch.
Ein Klick, kurz die ID und das Passwort eingetippt, und schon kann man sich auf den PC des Mitarbeiters schalten, das Problem beheben – und fertig. Schnell, effizient, kein Overhead. Der Mitarbeiter lehnt sich zurück, schaut (vielleicht) zu und bekommt am Ende den Anruf: „So, läuft wieder!“

Aber mal ehrlich: so richtig gut ist das nicht.

Der stille Mitarbeiter

Das Problem an dieser Methode: Es passiert keine echte Kommunikation.
Der Mitarbeiter sitzt passiv vor dem Bildschirm, versteht oft gar nicht, was genau gemacht wurde – und vor allem warum. Es gibt keinen Kontext, kein Gespräch, keine Rückfragen.
Das ist schade, denn gerade im Austausch entstehen oft die wirklich wertvollen Informationen.

Mehr als nur Fehlerbehebung

In der IT geht’s nicht nur darum, Probleme zu lösen. Das „I“ in IT steht schließlich für Information.
Unsere Aufgabe ist es also nicht nur, Systeme am Laufen zu halten, sondern auch Informationen zu sammeln, zu verstehen und einzuordnen.
Wenn jemand zum Beispiel sagt: „Ich kann meine PDF nicht drucken“, dann ist es hilfreich zu wissen, warum er das überhaupt tun will. Geht’s um einen wichtigen Vertrag? Eine Serienproduktion? Eine interne Freigabe?

Diese Infos helfen uns, Zusammenhänge zu erkennen – und langfristig Prozesse zu verbessern.
Viele IT-Abteilungen haben dadurch einen besseren Überblick über Abläufe und Workflows als die Fachbereiche selbst. Nicht, weil wir schlauer sind, sondern weil wir durch viele Berührungspunkte sehen, wie alles zusammenhängt.

Warum direkter Kontakt zählt

Wenn man stattdessen einen kurzen Teams-Call macht, den Bildschirm teilen lässt und dem Mitarbeiter erklärt, was zu tun ist, passiert plötzlich etwas:
Man redet.
Man stellt Fragen.
Man versteht, wie der Mitarbeiter arbeitet und wo vielleicht noch andere Stolperfallen liegen.

Oder man geht – wenn’s möglich ist – einfach mal vorbei.
Sich das Problem vor Ort zeigen zu lassen, bringt oft nicht nur die Lösung, sondern auch Kontext.
Und genau dieser Kontext ist Gold wert.

TeamViewer? Ja, aber richtig!

Versteh mich nicht falsch: TeamViewer ist nicht grundsätzlich schlecht. Es ist ein tolles Tool – wenn man es richtig nutzt.
Wenn du dich per TeamViewer aufschaltest, dann halte den Call mit dem Mitarbeiter offen. Sprich mit ihm. Erklär, was du machst. Lass ihn mitdenken.
So bleibt der Informationsfluss bestehen – und aus einer anonymen Fernwartung wird wieder ein echtes Miteinander.

Fazit

Direkter Kontakt ist durch nichts zu ersetzen.
Er sorgt für mehr Verständnis, bessere Kommunikation – und am Ende auch für bessere IT.
Denn: Nur wer Informationen sammelt, kann wirklich etwas verbessern.
Und genau darum geht’s doch, oder?

Tool: List-Tranform

Ich habe in den letzten Tagen für Black Friday viele Listen von Werten hin und her gewandelt: Produktnummern aus einer Excel-Datei in SQL, per SQL abgefragte IDs in ein JSON-Array und so weiter. ChatGPT ist dabei eine große Hilfe, aber auch nicht gerade schnell. Am Ende stellte sich heraus, dass es teilweise schneller ging, sich eine kleine Web-App für diese Zwecke schreiben zu lassen, als die Liste von ChatGPT selbst transformieren zu lassen. Die Web-App hat keine 30 Sekunden in der Erzeugung gedauert und sicher auch nicht mehr als eine Minute für den Prompt.

https://list.annonyme.de

KI hilft also – aber sie muss nicht immer alle Aufgaben selbst übernehmen.

bbcode-image

Programm-Updates: setup.exe vs. composer update

bbcode-image


Warum ich keine Lust mehr auf umständliche Softwarepflege habe

Kennt ihr das Gefühl, wenn man schon beim Gedanken an ein Software-Update innerlich stöhnt? Ich auf jeden Fall. Und jedes Mal, wenn ich wieder irgendwo eine „setup.exe“ starten muss, frage ich mich ernsthaft, warum wir im Jahr 2025 immer noch so arbeiten.

Früher war das ja normal – jede Software hatte ihr eigenes Setup, ihre eigenen Client-Versionen, ihre Eigenheiten. Heute sind viele Anwendungen glücklicherweise im Web angekommen. Und ganz ehrlich: überall dort, wo Performance nicht der entscheidende Faktor ist, ist das auch richtig so.

Bei Videobearbeitung oder großen Grafikprojekten hinken Webanwendungen zwar noch ein bisschen hinterher, aber selbst da holen sie auf. Für alles Kaufmännische – also ERP, CRM, Warenwirtschaft, Finanzbuchhaltung & Co. – ist eine Weblösung heute eigentlich die einzig logische Wahl.

Warum Web einfach besser ist

Ein paar offensichtliche Vorteile zuerst:

- Keine lokalen Server mehr, keine verrückten Abhängigkeiten von Windows-Versionen, Benutzerkonten oder Hardware.
- Lizenzverwaltung zentral und übersichtlich.
- Und man kann seine Software endlich als SaaS oder Clouddienst anbieten, statt sich mit Installationsroutinen herumzuärgern.

Aber der wahre Gamechanger ist die Update-Einfachheit.

Updates ohne Drama

Bei klassischen Client-Server-Anwendungen ist jedes Update ein kleines Projekt.
Man muss jeden Arbeitsplatz anfassen, überall prüfen, dass die Clients geschlossen sind (Spoiler: sind sie nie), Passwörter neu eingeben, Leute in ihrer Arbeit unterbrechen – und am Ende ist man sich trotzdem nicht sicher, ob wirklich alles sauber läuft.

Ich hab das zuletzt wieder bei einem Kunden mit CGM Turbomed erlebt.
Allein die setup.exe auf dem Server braucht rund 40 Minuten, und das ist nur der Anfang.
Dann kommt der erste Client – nochmal 15 Minuten, plus ein paar Minuten für den Funktionstest.
Die restlichen sechs Arbeitsplätze lassen sich zwar parallel machen, aber jeder Mitarbeiter ist trotzdem rund fünf Minuten raus.
Und das alles, nur um dieselbe Software in Version 8.7 statt 8.6 zu haben.
Ganz ehrlich: Das ist reine Lebenszeitverschwendung.

Und wehe, etwas geht schief – dann darf man nochmal von vorne anfangen.

Die Webvariante: kurz, schmerzlos, fertig

Ein Update bei einer modernen Webanwendung sieht dagegen so aus:

1. Wartungsmodus ankündigen
2. Wartungsmodus aktivieren
3. composer update
4. Kurz testen
5. Wartungsmodus wieder raus
6. Bescheid sagen

Die User drücken einmal F5 – und zack, alle sind wieder produktiv.
Keine Installationsorgien, keine Benutzerunterbrechungen, keine Passwörterdramen.
Was früher einen halben Tag gedauert hat, ist plötzlich in 30 Minuten erledigt.

Fazit

Jede kaufmännische Software, die heute noch einen nativen Client braucht – egal ob mit Server oder direktem Datenbankzugriff – ist für mich ein No-Go.
Ich will meine Zeit nicht mit Setup-Assistenten, MSI-Paketen oder Update-Skripten verbringen.

Die Zeit, die man bei der Pflege moderner Websysteme spart, ist enorm.
Und wenn das Ganze dann auch noch in der Cloud läuft – also ohne eigenen Server, ohne Update-Stress – spart man so viel Zeit und Geld, dass man sich oft einen halben Mitarbeiter spart.
Einen, der sich dann um echte Verbesserungen kümmern kann, statt Fortschrittsbalken anzustarren.

Wenn ich die Wahl habe zwischen einer setup.exe und einem simplen composer update, dann ist die Entscheidung klar.
Ich nehme das Update, das mich nicht nervt.

Winget: Nett ist die kleine Schwester von Bemüht

Es ist ein wirklich nettes kleines Tool, um sich schnell Dinge zu installieren. Man kann auch viele Dinge auf einmal per Logon-Script installieren.

Es ist wie apt-get nur eben für Windows und es verhält sich auch richtig Windows-mäßig. Also ohne UI kommt man doch nicht aus und bloß weil ich es über CLI ausführe heißt ja nicht, dass ich nicht doch noch rum klicken muss.

winget ist gefühlt noch weit von apt-get oder snap entfernt.

bbcode-image


Warum AI-Commit-Messages mehr sind als nur ein Text

bbcode-image


Ich geb’s zu: Ich schreibe meine Commit-Messages schon länger nicht mehr selbst.
Nicht, weil ich keine Lust habe – naja, vielleicht ein bisschen – sondern weil’s einfach besser funktioniert, wenn ich die KI das übernehmen lasse.

Ich nutze GitKraken, und da ist es wirklich nur ein Klick: Änderung committen, KI-Message generieren, fertig. Kein Grübeln mehr über die passende Formulierung, kein „Fix minor bug“ oder „Update stuff“. Stattdessen bekomme ich in Sekunden eine ausführliche, gut lesbare Beschreibung, die ich so wahrscheinlich nie geschrieben hätte.

Klar, es ist bequemer. Und schneller. Aber darum geht’s mir gar nicht in erster Linie.
Der eigentliche Mehrwert liegt woanders.

Wenn ich ein Code Review mache, schaue ich mir zuerst immer nur den Code an – ganz ohne Kontext. Ich versuche zu verstehen, was der Code fachlich und technisch macht, und überprüfe dann, ob das mit den Anforderungen übereinstimmt. Wenn alles zusammenpasst, weiß ich: Die Intention hinter der Änderung stimmt.

Und genau das mache ich mittlerweile auch mit der AI-Commit-Message.
Nachdem die KI den Text generiert hat, lese ich ihn mir durch und frage mich:
„Trifft das wirklich das, was ich gemacht habe?“

Wenn die Beschreibung von der AI nicht ganz zu meinem Code passt, ist das für mich ein Signal: Ich schaue mir die Änderung nochmal an. Oft finde ich dann kleine Dinge, die ich sonst vielleicht übersehen hätte – zum Beispiel ein vergessenes Debug-Statement oder eine ungewollte Anpassung, die eigentlich gar nicht in den Commit gehört.

Im Grunde ist die AI für mich damit zu einer Art zweiten Paar Augen geworden.
Sie fasst meine Änderungen zusammen – fachlich und technisch – und hilft mir, nochmal kritisch draufzuschauen. Und genau das bringt einen echten Mehrwert:
Nicht nur, weil ich Zeit spare, sondern weil meine Commits dadurch sauberer, konsistenter und nachvollziehbarer werden.

Kleine Hilfe, großer Effekt.
AI-Commit-Messages sind für mich längst nicht mehr nur ein bequemer Textgenerator – sie sind ein echtes Qualitätstool in meinem Entwicklungsprozess.

bbcode-image

Wenn sich das Internet getriggert fühlt

bbcode-image


Letzte Woche passierte etwas, das eigentlich völlig banal war – und trotzdem das halbe Internet in Aufruhr versetzte.
Ein 24-Jähriger verließ um 7:00 Uhr morgens seine Wohnung, kam abends kurz vor 19:00 Uhr zurück, startete einen TikTok Live-Stream und sagte:
„Puh, war ein langer Tag.“

Mehr nicht.
Doch das reichte, um einen Shitstorm loszutreten.
Vor allem ältere Generationen fühlten sich getriggert: Wie könne jemand nach über elf Stunden außer Haus nicht den Wunsch äußern, noch ein paar Überstunden dranzuhängen?

Jede Nachrichtenseite, Talkshow und selbst ernannte Expertin fühlte sich berufen, etwas dazu zu sagen.
Der Tenor war klar: Wie faul die Jugend doch ist! Und natürlich steht die ganze Gen Z gleich mit am Pranger.

Das perfekte Timing der Politik

Passend dazu lief gerade die politische Diskussion darüber, wie man die deutsche Wirtschaft „ankurbeln“ könnte – natürlich durch längeres und intensiveres Arbeiten.
Ob Samstagsarbeit, weniger Feiertage oder längere Wochen – plötzlich klang alles nach „Zurück in die 70er“.

Und sofort war für viele klar: Da muss doch ein Zusammenhang bestehen!
Die Jungen sind faul, also geht die Wirtschaft den Bach runter.
Die Lösung? Mehr Arbeit! Denn: „Zeit ist Geld – und mehr Zeit ist mehr Geld.“

Ich habe schon einmal geschrieben, dass genau diese Annahme grundfalsch ist.
Zeit allein bedeutet weder Qualität noch Produktivität.
Dieses Denken stammt aus den 60er- und 70er-Jahren – aus einer Zeit, in der die Welt, die Arbeit und die Wirtschaft völlig anders funktionierten.
Heute haben sich die Grundvoraussetzungen komplett verändert.

Mehr Arbeitszeit heißt nicht mehr Arbeit

Die Idee, dass man mehr Geld verdient, wenn alle einfach mehr arbeiten, funktioniert nur, wenn überhaupt genug Arbeit vorhanden ist.
Damals, in den 60ern und 70ern, gab es Arbeit im Überfluss. Man konnte schuften, so viel man wollte – die Arbeit ging nicht aus.
Heute ist das Gegenteil der Fall: Das Problem ist nicht Faulheit, sondern das Fehlen sinnvoller Arbeit.

Unsere Wirtschaft ist so effizient geworden, dass sie in kürzester Zeit produziert, was früher Tage dauerte.
Doch die Menschen brauchen nicht mehr als früher – im Gegenteil.
Weihnachten steht vor der Tür, und viele wissen gar nicht, was sie sich wünschen sollen, weil sie im Grunde schon alles haben.
Geräte halten länger, Fernseher werden günstiger, aber kaum besser.
Nach dem IT-Boom der späten 90er und frühen 2000er hat sich das Tempo ohnehin verlangsamt.

Also bringt es wenig, Menschen einfach acht Stunden mehr pro Woche arbeiten zu lassen, wenn sie ihren Job ohnehin in 40 Stunden entspannt schaffen.
Das verlängert nur den Tag, senkt aber die Effizienz – und kostet am Ende mehr Geld, als es einbringt.

Wenn ein Automobilhersteller 3000 Mitarbeitende entlässt, liegt das nicht daran, dass sie alle faul waren.
Und der Hersteller steht danach auch nicht verzweifelt da und fragt sich, wer jetzt die Arbeit erledigen soll – denn die Arbeit ist gar nicht mehr da.
Das ist keine Schuld der Arbeiter, sondern schlicht ein wirtschaftlicher Umstand.

Mehr Arbeitszeit schafft keine Arbeit.
Teilzeitstellen existieren heute nicht, weil Menschen weniger leisten wollen, sondern weil weniger Arbeit anfällt.
Und ausländische Unternehmen werden nicht plötzlich in Deutschland produzieren, nur weil wir hier 16 Stunden länger in der Woche schuften.
Die Produktionskosten bleiben zu hoch – also gehen sie dorthin, wo es günstiger ist.

Wer genug Arbeit und faire Bezahlung bietet, findet auch Menschen, die sie erledigen.
Die angebliche „faule Gen Z“ ist also nicht das Problem – sie ist nur ein praktischer Sündenbock, um von den echten, komplexen Ursachen abzulenken.

Eine Randbemerkung

In den Kommentarspalten liest man oft:
„Früher haben wir auch von 6 bis 18 Uhr gearbeitet! Die Jugend ist einfach faul!“

Das ist dieselbe Generation, die einem erzählt, Homeoffice sei ja ganz praktisch, „weil da merkt ja keiner, wenn man zwischendurch mal einen kleinen Schluck nimmt“.
Oder: „Auf der Arbeit hatte ich meinen Spind, da stand immer was drin – da ging man halt ab und zu vorbei.“
Nach Feierabend dann noch zwei Bier am Arbeitsplatz.

Das ist kein Witz – das wurde mir genau so erzählt.
Und so sah für viele das Arbeitsleben eben aus:
Harte Arbeit, viel Alkohol, und das war gesellschaftlich völlig normal.
Wer auf Montage war, ging abends in die nächste Kneipe, um sich „ordentlich einen zu gönnen“.
Weil: „Man war ja fleißig, man hat’s sich verdient.“

Und genau diese Leute werfen der jungen Generation heute vor, sie habe ein falsches Verhältnis zur Arbeit.
Dabei war es bei ihnen ganz selbstverständlich, die Belastung mit Alkohol zu betäuben – und viele landeten genau deshalb in der Abhängigkeit.

Es ist die Generation, für die Alkoholismus fast schon zum guten Ton gehörte, „weil die ja immer so gut drauf waren“.
Wie gesagt: reale Gespräche, nicht ausgedacht.

Fazit

Die Empörung über den TikTok-Post zeigt nicht, dass die Jugend faul ist – sondern wie sehr viele Menschen immer noch an überholten Vorstellungen von Arbeit festhalten.
Arbeiten heißt heute nicht mehr, 12 Stunden im Betrieb zu stehen, sondern effizient, kreativ und gesund zu bleiben.
Wer das als Schwäche versteht, hat das eigentliche Problem vielleicht gar nicht bei der Jugend – sondern im eigenen Weltbild.

SwarmUI: Notizen

bbcode-image


Da ich meine Blog oft auch als Notizzettel für mich selber nutze, hier einmal meine Notizen zur KI Bilder-Generierung mit SwarmUI.

Basis-Einstellungen

qwen-image
steps: 25
cfg scale: 4

flux1-dev
steps: 20
cfg scale: 1

hunyuan image 2.1
steps: 20
cfg scale: 4

highdream i1 dev
steps: 20
cfg scale: 1

sd3.5 large
steps: 20
cfg scale: 7

Firebird: SQL-Logging unter Linux

bbcode-image


Wenn man mit Firebird-Datenbanken arbeitet, kommt irgendwann der Punkt, an dem man genau wissen möchte, welche SQL-Statements tatsächlich auf der Datenbank ausgeführt werden. Vielleicht, um Performance-Probleme zu untersuchen, vielleicht um unerwartetes Verhalten einer Anwendung zu verstehen oder einfach, um ein besseres Gefühl für den Datenbankzugriff zu bekommen.

Firebird bringt dafür seit der Version 2.5 ein sehr mächtiges Werkzeug mit: das Trace- und Audit-Subsystem. Damit lassen sich Abfragen, Transaktionen, Verbindungsinformationen und vieles mehr protokollieren – ohne dass man tief ins System eingreifen oder die Anwendung verändern muss.

In diesem Beitrag zeige ich dir Schritt für Schritt, wie du mit Firebird 2.5.9 unter Linux (egal ob direkt auf dem Host oder in einem Docker-Container) ein SQL-Logging aktivierst und die Ergebnisse live einsehen kannst.

Trace-Konfigurationsdatei erstellen

Der Trace-Mechanismus in Firebird braucht zunächst eine Konfigurationsdatei, die beschreibt, was geloggt werden soll. Diese Datei kann an einem beliebigen Ort liegen – wir nehmen in diesem Beispiel /opt/fb_trace_all.conf.

Öffne die Datei mit einem Editor deiner Wahl, zum Beispiel nano oder vi:

nano /opt/fb_trace_all.conf


Füge dann den folgenden Inhalt ein:

<database>
enabled true
log_connections true
log_statement_prepare true
log_statement_start true
log_statement_finish true
print_plan true
print_perf true
time_threshold 0
max_sql_length 65000
max_arg_length 240
max_arg_count 100
</database>


Was bedeutet das?

* enabled true – Schaltet das Logging für die Datenbank ein.
* log_connections true – Verbindungs- und Trennungsereignisse werden protokolliert.
* log_statement_prepare true – Auch das „Vorbereiten“ eines SQL-Statements (also bevor es ausgeführt wird) wird festgehalten.
* log_statement_start true / log_statement_finish true – Beginn und Ende jeder Abfrage werden geloggt.
* print_plan true – Der Ausführungsplan (Execution Plan) für jede Abfrage wird mit ausgegeben – sehr nützlich, wenn es um Performance geht.
* print_perf true – Zeitmessungen und andere Performance-Daten werden angezeigt.
* time_threshold 0 – Es gibt keine Mindestzeit; jede Abfrage wird geloggt, egal wie kurz sie läuft.
* max_sql_length / max_arg_length / max_arg_count – Diese Werte legen fest, wie groß die protokollierten SQL-Statements und ihre Parameter werden dürfen.

Mit dieser Konfiguration erhältst du ein sehr detailliertes Protokoll, das alle SQL-Statements sichtbar macht, die gegen deine Firebird-Datenbank laufen.

Trace Watcher starten

Nun muss Firebird angewiesen werden, diesen Trace-Job zu starten. Das geschieht über das Tool fbtracemgr, das mit der Firebird-Installation mitgeliefert wird.

Beispiel:

./fbtracemgr -se localhost:service_mgr -user SYSDBA -pass masterkey -start -name allsql -conf /opt/fb_trace_all.conf >> /tmp/lognamen.log


Erklärung der Parameter:

-se localhost:service_mgr – Verbindung zum Service Manager auf localhost.
-user SYSDBA -pass masterkey – Authentifizierung mit dem Standard-Administrator-Account.
-start – Startet einen neuen Trace-Job.
-name allsql – Vergibt einen Namen für diesen Job, z. B. „allsql“.
-conf /opt/fb_trace_all.conf – Verweist auf die Konfigurationsdatei von oben.
>> /tmp/lognamen.log – Leitet die Ausgabe in eine Log-Datei um.

Der Prozess läuft so lange, bis er manuell beendet wird (z. B. mit Ctrl+C).

Logdatei live mitverfolgen

Um nicht immer wieder die Log-Datei neu öffnen zu müssen, empfiehlt sich ein „Live-Tail“. In einem zweiten Terminal kannst du dir die Einträge direkt beim Eintreffen anschauen:

tail -f /tmp/lognamen.log


Jetzt siehst du sofort, wenn deine Anwendung eine Abfrage an Firebird schickt – inklusive der SQLs, der Ausführungspläne und der Performance-Daten.

Praktische Tipps
Docker-Setup: Wenn Firebird in einem Container läuft, musst du nur darauf achten, dass sowohl das fbtracemgr-Binary als auch die Konfigurationsdatei im Container verfügbar sind. Ein Volume-Mount für /opt/fb_trace_all.conf und /tmp/lognamen.log ist sinnvoll.

Ressourcen im Blick behalten: Da jede Abfrage geloggt wird, kann die Logdatei schnell sehr groß werden. Für längere Analysen solltest du mit Filtern arbeiten oder ein Tool wie grep verwenden.

Filterung: Du kannst in der Konfigurationsdatei auch bestimmte Datenbanken oder bestimmte Events ausschließen, um die Menge der Informationen überschaubarer zu halten.

Sicherheit: Achte darauf, dass sensible Daten (Passwörter, personenbezogene Daten) in Logs landen können. Im Produktivbetrieb sollte man also genau abwägen, welche Daten man wirklich braucht.

Fazit

Mit dem Firebird-Trace-Subsystem hat man ein mächtiges Werkzeug an der Hand, das es erlaubt, SQL-Abfragen transparent zu überwachen und zu analysieren. Gerade bei der Fehlersuche oder bei Performance-Optimierungen ist das oft der schnellste Weg, um zu verstehen, was im Hintergrund tatsächlich passiert.

Die hier gezeigte Konfiguration ist ein „Alles mitnehmen“-Ansatz, mit dem man sofort loslegen kann. Danach kann man Schritt für Schritt Feintuning betreiben, um genau die Informationen zu loggen, die man wirklich braucht.

Older posts:

Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?