knuspermagier.de https://knuspermagier.de Der private Blog von Philipp Waldhauer Wed, 03 Dec 2025 16:17:08 +0000 de-DE Philipp, der alte Generator <![CDATA[Firefly Drei AI ]]> https://knuspermagier.de/posts/2025/firefly-drei-ai Wed, 03 Dec 2025 15:35:00 +0000 https://knuspermagier.de/posts/2025/firefly-drei-ai

So ungefähr einmal im Jahr bekomme ich die Lust, mal einen CSV-Export von Outbank zu nehmen und ordentlich zu kategorisieren, um zu sehen, ob ich jetzt mehr oder weniger Geld für Essen ausgegeben habe. Bei meinem letzten Versuch machte ich das mit Firefly III, fand das aber nur so mittel und baute kurzerhand ein eigenes Tool dafür…

Da ich bei der Sache aber sehr nachlässig bin und schnell die Lust verliere, fehlten natürlich ein paar Sachen um es wirklich nutzen zu können und so begab es sich, dass ich wieder ungefähr anderthalb Jahre lang einfach nichts machte.

Da sich mein Tool also nicht benutzbar genug anfühlte, importiere ich wieder alles in Firefly und fing an alles durchzugehen. Irgendwann hat Amazon leider angefangen, teilweise für eine Bestellung von fünf Artikeln 4-6 Abbuchungen in völlig zufälligen Höhen zu machen. Da ich das alles etwas unübersichtlich fand, wollte ich die Transaktionen gerne zusammenführen, aber natürlich kann Firefly das nicht.

Nun stand ich vor der Frage, ob ich doch auf mein Tool wechsele, und herausfinde, was sonst noch fehlt um es wirklich benutzen zu können, oder ob ich es in Firefly einbaue. Vor dem KI-Zeitalter hätte ich mich garantiert für Ersteres entschieden, aber nun witterte ich die Chance, dass ein einfaches ”Bitte bau ein, dass man zwei oder mehr auf der Transaktionsliste ausgewählte Transaktionen mergen kann"* mein Problem in kurzer Zeit lösen könnte. Ich erstellte also einen Fork von Firefly, checkte das Git-Repo aus und warf Claude an. Insgesamt dauerte es so zehn Minuten AI-Zeit und weitere zehn Minuten für mich um herauszufinden, wie ich den Docker-Container bauen kann und das Feature war drin und funktioniert. Juchu!

screenshot-2025-12-03-at-17.14.56.png

Ein weiterer Fall in dem mir das vorsichtige anwenden von etwas AI-Magie den Alltag etwas erleichtert hat.

(Ja, ich weiß, theoretisch muss ich jetzt immer Zeit investieren, den Fork aktuell zu halten, mit den Updates aus Upstream, aber da kommt zum Einen eh nie was spannendes und zum Anderen hab ich davor mit der Version von zwei Jahren gearbeitet und nichts vermisst)

*: Der volle Prompt war etwas länger, auf Englisch und insgesamt gab es noch vier Feedbackloops, wo er ein paar Error 500s fixen musste.

]]>
<![CDATA[Scheibenwelt ]]> https://knuspermagier.de/posts/2025/scheibenwelt Wed, 12 Nov 2025 23:05:00 +0000 https://knuspermagier.de/posts/2025/scheibenwelt

Ich habe in den letzten Jahren ja öfters versucht wieder in die Scheibenwelt zu kommen, aber bisher ist es mir nicht so richtig gelungen. Ich finde das sehr schade da Wachen, Wachen! damals, als ich 16 war, das erste Buch war, was ich in meinem Leben gelesen habe und ich fand es total witzig und cool.

Leider scheint mit der Humor von Terry Pratchett in den letzten Jahren immer… weniger zu gefallen. Oder keine Ahnung. Ich habe, glaube ich, ungefähr schon dreimal mit Die Farben der Magie angefangen und es abgebrochen. Diesmal habe ich mir als Hörbuch angemacht und hab es fast durch, weil ich mich da weniger überwinden muss, als wenn ich selber lese, aber so richtig übergesprungen ist der Funken noch nicht wieder. Vielleicht gebe ich der Sache mal noch ein oder zwei Bücher. Vielleicht ist die Zauberer-Reihe auch einfach gar kein guter Einstieg und ich sollte lieber bei den Wachen-Büchern weiter machen. Wer weiß.

