Let’s Get Digital | flower.codes

Am I going to read this book more than once again? Does this book hold personal meaning (such as a gift, or representative of a specific time)? Is this book rare or collectible in some way? Does the presence of the book in my space inspire me?

Vier vragen die je jezelf kunt stellen om de fysieke boeken in je huis op te ruimen. Volgens mij kun je het net zo goed gebruiken voor bloempotten, administratie en die doos met oude schroefjes.

Digitale fitheid is ook een slaapbank opruimen

Tijdens de bijeenkomsten van Digitale Fitheid gaat het de laatste maanden vaak over AI. Terwijl ik zojuist weer een voorbeeld hoorde dat simpele digitale fitheid nog zo veel meer is dan je complete digitale informatiebehoefte ordenen met AI.

Monique Dubbelman was te gast bij Radio 1 om te praten over haar digitale opruimtechnieken volgens de Swedish Death Cleaning methode, waar ze een hele leuke blogpost over heeft geschreven.

Waar begin je?

Tijdens het gesprek met Monique geven de twee presentatoren grif toe digitale immigranten te zijn. Ze komen uit een tijdperk zonder computers, zonder internet. Ze weten niet goed waar ze moeten beginnen. Want elke mail, elke foto bewaren ze, soms zonder reden. Of omdat ze niet goed weten hoe ze het moeten verwijderen.

Dat geldt voor zoveel mensen: hoe begin je met het opruimen van je digitale foto’s, van e-mail, van tekstbestanden, van muziek. Want ook dat verschrikkelijke U2-album van Apple kwam nog ter sprake. Het was voor mij in 2014 al logisch om het met 3 stappen te verwijderen toen het ongevraagd in iTunes verscheen. Maar dat blijkt dus niet voor iedereen zo logisch. Een leerpuntje voor de Digitale Fitheid meetups. Niet alleen over U2 en muziek verwijderen, maar over het startniveau van de deelnemers. En hoe logisch het dan weer is voor anderen om hun fysieke huis netjes en opgeruimd te houden, daar ligt bij mij het startniveau weer een stuk lager…

Digitaal opruimen is één ding

Naast digitaal opruimen is fysiek opruimen een groot onderwerp in ons huishouden. We kwamen terug van vakantie en zoals zo vaak kijk je dan in je eigen huis rond en denk je: dit moet echt anders, we moeten het echt anders gaan aanpakken.

We hebben dat gevoel al langer. We hebben over de jaren zoveel spullen verzameld. We hebben enorm veel boeken maar denk ook aan administratie, kleding, (inmiddels) overbodige keukenapparatuur en bloempotten die we destijds wel mooi vonden maar nu best overbodig zijn. We hebben nog dozen met DVD’s staan, we hebben dozen waar we niet eens van weten wat er in zit. En ja, ik ben zo iemand met die-ene-doos-met kabels. Want stel je voor dat iemand toch ineens een kabel nodig heeft om Scart met HDMI te koppelen? En is het zo erg om meer dan 10 USB-A naar Micro-USB kabels te bezitten? (Ja!)

Er is veel oud speelgoed van de kinderen. Ze zijn inmiddels 20 en 14. Een deel van het speelgoed willen we echt wel houden uit nostalgische overwegingen of om later door te geven, maar ik denk dat 80% naar de kringloop kan. We kunnen het aan de buurtkinderen weg geven. Of gewoon weggooien.

En over administratie gesproken, we hebben een volledig papertrail van hun schoolcarrière. Zoveel rapporten, losse werkbladen, tekeningen, lesboekjes, losbladige spullen die we aan het einde van elk schooljaar meekrijgen en op de bovenste plank van een opslagkast verdwijnt. Het ligt er inmiddels meer dan 10 jaar. Ik denk dat het wel weg kan…

Die stapel harde schijven

Op de grens van digitaal en fysiek is de hoeveel e-waste die we in ons huis hebben. Zoals 10 micro-USB kabels. Oude iPhones. Een vage mini-laptop met Linux die het niet echt meer doet. En net als Monique heb ik een stapel oude externe harddisks.

Ik heb ze al een tijd geleden leeggehaald en de belangrijkste data ontdubbeld en opgeslagen op een eigen storage server die ik huur bij Hetzner in Duitsland. Nu heb ik die harde schijven nog, maar die kun je niet zomaar bij de milieustraat inleveren. Iemand anders kan die harde schijven pakken, ze aansluiten en al je data bekijken. Je moet dat echt voorbereiden.

Vernietig die harde schijven eerst zelf. Mocht je ze nog ergens op aan kunnen sluiten, dan kun je ze helemaal formatteren en een grondige disk wipe doen. Daarna kun je ze een stuk veiliger wegdoen. Ik heb mijn harddisks met een metaalboor doorboord, zodat de disks onbruikbaar worden. En daarmee kan ik ze veilig bij de milieustraat achterlaten.

Ruimte maken om ruimte te krijgen

We moeten fysiek net zo goed opruimen dus. Maar net als digitaal, waar begin je dan? Want wij hebben wel wat ruimte in huis, maar geen oneindige ruimte. We kwamen tot de conclusie dat we een soort pitstop nodig hebben om tijdelijk spullen op te bergen. Zodat we de ruimte krijgen in huis om het opnieuw aan te kleden en nieuwe keuzes te maken. Een nieuwe kast of betere muurplanken.

