knuspermagier.de
Ein L und zwei P. Philipp!

22.9.2026

Heute wollte ich mal meine ein paar Dateien aus der Apple Voice Memos-App exportieren. Ich hab da einige drin, weil ich teilweise Tagebucheinträge diktiere, die ich später transkribiert in Bejou speichere.

Tatsächlich ist die Mac App unglaublich dumm, man kann… immer nur eine Datei auswählen. Oder ich finde die Multi-Select-Möglichkeit einfach nicht.

Naja, jedenfalls hilft folgendes Bashscript, das alle Memos aus dem entsprechenden Ordner zieht. Funktioniert natürlich nur, wenn man vorher gewartet hat, dass sie alle vollständig synchronisiert sind.

SRC=~/Library/Group\ Containers/group.com.apple.VoiceMemos.shared/Recordings
DEST=~/Desktop/VoiceMemos-Export
mkdir -p "$DEST"
cd "$SRC"
sqlite3 -separator $'\t' CloudRecordings.db \
  "SELECT ZPATH, ZENCRYPTEDTITLE, strftime('%Y-%m-%d_%H%M', ZDATE+978307200,'unixepoch','localtime') FROM ZCLOUDRECORDING;" |
while IFS=$'\t' read -r p title date; do
  f="$(basename "$p")"
  [ -f "$f" ] || { echo "fehlt (iCloud?): $f"; continue; }
  cp -p "$f" "$DEST/${date} - ${title//\//-}.${f##*.}"
done

Ebenfalls war ich heute auf der Suche nach einer ganz besonderen App: Ich gucke manchmal in ein gewisses anderes E-Mail-Postfach, und nutze dazu bisher das Webinterface von mailbox.org. Das ist leider nur so mittel und vor allem bin ich ständig ausgeloggt und das nervt tierisch.

Da es nicht mein Mailaccount ist, möchte ich ihn allerdings auch auf keinen Fall in meiner Mail.app haben. Ich begab mich also auf die Suche nach einer ganz einfachen E-Mail-App ohne Privacy-Probleme, wo ich den Account einrichten kann, um ab und zu mal reinzugucken. Leider existiert so etwas nicht, zumindest habe ich es nicht gefunden. Ich ließ mir von Claude also schnell einen Readonly-IMAP-Client bauen. Dieser holt die Mails ab, ich kann auch markieren, was ich schon gesehen habe, das wird aber nur lokal bei mir gespeichert. Ein süßes Logo hat er auch gemacht!

file://0pt7nj3anayxmxuz

Ich weiß ja immer nicht, ob es Sinn macht den AI Slop zu veröffentlichen, aber ich habe mich nun dafür entschieden, es doch einfach raus zu hauen. Vielleicht braucht ja jemand etwas derartiges und spart sich damit die Tokens, dann hat es ja wenigstens noch etwas Gutes.

Ich habe das gestern ja schon angesprochen, dass ich noch nicht wusste, wo ich das Git Repository hinlegen soll. Ich entschied mich am Ende dafür einfach noch eine zweite Forgejo-Instanz anzulegen, für die öffentlichen Projekte. Besser als mit cgit herumzukaspern.

Hier gibt es nun also ReallySimpleEmail. Falls jemand sowas braucht. Viel Spaß.

(Mit einem kostenlosen Apple Developer Account kann man sich die App immerhin für sieben Tage aufs iPhone klöppeln, für 99€ für ein ganzes Jahr. Die gute alte Apple Tax.)

21.9.2026

Heute habe ich das zweite Dungeon Crawler Carl-Buch fertig gehört und es war gefühlt viel besser als das Erste!


Meine iCloud war mal wieder voll und weil ich sicher nicht auf den 6TB-Plan upgraden wollte kam, was kommen musste: Ich wollte ein paar großen Daten aus der Photos.app-Library löschen. Leider gibt einem die Photos.app dafür keine gute Möglichkeiten. Weder über die Suche noch über ein smartes Album kann man z.B. alle Videos anzeigen, die über 500MB groß sind, oder so. Classic Apple halt.

Nun gibt es sicher was im App Store um die Library aufzuräumen, aber ich wollte ein Tool, was genau eine Sache macht: Mir alle Videos anzeigen, sortiert nach Dateigröße, absteigend. Eine Möglichkeit zum Export und eine zum Löschen. Fertig.