Diese gute alte Lesereihenfolge von Uwe Milde dürfte auf jeden Fall zu meinen ältesten Bookmarks gehören.

]]>
<![CDATA[Wie mich mein WLAN viel Zeit kostete ]]> https://knuspermagier.de/posts/2025/wie-mich-mein-wlan-viel-zeit-kostete Wed, 08 Oct 2025 22:25:00 +0000 https://knuspermagier.de/posts/2025/wie-mich-mein-wlan-viel-zeit-kostete

Letztens ersetzte ich mein in die Jahre gekommenes Amplifi HD-System mit einer Kombi aus UniFi Express 7 und U7 Lite. Erstmal lief alles auch super, vor allem das auspacken und konfigurieren macht ja immer Spaß, weil alles so hübsch ist, angefangen bei der Verpackung, bis hin zur Konfigurationsoberfläche.

Als ich ein paar Tage später merkte, dass ich, wenn ich zu dem U7 Lite verbunden bin, nur maximal 10 MBit Durchsatz bekomme, war ich allerdings wieder etwas enttäuscht. Da hat wohl mein Netzwerk-Fluch wieder zugeschlagen, den ich mir wahrscheinlich eingefangen habe, weil ich im Informatik-Studium zu selten in der Hochschule war. Der sorgt auch dafür, dass bei mir Fritzboxen nie zufriedenstellend funktionieren.

Ich erstellte mir also eine Liste von Dingen, an denen es liegen könnte und probierte durch. Das Kabel von der Buchse bis zum Accesspoint war es schonmal nicht, auch wenn ich darauf meine größte Hoffnung legte. Das war nämlich schon echt alt und zerquetscht. Als nächstes warf ich einen Blick auf meinen Switch und sah, dass das Lämpchen am entsprechenden Port statt grün nur orange leuchtet. Also schonmal bestätigt kein Gigabit-Link!

Nun verbrachte ich zu viel Zeit damit, im Unify UI herauszufinden, wie ich den SSH-Zugang aktivieren kann, um mich auf dem Gerät einzuloggen und per ethtool eth0 zu checken, mit welcher Geschwindigkeit das Interface arbeitet. Cool, dass das geht, aber warum wird das nicht einfach auch in der Web UI angezeigt? Ist ja nicht so, als wären die da sonst sparsam mit Daten. Jedenfalls bestätigte mir die Anzeige das Problem: Speed: 10Mb/s

Ich probierte also erstmal das Einfachste, was mir in den Sinn kam: Ein anderer Port am Switch. Fünf Minuten später: Speed: 1000Mb/s. Fixed, juchu.

Einerseits bin ich nun froh, dass ich nicht weiter Kabel ausprobieren muss und dass es auch nicht das Kabel in der Wand ist, was kaputt ist. Andererseits finde ich es schade, dass dieser 8-Port PoE-Switch, anscheinend… kaputt ist. Zwei andere Ports mit Devices, die eigentlich Gbit können, sind nämlich ebenfalls orange. Mal sehen, wie lange es dauert, bis der nächste Port kaputt geht.

]]>
<![CDATA[Wie mich mein Adblocker viel Zeit kostete ]]> https://knuspermagier.de/posts/2025/wie-mich-mein-adblocker-viel-zeit-kostete Mon, 25 Aug 2025 08:10:00 +0000 https://knuspermagier.de/posts/2025/wie-mich-mein-adblocker-viel-zeit-kostete

Seit ein paar Wochen machte der dev-Prozess eines Projektes Probleme. Immer, wenn ich die Seite aufrufen wollte, spuckte er nur Fehlermeldungen auf die JavaScript-Console aus. Da ich keine Zeit hatte, mir das genau anzuschauen, arbeitete ich halt wie 2005 mit einem npm build nach jeder Änderung. Ging schon irgendwie, war aber nervig.