Die pitstop hebben we, maar zelfs die zat vol. Een paar jaar geleden huurden we een storagebox in zo’n onooglijk pand aan de rand van de stad. Met die 6 m3 opslag konden we een grote slaapbank tijdelijk opbergen. We wilden hem bewaren voor onze dochter, als ze op kamers gaat wonen. Nu woont ze inmiddels in een studentenhuis, maar die kamer is veel te klein voor de slaapbank. En die slaapbank is bij nader inzien enorm groot en enorm zwaar. Mocht ze ooit iets nodig hebben, dan kopen we inmiddels liever een nieuwe slaapbank dan dit lompe ding te versjouwen.

We hakten de knoop door. We regelden een busje om de slaapbank uit de opslag te halen. Plus wat andere losse spullen die we gaandeweg tegenkwamen die we niet meer nodig hebben. Dat gaf ineens enorm veel ruimte in de opslagruimte.

Bij het afvalscheidingsstation in Utrecht is een dependance van de kringloopwinkel. Ons eerste idee was om de slaapbank daar weg te geven. Maar bij het woord “slaapbank” schudde de medewerker al resoluut zijn hoofd. “Slaapbanken, die raak ik aan de straatstenen niet kwijt. Ik heb een magazijn vol met slaapbanken en ik krijg ze niet verkocht. Dus nee, die neem ik niet meer aan.” De slaapbank kwam daarna roemloos aan zijn einde in de container van het grof afval.

Die ruimte in onze storagebox, daar kunnen we nu tijdelijk wat dozen met boeken en andere spullen kwijt, die we nog wel willen houden, maar die niet direct in het zicht hoeven te zijn. En dat zorgt er weer voor dat we ruimte in een aantal kamers krijgen. Zodat we die goed kunnen inrichten. Waar we bewuste keuzes maken wat we wel en niet willen houden. Dat gaat over kleding, boeken, paperassen, speelgoed en ander spul. En zo denk ik dat we het komende half jaar stukje bij beetje steeds bezig zijn om ons huis wat verder op te ruimen. En hopelijk de opslagruimte uiteindelijk kunnen verkleinen of zelfs opzeggen.

Opruimen verspreidt zich

Opruimen is niet altijd even makkelijk voor ons. We weten nu dat we met één plek moeten beginnen, soms rigoreuze keuzes moeten maken en daarna er op vertrouwen dat het opruimvirus zich over het hele huis verspreidt. Opruimen is noodzakelijk. Keuzes maken, niet alles willen bewaren. Als we dat fysiek doen is het digitaal net zo logisch. Ondanks de groeiende mogelijkheden in de cloud, met eigen servers, is het niet altijd nodig om maar alles te blijven bewaren.

We hebben nog geen digitale opruimcoach nodig zoals Monique heeft gemaakt. Mijn vrouw en ik houden elkaar scherp en we hebben een beeld hoe we het willen hebben. Dat kost tijd, het brengt discussie over wat we wel en niet houden. Uiteindelijk leer je nog beter te waarderen wat je wél bewaart. Omdat het een bewuste keuze is, omdat het meer in beeld is.

En soms helpt het om even tijdelijk dingen buitenshuis te bewaren, al is het maar dat het uit zicht is. Dat geeft je de ruimte om in je eigen huis weer dingen op een andere manier in te richten en het leuker te maken voor jezelf.

Balanceeract

De afgelopen dagen denk ik weer na hoe ik online alles in balans breng. Mijn blog, interessante links, online aanwezigheid, CreativeNotes, comments, maar tegelijk de professionele kant van die online aanwezigheid. Hoe hou ik dat in evenwicht. Ik zou dat na 26 jaar bloggen toch wel moeten weten. Niets is minder waar. Het blijft zoeken. De huidige site op frankmeeuwsen.com is in elk geval niet voldoende. Dat is al een jaar een lelijke placeholder voor wat er zou moeten komen. Daar moet ik eens werk van maken. Maar er moet ook een manuscript af. Gelukkig heb ik nog een paar weken redelijk wat werkvrije tijd.

Blackout stickers zijn onmisbaar voor je vakantie

Waar wij slapen moet het zo donker en stil mogelijk zijn. We kunnen beiden slecht tegen tikkende wekkers, controle lampjes of knipperende LED-lichtjes. In een hotelkamer is dat nogal eens een uitdaging, aangezien er altijd wel een wandpaneel van de airco hangt of de TV tegenover het bed staat.

Nu zijn we om een of andere reden goed gewend aan het rode lampje van de TV. Thuis stoort het ons niet, dus in een hotelkamer kunnen we dat prima hebben. Voornamelijk omdat zo’n rood lampje zelden een licht uitstraalt waar vliegtuigen op kunnen navigeren. Hoe anders is dat met het wandpaneel van de airco!

IMG_6005.jpeg

De twee lampjes in de foto hierboven gaven in de nacht een enorme licht in de hotelkamer. Het geluid van de airco zelf viel reuze mee, door de warmte was het nodig die nacht. Dus we lieten de airco gewoon aan staan. Maar in ruil daarvoor kregen we een signalering die niet zou misstaan in matrixborden boven snelwegen. Onze hele kamer werd behoorlijk verlicht door de twee groene oogjes van de airco.

Gelukkig heb ik sinds een paar jaar de oplossing bij me in de koffer.

IMG_6002.jpeg