Ich warf also kurz Claude an und ließ mir genau das bauen. Wie es sich gehört heißt das Projekt PhotoClean, obwohl es nur um Videos geht, aber den Namen habe ich mir ausgesucht, nicht Claude.

Nach dem Einlesen der Library bekomme ich folgenden Screen:

file://3spx8hiuypwpqfpw

Natürlich habe ich den Screenshot zu spät gemacht, nachdem ich die größten schon gelöscht hatte. Ich konnte auf jeden Fall gut 100GB frei machen, indem ich ein paar Videos in der 15-25GB Range exportierte und aus der Library löschte. Das waren eh alles so Sachen, wo ich nur ewig Kram aufnahm, der mal geschnitten werden müsste.

file://pzikigk31o4d3jid

Als alter Statistik-Fan musste ich natürlich auch noch diese Ansicht bauen lassen. Aha! Da ist man auf jeden Fall schlauer danach.

An und für sich würde ich dieses tolle Tool natürlich auch gerne zur Verfügung stellen, vielleicht findet es ja jemand nützlich, der kein Claude-Abo hat, aber ich weiß nicht so richtig wo. Von Github möchte ich mich ja lossagen, aber Codeberg erlaubt keine Repositories, die aus LLM-Code bestehen, was ich natürlich auch irgendwie verstehen kann. Vielleicht muss ich für meine kleinen Vibe-Projekte noch ein eigenes öffentliches Git aufsetzen.

20.9.2026

Heut hab ich es geschafft, die Konfiguration für mein Backup-Tool in meine Compose-Dateien zu übernehmen. Letztendlich ist es jetzt relativ einfach, ich muss nur zwei Label hinzufügen:

services:
  foo:
    image: foo:latest
    restart: always
    labels:
      backup.dump: sqlite
      backup.dump.path: /app/storage/database.sqlite

(oder alternativ backup.dump: mysql/postgres.)

In meinem Backup-Script habe ich nun einfach einen Aufruf des Datenbank-Backup-Tools aufgenommen, der vor restic einmal alles dumpt / die sqlite-Datei “offiziell” kopiert und nach dem Backup alles wieder aufräumt. Das Tool ist dabei auch einfach nur ein Bash-Script, das die Container durchgeht und nach den entsprechenden Labels guckt.


Jetzt wo das alles so gut läuft, muss ich mal schauen, dass ich auch die anderen Server umgerüstet bekomme.


Ich hatte es jetzt schon mehrfach, dass ich an einem Abend Sushi aß und am nächsten Tag von einer ausknockenden Übelkeit heimgesucht wurde. Was ist nur mit diesem Sushi los. Es ist doch nur Reis mit Avocado. Vielleicht einfach nur Zufall.


Die Entwicklung, dass man im real life mittlerweile überall KI-generierte Poster sieht, nervt natürlich gewaltig. Ich fand diesen Artikel ganz spannend, der versucht, es irgendwie besser zu machen. Aber selbst die für mich beste (Japanese Minimal) hat für mich immer noch einen Slop-Touch.

19.9.2026

Als ich vor ein paar Tagen meine Homelab-Liste anlegte, fragte mich mich schon, ob ich meine Linksammlung wirklich weiter brauche. Als ich es vor einigen Jahren baute, dachte ich, ich bin jemand, der sich Links für später speichert. Tatsächlich bin ich das gar nicht.

So wird die Software im Grunde nur noch dafür genutzt, die Links zu archivieren, die wir uns via iMessage schicken. Falls man da später nochmal was sucht, oder diskutieren will, welche der 15 AirBnbs jetzt gebucht werden soll. Dafür hatte ich per API aus meiner Message-Archivier-App einen Link angelegt und sogar eingebaut, dass iMessage-Reactions entsprechend mitgesynct werden. Muss ja alles seine Richtigkeit haben.

Um einen Service zu sparen, habe ich mich also entschlossen das eine in das andere zu integrieren. Auf dem Weg wurde es dann auch nochmal ein bisschen verbessert, jetzt sehe ich zum Beispiel auch direkt den Kontext zum Link im entsprechenden Chat.


