Ich kam den ganzen Tag nicht dazu, das Farin Urlaub-Album nochmal zu hören.
Kann diese Animatronische Ananas meine Steuern machen? ist ein Youtube-Video vom aufstrebenden Creator Mattis, und ich fand es ganz witzig. Ich mach diese neue Youtuber-Generation, die ein bisschen frischen Wind reinbringt, mit lustigen Ideen und gutem Schnitt!
Spannend fand ich auch, wie überrascht seine Freunde über die KI-Fertigkeiten der Ananas waren, als er es vorführte. Anscheinend steckt noch gar nicht jeder Mensch so tief in der KI-Bubble, und weiß, was schon alles möglich ist.
Mein Infrastrukturprojekt geht währenddessen langsam voran. Ich habe alle meine Services ins Repo umgezogen und sogar mal Komodo gestartet, um dann aber zu merken, dass diese Empfehlung von Claude viel zu fett für meinen Anwendungsfall ist. Ich möchte keine ResourceSyncs anlegen und extra .toml-Dateien pflegen. Das kann also erstmal wieder weg.
Das einzige, was ich brauche ist etwas, was docker compose pull && docker compose up -d aufruft, nachdem sich was im Git Repo geändert hat, das sollte ja nur ein paar Zeilen brauchen.
Beim ganzen aufräumen der compose-Files habe ich auch einiges weg geworfen und viele Container gefunden, die noch umsonst liefen. Ein docker system prune danach hat sogar 45GB freigeschaufelt, auch ein schöner Erfolg.
Heute kam das neue Farin Urlaub-Album raus. Ich hatte es gar nicht mehr auf dem Schirm, dachte, es dauert noch ein paar Wochen. Ich habe es leider erst einmal angehört, und es ist… erstmal okay. Werde es sicher noch das ein oder andere Mal hören. Leider ist mein Hörverhalten gerade so stark auf energiegeladene Live-Versionen trainiert, dass ich so Studio-Alben kaum noch was abgewinnen kann. Und ob der alte Mann nochmal ein Live-Album machen wird, ich weiß es ja nicht.
Maurice hat zum gleichen Zeitpunkt das aktuelle Album seiner Band bei Bandcamp beworben und ich habe da mal ein paar Euro in den Hut geworfen. Wenn Farin schon kein Geld von mir bekommt, weil ich ihn via Spotify höre, dann doch wenigstens kleine, aufstrebende Künstler:innen.
Ich war heut in einem Gesellschaftsspiel-Laden, weil ich etwas bestimmtes suchte. Leider hatten sie es nicht da, die Atmosphäre war aber sehr nett! Bisher hatte ich es immer vermieden rein zu gehen, weil ich wusste, das ich tausend Sachen finden werde, die man kaufen könnte. So ein paar Pokémon-Booster, warum auch nicht? Immerhin konnte ich mich tatsächlich beherrschen!
Die Umstellung meines Stacks auf Caddy + Komodo + alles im Git läuft schleppend, da doch ein bisschen manuelle Aufräumarbeit damit verbunden ist.
Die Toten Hosen sind ja gerade auf Tour und hier und da poppen schlechte Handyvideos auf, die mich an sich gar nicht interessieren, aber dass sie Schrei nach Liebe mit Rod, Bela und Farin gespielt haben, finde ich irgendwie süß.
Ich habe zum ersten Mal das Figma MCP-Plugin mit Claude benutzt, und was soll ich sagen, es war erstaunlich gut. Naja, was heißt erstaunlich, eigentlich habe ich damit gerechnet und es wahrscheinlich deswegen so lange herausgezögert. Eine weitere Sache, bei der man meine Expertise nicht mehr braucht.
Tatsächlich hat er sich aber ganz schön dabei angestellt, ein paar Icons als SVG zu exportieren. 10 Minuten und 30.000 Tokens später, hatte er PNG-Exports erstellt, sich die ganz genau angeguckt und als SVG nachgemalt (das Ergebnis sah komplett anders aus). Als ich ihm sagte, dass er doch bitte einfach den SVG-Code aus Figma nehmen soll, ging es aber. Manchmal muss man halt doch nochmal drauf hauen.
Parallel versuche ich mein Homelab etwas aufzuräumen und stelle es von dem aktuellen System (ein Ordner mit Unterordnern mit docker-compose-Files) auf etwas um, was als Lebenslauf-Buzzword wohl GitOps heißt. (Der gleiche Ordner, aber halt in Git.)
Dazu kommt dann Caddy (mit caddy-docker-Plugin) statt nginx via NPM, damit ich die Proxy Hosts nicht mehr manuell im Webinterface anlegen muss, sondern direkt über Docker Labels steuern kann. Dazu kommt dann Komodo, das automatisch alles Neustartet und überwacht.
Immerhin steht schon der Plan, ich muss jetzt nur Service für Service umbauen. Mal sehen, wie lang das dauert
Seit ungefähr einer Woche ist meine Option-Taste am Macbook kaputt. Sobald ich sie drücke, bleibt sie gedrückt, bis ich 3-4 mal Capslock drücke. Es ist sehr anstrengend. Ich fürchte leider, dass die Lösung ein Topcase-Tausch für 800-1.000€ sein wird und das ist eine Schmerzgrenze, für die ich mich wohl noch einige Wochen quälen muss, bevor ich sie überschreiten kann.
Letzte Woche fand ich Sandustry bei Hänno im Youtube und fand es irgendwie witzig, da ich ja schon immer auf… Sandsimulationen stehe.
Ûçª ªa∫€, sorry, Option hat geklemmt.
Ich habe es auch tatsächlich ein bisschen gespielt und es ist auch ganz witzig, aber irgendwie ist es auch einfach Cookie Clicker, aber mit mehr UI. Das Gefühl hatte ich bei Factorio bisher nicht. Aber ist ja erst Early Access, ich werde es weiter beobachten.
Jetzt habe ich hier viel zu viel geschrieben, sodass ich für morgen sicher schon wieder gar nix mehr haben werde, schade!
Beim Homelab aufräumen, ist mir aufgefallen, dass ich n8n gar nicht mehr benutze. Der eine dort definierte Workflow funktioniert seit Wochen nicht mehr und ich habe ihn auch nie genutzt. Insgesamt fand ich das Interface auch unübersichtlich.
Wenn ich etwas automatisiert brauche, bin ich glaub ich wesentlich schneller, wenn ich mir ein Pythonscript bauen lasse, statt da im UI herumzuklicken.
Als Markus den Xteink X3 im Chat postete, war ich ganz hin und weg. Wie süß er aussah. So ein handliches kleines Ding!
Da ich gerade noch mit dem Palma zu Gange war, kaufte ich ihn nicht sofort, wurde aber irgendwann doch schwach. Was soll ich sagen? Er ist in echt genau so süß, wie er auf den Produktfotos aussieht.
Natürlich flasht man zuerst mal CrossPoint Reader drauf, was eine extrem polierte Open Source Software ist. Über einen eingebauten WLAN-Hotspot, oder alternativ direkt über das eigene WLAN, oder auch OPDS-Server kann man nun Bücher drauf werfen und einfach lesen.
Ganz witzig ist die Tatsache, dass er hinten magnetisch ist und sich damit hinten am iPhone MagSafe-Ding befestigen lässt. Empfinde ich aber eher als ein Gimmick, da es jetzt nicht unendlich fest ist, und beim Wechsel in die Hosentasche, oder aus ihr heraus, doch gerne mal abgeht.
Wenn man die Specs liest, gibt es natürlich noch zwei Elefanten im Raum: Ja, es hat keine Hintergrundbeleuchtung und man kann damit nur mit externem Licht lesen. Das ist tatsächlich ein bisschen blöd, störte mich aber gerade noch nicht aktiv. Der X4 Pro kann das, kostet aber mehr und ist größer.
Der zweite Elefant heißt “Pogo-Pin-Ladeadapter”. Kein USB-C war tatsächlich mein größtes Problem mit der Sache. Aus gründen der Dicke haben sie sich hier für einen Quatsch-Connector entschieden. Um dem entgegenzuwirken habe ich direkt drei Adapter mitbestellt, die ich überall hinlegen kann, damit überall einer ist. Bisher ist das allerdings auch alles kein Problem, nach drei Wochen Besitz und einmal laden bin ich immer noch auf 80% Akku-Ladung.
Bisher bin ich vollends zufrieden mit dem Gerät und bereue es nur zu so 2%, nicht auf den X4 Pro gewartet zu haben. Die Größe fühlt sich für mich gerade einfach perfekt an!
In der letzten Zeit passierte es mir zwei Mal, dass ich folgende Fehlermeldung sah:
CPU lacks AVX support
Das erste Mal war, als ich paperless-ngx installierte und der OCR-Prozess deswegen abstürzte. Das ließ sich lösen, indem ich irgendeine alte NumPy-Version installierte. Das zweite Mal passierte gestern, als ich opdshelf installieren wollte. Da es die bun-Binary statt node benutzt, hatte ich da auch gar keine Chance, etwas anderes auszuprobieren.
Zum Glück war das Problem leicht zu beheben, ich musste nur in Proxmox in den Hardware-Einstellungen den Typ der CPU auf "host" stellen, statt der Standardeinstellung "kvm64". Glück gehabt!
Meine eBook-Reader-Geschichte geht weiter. Seit Anfang August nenne ich einen Xteink x3 mein eigen, dazu sicher mehr in einem anderen Post.
Wie beim Boox Palma war hier auch die Frage, wie ich nun Bücher drauf bekomme und gegebenenfalls sogar noch den Progress synchronisieren kann. Da ich, wie man im anderen Post lesen kann, nicht zufrieden war mit den Webapps, die ich dafür fand (Komga und Kavita), dachte ich mir, es kann ja auch nicht so schwierig sein, das kurz einfach von Claude entwickeln zu lassen. Einfach nur ein ganz einfacher Webserver mit einem Webinterface, wo ich Bücher drauf droppen kann auf der einen Seite und auf der anderen Seite ein OPDS-Feed, der ausgespuckt wird. Keine User-Auth, kein Metadaten-Fetching und Management.
Ich formulierte also meinen Prompt und mir wurde gesagt, dass ich gar keine Tokens verbrennen muss, sondern doch einfach opdshelf benutzen soll, was exakt meinen Ansprüchen entsprach. Wie wundervoll.
Ich installierte es also auf meinem Docker-Server und es funktionierte einfach. Das allerbeste ist, dass die OPDS-URL einfach nur https://foo.bar.de ist und nicht https://foo.bar.de/api/opds/[…]/239cadeefffeee633112, wie bei den anderen Tools. Wenn man das zum Einrichten zwanzig mal auf Geräten ohne Tastatur eintippen muss, ist das schonmal sehr hilfreich.
Und was soll ich sagen, es funktioniert blendend. Leider unterstützt es keine Subfolder um die Bücher zumindest ein kleines bisschen zu sortieren, das ließ sich aber auch schnell einbauen!
Natürlich konnte ich mich auch nicht beherrschen und musste doch nochmal schauen, ob ich eine Progress-Sync-Sache mit eingebaut bekomme. Crosspoint unterstützt KOReader-Sync und hat sogar eine schlanke eigene Implementierung davon im Angebot. Da sie mir noch nicht schlank genug war, musste ich Claude nochmal bitten mir das einfach, noch schlanker (ohne User Auth) in opdshelf einzubauen.
Das funktioniert nun auch sehr gut, ich bin mir aber nicht sicher, ob ich es oft nutzen werde, da ich den Sync im Reader manuell triggern muss (da er sich nur auf Aufforderung mit dem WLAN verbindet) und ich andererseits noch keine wirklich tragbare Reader-App auf dem iPhone gefunden hab, die in der Benutzung Spaß macht.
Ich habe den diesjährigen Urlaub mal wieder zum Anlass genommen, nach einer passenden Tasche für die ordentliche Verkabelung der eigenen Geräte zu Suchen und fand diese sehr schöne von tomtoc.
Da passt alles rein, was man mittlerweile so braucht, und das ist zum Glück echt gar nicht mehr viel: Zwei 65-Watt-GaN-Charger und ein 100-Watt-GaN-Charger von UGREEN, vier USB-C-Kabel mit einer Länge von drei Metern, damit man auch hinter jedes Sofa kommt. Der einzige ungewöhnliche Ausreißer ist das Ladekabel für die Apple Watch.
Seit ein paar Jahren höre ich den Podcast von Anke Engelke und Kristian Thees und es ist ein Highlight meiner Woche, oder eher zwei Highlights, denn es gibt zwei Folgen! Leider hat das SWR sich nun entschieden, den Podcast einzustellen. Ein weiterer Dauerbrenner, der im Jahr 2026 wohl meinen Feed verlassen wird. Schade!
In den letzten Wochen häufen sich auf Hacker News und ähnlichen Plattformen die Posts, in denen Leute erzählen, wie sie sich zurück besinnen auf die Zeit, ohne Spotify. Damals als wir alle noch CDs kauften, selber rippten und sicherlich keine 100GB großen MP3-Sammlungen auf LAN-Parties von Freunden überspielten.
Da alles, was mir mehr Arbeit macht, irgendwie mit mit resoniert, fand ich das natürlich interessant. Auf meiner NAS befindet sich ja sogar noch meine Musiksammlung aus alten Tagen, die ich sogar mal durch iTunes Match (wer erinnert sich noch?) legitimiert und qualitativ hochgestuft habe.
Nun wäre es aber ja langweilig, einfach die MP3s zu nehmen, sie in Jellyfin zu packen und mir einen Player zu suchen, der das als Quelle benutzen kann.
Inspiriert von einem anderen Artikel im Internet, der mit einem Raspberry PI und FM-Transmitter eine eigene Radiostation mit seiner Musik baute, dachte ich mir, sowas will ich auch. Natürlich ohne Raspberry PI und FM-Transmitter, aber einfach ein Stream, der die ganze Zeit läuft, wo ich mich kurz von überall reinschalten kann, das wäre super. Kein Überlegen, was ich eigentlich hören will oder Playlists erstellen.
In der ersten Version baute ich, mit Hilfe von Claude Code, erstmal eine Python-App, die ein Verzeichnis mit Musik indiziert, zufällig Lieder auswählt und sie an eine Icecast-Instanz schickt, zu der ich mich dann verbinden kann. Das funktionierte schonmal ziemlich gut. Im ersten Schritt fand ich erstmal nur meine die ärzte-Ordner, ich habe jetzt also drei Tage lang erstmal nur alte Live-Alben gehört und freue mich jetzt schon über diese Entscheidung.
Ich bin gespannt, was ich in den nächsten Monaten alles noch an Musik wiederentdecken werde, die ich bei Spotify nicht mehr hatte. Bei den ärzten z.B. habe ich ja sehr viele von den 2012er Konzerten, wo man die USB-Sticks am Ende kaufen konnte und das ist natürlich alles ganz exzellenter Content.
Sehr technisches Controlpanel
Um alles noch etwas Radio-mäßiger zu machen, baute ich noch eine Art Timetable ein, in dem man verschiedene Blöcke definieren kann, die zu bestimmten Zeiten gespielt werden, jetzt bekomme ich jede Stunde die aktuelle Zeit angesagt und ein paar mal am Tag einen Wetterbericht, was natürlich Quatsch ist, aber die Sache auch etwas auflockert. Für die Text-to-Speech-Synthese nutze ich Piper mit der Thorsten-Voice. Ich finde dafür, dass das alles ziemlich performant lokal läuft, sind die Ergebnisse echt nicht schlecht.
Für das absolute Radiofeeling brauche ich nun natürlich noch ein paar sinnlose Ansagen, die alle 2-5 Lieder kommen. Dafür habe ich einen Prompt geschrieben, an den ich noch die letzten und nächsten Lieder dran hänge. Die OpenAI-API liefert dann oft eine halbwegs witzige radiomäßige Ansage, die mir wieder per Thorsten-Voice eingespielt wird. Nach stundenlangen Ärzte-Sessions merkt man auch, wie das LLM langsam verzweifelt.
Natürlich werden alle Sachen, die einen API-Request an OpenAI schicken nur ausgeführt, wenn ich auch wirklich zum Icecast-Server verbunden bin, sonst wäre das ja Quatsch. Klappt aber echt gut!
Gestern habe ich nun versucht, mehr Musik hinzuzufügen und musste feststellen, dass ich vor ein paar Jahren wohl einen Fehler begangen habe. Ich kopierte meinen Musik-Ordner von der NAS auf die Plex-SSD, damit ich den Kram in Plex parat habe. Leider scheint der Kopiervorgang da nicht komplett durchgelaufen zu sein, was ich aber nicht merkte. Ich entfernte also alles von der NAS, da die Daten ja im nächsten Backup von der Plex-SSD automatisch zurückkommen würden und ich nichts doppelt haben wollte.
Damit habe ich natürlich 90% meiner Musiksammlung vernichtet, quasi alles, bis auf den die ärzte-Ordner. Zum Glück benutze ich das Synology HyperBackup und konnte bis in den Januar 2023 zurückspringen und einfach den gesamten Order wieder herstellen, nice! Das erste mal, dass ich ein Backup wirklich brauchte und es auch funktionierte.
Ich habe nun also langsam angefangen, ein paar weitere Interpreten in mein Radio aufzunehmen. Im nächsten Schritt werde ich also mal mit Claude besprechen, wie wir einen vernünftigen Algorithmus finden, der für genug Abwechslung sorgt und nicht nur stundenlang weiterhin die ärzte spielt, nur weil es ein Großteil der Dateien ist. Außerdem fänd ich es auch gut, wenn es zumindest genremäßig Cluster gibt, damit er nicht ganz wild von Reinhard Mey zu Scooter, zu PUR, zu X JAPAN und Casper springt. Schauen wir mal, wie gut das klappt.
(Da ich vor weit über zehn Jahren aufhörte, meine Sammlung zu pflegen, fehlt da auch einfach quasi alles an Musik, was ich aktuell höre, das wird auch noch ein teures Erlebnis, das auf einen aktuellen Stand zu hieven. Vielleicht muss ich mal auf ein paar Flohmärkten CDs kaufen)