Deze pikzwarte vinyl-stickers komen in verschillende formaten en zijn op allerlei LED-lichtjes en andere apparaten te gebruiken om het licht te blokkeren. Eén zo’n vel kost een paar euro, bij de betere webshop. Ik kocht deze rond 2023 bij BOL.com, en elk jaar heeft het ons uitstekend geholpen op menig hotelkamer. Je ziet dat ik al meerdere stickers heb gebruikt voor verschillende apparaten. Zelfs het aftapen van een compleet LED-scherm van een airco systeem werkte prima. Net zo goed als voor de lampjes op dit airco systeem.

IMG_6003.jpeg

Ik heb geen foto’s om het verschil te laten zien hoe donker de kamer plots werd, maar geloof me, we sliepen een stuk beter nadat ik deze twee zwarte vrienden op het paneel plakte. En de dag erna verwijder je ze eenvoudig, zodat je geen spoor achter laat van je eigen hotelkamer-hack voor het kamerpersoneel.

Slaap je in hotelkamers, schaf zo’n velletje stickers aan. Je hebt er jaren plezier van.

Op pelgrimstocht door Geneve voor het WWW.

We zijn inmiddels op de terugweg uit Italië. We hadden nog geen vaste route bedacht, dus dit weekend bedachten we dat we via Geneve wilden terugrijden. Daar zijn we nog nooit geweest en het is een mooie tussenstop om een dagje rond te kijken. Een bezoek aan Geneve is niet compleet zonder een bezoek aan CERN. Het wereldberoemde wetenschappelijke instituut, waar de Large Hadron Collider staat, het Higgs Boson deel is ontdekt en minstens zo belangrijk, het is de geboorteplaats van het World Wide Web. Trouwens, als je als instituut je eigen domeinextensie hebt, dat is toch wel het coolste. Vind ik dan.

Die heilige grond moest ik bezoeken. De originele server waar de eerste website op is gehost zou “on display” zijn. Er is een gedenkplaat in een lullig gangetje. Maar helaas, ik heb het allemaal niet mogen zien.

Frank bij een joepiedepoepie-we-zijn-bij-cern-fotomomentje

Ik had vooraf via email gecheckt met de bezoekers-receptie of er iets te zien is over de geschiedenis van het WWW. Ze verzekerden me dat dit er is. Maar de exposities gaan over de Large Hadron Collider, de Big Bang en Quantum Fysica. Allemaal enorm interessant, maar ik wilde vooral die oude zwarte serverkast zien.

Ik deed navraag bij de receptie en bij visitor guides, liet ze de email zien en allemaal verontschuldigden ze zich voor de fout van de mailende collega. Die server en gedenkplaat zijn niet voor eenvoudige stervelingen te bezoeken. Je moet al iemand kennen bij CERN en een persoonlijke uitnodiging krijgen, anders kom je niet binnen bij de heilige ruimtes waar de wetenschappers hun werk doen.

Ik probeerde het nog met een telefoontje naar Nederland. Ik ken minimaal één iemand die mogelijk weer mensen kent bij CERN. Ik belde Martijn Aslander op zijn verjaardag, hij kende wel iemand die weer iemand in het instituut kent, maar het is te kort dag om dat te regelen.

Helaas dus geen geschiedenis van het WWW met eigen ogen gezien. Maar ik heb wel gezien hoe belangrijk en relevant instituten als CERN zijn. Ik was in elk geval in de buurt van internetgeschiedenis. Dat is me ook wat waard.

Dan gaan we nu Geneve zelf in, ons vergapen aan te dure horloges.

Een stille, zonovergoten straat met stenen gebouwen, een klein zwart tafeltje met stoelen en potplanten.

Elke ochtend heb ik op deze plek voor ons appartement een klein ontbijt en schrijf ik mijn Morning Pages. We kunnen het slechter treffen op vakantie.

Keep going. Zelfs op vakantie

Auto-generated description: Op een terras met uitzicht op groene heuvels staan een tablet met toetsenbord, een glas roséwijn, een flesje en een kom op een tafel.

Dit is niet een standaard vakantieblog. Ik lees ze met veel plezier van anderen, zoals van Elmine in Londen en Jan in Albanië. Onze dagelijkse beslommeringen en avonturen vertrouw ik deze vakantie alleen toe aan het papier. Ik maak elke dag een tekening van de dag er voor. Wat korte aantekeningen, ik plak een polaroid er bij. Dat gaat in ons vakantie-notitieboek en blijft daar. Alleen voor ons. Ik schrijf er over de uitkijktorens in Ettlingen. Het verkeer rondom Milaan en mijn bezoek aan de Codex Atlanticus van Leonardo da Vinci (een hoogtepunt deze vakantie). We dwaalden door de middeleeuwse straten van Lucca en werden langzaam verliefd op het stadje. Ik ontdekte daar de non-alcoholische Aperol Spritz. We kwamen terug in Greve in Chianti, waar we in 2017 in hetzelfde restaurant aten en het was nog altijd ”tipica Toscana”.

Inmiddels zit ik op ons balkon van het eigen appartement. We zitten aan de rand van het dorp Gaiole in Chainti. In Toscane, het hart van de Chianti streek. We zijn omringd door de Toscaanse heuvels, vanaf ons balkon zie ik drie wijngaarden en ik kijk op het kleine dorpje met kerkje en een typisch Italiaans marktpleintje. Zoals je ze kent uit de oude Italiaanse films met Sophia Loren. Het enige wat ik hoor zijn de luid kwetterende zwaluwen die een nest bij ons appartementcomplex hebben. Ergens in het dorpje een blaffende hond en het gejoel van Deense en Duitse kinderen in het zwembad, direct onder ons appartement.

Auto-generated description: Een groot stenen gebouw met boogramen staat naast een buitenzwembad waarin enkele mensen zwemmen.