In dem Zuge habe ich auch mein browsershot-aio-Package aktualisiert. Ich will natürlich tolle Link-Previews und manche Seiten liefern bei einem curl halt einfach 403 zurück. Mit einem Headless Chrome geht es natürlich und mit diesem Package und dem dazugehörigen Docker-Container funktioniert das relativ einfach. Ist natürlich nur ein Wrapper um Browsershot von Spatie.


Mein T3 Code läuft ja aktuell auf einer VM, ohne weitere Sicherheitsvorkehrungen. Ich hatte gestern kurz die Idee, die VM vielleicht jede Nacht einfach zu wipen und neu bauen zu lassen und ließ mir dafür mal eine Nix Konfiguration für genau diese Maschine bauen. Soweit ich das nachvollziehen kann, sieht das auch alles okay aus, jetzt muss ich mich damit aber auch erstmal nochmal beschäftigen, um zu wissen, was genau da jetzt passiert. KI macht einfach immer nur noch mehr Arbeit!


Aprospos: Eine Sache, die ich mir auch anschauen will ist Jev. Ein etwas anderes Model, mit dem man anscheinend relativ kostengünstig Klassifizierungen und sowas machen kann, ohne alles an ein dafür völlig überqualifiziertes fettes LLM zu schicken. Mir fehlt leider gerade noch der Anwendungsfall.


Ich war heute mal wieder in so einem Laden, wo es neben den üblichen Supermarkt-Artikeln vorranging viel Obst, Gemüse und sehr viel GastroNorm-Container voll mit Frischkäsezubereitungen, gefüllten Paprika, Chilis, usw. gibt. Laut Google ein so genanntes Feinkostgeschäft. Ich bin da ja großer Fan davon und könnte davon immer tonnenweise Kram kaufen. Immer lecker!

18.9.2026

Aktuell läuft mein Backup auf den Docker-Servern ja so, dass ich einfach das Verzeichnis backuppe, in dem Docker seine Volumes speichert. Am Anfang hatte ich kaum Services mit Postgres/MySQL und für SQLite wird das schon okay sein, dachte ich mir.

Nun wurde es aber doch ein bisschen mehr und vor allem enthalten gewisse Services mit MySQL nun auch relevant viele schön sortierte Daten (looking at you, Firefly). Von daher wollte ich mein Backup-Game mal etwas verbessern und fragte mal Codex Astra nach einer intelligenten Lösung, die DB-Dumps macht, bevor restic durchläuft. Das Projekt hier nicht weiter einzugrenzen und genauer zu beschreiben, dass es ganz übersichtlich sein soll, war allerdings ein Fehler.

Am Ende hatte ich eine riesige Go-App mit drei Kilometer lange README und Konfiguration. Da ich mich für das Backup auf nichts verlassen wollte, was ich nicht verstehe, legte ich das aber erstmal wieder bei Seite. Man muss echt aufpassen, dass man sich da nicht verzettelt. Oder die KI. Vielleicht lag es auch an Astra, ich bin ja ganz neu bei den Codex-Models!


Ich wollte heute ein Hermes-Paket abholen von einem Paketshop an einer Tankstelle und irgendwie habe ich immer das Gefühl, ich müsste, wenn ich eh schonmal da bin auch zumindest ein bisschen Tanken, damit die Tankstelle überhaupt was davon hat, dass sie nebenbei auch ein Paketshop ist. Ergibt wahrscheinlich gar keinen Sinn, da Tankstellen ja hauptsächlich am Bifi Roll verdienen, das man noch kurz mitnimmt.

Dummerweise konnte ich das Paket gar nicht mitnehmen, da der falsche Name drauf stand und ich keine Vollmacht dabei hatte. Ich habe also also komplett sinnlos getankt. Und das bei den Preisen!

16.9.2026

Ich glaube, der Action-Button am iPhone ist so eine Sache, auf die ich mich mega freute, sie jetzt aber kaum benutze. Wie toll war die Idee, einen Button zu haben, mit dem ich direkt z.B. einen Reminder anlegen kann.

