Geensnor ❤️ Mastodon

Al sinds 2018 zijn we hier op Geensnor erg gecharmeerd van Mastodon. Sinds die tijd hebben we ook een Mastodon account, maar van echte liefde tot nu toe nog geen sprake. De afgelopen tijd hebben we vier nieuwe functies op deze site toegevoegd, en nu durven we wel te zeggen dat het er behoorlijk “Nisha Tara en Lieske” aan toe gaat tussen Geensnor en Mastodon.

Laten we het viertal uitpakken…

1. Delen op Mastodon

Als je een bericht van een blog wil delen op Mastodon, moet je ook nog de juiste instantie kiezen. Mastodon heeft daarom een eigen deelknop die je daarbij helpt. Sinds een tijd staat deze prachtige knop rechtsonder elk bericht op Geensnor.nl. Dus ik zou zeggen: delen maar die berichten!

2. Mastodon embedden

Soms wil je een blog op Mastodon delen, en soms wil je een Mastodon bericht op Geensnor zetten. Net andersom dus. Met behulp van astro-embed hebben we het voor elkaar gekregen om een Mastodon bericht te embedden op Geensnor. Een bericht eerder hebben we dat zelfs al gedaan!

Het embedden gaat niet vanzelf. Het werkt niet in Markdown dus je moet een .mdx van je post maken. Vervolgens moet je het component importeren

import { MastodonPost } from "astro-embed";

en tot slot moet je met het component het Mastodon bericht embedden

<MastodonPost id="https://mastodon.xyz/@geensnor/117315994110748102" />

3. Auteurs tonen

Geensnor attributie

Deze blog schrijft zichzelf niet en elk bericht is tot stand gekomen door slecht betaalde auteurs. Dan is het natuurlijk wel aardig al je naam ook bij het bericht op Mastodon verschijnt. Met twee mooie woorden wordt dit ook wel ‘Author Attribution’ genoemd.

Een metatag met het Mastodon account van de auteur wordt toegevoegd aan het bericht als de site wordt gebuild:

<meta name="fediverse:creator" content="@yourusername@mastodon.social">

Als die pagina dan op Mastodon wordt gedeeld, wordt de auteur met z’n Mastodon account erbij gezet. Op de voorpagina staan alle auteurs door elkaar, dus daar houden we Geensnor zelf aan als auteur. Op de detailpagina’s van de berichten de auteur van het bericht zelf.