Het is precies op die plek waar ik nu schrijf. Waar ik dit schrijf. Dat is eerlijk gezegd het enige wat uit mijn handen komt. Sinds jaar en dag kenmerken mijn vakanties zich door een enorme rusteloosheid. Het liefst wilde ik elke dag iets doen. Op bezoek in een stadje, een kerk bekijken. Een markt. Naar een zwembad, een bos, als we maar op pad waren. Langzaam maar zeker werd me duidelijk dat dát geen vakantie is. Voor mij niet en voor de rest van het gezin niet. Ik heb een enorme moeite om echt rust te nemen tijdens de vakantie. Er moet altijd wel iets gebeuren, anders zijn dat verloren dagen en uren. Maar dat roer moet om. Ik moet echt meer rust nemen. Met de symptomen van PSC die niet erger worden, maar zeker niet minder, moet ik duidelijk meer rekening houden. Zeker in de hitte van centraal Italië. Het is deze dagen minimaal 35 graden. ‘s Nachts daalt de temperatuur niet onder de 23 graden. Dat dwingt me wel om rustig aan te doen.

Ik had me voorgenomen, deze vakantie pak ik het anders aan. Ik neem wél een iPad en een draagbaar toetsenbord mee. Niet om druk aan het werk te zijn. Maar om in elk geval in de ochtenden wat verder te kunnen schrijven aan CreativeNotes. Ik ben al ver in alle hoofdstukken, ik ben op het punt dat er conclusies, samenvattingen, eigen ideeën nodig zijn. Om alles aan elkaar te rijgen. Dat, bedacht ik me, kan ik prima doen op het balkon in Gaiole. Want dan heb ik geen werkverplichtingen. Geen workshops die voorbereiding nodig hebben, geen planningen of offertes. Ik hoef me alleen maar te focussen op het schrijven. Ik schrijf wat in de ochtend en verder neem ik rust.

Toch lukt het niet.

Dat heeft niets met werk te maken. Ik heb in 10 dagen geen werkgerelateerde mail gekregen, er paniekeert niemand via Whatsapp of Signal. Ik heb al 10 dagen geen LinkedIn gezien. Claude en alle andere AI-programma’s blijven uit. Ik hoef niets, er is geen afleiding.

Toch lukt het niet om verder te schrijven aan CreativeNotes. Ik zit vast.

Dat klinkt heftiger dan het is, maar gelukkig herken ik de signalen. Ik weet dat ik hier doorheen moet. Ik heb door de maanden heen zoveel informatie opgeslagen in Obsidian. Ik heb 15 interviews, sommige in 2 delen. Ik heb transcripts, ik heb al geredigeerde hoofdstukken. Er ligt zoveel klaar om aan elkaar te rijgen. Maar ik krijg het niet uit mijn handen. Ik kan me er gewoon even niet toe zetten. Ik denk dat ik de rust hier op vakantie harder nodig heb dan ik zelf had gedacht.
Dit gevoel gaat weer weg, dat weet ik. Er komt een moment dat ik weer prima aan de hoofdstukken kan schrijven. Misschien is dat pas als ik thuis ben. Misschien dat door deze blogpost de neurale netwerken in mijn hoofd weer de juiste verbindingen maken. Kan het zomaar zijn dat ik morgen een hoofdstuk er uit pers.

Uw auteur kijkt naar een tablet terwijl hij aan een tafel zit met een glas Sanbittèr en wat foccacia en olijfolie.

Als ik in de ochtend tijdens het ontbijt mijn blik over de Toscaanse heuvels laat gaan, dan heb ik niet de aandrang om diep denkwerk te doen over de laatste hoofdstukken. Ik had de quasi-romatische gedachte dat ik het klusje prima zou klaren, hier in het hart van Italië. Dat ik eenmaal terug de losse hoofdstukken zou samenvoegen en alles netjes in elkaar valt. Niets is minder waar. Het wil gewoon niet.

Dus ik hou me bezig met wat administratief productiviteits-theater. Ik verzamel op indexkaarten wat losse patronen uit de gesprekken. Ik denk er nog eens over na. Ik zet er wat nieuwe ideeën bij. Ik herlees hoofdstukken die ik nog voor redactie moet inleveren. Ik verzamel nieuwe transcripts en lees ze door om extra informatie toe te voegen aan bestaande hoofdstukken. Het is allemaal nodig, maar ik zou liever nu echt iets nieuws maken.

Maar… zet Claude dan aan het werk! Die kan je toch prima op weg helpen?
Eerlijk gezegd helpt AI me maar ten dele bij de hoofdstukken. Het helpt me prima om verbanden te leggen tussen de transcripts. Om een geraamte van een hoofdstuk weg te zetten. Maar het echte schrijfwerk komt van mij. Niet van AI. Dat gebeurde in de eerdere hoofdstukken en dat kostte me meer tijd om weg te halen en te herschrijven, dan dat het me echt tijd opleverde.

Ik ben op vakantie. Ik wil nu even geen gesprekken met LLM’s. Ik mis het ook niet. Ik maakte de afspraak met mezelf om deze vakantie zo AI-loos mogelijk door te brengen en dat werkt uitstekend voor me. We gebruiken Google Translate om de labels in de supermarkt te ontcijferen. Soms laat ik DuckDuckGo toch even een AI samenvatting samenstellen van de zoekresultaten. Maar verder blijft de vakantie AI-vrij.