Gestern wollte ich das Problem endlich mal beheben und schaute es mir genauer an. Stimulus konnte einen Controller nicht laden, soso. Bei Vite-Projekten ist es ja so, dass im dev-Modus nicht alles zu einem großen Bundle zusammengeklebt wird, sondern jede JavaScript-Datei einzeln geladen wird. Ich fräste mich da also durch und versuchte den Fehler zu finden, ohne größeren Erfolg.

Ich bat Claude AI ein paar Debug-Ausgaben an kritischen Stellen einzubauen, aber das zeigte mir eigentlich auch nur, dass weiterhin alles in Ordnung war. Als ich irgendwann die Console nochmal genau anschaute und Meldung für Meldung durcharbeitete, fiel es mir eine Zeile auf, die ich bisher ignoriert hatte: die lib/matomo.js konnte nicht geladen werden.

🤦‍♂️🤦‍♂️🤦‍♂️

Vor Monaten baute ich für ein paar Funktionen ein Tracking ein, das mit Matomo realisiert wurde. Ich packte die Helper-Funktionen dafür in diese Datei, die ich dummerweise halt matomo.js nannte. Zunächst war alles völlig problemlos, aber seit ein paar Wochen klappte es nun nicht mehr, was war nur geschehen? Richtig, Chrome hat mich gezwungen auf uBlock Origin Lite umzusteigen, da das richtige uBlock Origin ja nicht mehr funktioniert. Zunächst habe ich mich gefreut, dass auch die Lite-Funktion ziemlich gut funktioniert und ich in meinem täglichen Leben keine Änderung merke, aber offensichtlich gibt es schon ein paar Feinheiten die anders sind – so hat uBlock Origin anscheinend erkannt, wenn es sich bei einem Request um einen Dynamic Import aus dem JavaScript-Kontext handelt (oder so) – uBlock Lite sind ja nur noch einfache blockierte URLs oder URL-Teile.

Was lernen wir daraus?

  • Bei Fehlern die JavaScript-Console genau lesen und keine Zeilen auslassen
  • Trackingfunktionen nicht in einer so offensichtlich benannten Datei verstecken
  • Vielleicht doch auf einen Browser wechseln, der noch das richtige uBlock unterstützt
]]>
<![CDATA[Alte Windows-Spiele mit UTM ]]> https://knuspermagier.de/posts/2025/alte-windows-spiele-mit-utm Fri, 22 Aug 2025 14:05:00 +0000 https://knuspermagier.de/posts/2025/alte-windows-spiele-mit-utm

Vor nicht allzulanger Zeit versuchte ich ja mal vergeblich Mech Commander in einer VM zum Laufen zu bekommen. Leider ohne Erfolg, unter Windows 98 klappte die Installation nicht und unter Windows XP crashte es direkt.

Nun begab es sich, dass ich ein ebenfalls uraltes Spiel ausprobierte, nämlich Lego Loco. Das klappte an sich tadellos unter Windows XP, hatte aber den Nachteil, dass es immer crashte, wenn man einen Spielstand laden wollte, was das Langzeit-Spielerlebnis natürlich etwas trübt.

Als letzten Rettungsversuch wollte ich nochmal Windows 98 probieren, da ich meine alten, selbst-installierten, VMs aber schon weg geworfen hatte, googelte ich einmal "UTM windows 98 download" und hoffte, dass einfach jemand ein fertiges Image irgendwo hin geladen hat, damit ich mir nicht wieder eine .iso-File besorgen muss. Glücklicherweise fand ich dieses Github-Repo. Da hat sich wohl jemand echt viel Mühe gegeben und ein paar UTM-Images gezimmert, wo alles richtig schön installiert und konfiguriert ist und gut laufen soll!

Voller Vorfreude lud ich die 300MB also herunter, startete Windows, installierte Lego Loco und, schwupps! Man kann speichern und auch laden, klasse. Anscheinend reicht es nicht, einfach nur ein frisches Windows 98 in die UTM-VM zu installieren und es sind noch ein paar geheime Kniffe notwendig. Danke an anonymousaga, den oder die anonyme Spender:in dieser Datei.