Ich hab also die Fast Reminders-App auf den Button gelegt und… naja, meistens ist es so, dass ich nochmal umgreifen muss, um an den Button zu kommen, weil ich das iPhone wahrscheinlich falsch halte, und dann vergesse ich, dass ich den Button gedrückt halten muss, damit er was macht und bis diese umständliche Abfolge von Dingen passiert ist, passiert meistens schon folgendes:

file://bjml9hjii5s8rjit

Keine Ahnung, was ich eigentlich notieren wollte. Naja.


Ich hab es geschafft, im Wiki eine Seite zum Homelab anzulegen. Ich habe erstmal dokumentiert, was aktuell bei mir zu Hause läuft. Viele Sachen sind natürlich Eigenentwicklungen, die eigentlich weiterer Erklärung bedürften, aber immerhin hat man schonmal einen kleinen Einblick. Mehr folgt später!

15.9.2026

Ich wollte heut ein paar Seiten ausdrucken und musste feststellen, dass alles gespiegelt war. Ich probierte es nochmal. Probierte es vom iPhone. Startete meinen Rechner neu. Startete den Drucker neu. Turns out: Irgendjemand hatte im Drucker bei den Papiereinstellungen eingestellt, dass ich Transferfolien drucke, auf denen alles gespiegelt gedruckt werden muss. Aha. Muss irgendein Wichtel gewesen sein.


Ich hab es endlich geschafft mein Everdrop-Abo zu kündigen. Ich habe das irgendwie vor Monaten mal gestartet, weil ich es ganz nett fand, Geschirrspültabs ohne Plastik zu haben, in dieser schönen Everdrop-Metalldose. Eine Sache weniger, an die man im Supermarkt denken muss. Naja.

Insgesamt habe ich jetzt allerdings ungefähr 5.000 Tabs zu viel hier rumliegen, weil der Abo-Interval zu kurz war, und ich habe das Gefühl, dass es auch ganz schön teuer ist, vor allem, seitdem es seit ein paar Monaten auch 4,99€ Versandkosten kostet… aber wie das so ist, natürlich ist es auch bei Everdrop relativ kompliziert das Abo zu kündigen und so brauchte ich einige Zeit.

Nun bin ich aber frei! Juchu! (Everdrop gibt es ja auch einfach im dm zu kaufen, wenn ich weiter bei der Marke bleiben will)


Ich habe heute relativ lange gearbeitet und herumprobiert und bin tatsächlich mal über das Claude Session-Limit gekommen, was mir eher selten passiert. Tatsächlich hat danach jeder Prompt quasi eine neue 10€-Abbuchung ausgelöst, das geht dann doch schnell ins Geld, upsi. Ich habe auf meinem t3-Server also mal Codex installiert, um da das Kontingent auch nutzen zu können, bisher nutze ich die ChatGTP-Subscription eigentlich nur für den normalen Chat. Morgen wollte ich mir aber noch Open Code anschauen, und mir mal ein Kimi-Abo holen, das soll ja auch sehr gut sein, und viel günstiger!

14.9.2026

Mein Arzt supported nun endlich E-Rezepte, es ist unglaublich. Es hat zwar alles ungefähr zehn mal so lange gedauert, als der alte Ausdruck, da das Signierungsterminal streikte, und die Karte 3-4 mal neu reingesteckt werden musste, aber danach hatte ich tatsächlich was auf der Karte. Da ich regelmäßig neue Rezepte brauche, könnte das nun immerhin etwas komfortabler werden, und ich muss weniger umherfahren (oder auf die Post warten).


Eine meiner Gründe, programmieren zu lernen, war ja immer, dass ich mal ein Spiel entwickeln will. Ich hab damals viel gespielt und natürlich ist es da naheliegend, dass man sowas auch bauen will.

So richtig erfolgreich war ich damit allerdings nie. Zum einen habe ich diesen ganzen Mathe-Kram nie verstanden und die Resourcen und Tutorials waren damals, als ich 12-14 war, auch noch nicht so dicht gesäht. Ich hatte mal ein, wahrscheinlich sauteures, Buch, das mir beibringen sollte, wie man 3D-Spiele mit Direct X entwickelt, aber ich kam nie über die ersten Seiten hinaus.