Ik kreeg vandaag de 29,5-daagse nieuwsbrief van Robin Sloan. Trouwe lezers weten, ik ben een groot fan van de auteur. Hij kondigt een nieuwe set handgedrukte kaarten aan die ik direct bestel. Maar belangrijker is het thema van zijn nieuwsbrief. ”Keep going”. Ik moest dat echt even horen vandaag, want het is exact wat er speelt. Ik moet gewoon door blijven gaan. Deze kleine schrijfdip is tijdelijk en er komt een ander moment waar ik weer verder kan. Nu is het credo “Keep Going”. Daarom deze blogpost, geen standaard vakantieblog maar een train of thoughts die me op een ander traject brengt. Als het maar vooruit is.

Keep Going.

How far I’ll go to make an RSS feed of your website - Chris Hardie’s Tech and Software Blog

I will look for you, I will find you, and I will make an RSS feed of your website.

And here’s how I’ll do it.

Chris gaat behoorlijk ver om van zijn favoriete sites een RSS-feed te maken. Indrukwekkende manieren om allerlei content toch in je feedreader te krijgen.

I posted an issue in the help-forum, since there are some errors in my logfile with regards to the feed. I hope it gets sorted soon.

@dave I thought so, but somehow the posts don’t show up in my microblog interface. I hope @manton might take a look at this.

Spotify Wrapped, zonder Spotify

Net als ik een hekel had aan losse CD’s die in mijn kamer rondslingerden kan ik er niet zo goed tegen dat sommige albumart op mijn eigen muziekserver niet zichtbaar is. Liefst zie ik bij alle CD’s en artiesten de juiste beelden. Het werd tijd om dat eens uit te zoeken, maar natuurlijk bracht me dat op verrassende zijpaden die mijn verbinding met muziek nog sterker maken. 20260721113432-Dia-001943@2x.png

Coverart verbeteren

Ik bladerde in de documentatie van Navidrome, of er een manier is om wel aanwezige coverart beter zichtbaar te maken door de instellingen in de software. Ik kwam daar wel redelijk uit met wat bestaande software die ik al had en met de plugins van de dienst. Ik had daar nog niet echt aandacht aan besteed, ik had al snel een plugin gevonden die uit een archief van coverart mogelijk nog mijn bibliotheek kan verbeteren. Probleem opgelost. Bij de plugins vond ik daarna Spindle, een plugin waarmee ik mijn eigen luistergedrag kan loggen, weergeven en beheren. Ofwel, een Spotify Wrapped maar dan in eigen beheer. Zonder dat ik de data weg hoef te geven, zonder dat ik afhankelijk ben van een derde partij waar ik geen controle heb wat ze met de data doen. Tijd om dat eens uit te zoeken. En daarna nog een kers op de taart te krijgen om mijn 14 jaar oude hardware te koppelen.

DIY met zelf hosten

Ik probeer al langer om zo goed mogelijk de knip te maken met allerlei cloud-diensten. Dat gaat privé beter dan zakelijk. Logisch, want als ZZP’er is het wel handig om te snappen hoe de AI ontwikkelingen doorspelen in diensten van Google, Microsoft en anderen. Maar voor mijn foto’s en met name muziek wil ik meer de eigen controle.

Het afgelopen jaar heb ik best wat vrije tijd gestoken in een eigen server die ik host bij Hetzner in Duitsland. Ik kan hier behoorlijk wat services en diensten kwijt die ik zelf gebruik. Er zit nog weinig echt zakelijke software bij, het zijn vooral hobby projecten waar het niet heel erg is als er even een time-out is.

Hier draait nu al sinds begin dit jaar een eigen muziekserver. De open source software Navidrome doet zijn werk goed, ik kan prima op mijn laptop en iPhone de muziek afspelen in eigen software, fantastisch. Wat ik totaal niet mis aan Spotify is dat ik geen maandelijks abonnement meer heb en dat ik geen (AI) muziek krijg opgedrongen. Ik kies uit mijn eigen bibliotheek.

Dat heeft ook een keerzijde. Ik mis soms de aanbevelingen voor nieuwe muziek in Spotify en laten we eerlijk zijn, alles in eigen beheer doen is wat minder eenvoudig dan een app downloaden en account aanmaken. Maar ik heb het ervoor over. Het onderhouden van zo’n miniatuur-infrastructuur voor mijn eigen gebruik is deels hobby en deels een leertraject om te begrijpen wat er bij komt kijken.

Maar hoe heb ik nu een Spotify Wrapped kloon op mijn eigen muziekspeler? Dat doe ik met de plugin Spindle, die is gemaakt voor software zoals Navidrome. Het houdt de statistieken bij waar ik naar luister en heeft een interface die ik real-time laat zien wanneer ik naar wat luister. Het zijn de eerlijke statistieken, zonder de opsmuk van een storytelling-format.

Muziek in een vrachtschip

De installatie en activatie van de plugin was een klus die ik niet zonder Claude had kunnen doen. Alles op mijn server draait namelijk in Docker. Docker is speciale software om verschillende andere software naast elkaar te plaatsen, zonder dat ze elkaar in de weg zitten. Een vergelijking: Mijn server is een vrachtschip. Het kan veel vracht (software/services) vervoeren. De verschillende software pakketten, de “vracht”, zit in losse containers, net als op een vrachtschip.

Door die containers werken de software pakketten los van elkaar, beïnvloeden ze elkaar niet en kun je ze verplaatsen naar een ander vrachtschip als nodig. Als ik een container niet meer nodig heb, kan ik hem eenvoudig verwijderen, zonder dat de andere containers daar last van hebben.

