knuspermagier.de https://knuspermagier.de Der private Blog von Philipp Waldhauer Mon, 26 Jan 2026 02:26:42 +0000 de-DE Philipp, der alte Generator <![CDATA[Wochenrückblick KW4/2026 ]]> https://knuspermagier.de/posts/2026/wochenruckblick-kw4-2026 Sun, 25 Jan 2026 14:45:00 +0000 https://knuspermagier.de/posts/2026/wochenruckblick-kw4-2026

Eine weitere Woche ist vorbei!

  • 🎶 Eingeschränkt: Wenn ich im Auto fahre, habe ich eigentlich nur eine CD (ein Aufzeichnung eines Zauberer von Oz-Musicals) und eine SD-Karte drin. Letztere habe ich mit der Farin Urlaub-Discographie bespielt, als ich schnell ausprobieren wollte, ob das Auto die SD-Karte akzeptiert. Es gehen nämlich maximal 2GB. Irgendwie finde ich das immer ganz entspannend, so eine beschränkte Auswahl zu haben, aber auch ganz schön. (Natürlich gibt es noch 1Live, aber manchmal läuft da nur schrott)
  • 🏚️ Dumb Home: Ich hatte mir den offiziellen Home Assistant Thread-Stick gekauft um die Switchbot-Steckdosen vielleicht doch per Matter anzubinden. Als ich den Stick anschloss, ging aber erstmal der Zigbee-Stick kaputt. Zusätzlich klappt der Thread-Stick gar nicht (einfach so) mit meinem aktuellen Home Assistant-Docker-Setup, aaah. Es ist doch etwas nervig.
  • 🤖 Vibe fehlt: Durch einen dummen Fehler, der meine ganze Weekly Usage bereits am Dienstag verpulvert hat, habe ich die restlichen Tage mal mit OpenCode versucht ChatGPT als Coding-Model zu benutzten. Leider hat mir das von den Ergebnissen weniger gefallen, als Claude AI. Da ich auch ChatGPT an sich in letzter Zeit fast gar nicht mehr nutze, hab ich mich entschlossen, die Subscription da mal zu beenden.
  • 📺 Schlecht nachgemacht: Das ZDF hat ein paar neue Folgen von Nicht nachmachen! produziert. An sich hätte es sicher lustig sein können, denn die Hosts mag ich ja, aber es hat einfach nicht den, Achtung, vibe, wie die alten Folgen mit Hoecker und Boning.
  • 😵‍💫 Verwirrung: Saltatio Mortis haben eine neue EP veröffentlicht und das hat mich dazu gebracht, mal zu schauen, was in den letzten Monaten/Jahren eigentlich bei ihnen passiert ist und ich bin einfach komplett verwirrt über ihr künstlerisches Schaffen. Ich werde das in den nächsten Wochen nochmal genauer anschauen.
  • 🕊️ Vogelfrei: Im Rahmen des Digital Independence Day überlege ich natürlich auch ab und zu, was man noch alles ersetzen könnte. Für Tailscale ist mir heute netbird entgegengeflogen. Andererseits könnte man Tailscale ja aber auch selber hosten. Mal sehen, was ich mit dieser Information anfange, habe ja genug zu tun.

Bis nächste Woche!

]]>
<![CDATA[Amazon-Bestelldetails-Extraktor ]]> https://knuspermagier.de/posts/2026/amazon-bestelldetails-extraktor Sat, 24 Jan 2026 12:40:00 +0000 https://knuspermagier.de/posts/2026/amazon-bestelldetails-extraktor

Da ich gerne wissen wollte, was ich eigentlich so bei Amazon bestelle und das verlinkt mit den Transaktionen in Firefly speichern wollte, brauchte ich einen Weg um die Daten herauszubekommen. Leider hat Amazon dafür natürlich keine API, also suchte ich etwas halb-automatisches und bat, mal wieder, Claude um Hilfe. Mein Prozess ist nun folgendermaßen:

file://xp0ijexse3dtgrze
  1. Mittlerweile hat Amazon zum Glück die Order-ID mit in der Kreditkartenabbuchung drin. Daraus erzeugt mir Firefly automatisch den Link zu den Bestelldetails: https://www.amazon.de/gp/css/summary/edit.html?orderID=$orderId
  2. Ich drücke mein von Claude erzeugtes Bookmarklet1, dass mir ein JSON in die Zwischenablage speichert, in dem alle Daten drin sind
  3. Ich packe das JSON ins Notizfeld der Transaktion und Firefly erstellt daraus automatisch die entsprechenden Produkte und verlinkt sie damit.
  4. Das dauert pro Transaktion so drei Sekunden und funktioniert schon ein paar Wochen. Sollte Amazon das Markup ändern, ist es sicher auch schnell gefixt.
file://ii8lbxdcczce05me

1: Das Bookmarklet:

javascript:(function(){const cards=document.querySelectorAll('[data-component="orderCard"]');const items=[];cards.forEach(card=>{const shipments=card.querySelectorAll('[data-component="shipments"] > .a-box-group > .a-box');shipments.forEach(shipment=>{const statusEl=shipment.querySelector('.od-status-message span.a-text-bold');const isReturned=statusEl&&statusEl.textContent.includes('Rücksendung');const products=shipment.querySelectorAll('[data-component="purchasedItems"] .a-fixed-left-grid');products.forEach(product=>{const titleEl=product.querySelector('[data-component="itemTitle"] a');const imgEl=product.querySelector('[data-component="itemImage"] img');const priceEl=product.querySelector('[data-component="unitPrice"] .a-offscreen');if(titleEl){items.push({product_name:titleEl.textContent.trim(),product_link:'https://www.amazon.de'+titleEl.getAttribute('href').split('?%27)[0],price:priceEl?priceEl.textContent.trim():%27%27,has_been_returned:isReturned,image_url:imgEl?imgEl.getAttribute(%27src%27):%27%27});}});});});const json=JSON.stringify({items},null,2);navigator.clipboard.writeText(json).then(()=>alert(%27Copied %27+items.length+%27 items to clipboard!%27)).catch(e=>alert(%27Failed to copy: %27+e));})();

(Irgendwann finde ich wieder heraus, wie der Blog einen Clodeblock ordentlich formatiert darstellt)

]]>
<![CDATA[UberBlogr-Webring ]]> https://knuspermagier.de/posts/2026/uberblogr-webring Fri, 23 Jan 2026 23:15:00 +0000 https://knuspermagier.de/posts/2026/uberblogr-webring

Auf der Suche nach weiteren versteckten persönlichen Blogs wie meinem, wurde ich mal wieder von Jan auf den UberBlogr-Webring aufmerksam gemacht, bei dem ich mich auch direkt mal angemeldet habe. Ich werde mich da die nächsten Tage mal durchklicken!

]]>
<![CDATA[Your App Subscription Is Now My Weekend Project ]]> https://knuspermagier.de/posts/2026/vibe Thu, 22 Jan 2026 13:55:00 +0000 https://knuspermagier.de/posts/2026/vibe

All of these $10/month apps are suddenly a weekend project for me. I’m an engineer, but I have never written a single macOS application. I’ve never even read Swift code in my life, and yet, I now can get an app up and running in a couple of hours. This is crazy.

Your App Subscription Is Now My Weekend Project auf rselbach.com

Was Roberto hier schreibt, deckt sich mit meinen Gefühlen und Erfahrungen der letzten Wochen. Man kann sich wunderbar kleine Tools für den Eigengebrauch bauen lassen. Nichts, was ich zwingend anderen Menschen antun würde, oder wofür ich Verantwortung haben wollen würde, aber perfekt für den Heimgebrauch.

]]>
<![CDATA[Roasted Broccoli and Whipped Tofu With Chile Crisp Crunch ]]> https://knuspermagier.de/posts/2026/roasted-broccoli-and-whipped-tofu-with-chile-crisp-crunch Thu, 22 Jan 2026 12:15:00 +0000 https://knuspermagier.de/posts/2026/roasted-broccoli-and-whipped-tofu-with-chile-crisp-crunch

Immer wenn ich so Rezept-Ausprobier-Videos auf Youtube gucke, finde ich zwar meistens ein paar Sachen lecker, vergesse es aber auch sofort. Diesmal habe ich es tatsächlich geschafft mir etwas, wait for it, aufzuschreiben (also um genau zu sein machte ich einen Screenshot) und daher gelang es mir heute tatsächlich dieses Gericht aus der New York Times nachzukochen. (Ich sah es in diesem Video von Fabi)

file://ectrlrgruclmsklm

Es besteht aus drei Teilen:

  • Einer Basis aus Cashewmus und Seidentofu, was unglaublich lecker schmeckt, dafür dass es nur zwei Zutaten (+ Salz / Pfeffer) sind
  • Gebackener Brokkoli mit Sojasauce (ich hab ihn erst kurz gekocht, damit es im Ofen schneller geht)
  • Eine Mischung aus gehackten Cashews,Panko (ich nahm normales Paniermehl) und knusprigem Chili-Öl, was ich endlich mal schaffte zu kaufen.

Es ist sehr lecker.

]]>
<![CDATA[Projekte, die gehen mussten ]]> https://knuspermagier.de/posts/2026/projekte-die-gehen-mussten Wed, 21 Jan 2026 09:35:00 +0000 https://knuspermagier.de/posts/2026/projekte-die-gehen-mussten

Wer viel baut, wirft auch viel weg, das kennt man ja auch von Google. Wer trauert nicht Wave oder Reader hinterher. Schrecklich.

Ähnlich wie Google habe ich in den letzten Jahren ein paar Sachen gebaut, bei denen sich gezeigt hat, dass sie am Ende zu wenig Nutzen und Nutzer (nämlich null, statt wie erwartet einen) haben und damit abgeschaltet werden müssen, um nicht weiterhin Mental- und CPU-Load zu verbrauchen. Hier eine Liste aktueller Einstellungen, die niemanden außer mir betreffen:

logsock

Ich wollte einen kleinen Service, dem ich leicht Events schicken kann, die ich dann per Push-Notification bekomme. Funktionierte an sich gut, der einzige Nachteil war, dass diese Web Push-Geschichte unter iOS leider nicht ganz so zuverlässig funktioniert. Irgendwann geht etwas nicht mehr und man bekommt einfach keine Notifications mehr, bis man die Web-App mal neu installiert. Das ist natürlich dumm. Abgelöst wurde das Thema jetzt von meinem Matrix-Server, dem ich ähnlich leicht Dinge schicken kann.

mey

Mein Ersatz für last.fm und so. Lief eigentlich ganz gut im Hintergrund und hat sich meine History von Spotify gezogen und angezeigt, aber einerseits hatte ich nie die Energie meine alten Exports von last.fm korekt zu importieren (So Song-Namen wie “Intro” machten aufgrund der Export-Datenstruktur immer Zuordnungsprobleme) und andererseits ging mein Interesse für die Daten nie über ein “ja, das ist jetzt aber ganz witzig das zu haben” hinaus. (Ich hab auch hier mal darüber gebloggt, aber mein interaktives Tool geht natürlich nicht mehr)

Doch das größte Problem in diesem Zusammenhang ist wahrscheinlich, dass ich aktuell leider weniger Musik höre, da Podcasts und Hörbücher schon meine Ohren beanspruchen und wenn, dann mache ich das wohl auf Youtube.

Mey kann also wohl erstmal Weg und in 60 Jahren wieder ausgegraben werden, wenn ich nochmal wissen will, wie oft ich “Mach die Augen zu” von die ärzte hörte.

cms

Äh ja, ich hab tatsächlich mal angefangen eine Art CMS / Bloggingsystem zu bauen. Ich wollte etwas für pwa.io und philipps.photos, was perfekt an die jeweiligen Seiten angepasst ist um dort so schnell und friktionslos wie möglich Inhalt veröffentlichen können. Tatsächlich gab ich das schon relativ schnell auf und integrierte die beiden Seiten einfach hier in den Kirby-Blog. Tatsächlich habe ich seit dem auf beiden Seiten nichts veröffentlicht, haha.

serenity

Damals schnell angefangen, weil mir Firefly III nicht so richtig gefallen hat. Leider habe ich es nicht fertig gemacht, also auch nicht wirklich benutzt. Die Daten in Firefly wuchsen weiter an und dank Claude kann ich es mir ja jetzt so anpassen, wie ich es will, ohne, dass ich eine komplette Neuentwicklung machen muss.


Das waren jetzt nur die Projekte, die ich tatsächlich auch mal deployed und kurz benutzt habe. Dazu kommen natürlich noch tausend, die nichtmal ein git init gesehen haben und schon voher abgesägt wurden, aber daran erinnere ich mich natürlich auch nicht mehr.

]]>
<![CDATA[Ein kurzer Ausflug zu n8n ]]> https://knuspermagier.de/posts/2026/ein-kurzer-ausflug-zu-n8n Tue, 20 Jan 2026 22:35:00 +0000 https://knuspermagier.de/posts/2026/ein-kurzer-ausflug-zu-n8n

Nachdem in den letzten Monaten mein Youtube voll war mit n8n-Tutorials habe ich es mir über Weihnachten doch mal installiert, das geht ja ganz fix und auch ausprobiert. Mein “Problem” war bisher ja immer, dass ich gar keine Ahnung hatte, was ich jetzt dringend noch automatisieren muss. Ich hab zwar ein paar Dinge, die laufen, aber das Zeug läuft ja, dafür muss ich ja jetzt nichts Neues installieren.

Nachdem ich meinen Matrix-Server aufgesetzt hatte, hatte ich aber doch kurz die Idee, mir vielleicht so einen Bot zu bauen, der mir morgens die wichtigsten Infos zum Tag schickt. Warum auch nicht. Im Großen und Ganzen handelt es sich dabei um Sonnenauf- und Untergang und das Wetter. Ja, äh, sehr spannend.


Am Anfang war ich schon relativ überrascht, wie einfach und geschmeidig das alles funktioniert. Quasi, wie in allen Tutorials. Dann wurde es allerdings doch kurz frustrierend. Als alter Programmierer, dachte ich, ich lege die ganzen Tasks, die Daten sammeln (Wetter, Sonnenaufgang) parallel an und werfe die ganzen Outputs dann in die “Schick eine Nachricht bei Matrix”-Node und er kümmert sich schon um die Concurrency.

Leider wurde ich da anscheinend enttäuscht. Zum Ersten braucht man, wenn man mehrere Sachen parallel anlegt am Ende Noch “Merge”-Nodes, die Sachen zusammenführen und außerdem führt er den Kram gar nicht parallel aus, sondern einfach nacheinander. Vielleicht bin ich etwas dumm, aber ich hab noch keinen Weg gefunden, dass er mehrere Sachen gleichzeitig macht.

file://nnzdy54cyvagc9lh

Nach ein bisschen herumprobieren hatte ich es aber geschafft und mittlerweile bekomme ich seit mehr als zwanzig Tagen jeden morgen eine Nachricht von meinem Matrix-Bot und weiß endlich, wann die Sonne aufgeht. Toll!

]]>
<![CDATA[Vergleich von ein paar Self-Hosted Sentry-Alternativen ]]> https://knuspermagier.de/posts/2026/vergleich-von-ein-paar-self-hosted-sentry-alternativen Mon, 19 Jan 2026 15:10:00 +0000 https://knuspermagier.de/posts/2026/vergleich-von-ein-paar-self-hosted-sentry-alternativen