Klein dingetje nog voor de auteurs zelf: je moet onderaan de instellingenpagina die over verificatie gaat (https://mastodon.social/settings/verification) even ‘geensnor.nl’ toevoegen zodat Mastodon weet dat hij vanaf dat domein de auteur mag attributen. Dat was deze auteur even vergeten en dat kun je het attributen wel op je buik schrijven.

4. Reacties

En dan het absolute magnum opus van deze Mastodon update: reacties. Reacties hebben het niet makkelijk gehad op Geensnor. Vroeger moest je je eerst op Wordpress registereren. Daarna misbruikten we GitHub om reacties op bij te houden. En tijden lang hebben we ook niets gehad.

Nu voel je misschien al een beetje waar we de reacties deze keer vanaf gaan halen… inderdaad: Mastodon. Elk bericht op Geensnor heeft ook een bericht op Mastodon als het goed is. Als je het id van het bericht op Mastodon in de Frontmatter van het bericht op Geensnor zet, worden die twee aan elkaar gekoppeld. Als de site wordt gebuild, kijkt Astro even op Mastodon of er nog reacties zijn bij het bericht. Als dat zo is, worden de reacties onder het bericht op Geensnor gezet. Reactie op Mastodon = Reactie op Geensnor. Wauw…

Nog geen reacties. Reageer op het bericht op Mastodon . Die worden dan hier geplaatst.


Weg met antropomorfisme!

stripje over iemand dit tegen een computer praat

Echt, kap met die ellende! Stop met het toekennen van menselijke eigenschappen aan niet-menselijke dingen. Ik ben er echt helemaal klaar mee!

Wat voorbeelden:

En zo kan ik nog wel even doorgaan.

Als een parkiet zichzelf ziet in een spiegeltje die in z’n kooi is opgehangen, denkt hij dat er een andere parkiet in z’n kooi zit. Als wij chatten met een computer die net zo praat als dat wij doen, denken wij dat we met een mens praten en zijn we diep onder de indruk. En dan begint de ellende van antropomorfisme. We gaan AI eigenschappen geven die het helemaal niet heeft. Discussies ontsporen, verwachtingen worden opgepompt, de hele boel gaat naar de vaantjes.

Misschien is het zoals Juurd Eijsvoogel in het NRC zei; we hebben er gewoon de taal ook nog niet voor:

Wat mij betreft blijven het zielloze systemen. Maar verwarrend is het wel. Het is alsof we de juiste taal nog moeten vinden om uit te drukken wat in die systemen gebeurt, zonder onze toevlucht te nemen tot voor de hand liggende menselijke metaforen als het “denken” of “twijfelen” van AI.

Het AP is het met me eens. Ze hebben zelfs hun stijlboek aangepast:

Nog geen reacties. Reageer op het bericht op Mastodon . Die worden dan hier geplaatst.


DDEV

De redactie slaat DDEV plat

Wie kent het niet. Je haalt een leuke repo ergens op en bent vervolgens uren aan het klooien om de boel een beetje te laten draaien. Dat was met php en databases al gedoe, anno 2026 met allerlei frontend frameworks en bergen dependencies vergt dat speciale oplossingen. Conceptmatig regelen veel frontend frameworks dat gelukkig zelf al. In astro (waar Geensnor op draait) wordt dat bijvoorbeeld ondervangen met Vite en NPM dat snel een lokale ontwikkelomgeving start inclusief alle afhankelijkheden. Maar ook daar blijf je afhankelijk van de juiste Node versie en werk je niet totaal geïsoleerd aan een project. Lokale Projecten kunnen met elkaar in conflict raken. Het blijft een beetje geklooi en het zijn allemaal oplossingen voor min of meer dezelfde problematiek. Hoe krijg ik software lokaal draaiend zonder uren te besteden aan allerlei instellingen en installaties. In een geïsoleerde omgeving op een manier die snel opnieuw uit te voeren is.

Nu bestaat Docker al een tijdje en dat is natuurlijk de oplossing voor dit gedoe. Maar is om een of andere reden ook altijd moeilijk te begrijpen. Totdat de redactie op DDEV stuitte. DDEV stond oorspronkelijk voor Docker Development Environment. Je laat DDEV eerst een analyse maken van je repo. Kiest vervolgens wat voor soort applicatie het is en DDEV maakt volautomatische alle nodige containers aan. Het stelt de boel in, installeert vervolgens in de containers alsnog alle dependencies en klaar is kees.

Ow wat mooi, hoe begin ik hiermee?

Om te beginnen heb je een docker-provider nodig. Op macOS zijn wij wel blij met OrbStack brew install orbstack docker. Vervolgens heb je DDEV nodig dat je ook eenvoudig met homebrew installeert (brew install ddev/ddev/ddev). Om SSL gezeik over certificaten nog te voorkomen is het handig om eenmalig een lokale CA te vertrouwen met mkcert -install

Dan zijn we er klaar voor en begint de wondere wereld van DDEV. Met ddev config maak je een nieuw project aan. DDEV scant je source code, maakt een config file aan van alle nodige software. Die kan je nog een beetje tweaken in de config.yaml die aangemaakt is in je repo. Zo heb je bijv. lang niet altijd een database nodig. Soms moet je daarna nog bijvoorbeeld ddev npm install of ddev composer install uitvoeren om alle dependencies ook aan boord te krijgen. Met ddev start start je vervolgens alle containers en zie je ze netjes draaien in orbstack. De Get-started pagina van DDEV is duidelijk, kijk ook daar vooral verder.

Schiet ik hier nou veel mee op?

Dat is maar de vraag. DDEV is vooral handig bij applicaties die bijv. ook een database gebruiken of eigen domeinen en routing nodig hebben. Maar voor het draaien van Geensnor.nl is de meerwaarde wat beperkter maar blijven natuurlijk de algemene voordelen van een docker container wel staan.

  1. Geïsoleerd waardoor je weinig last hebt van instellingen op de client (bijv. node.js versies) of andere projecten waar je ook aan werkt en die zaken delen
  2. Platform onafhankelijk. Draait het docker, dan draai je de applicatie.
  3. Sneller aan de gang. Vergeet de services en zooi installeren op je client. Start gewoon de docker image!

Zelf ervaren?

Wil je het snel zelf ervaren? In de Geensnor repo hebben we een ddev yaml neergezet waarmee je direct Geensnor kan draaien! Haal de repo op en start Geensnor met ddev start!.

1 reactie


Een haiku up je TRMNL

haiku op trmnl

De haiku’s van Geensnor geven sinds jaar en dag kleur aan De Digitale Tuin. Met een aantal dat de 160 inmiddels ruim overstijgt, geven de haikuïsten van Geensnor niet alleen blijk van hun oog voor vorm en schoonheid, maar ook van een niet aflatend arbeidsethos. De haiku als vingerhoed vol emotie, vindt zijn plaats vaak niet goed in het jachtige leven van de moderne mens. Tuurlijk, je neemt je voor om na je dagelijkse meditatie even een momentje stil te staan bij één van je 17 lettergrepige vriendjes, maar wees eens eerlijk….hoe vaak kwam dat er eigenlijk van….

De haiku als cultureel construct verdient een centrale plaats in het leven van alle dag. Hij moet een goede vriend zijn die je onverwachts tegen komt. Een inzicht die een gat vult in je geestensleven waarvan je niet wist dat je het had. Een beleving, subtiel maar aanwezig. Kort erna vervlogen, maar niet vergeten.

TRMNL

Bekeken vanuit een hardware perspectief, vormt een TRMNL een prima platform om deze leemte te vullen. De fijne mensen achter deze “e-ink companion” hebben een scherm ontwikkeld waarop frictieloos verschillende soorten informatie verschijnt. Concepten als personalisatie, uitbreidbaarheid en duurzaamheid worden ingevuld door een rijk ecosysteem van plugins. De plugin die het vertrekpunt vormt van de oplossing voor de hierboven genoemde behoefte, luistert naar de naam Screenshot. Concentreer even op het woord “vertrekpunt” wat dit is essentieel. Om het geheel te laten werken is er meer nodig. Een figuurlijk smeermiddel tussen de haiku’s in de tuin en het TRMNL scherm. Een brug tussen de virtuele en fysieke wereld. Een huwelijk tussen content en hardware. Een laatste onderdeel, noodzakelijk voor het functioneren van het geheel…een puzzelstuk…een schakel…een kers op de appelmoes…

Nieuw open bron initiatief

Dit sluitstuk zag, geholpen door een mespuntje kunstmatige intelligentie, al snel het levenslicht in de vorm van een nieuw open bron initiatief: Haiku voor TRMNL. Ze is in haar volle glorie te bewonderen op trmnl.geensnor.nl. Dit is ook de URL die in de TRMNL plugin gebruikt wordt.

Hopelijk beschikt u als lezer over de monetaire draagkracht en het technische inzicht om deze totaaloplossing ook in uw omgeving te realiseren. Als dat het geval is, ervaart u binnenkort ook het kleine geluk van een toevallige ontmoeting met het mooiste wat de Japanse cultuur te bieden heeft: een ogenblikervaring.


Human after all

Robot speelt piano, of toch niet…?

Och och och, AI. In elk gesprek komt het wel even aan bod. En je kunt er ook zoveel mee. En het gaat natuurlijk het werk veranderen. En dan nog de investeringen allemaal. Tjonge jonge, het is me allemaal wat.

Maar op geensnor.nl proberen we natuurlijk net even de andere invalshoek te pakken. De invalshoek van: hoe kunnen we uit die smeulende berg slop op het internet nog het menselijke, kwetsbare verhaal herkennen? De schrijver, scholier of student die eenzaam ploetert op een verhaal. Met blote handen, vechtend tegen enorme taalmodellen. Soms tegen beter weten in, maar altijd gesterkt door het rotsvaste geloof in originaliteit, ambacht en een mooiere toekomst voor iedereen.

human.json

Een tijdje terug kwam ik deze post tegen. De schrijver gebruikt human.json om aan te geven dat hij zelf z’n site beheert en niet een of andere AI. Maar hij geeft in zijn human.json ook aan dat hij andere sites kent (en vertrouwd) die beheerd worden door mensen. Zo onstaat er een netwerk. Beetje zoals de Web of Trust van PGP. Met behulp van een browser extentie kunnen de bezoekers van een website bepalen of het om een website deel uit maakt van dat netwerk. Als je de boel niet vertrouwd als bezoeker, kun je in de browser extentie de site ook blokkeren.

Of zoals human.json het zelf beschrijft:

human.json is a lightweight protocol for humans to assert authorship of their site content and vouch for the humanity of others. It uses URL ownership as identity, and trust propagates through a crawlable web of vouches between sites.

Instaan voor de menselijkheid van anderen. Is het niet prachtig….

Zoals met alle prachtige ideeen, pakken we bij Geensnor ook deze handschoen meteen op. We hebben ook een human.json toegevoegd aan geensnor.nl. Op dit moment staan De Digitale Tuin, Chris Eidhof en Bert Hubert erin. Ik wil hun humanity wel vouchen.

Slop blocken

In plaats van aangeven dat iets gemaakt is door een mens, kun je ook AI slop blokkeren. Ook daar gaat de eerder genoemde post op in. Hij heeft een AI blocklist voor uBlock Origin gevonden. Als je deze lijst toevoegd aan de browser plugin, krijg je een mooie waarschuwing te zien als je tegen een berg slop aansurft.

De gedachte achter deze lijst is

The key idea is simple: if I wanted my question to be answered by AI, I would ask AI.

uBlock Origin is sowieso een aanrader als je iets om je privacy en advertentievrij browsen geeft.


Oudere berichten