Dat regel je allemaal met Docker. Die maakt de containers, maakt de “vrachtbrieven” wat er in zit, zorgt dat de containers op de juiste plek staan en als het nodig is dat containers toch verbonden zijn, dan regelt het dat.

Docker is eerlijk gezegd niet eenvoudig om te leren en echt te begrijpen, maar Claude kan alles geduldig uitleggen. Zo ook de installatie van Spindle in een aparte container. Die software bestaat namelijk uit een klein stukje code dat vanuit de Navidrome muziekspeler doorgeeft wát ik afspeel, een database om die informatie op te slaan en een dashboard om de statistieken weer te geven. Dat moet allemaal met elkaar kunnen praten, daar kan Docker voor zorgen.

Die netwerkverbinding kostte me wel wat tijd om in orde te krijgen. Claude kan zo nu en dan meekijken op de server zelf, die rechten krijgt het van me. Na wat uitzoekwerk kwamen we er achter dat één optie niet goed stond, om de twee containers goed met elkaar te laten praten. Daarna werkte de verbinding prima. 20260721111810-Dia-001939@2x.png

De geschiedenis terugkijken

Spindle heeft de mogelijkheid om je Spotify luistergeschiedenis in te lezen en te koppelen aan de muziek die ik op mijn eigen server heb. Dat wilde ik natuurlijk. Bij Spotify kun je je Extended Listening History opvragen. Hiervoor kun je het beste deze gids volgen en doen wat daar staat met de vinkjes en opties. Het samenstellen en beschikbaar stellen kost een dag of wat en je krijgt alles terug wat je luisterde in Spotify, in behoorlijk detail.

Deze geschiedenis importeer ik in Spindle en plots heb ik meer dan 15.000 luistersessies over de afgelopen 17 jaar. Dit is nog niet eens compleet, de rapportage toont dat ik over die jaren 75.000 nummers heb afgespeeld, waarvan 75% niet kan worden geïmporteerd. De import maakt een link met mijn eigen bibliotheek en daar staat nu eenmaal niet alles in wat ik ooit bij Spotify heb geluisterd. Dat is voor nu prima, maar eigenlijk wil ik meer statistieken! Dat is een project voor na de zomer, om de geschiedenis van de Spotify luistersessies zelf uit te lezen en een echt compleet beeld te krijgen van mijn luistergedrag. Niet dat het veel zal verschillen wat ik nu al in Spindle zie.

20260721112625-Dia-001941@2x.png

Mijn all-time favorite band Pearl Jam staat fier bovenaan met zo’n 2,5x meer nummers afgespeeld dan de nummer 2. Ik denk niet dat een volledige analyse hier veel aan zal veranderen. Maar ik hou nu eenmaal van dit soort statistieken.

De Sonos weer in gebruik

Ik heb nog een oude Sonos Play:5 speaker. Dit is de eerste generatie speakers die Sonos maakte en inmiddels niet meer ondersteunt. Maar hij werkt nog en we spelen er soms nog muziek op af. Nu ik toch bezig was, zou ik mijn muziekserver aan de Sonos kunnen verbinden? Maar natuurlijk, met de bonob software. Net als bij Spindle kan ik dit op mijn eigen server installeren in een Docker container, ik koppel de software aan mijn muziekspeler, aan de Sonos speaker en klaar. Dacht ik. Wederom, net als bij de Spindle software had ik nog wat extra stappen nodig en uitzoekwerk van Claude in de broncode van de software. Hier vond het een extra instelling die ik moest meegeven voor een geslaagde koppeling, maar die staat niet in de documentatie. Daarna werkte alles perfect. Ik kan nu mijn eigen muziekbibliotheek afspelen op een server die ik in eigen beheer heb. Op speakers die officieel al zijn afgeschreven door de fabrikant maar nog prima werken.

Dit is de duurzaamheid waar ik vaak naar zoek in de oplossingen. Ik heb liever dat spullen langer blijven werken dan dat een bedrijf besluit dat ik ze moet vervangen, omdat de balance sheet dat verplicht en aandeelhouders meer terug willen zien per consument.

Alles in eigen beheer doen. Het is inderdaad niet altijd even eenvoudig. Maar met wat experimenteerdrift, een abonnement op een AI-service voor assistentie en een vrije middag kom je best een eind.

What is RSS.chat for Howard Rheingold

Dave’s term for the idea is textcasting – the idea that a piece of text should work like an MP3: it plays everywhere. No one would accept a rule that songs can only be 300 seconds long. That’s the rule we’ve been living under for text.

Dave legt in meer eenvoudiger termen uit wat rss.chat nu eigenlijk is. Het is het fundament voor een sociaal netwerk dat geen beperkingen kent zoals Twitter, LinkedIn en andere locked-in netwerken wel kennen. De moeite van het lezen waard.

Crosspost from here to microblog

It’s actually pretty easy to crosspost my notes from here to my blog on the Micro.blog service. Just add the feed to my account > Sources and I’m done. Easy. 

Just published some first thoughts on RSS.Chat on my blog. I dig the protocol and the idea. Still have some reservations on the acceptance and how it will be integrated in new and existing services. We’ll see. 

Chat via RSS