Zu guter Letzt installierte ich natürlich noch Mech Commander, was tadellos funktionierte. Ob ich das jetzt wirklich spiele, oder ob mir das Intro-Video nicht schon gereicht hat um genug Nostalgie zu empfinden, schauen wir mal.

]]>
<![CDATA[Wireguard ]]> https://knuspermagier.de/posts/2025/wireguard Tue, 12 Aug 2025 09:00:00 +0000 https://knuspermagier.de/posts/2025/wireguard

Vor etwa einem Jahr wollte ich einmal einen VPN-Tunnel zwischen einer OPNSense Firewall und einer Fritzbox herstellen. Ich aktivierte das Wireguard in der Fritzbox, kopierte die ganzen Keys zwanzig mal hin und her und es funktionierte einfach nicht! Ich verzweifelte, schob es auf die Fritzbox und ignorierte das Thema.

Wenige Monate später, ich starte einen neuen Versuch. Diesmal kaufte ich so einen kleinen VPN-Würfel von GL.inet. Tolles Ding. Einfach so ein sehr handschmeichlerischer Alu-Block. Ich liebe es. Nach der Einrichtung allerdings das gleiche. Die Geräte hinter der Firewall kamen einfach nicht durch das VPN durch. OPNSense zeigte auch an, dass das Gateway nicht erreichbar ist. Ich verzweifelte.

Die gleiche Konfiguration mit dem Wireguard-Zugang zu Mullvad funktionierte problemlos. Wenn ich mit meinem Handy und der Wireguard-App darauf zugriff, klappte es auch ohne Mucken. Woran liegt es nur?

Irgendwann fiel mir in der Konfiguration dann auf, dass es eine Checkbox gibt, die den Geräten im VPN erlaubt auf Geräte innerhalb des Netzwerks zuzugreifen. Ich aktivierte ihn und schwupps, es funktionierte. Meine Güte. Das Problem war die ganze Zeit, dass die Geräte im VPN, zumindest wenn es über die Firewall ging nicht auf 10.10.0.1 als Gateway zugreifen konnten, weil der Haken in der Wireguard-Konfiguration nicht gesetzt war. Aah.

Ich erinnerte mich, dass es eine ähnliche Checkbox auch bei der Fritzbox-Konfiguration gab. Ahhh. Ich klickte ihn immer nicht an, weil ich dachte, ich brauche keinen Zugriff auf Geräte im Netzwerk, ich wollte den Wireguard-Endpunkt ja quasi nur als Exit-Node benutzen. Dass das Gateway direkt auch als “Gerät im Netzwerk” gilt, wer hätte das denn gedacht.

Naja. Wie auch immer. Jetzt funktioniert alles. Nach nur einem Jahr! Im Grunde könnte ich das GL.inet-Ding auch zurückschicken, es müsste ja, mit dem richtigen Haken, auch mit der Fritzbox gehen. Aber es ist auch so niedlich!

]]>
<![CDATA[Die Nackte Kanone ]]> https://knuspermagier.de/posts/2025/die-nackte-kanone Tue, 29 Jul 2025 08:10:00 +0000 https://knuspermagier.de/posts/2025/die-nackte-kanone

Die letzten Tage schaute ich, inspiriert von einem Kinoplakat zum Remake, den klassischen alten Die Nackte Kanone und fühlte mich sehr gut unterhalten. Ein paar Witze sind natürlich nicht mehr ganz so aktuell, aber der ganze Kram, der z. B. teilweise im Hintergrund passiert ist einfach weiterhin gold. Allgemein ist es einfach das, womit mein Humor in der Kindheit geprägt wurde, wahrscheinlich funktioniert es daher noch perfekt. Mal sehen, wie es mit den zwei anderen Teilen aussieht.

]]>
<![CDATA[Claude AI als Aufräumhilfe ]]> https://knuspermagier.de/posts/2025/claude-ai-als-aufraumhilfe Wed, 23 Jul 2025 10:50:00 +0000 https://knuspermagier.de/posts/2025/claude-ai-als-aufraumhilfe