Da mir das ständige Eintauchen in die Docker-Container, um mal eben die laravel.log zu öffnen etwas nervte, suchte ich schon seit ein paar Woche nach einem guten, zentralen, Errorlog-Tool. Der Platzhirsch wäre natürlich Sentry, aber das habe ich vor zehn Jahren schon probiert und natürlich war es ein Pain es zu installieren. Als einzelner Entwickler von ein paar Quatschprojekten, brauche ich auch 99% der Features gar nicht. Ich recherchierte also mal nach ein paar Alternativen und präsentiere hier meine Findings, nach dem ich mich mit jedem der Tools zwischen zehn Sekunden und zwei Stunden beschäftigte.

Meine Anforderungen waren die folgenden:

  • Leicht zu installierende Self-Hosting-Variante mit möglichst kleiner docker-compose-Datei.
  • Kompatibel zum Sentry-SDK, damit man es überall einfach einbinden kann
  • Optional: Alerts über Webhooks
  • Optional: Login per OpenID Connect

Telebugs

Sieht ganz spannend und leichtgewichtig aus, kostet aber 250$, was mir etwas zu teuer ist. Aber an sich natürlich ein nettes Finanzierungsmodell, das ich vielleicht nochmal anschauen werde, wenn ich sowas für Projekte brauche, die auch Geld bringen.