Laat het maar aan Dave Winer over om met vertrouwde web-protocollen weer iets nieuws te bedenken. Dave is bekend als de godfather van weblogs, RSS en podcasts. Trouwe lezers weten dat ik hem graag volg.
Sinds een week heeft Dave weer wat nieuws gepubliceerd: RSS.chat. Een framework, een karkas voor een sociaal netwerk dat volledig op RSS draait. Geen aparte technologie, geen eigen besloten formaten, maar alles open en zichtbaar voor anderen. En door RSS heel eenvoudig in te bouwen in talloze andere toepassingen.

Interface van RSS.Chat met uitgeklapte reacties en navigatie

Waarom RSS.Chat als er al zoveel is? Ik denk dat het juist goed is om te experimenteren met vertrouwde, bewezen protocollen zoals RSS. Om te zien hoe ver je het op kunt rekken zonder de originele bedoeling van RSS te breken. Dat is exact wat Dave doet, kun je RSS als de ruggengraat van een sociaal netwerk gebruiken?

Het hoofddomein RSS.Chat is tijdelijk alleen toegankelijk voor een kleine groep developers die Dave zelf selecteert. Je kunt daar de vorderingen op de dienst volgen. Wil je zelf wat proberen met de dienst, dan kun je terecht op demo.rss.chat. Maak een account aan en je kunt direct aan de slag. Let wel, een hoop kan nog niet. In menig sociaal netwerk kun je direct mensen volgen, dat is hier niet aan de orde. Je ziet simpelweg de tijdlijn. Je kunt reageren, je kunt de RSS-feed van een individuele gebruiker aan je eigen feedreader toevoegen.

Het is niet de bedoeling van Dave om er een apart netwerk van te maken. Juist niet. Door gebruik te maken van relatief eenvoudige technologie moet het mogelijk zijn om de onderliggende werking van de app te integreren in bestaande diensten. Of compleet nieuwe diensten te starten. Zo heeft Andy Sylvester de applicatie al in eigen beheer draaien, wat niet helemaal lekker ging. Decentrale communicatie-diensten die via RSS aan elkaar zijn verbonden. Het is bijna te mooi om waar te zijn. Meteen schieten “ja maar” argumenten in mijn hoofd. Beveiliging. Authenticatie. Moderatie. Schaalbaarheid.

Het doet me denken aan de avonturen die ik beleefde met webmentions, een indieweb-gebaseerd protocol waarmee je via je eigen site op andere sites kunt reageren. In de basis heel elegant en fraai om te zien. Ik schrijf iets, iemand anders reageert daar op via een eigen site en ik zie die reactie verschijnen onder de oorspronkelijke post.
Maar webmentions hebben nooit echt de doorbraak gehad die het verdienen. Misschien omdat het toch te complex is. Je moet een reactie op een eigen domein publiceren om het zichtbaar te maken, waar onder water nog een hoop bewegende delen zijn. Verre van ideaal in de snelle mobile-first app-maatschappij van nu. Waar een eigen domein voelt als een overbodig relikwie uit het verleden.
Ik betwijfel eerlijk gezegd of dit met RSS.Chat wel gaat lukken. Ik zie zeker wel interesse uit de bekende developers/indieweb community, maar ik vraag me af hoe dit zich verder ontwikkelt voor een breder publiek. De “ja maar”-argumenten zijn sterker nu dan in de begindagen van het web, toen blogs, RSS en podcasting net begonnen.
Zoals Dave het zelf zegt:

And as with blogging and podcasting, started 20+ years ago, we’re going to follow what people do with this. RSS will fade into the background and do its work quietly. Its job is to give users choice.

Toch lijkt me dat lastig, om een open protocol als RSS uit te breiden met garanties voor veiligheid, moderatie en de andere tegenargumenten. De installatie-problemen van Andy geven duidelijk weer dat het enorm in de begindagen staat.

Ondanks dat, neem eens een kijkje bij de RSS.Chat Demo site en probeer wat uit. Reageer op mijn test-posts, maak zelf nieuwe posts. Ga spelen in de zandbak! Ik heb hetzelfde gedaan en je kunt heel eenvoudig iets posten en reageren.

De kracht zit in het onderliggende RSS-protocol met zijn ingebouwde uitbreidbaarheid en lange historie. Ik hoop dat het een vlucht neemt.

I find it both exciting and confusing to be thrilled about the advent of agentic software development (you can make your own perfect software if you want) as well as a resurgence of this social network through classic protocols like RSS. Somehow it doesn’t compute in my head yet it does….

Maybe this blogpost from Dave might help?

Hello? Is this thing on? 1,2…1,2…. Hey ho let’s go!

Ik leerde hoe ik Russische spam beter buiten de deur kan houden (een les in self-hosting)

Ik klik op een artikel op de site van CreativeNotes en beland op een Russische gokwebsite. Niet één keer, elke keer.

De voorpagina van CreativeNotes laat gewoon alles netjes zien, maar zodra ik doorklik naar een los artikel, word ik weggestuurd. Soms naar die goksite, soms naar een wat vage Amazon-productpagina. Ik dacht eerst dat mijn browser iets geks deed, maar een check op mijn telefoon en in een paar andere browsers liet precies hetzelfde zien. Mijn site was gehackt.

Dit is niet de eerste keer dat een account van mij buiten mijn medeweten om iets deed wat ik niet had goedgekeurd. In 2023 ontdekte ik al dat een vergeten app-koppeling mijn Mastodon-account had overgenomen. Deze keer ging het net weer even anders.

CreativeNotes draait op Ghost, een open source CMS met ingebouwde nieuwsbrief-functionaliteit en veel koppelingsmogelijkheden. Daar koos ik destijds bewust voor, zodat ik zelf de regie hield over mijn boekproject. Die regie voelde nu ineens een stuk minder vanzelfsprekend.