Vor ein paar Jahren baute ich mir ja ein paar Tools für die private Verwendung. Ich hatte gerade eine neue Liebe für Laravel und Livewire entdeckt, wollte aufräumen, ein paar selbstentwickelte Sachen modernisieren, ein paar Subscription-Services absägen, und so Kram halt. Es machte ne Menge Spaß und ich versuchte alles so aufzusetzen, dass ich später sogar noch eine Übersicht habe, wie alles funktioniert. Ich hab sogar diverse Sachen in eine Library ausgelagert, damit Kram wie Authentifizierung einfach in allen Apps gleich läuft.

Jahre später zeigte sich jetzt, welche Apps ich wirklich nutze, und was eigentlich weg kann.

Mein last.fm-Ersatz zum Beispiel hat sich eigentlich erledigt. Seit Jahren höre ich viel weniger Musik, da ich viel mehr Podcasts und Hörbücher in meine Gehörgänge jage. Zudem höre ich einfach viel mehr auf Youtube, weil mir die ganzen Live, Akustik, Whatever-Versionen, die verschiedene Künstler:innen da veröffentlichen meistens viel besser gefallen als die Studio-Versionen. Früher hätte ich mir das alles runtergeladen, die Audiospur rausgezogen und als MP3 in mein Foobar2000 gezogen, aber die Zeiten sind halt vorbei. Youtube auf und los. Jedenfalls fällt das Scrobbling damit natürlich schwer und ist teilweise natürlich einfach nicht mehr möglich. Dieses Video enthält einfach fünf Songs, keine Ahnung wie man das scrobbeln sollte. Abgesehen davon, dass es einfach nur ein lustiges Gimmick ist und letztendlich einfach egal.

Auf der anderen Seite benutze ich Sachen wie meine Tagebuch-App und die Rezepte-Verwaltung sehr intensiv. Oder mein GPS-Tracking. Wobei letzteres etwas löchrig ist, da die externe iOS-App dafür sehr unzuverlässig geworden ist.


Letztens wollte ich auf jeden Fall mal was ändern, was mich aber direkt an den Rand des Wahnsinns brachte. Ich weiß nicht mehr genau, was es war, aber ich musste dafür auf Livewire 3 updaten. In dem Zuge dachte ich, das man ja auch mal auf Laravel 12 gehen könnte. An sich kein größeres Problem, aber natürlich müssen auch alle Sachen in der Library, die alle meine Projekte verbindet, aktualisiert werden. Was bedeutet, dass ich alle anderen Codebases auch anfassen müsste…

Also natürlich könnte ich da irgendwie eine neue Version machen und die anderen Projekte einfach mit dem alten Code weiter laufen lassen, aber die Entwicklung mit einem lokalen Composer-Package ist so schon ein Pain, das will man ja alles nicht. Das brachte mich also mal wieder ein paar Monate lang in eine Art Schockstarre, da ein Feature, das wahrscheinlich fünf Minuten in der Implementierung gebraucht hätte, einen riesigen Rattenschwanz von Updates und Scheiße hinter sich her zog. Ich entschied mich also für das einzig richtige in dieser Situation: Nichts tun.


Ich tappe leider immer wieder in die Falle, dass ich mir kurz etwas selber baue, und dabei vergesse, dass es am Ende immer Stress ist, den Kram am Leben zu halten, wenn man doch nochmal neue Features haben will. Es war sicher nicht so sinnvoll einfach fünf oder sechs unabhängige Laravel-Apps zu bauen, in der Hoffnung, dass ich sie bestimmt regelmäßig update.

Vielleicht wäre es sinnvoller gewesen, alles in eine App zu packen, aber im Hinterkopf hat man ja immer den Gedanken so ein Ding vielleicht doch für die Allgemeinheit freizugeben und was bringt es dann, wenn es das ganze “knuspermagiers Web-App-Taschenmesser” ist.


Nun trat allerdings auch die Claude CLI in mein Leben, und was soll ich sagen, es funktioniert verdammt gut.