Flare

Für meine ganzen Laravel-Apps wäre das natürlich sehr passend, aber man kann es nicht selbst hosten und es kostet Geld.

Bugfender

Gar keine Installation-Dokumentation gefunden. Vielleicht kann man es gar nicht selber hosten, ich weiß nicht mehr wo ich es gefunden habe.

Bugsink

Ein Produkt aus den Niederlanden von einem Solo-Dev. Sehr sympathisch. Die docker-compose-Datei ist übersichtlich und enthält nur Postgres und die Bugsink-App. Ich hab es also eben gestartet, eine App angebunden, einen Fehler gesendet und es funktioniert. Es ist jetzt nicht das schönste Tool auf dem Planeten, aber sieht auch nicht schlimm aus.
Die einzigen zwei Problemchen: Man kann keinen Open ID-Provider einbinden und Notifications für die Errors gehen auch nur per E-Mail raus.

Glitchtip

Das wurde mir unter anderem letztes Jahr schon von Daniel empfohlen und die Webseite sieht ganz ganz cute aus. Die Compose-File war mir im ersten Moment etwas viel, da neben Postgres auch noch valkey und zwei weitere Services inkludiert waren, daher legte ich es erstmal zur Seite und probierte Bugsink.

Allerdings kann Glitchtip Login via Open ID und das ist ein Punkt der dafür spricht, es zu verwenden. Ich startete es also, probierte aus ob Events ankommen und freute mich! Die Open ID-Anbindung an Authentik funktionierte auch problemlos.