Op zoek naar de oplossing

Ik dook in de logfiles van het CMS-beheer, maar veel wijzer werd ik er niet van. Wel zag ik dat er ooit was ingelogd met een Zapier-account. Zapier? Ik kon me niet herinneren dat ik ooit een Zapier-koppeling had gemaakt, en de systeemlogs waren verder minimaal, zeg maar gerust afwezig.

Voor ik op de server zelf ging graven, legde ik het probleem voor aan Claude. Die kwam meteen met een duidelijke diagnose:

[…] kwaadaardige code op de site zelf. Dit is een bekend patroon: iemand voegt via Ghost Admin (Settings → Code injection, header of footer) of via een gecompromitteerd thema een script toe dat kliks op links onderschept en herschrijft naar affiliate- of scamsites.

Bij de header en footer van de site vond ik niks, maar ik wist dat code injection in Ghost ook per post en pagina mogelijk is. Ik checkte de instellingen van een van de artikelen en bingo, daar stond het: een stukje kwaadaardige Javascript.

Auto-generated description: Er wordt een privacybeleid weergegeven met uitleg over het verzamelen en gebruiken van informatie, inclusief definities en verwijzingen naar een Privacy Policy Generator.

Nu moest ik nog uitzoeken hoe dit was gebeurd, wat ik beter moest afschermen en hoe ik in één keer alle geïnjecteerde code uit mijn posts kreeg. Ook daar hielp Claude Cowork me goed bij. Stap één was alle API-keys vernieuwen en mijn wachtwoord wijzigen. Ondertussen bouwde Claude een script dat ik lokaal op mijn Mac draaide: het gebruikt de officiële Ghost-API, loopt alle posts en pagina’s langs, checkt op kwaadaardige code en verwijdert die meteen als hij iets vindt. Binnen twee minuten was de site weer schoon en gewoon bereikbaar.

Beveiliging

Toen werd het tijd om de site en de server structureel beter te beveiligen. Ik ben geen senior developer en heb weinig verstand van het echt dichttimmeren van servers, maar Claude legt me prima uit wat nodig is, waarom het nodig is en hoe ik het instel.

Zo bleken de logfiles van mijn server maar minimale informatie te bewaren. Dat is nu anders: ik zie tot in detail wie welke pagina opvraagt, vanaf welk IP-adres en hoe vaak er wordt geprobeerd om beveiligingen te omzeilen of API’s te benaderen. Vervolgens bouwden we een script dat me via Telegram een seintje stuurt zodra een pagina op CreativeNotes wordt aangepast door iemand anders dan ikzelf, zodat ik een volgende poging meteen in de kiem kan smoren.

Tot slot staat er nu een klein dashboard waar ik de logfiles visueel terugzie in grafieken. Dat dashboard geeft best wel veel informatie, dus die moet ik nog scherper filteren, maar het belangrijkste staat er: de server is beter afgeschermd, ik krijg een signaal zodra er iets misgaat, en een eventuele nieuwe code-injectie los ik binnen een paar minuten op met mijn eigen script.

AI als assistent in dit alles

Na dertig jaar weet ik best wat van programmeren, van hoe computers en servers werken, van waar je bij beveiliging op moet letten, maar ik ben er geen bedreven uitvoerder van. Ik spreek de taal niet vloeiend, zeg maar, en ik weet ook niet altijd welke term of instelling nou precies de juiste is. Voor grote taalmodellen als Claude maakt dat weinig meer uit.

Door een gestructureerde aanpak loste ik het probleem in zo’n drie uur op. Ik beveiligde mijn werk beter en snap nu redelijk goed hoe en waarom dit is gebeurd, door te vragen waarom iets nodig is, door af en toe een tegenidee te opperen, door een foutmelding gewoon in het opdrachtveld te plakken met de simpele vraag: los dit voor me op.

Ik schreef eerder al over het verschil tussen agents en skills in Claude Code. Dit hele avontuur was typisch skill-werk: ik zat aan het stuur, Claude was mijn copiloot, en bij elke stap kon ik meekijken en bijsturen.

Kan het allemaal nog steviger en robuuster? Vast wel. Claude opperde zelf CrowdSec, een soort actieve waakhond die continu logfiles analyseert en zelfstandig beslissingen neemt, maar het advies was om eerst te kijken hoe de huidige beveiliging bevalt, voor ik er nog een laag bovenop leg.

De Russische spammer heeft niets persoonlijks tegen mij. Het is geautomatiseerd, uitbesteed werk: op grote schaal zoeken naar sites met een Ghost-installatie, kijken waar de zwakke plekken zitten en daar massaal spam-links plaatsen. Ik was er even het toevallige slachtoffer van.

Balen is het wel, maar het is meteen ook weer een les: zelf hosten is een leuke hobby, maar je draagt er wel wat petten bij. Updates, beveiliging, het is allemaal jouw verantwoordelijkheid. Ik vind dat prima, het is mijn hobby en ik leer er telkens weer wat bij. Voor de meeste mensen is dat anders, en dat hoeft ook niet. Juist om deze reden.

sneakerweb

The sneakerweb is a peer-to-peer protocol for web publishing without permission: there are no DNS servers, domain registrars, or web hosts.

Instead, websites are stored directly on user devices, and transferred between them through the ultimate fallback infrastructure: physical storage media.

Ik weet nog niet wat het exact is en hoe het werkt, maar ik wil dit best eens proberen…