”Please update this project to Laravel 12 and Livewire 3 and update all Livewire components to use the new syntax. Adjust the project structure to the new Laravel 12 default project structure"

Nach ein paar Minuten war er fertig. Ich musste noch ein paar Kleinigkeiten fein-tunen, weil eine Dependency nicht kompatibel war, aber ansonsten klappte das super. Zugegebenermaßen war die App, an der ich es probierte wirklich nicht komplex, aber trotzdem hätte es mich manuell sicher ein paar Stunden gekostet, diese geistig zermürbende und langweilige Arbeit auszuführen. Puh.

Auch wenn es dank der AI nun vielleicht leichter wäre, alles up-to-date zu halten, werde ich doch nochmal schauen, welche meiner Apps ich wirklich brauche und benutze und großzügig Kram wegwerfen. Beim Rest muss ich nochmal überlegen, wie ich mir die weitere Entwicklung möglichst leicht machen kann. Der Vorteil, dass man bei Eigenentwicklungen alles selber so machen kann, wie man will, ist natürlich einfach hinfällig, wenn man sich selber direkt so ein technical debt-Loch geschaufelt hat, dass man wochenlang kein Bock hat, drei Zeilen für ein kleines Feature zu schreiben.

]]>
<![CDATA[Strand ohne Palme ]]> https://knuspermagier.de/posts/2025/strand-ohne-palme Wed, 18 Jun 2025 08:05:00 +0000 https://knuspermagier.de/posts/2025/strand-ohne-palme

Danke Youtube-Algorithmus. Dieses (an NPRs Tiny Desk angelehnte) Mini-Konzert von Strand ohne Palme ist irgendwie angenehm und süß. Außerdem haben sowohl die Band als auch der Youtube-Kanal noch fast keine Subscriber, das find ich schade!

]]>
<![CDATA[Die Geschichte mit den Sternschrauben ]]> https://knuspermagier.de/posts/2025/die-geschichte-mit-den-sternschrauben Sat, 14 Jun 2025 23:10:00 +0000 https://knuspermagier.de/posts/2025/die-geschichte-mit-den-sternschrauben

Seit vielen, vielen Jahren höre ich das Podcast UFO mit Florentin Will und Stefan Titze, es ist sehr gut.

In der Folge 465, bei 15:45 Minuten sprechen sie aus Gründen über Sternschrauben, also die mit dem Torx-Bit. Er erzählt, dass er in seinem Zivildienst mal ein Schild anbringen sollte, in einer Kinderheilanstalt, und sein Chef ihm sagte, er solle die Sternschrauben benutzen, damit die Kinder das Schild nicht einfach abschrauben. Ich hörte das so und dachte mir, dass mir das doch bekannt vorkommt. Ich war mir sehr sicher, dass er das schon einmal genauso erzählt hat, was ja im Verlauf von fast fünfhundert Folgen auch nichts schlimmes ist.

Jetzt könnte der Blogpost so weitergehen: Ich lud also alle Folgen als MP3, jagte sie stundenlang durch Whisper und durchsuchte die transkribierten Texte nach Kinderheilanstalt und fand tatsächlich die Folge, in der es schonmal erzählt wurde!

Ganz so war es allerdings nicht. Ich dachte mir, ich kann das ja irgendwann mal machen, irgendwas wichtigeres kam mir aber dazwischen. Bis ich heute die aktuelle Folge hörte, in der die beiden Hosts erzählen, dass ein anderer Hörer eine Webseite erstellt hat, auf der man nach Wörtern suchen kann, um zu ermitteln, wie oft sie im Podcast erwähnt – neben ein paar anderen Statistiken. Dafür hat er alle Folgen heruntergeladen und durch Whisper gejagt… Moment.

Glücklicherweise sind alle Transkriptionen im Github-Repo und ich konnte sie herunterladen, durchsuchen und meinen Wissensdurst stillen! Florentin hat tatsächlich vor knapp 3 Jahren, am 12.11.2022 schon genau die Geschichte vom Chef und den Sternschrauben erzählt. Wusst ich es doch!

Nochmal ein großes Danke an jjccmm!

]]>