Update: Ich fand gerade heraus, dass man auch Notifications per Webhook verschicken kann und nicht nur per E-Mail, supi!

file://q5qajirr0xmd7rbg

Ich werde nun also mal die nächsten Monate schauen, wie es sich so schlägt!

]]>
<![CDATA[Wochenrückblick KW3/2026 ]]> https://knuspermagier.de/posts/2026/kw3-2026 Sun, 18 Jan 2026 16:30:00 +0000 https://knuspermagier.de/posts/2026/kw3-2026
  • 🧼 Sauber: Letzten Sonntag vermisste ich meinen rechten Airpod. Nach etwas überlegen fiel mir ein, dass ich nach dem Mittagessen die Tischdecke schnell zusammenlegte und in die Waschmaschine packte, weil da ein frischer Fleck war. Die Tischdecke. Mit dem etwas wirren Muster. Schnell zusammengelegt. Aaaah. Ein Blick auf die Waschmaschine offenbarte, was ich mir schon dachte: Der Airpod ist jetzt sauber. Eine Nacht in Basmati-Duftreis gebettet später funktioniert er allerdings wie am ersten Tag!
  • 🧺 Aufgeräumt: Wie schon in den letzten Jahren habe ich zum Jahreswechsel meinen aktuellen Dev-Ordner entsorgt und einen ganz frischen angelegt. Es ist immer wieder ein gutes Gefühl im neuen Jahr ohne die ganzen Ordner mit Tests und alten Projekten aus dem Vorjahr zu starten.
  • ⬆️ Upgedated: Livewire 4 und Filament 5 sind raus! Da ich jetzt, dank Claude, alle meine Projekte auf dem aktuellen Stand habe, kann ich da jetzt auch direkt updaten und die neusten Features genießen!
  • 🗓️ Täglich: Die nächste Woche mit täglichem Bloggen ist erledigt. In so einer normalen Arbeitswoche wird es aber schon anstrengend, das muss ich sagen, aber auch, weil ich mir das Ziel setzte meistens wirklich was zu schreiben, und nicht nur einen Link oder ein Musikstück zu posten. Ich werde mal sehen, wie es sich in der nächsten Woche entwickelt und ob der Spaß nachlassen wird.
  • 🏚️ Un-Smart: Diese Woche habe ich mich noch etwas mit meinen Switchbot-Plugs herumgeärgert. Ich kaufte die, weil sie günstig waren, aber sie sind echt nicht so gut angebunden, da die SwitchBot Cloud-Integration echt panne ist (super langsam und oft nicht erreichbar) und sie direkt per Bluetooth ansprechen ist bisher auch nur wackelig, trotz Bluetooth-Gateway direkt daneben. Nervig.
  • 📚 Gelesen & Gehört: In dieser Woche hörte ich ein Buch von Martin Suter und las weiter am aktuellen Hunger Games Prequel. Ich hab im Kindle mittlerweile die Prozentanzeige abgeschaltet, weiß also nicht, wie weit ich bin, aber es ist ganz nett, leider schlafe ich weiterhin nach so zwei Seiten ein.
  • 🤖 Vibe-Update: Diese Woche habe ich hauptsächlich das Tagebuch und die Rezepte-App verbessern lassen. Beide Sachen erhielten sehr gute Updates, sodass ich beides direkt viel umfangreicher nutze. Ich bin weiterhin sehr erfreut darin, was alles schon möglich ist und motiviert mich noch weiter damit zu beschäftigen und zu schauen, wie ich Claude jetzt motiviert bekomme, alles noch etwas weniger Spaghetti-mäßig zu bauen.
  • 🎶 Sandmännchen: Klaus Kauker ist ja schon seit ein paar Monaten zurück auf Youtube und hat ein informatives Video zu dem Sandmännchen-Lied veröffentlicht, für alle, denen es auch schon immer komisch vorkam.

