Oude lettertypen door Richard

Geensnor in Dudok lettertype

Soms kom je nog pareltjes tegen op het internet. Ze proberen je niets te verkopen en duwen je geen AI door de strot. Richard Keijzer heeft zo’n parel gemaakt met zijn Fontenwerkplaats. Op z’n site probeert hij lettertypen tussen 1920 en 1940 een “nieuwe leven” te geven. Dit nieuwe leven geeft Richard door ze na te maken met Fontforge. Het resultaat kun je vervolgens gratis op z’n site downloaden.

Helaas heeft Richard op het moment van dit schrijven z’n site al bijna een jaar niet meer geupdate. Hopelijk is hij een nieuw lettertype op het spoor en komt hij binnenkort met een enorme typografie-banger.

Dudok

Bovenaan dit bericht staat bijvoorbeeld Geensnor in het bekende Dudok lettertype wat Richard heeft gemaakt. Willem Dudok bedacht dit lettertype voor het Raadhuis van Hilversum in een tijd dat architecten zich nog aan ware gesamtkunstwerken waagde.

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


Ik werk bij een website die meer dan 50 miljoen bezoekers per jaar trekt. Onze domeinnaam (en merknaam) is heel bekend en we hebben een superbetrouwbaar imago.

dnstwist

Subdomeinen

Een van mijn verantwoordelijkheden is het stabiel houden van alle productieomgevingen. Daar hoort ook een beveiligingsaspect bij. Ik was al langer gefascineerd door de gevoelige informatie die websites via DNS-records lekken en ben daar verder ingedoken. Met sites als Shodan breng je eenvoudig subdomeinen van een domein in kaart, zoals hier. Via die subdomeinen vind je al snel allerlei backendsystemen, interne portalen of andere initiatieven van een organisatie, en vaak ook ‘vergeten’ projecten die niet meer helemaal up-to-date zijn: de zogenoemde schaduw-IT. Ook ben je al snel kwetsbaar voor subdomain takeovers: een DNS-record verwijst dan naar een externe service die niet meer bestaat. Een aanvaller kan die service claimen en daarmee controle krijgen over het subdomein.

Ik maakte een handig tooltje om direct alle gevonden subdomeinen in je browser te openen: SubDomainTabber. Zo kun je sneller kijken wat er allemaal te vinden is. Een kleine waarschuwing: er zit geen rem op en het tooltje opent hupsakee 50 tabbladen als je niet uitkijkt.

Nog aardig om te vermelden is dat het vinden van een subdomein geen eenvoudige bedoeling is. Immers, die DNS entries zijn niet zomaar op te vragen. Eigenlijk is de meest gebruikte manier, ook van Shodan, om dat te doen met gepubliceerde certificaten waarin wel die informatie is te vinden, bijvoorbeeld via crt.sh. Als je bijvoorbeeld kijkt naar de crt.sh record van geensnor, dan zie je daar opeens alle subdomeinen maar ook de complete historie terug, zoals verwijzingen naar het illustere Geensnor Yasp. Een handige tool met een normale GUI hiervoor is, naast Shodan, bijv. Merklemap waar een actueel overzicht te vinden is van de geensnor subdomeinen

Domeinsquatting

Als je de naam van mijn werkgever zegt, dan kent iedereen dat en weet iedereen dat wij compleet transparant, wetenschappelijk onderbouwd en eerlijk zijn. Ik wil verder hier de naam niet noemen want dat doet niet ter zake, maar we zijn een sterk merk en dus wordt daar misbruik van gemaakt. Het is een interessante attack vector om je voor te doen als ons en mee te liften op onze betrouwbaarheid, maar ondertussen bijv. een phishingcampagne uit te voeren. Een manier waarop dat veel gebeurt is het zogenoemde domeinsquatting waarbij een aanvaller een domein claimt dat sterk lijkt op de echte naam maar vaak een klein foutje bevat, bijv gensnor.nl of wwwgeensnor.nl.

Zo ontdekte ik in 1 van mijn zoektochten een zeer verdachte registratie waarin inderdaad alleen de punt tussen www en het merknaam was verwijderd. Een topje van de ijsberg bleek want na een zoektocht met een tool genaamd dnstwist ontdekten we nog veel meer registraties waarin er duidelijk misbruik werd gemaakt van onze naam en er allerlei andere registraties met kleine typo’s bleken te bestaan. dnstwist is wel een leuke tool. Het genereert allemaal varianten van je domeinnaam en controleert vervolgens of er een registratie op te vinden, een DNS-record op zit en of er een mailserver bekend is. Er is trouwens een webversie van dnstwist. En om te zorgen dat ik voortaan eerder op de hoogte ben van foute domeinen die zich voordoen als ons implementeerde ik een GitHub action met dnstwist die iedere nacht de scan van de vorige dag vergelijkt en een melding geeft als er iets nieuws wordt ontdekt.

ok…en wat deed je toen?

Toen had ik een lijst van verdachte domeinnamen en moest ik die offline gaan laten halen. Dat betekent contact opnemen met de registrar, de domeinhouder en SIDN. We hebben een aantal invalshoeken die we kunnen kiezen waaronder bijv. via een juridische weg (inbreuk op merknaam) maar handiger (tip) is om even kritisch te kijken naar de houdergegevens. Immers, deze moeten kloppen en gegevens tonen van een bestaand rechtspersoon. Maar partijen die kwaad willen, vullen daar bijna altijd niet-bestaande gegevens in, en dat is (soms) een reden voor SIDN om een domein direct offline te halen of op te schorten. Een kort berichtje naar SIDN is voldoende, scheelt je toch weer een hele juridische soap.

1 reactie


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…

1 reactie


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.

Iemand van Associated Press 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


Oudere berichten