Als alles etwas zugänglicher wurde, es mehr Tutorials im Internet gab und auch diverse Spiele-Engines, auf die man aufbauen konnte, kam ich auch nicht weiter. Auf der einen Seite hatte ich einfach gar keine Idee, was ich für ein Spiel entwickeln sollte, und wollte auch keine Engine benutzen, weil ich eher verstehen wollte, wie alles unter der Haube funktioniert. Hier kam ich aber auch nicht über ein paar über den Bildschirm laufende Sprites hinaus, weil… es mir zu kompliziert wurde.

Ich widmete mich also für die nächsten fünfhundert Jahre dem, was ich gut konnte, was ich verstand, und wo ich auch Ideen hatte, was man bauen konnte: Webseiten und Apps.

In den letzten Jahren gab es natürlich einen gewissen Boom an Engines, vielen kostenlosen Grafiken und Tutorials, wie Sand am Meer. Hätte ich nun eine Idee gehabt, was ich bauen will, hätte ich sicher mit Godot viel Spaß gehabt, aber so richtig Lust und Zeit, mich da einzuarbeiten hatte ich nicht.

Nun ist 2026 und ich hab Godot und den MCP-Server für Claude installiert und arbeite mich Prompt für Prompt voran. Ja, es entsteht auch nur wieder ein AI Slop-Game, aber es ist das erste Mal, dass es mir Spaß macht, zu überlegen und auszuprobieren, was für Spielmechaniken vielleicht Spaß machen könnten am Ende. Einfach ein bisschen rumblödeln, warten und fünf Minuten spielen um zu schauen, ob es vielleicht Spaß machen könnte, ohne mir vorher wochenlang Tutorials angucken zu müssen, die mir erklären, wie ich etwas baue, was ich zwei Minuten später wieder rauswerfe, weil es keinen Spaß macht.

Ich denke nun auch nicht, dass es jetzt unbedingt zum neuen Mega-Game führt, aber es ist auf jeden Fall angenehm sich hier auf den Aspekt konzentrieren zu können, der mir Spaß macht und alles andere erstmal beiseite legen zu können.


(Ich versuche irgendwas, was mir den Spaß von Diablo 2 Kuhleveln nach 2026 bringt, nachzubauen. Besonders witzig finde ich, dass alle Grafiken mit einer sehr abenteuerlichen Pythondatei aus ASCII-Art generiert werden, haha)


Abgesehen davon habe ich hauptsächlich noch ein paar Features in meinen Firefly-Fork eingebaut und ein paar Ansichten übersichtlicher gemacht. Vor allem die Subscriptions (Verträge)-Seite war echt schrecklich vorher.


Heute kommt iOS 27 heraus und ich freue mich tatsächlich ein bisschen auf das Update, da man dann E-Mails snoozen kann, das wird toll! Ansonsten gibt es noch ein paar Gimmicks, ich kann dazu dieses Video von OwnGalaxy empfehlen.

13.9.2026

Gestern war ich tatsächlich einfach viel zu müde, um noch einen Blogpost zu schreiben und ich habe beschlossen, das auch nicht nachzuholen!

Heute war ich im Auto unterwegs und habe mich endlich überwinden können, das zweite Buch von Dungeon Crawler Carl anzuschalten und ich habe es nicht bereut! Jetzt habe ich nur noch zwei Stunden übrig und auf Deutsch sind leider noch gar nicht so viele Bände als Hörbuch erschienen.

Abgesehen davon kann ich sagen, dass Autofahren im strömenden Regen wirklich nicht zu meinen Lieblingssachen gehört. Schlimmer als das Fahren in der Dunkelheit, da kann man sich wenigstens noch einbilden, dass man etwas sieht.

11.9.2026

Fünfundzwanzig Jahre ist es her, dass ich im Chat von digimonwelt.de hing und wir dort den Einsturz des World Trade Centers begleiteten. Ich war damals 13 und es interessierte mich ziemlich wenig. Ich glaube, was mich am meisten störte war, dass dann kein Dragonball Z auf RTL2 lief.

Ich habe zum ersten Mal zwei Claude Instanzen gleichzeitig an einer Software arbeiten lassen. Natürlich habe ich vergessen, anzuklicken, dass sie jeweils eigene Worktrees nutzen sollen, daher endete es leicht chaotisch.

Die Musikempfehlung des Tages geht an Tiavo.