Bis nächste Woche!

]]>
<![CDATA[Canon Rock ]]> https://knuspermagier.de/posts/2026/canon-rock Sat, 17 Jan 2026 23:45:00 +0000 https://knuspermagier.de/posts/2026/canon-rock

Damals gab es ein Video, in dem ein Teenager den Canon in D von Pachelbel in einer Rock-Version darbot und es war schon eines der wichtigsten Videos für mich damals, denn danach wollte ich unbedingt eine Gitarre.

Mittlerweile gibt eine neue Version, die irgendeine Firma in Auftrag gegeben hat und sie brachte mich mal wieder dazu, das Lied zehn mal anzuhören und mich zu freuen, wie toll es ist.

Zwischen diesen Videos liegen zwanzig Jahre und damals kaufte ich mir von meinem ersten Zivildienstgeld auch eine Gitarre. Leider habe ich es in all den Jahren nie geschafft auch nur einen Takt des Lieds zu lernen, denn nach dem ruhigen Intro knallt es auch einfach direkt so rein, dass es wahrscheinlich gleichzeitig die frustrierendste Lernerfahrung direkt am Anfang meiner Gitarrenkarriere war. Also, wenn ich jetzt noch einmal in die Guitar Pro-Datei reinschaue, sieht es wieder gar nicht so komplex aus, aber es ist halt sehr schnell und erfordert ein sehr sauberes spielen, was einfach nicht geht, wenn man gerade erst eine Gitarre gekauft hat.

file://czvgeiihop0bo5z8
Die Guitar Pro-Datei von damals habe ich natürlich auch noch!

Hätte ich beim Gitarrespielen lernen mehr Ausdauer als eine Eintagsfliege, wäre ich vielleicht weiter gekommen, aber mittlerweile begnüge ich mich damit, dass ich einfach drei Stundenlang die Canon-Akkorde spiele, das ist auch schön, wenn auch nicht ganz so… fancy.

D A Bm F♯m / G D G A

(Ich hab in den zwanzig Jahren das ein oder andere Lied gelernt, aber insgesamt bin ich sehr gut darin alles auf fehlendes Talent zu schieben, statt darauf, dass ich einfach gar keine Lust habe zu üben)


Ich habe ja eigentlich aufgegeben, meine Blogposts, für die ich keine Bilder habe, mit schlechten KI-Bildern aufzuwerten, aber ich hatte gerade Claude offen und ich mag die Pelikane von Simon Willison immer so sehr, daher dachte ich, ich probiere es hier doch einmal:

please generate a svg of a man with long curly hair playing guitar sitting in his bedroom at the desk. also can you add some css to animate the svg in a cute way?

Viel Spaß mit diesem grandiosen Ergebnis:

]]>