Programming

Set up Apache2 for a React site

A React website is a one-page site. The page never gets reloaded, all content is shown within the existing page. Don’t get fooled by the url in the location bar changing: the page changes the url, but the http-page remains the same. A problem that arises with such a site is the following. When you close your browser when you are in a particular page in the site, when you open your browser, it tries to load the page in the location bar. However, that is not the url that starts the React site, and what you get is a “404 Page Not Found”.

What you can do is setup your Apache web server to redirect all pages to the root page, the url ending with “.com” (or any top level domain) and nothing else. This is what you add in the virtualHost configuration in your Apache server:

RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.html [L]

The two lines with “RewriteCond” prevent redirection of site content, the last line redirects all pages to the entry page of the site (that is, to the index.html page). This way, when you shutdown your computer while browsing the site, when you open your browser again, it will show you the site, not a 404 error.

This solution comes from Stackoverflow.

Blog

The House Schwartze

I am writing a story about the Schwartze family: Thérèse Schwartze, her parents, her siblings and their children. Schwartze was a well known portrait painter, her niece Lizzy Ansingh was a painter and one of the Amsterdamse Joffers. I am writing the story on the same web site I use to document the materials I have found.

The software I created for the site is on github. The web site is here.

It’s a work in process that I do as a hobby, in my spare time.

Blog

Project: kniepertjes

Toen ik klein was bakten mijn oma en mijn moeder soms kniepertjes. Ik weet niet meer of ze dat rond Oud en Nieuw deden, in ieder geval niet op oudejaarsdag want dan bakten ze oliebollen. Honderden, in mijn herinnering, dan aten we twee weken alleen oliebollen. Mijn oma woonde bij ons in, kookte voor zichzelf apart en had haar eigen “aanleunwoning”, maar speciale dingen deed ze met mijn moeder samen. Oma was alleen, opa was overleden twee maanden voordat mijn moeder geboren is. Hij heette Aart Heering. Mijn moeder is naar hem genoemd, ze heette Aartje.

Omdat ik het kniepertjesijzer van mijn moeder heb geërfd en dat maar steeds in de keuken lag, besloot ik nu eindelijk eens zelf kniepertjes te gaan bakken.

Kniepertjes (van “kniep’n”, dialect voor “knijpen”) maak je met een wafelijzer, of kniepertjesijzer: een grote tang waarmee je een bolletje deeg platknijpt en die je dan in het vuur houdt om het kniepertje te bakken. “Vuur”, dat was heel vroeger het vuur in de keuken, toen mijn oma kniepertjes bakte was dat het gasfornuis (met stadsgas). Helaas heb ik geen gas in de keuken, maar een inductie-plaat. Ik heb overwogen om een gasbrander aan te schaffen voor de kniepertjes, maar ik bedacht op tijd dat het met inductie toch ook moet kunnen. Het wafelijzer is van gietijzer, dat wordt wel warm boven de inductie. Op de grote inductie-pitten werkt het niet, die gaan uit, maar op het kleine pitje rechtsachter bleek het prima te gaan.

Het recept dat ik heb is het recept dat mijn oma en mijn moeder vroeger in Apeldoorn gebruikten, uit het kookboek van de Amsterdamse Huishoudschool van Cornelia Wannee. Niet de versie die je nu in de boekwinkel koopt, maar de vierde druk van ongeveer honderd jaar geleden.

Blijkbaar bakte mijn moeder 90 kniepertjes, niet zestig, ze heeft er de aangepaste hoeveelheden bijgeschreven. Ik heb er 30 gemaakt, hieronder een deel daarvan. Ik moet het kniepertjes maken nog leren dus ik heb de hoeveelheid beperkt gehouden. Als ik het onder de knie heb, kan ik er ook 90 maken. Maak je geen zorgen over de hoeveelheid boter in het recept: een deel van die boter knijp je bij het bakken uit het koekje, die blijft achter op de kookplaat.

Het recept zegt wat je moet doen. Je maakt de balletjes, en dan leg je één balletje in het wafelijzer en knijp je het plat. Je kunt flink blijven knijpen gedurende het bakproces, je kunt ook het balletje platknijpen en dan het wafelijzer laten liggen. Ik heb gemerkt dat het net iets beter gaat als je wat druk op de uiteinden van het wafelijzer houdt. Verder heb ik het wafelijzer voorverwarmd, ik had in de allereerste sessie met een paar balletjes gemerkt dat de eerste kniepertjes mislukten. Uiteindelijk denk ik dat je wat warmer moet beginnen (stand 8 op mijn kleine pitje) en dat je dan zakt naar 7 of 6½. Een minuut per kant heb ik gedaan, de koekjes worden wel wat donker maar met korter bakken werden ze niet helemaal gaar.

Het oprollen is wel een gedoe. Je hebt een paar seconden om het wafeltje uit het ijzer te halen (met een mes kun je het losmaken, het laat gemakkelijk los) en op te rollen. Je moet gelijk goed rollen, bij mij braken er nogal wat, en je kunt het niet vasthouden omdat het gewoon te heet is, dus sommige rollen dan weer wat af.

Het resultaat van mijn eerste kniepertjes-sessie is matig: een deel ging kapot, sommige zijn te donker of te licht, bijna allemaal zijn ze niet mooi rond, maar ze zijn wel heel lekker. Het schijnt dat sommige mensen slagroom in de koekjes doen, ik heb dat bij mijn oma echter nooit gezien. Op twitter hoor ik dat kniepertjes Drents zijn. Mijn oma haar moeder kwam uit Drente, ik denk uit Ruinerwold. Daar woont nog steeds verre familie.

Blog

Agile werken tijdens corona

Ik lees net een stukje van Emma Curvers over agile werken op kantoor. Citaat: “Er kwamen jongens op mijn toenmalige werk die wilden dat we agile gingen werken, ze droegen niet zelden een Fitbit, en ze probeerden alles wat we deden efficiënter te maken. De jongens zeiden dat we elkaar te veel mailden, en als we nou allemaal op Slack gingen, dan hoefden we ook niet meer naar elkaar toe te lopen“. Naar mijn bescheiden mening hebben die “jongens” dan niet begrepen wat agile betekent.

“Agile” betekent slagvaardig. Wil je slagvaardig en efficiënt werken dan moet je als organisatie snel beslissingen kunnen nemen en snel dingen voor elkaar kunnen krijgen. Dat betekent weer dat je geen lange beslistrajecten wilt, geen hierarchie, en bij voorkeur geen managers. Mijn invulling van “agile” is dat medewerkers een eigen verantwoordelijkheid krijgen, zelf beslissingen kunnen nemen, en zelf het initiatief nemen met anderen te overleggen hoe dingen aan te pakken. Agile is dat beslissingen genomen worden door de mensen die verstand hebben van het onderwerp, niet door de mensen die de strepen op hun mouw hebben.

Mijn ideale agile omgeving is dat je met een team in één ruimte zit, dat je elkaar ziet tijdens het werk, dat je vragen kunt stellen aan elkaar als ze opkomen, dat je samen aan een scherm zit te werken, dat je dingen delegeert aan elkaar en dan blind weet dat het goedkomt. Dat heeft niets te maken met de technologie die je gebruikt. Sterker nog, Slack belemmert eerder dan dat het efficiënt werken bevordert.

Wat ik een belangrijke component van “agile” vind, is wat Tom Peters ooit “empowerment” noemde. Als een medewerker in je organisatie is aangenomen om databases te managen, dan moet je bij beslissingen over die databases vooral luisteren naar die medewerker. Als je een boekhouder in dienst hebt, laat je financiële beslissingen zoveel mogelijk leiden door die boekhouder.

En dan is er corona. Je kunt niet meer samen in één ruimte werken, je mag zelfs niet meer samen op kantoor werken. Iedereen werkt thuis, iedereen zit in z’n eentje te slacken, te zoomen of te teamen. Of gewoon te werken. De enige manier om dan effectief te blijven werken is hetzelfde te doen als op kantoor: als je met drie collega’s in een kamer zit, kun je nu met die drie collega’s de hele dag in een Slack kanaal zitten. Wat je niet moet doen is met al je collega’s in Slack kanalen zitten, of erger nog, allemaal in één kanaal zitten. Dan gebeurt wat Curvers schetst: je zit de hele dag alleen nog maar te chatten.

Thuiswerken en agile werken gaat prima samen als je agile opvat als “empowerment” en “niet vergaderen”. Vertrouw je collega’s dat ze hun deel van het werk goed doen, doe je eigen werk goed, en stuur de manager naar de golfbaan, die heeft immers in een agile thuiswerk situatie niets te zoeken. Probeer vooral niet de vergaderingen te houden die je vóór corona deed. Ik had van de week een soort brainstorm met een paar mensen, via Teams. Gruwelijk. Dat werkt voor geen meter. We moesten een naam bedenken voor een IT product, via Teams wordt creatieve interactie tussen mensen doodgeslagen en uitgefilterd, daar moet je iets anders voor verzinnen. Een Slack channel werkt niet, maar wellicht dat één op één gesprekken (Slack, telefoon, Teams, wat je wilt) wel werken.

Het belangrijkste aspect van agile werken is voor mij dat er geen regels zijn, geen voorschriften, geen leiding. Als ieder lid van een projectteam begrijpt wat er moet gebeuren, verantwoordelijkheid voelt dat het gaat gebeuren, en zelf oppakt wat hij of zij kan doen, waar hij of zij de expertise voor heeft, en als iedereen zelf één op één contacten met anderen organiseert om dingen te delegeren of te overleggen, dan komt het vanzelf goed. Als jij wilt bellen, dan bel je. Als jij wilt Slacken, dan Slack je. Als jij op kantoor wilt afspreken, dan doe je dat. Jij bent immers verantwoordelijk voor jouw werk.

Oh, en heen en weer lopen naar collega’s, dat is juist super agile. Hoe meer mensen je in de loop van een dag even persoonlijk spreekt, hoe hechter de banden in je project team en hoe beter het werk gaat. Daar was die Fitbit voor bedoeld: die meet of je wel genoeg door het kantoor loopt om collega’s te zien.

Blog

Ik haat led-licht

Gisteren liep ik in de stad, een fietser komt me tegemoet, en ik wordt verblind door een lampje voorop de fiets. Een led-lampje, iets omhoog gericht, ik hou mijn arm voor mijn gezicht om er niet in te hoeven kijken. Dat gebeurt best wel vaak tegenwoordig: fietsverlichting die zo fel is dat je er niet in kunt kijken. De meeste brommers en scooters zijn nog erger, om van auto’s maar te zwijgen. Koplampen die zo fel zijn dat je het idee hebt dat ze een gaatje in je netvlies branden.

Vroeger waren koplampen van auto’s veel groter. Dan zaten er 55 watt gloeilampjes in, het licht werd verspreid met een reflector van 20 of 30 cm en je kon gewoon in de bundel kijken. Nu zijn koplampen kleiner, terwijl de totale hoeveelheid licht die ze uitstralen dezelfde is, of groter. Het probleem daarvan is dat de oppervlakte-helderheid van zo’n kleinere lamp een stuk groter is. Als de doorsnede van de koplamp van 30cm naar 10cm gaat, dan moet de oppervlakte-helderheid, om de totale licht-hoeveelheid hetzelfde te houden, 9 keer groter zijn. Het zou me niet verbazen als moderne ledlampen in auto’s meer licht uitstralen, en dat dus de oppervlakte-helderheid misschien wel twintig keer groter is geworden.

Verblinding komt, in mijn ervaring, meer door te grote oppervlakte-helderheid van een lamp dan door de totale lichthoeveelheid. Als je een grote witte wand wit verlicht zodat er door reflectie net zoveel licht van die wand komt als uit een led-fietslamp, dan wordt je door die witte wand niet verblind, maar door dat fietslampje wel. Immers, in het ene geval wordt het licht verspreid over alle celletjes van je netvlies, terwijl in het tweede geval het licht wordt geconcentreerd op enkele celletjes van je netvlies, die dan overbelast raken.

Ik heb soms migraine, niet vaak gelukkig. Het is oog-migraine, ik krijg geen hoofdpijn maar schitteringen in mijn oog, en vaak zodanig dat ik dan niets meer zie. Tijdig ogen dichtdoen, een paracetamol en stil blijven zitten helpt dan. Mijn vorm van migraine wordt vaak opgewekt door te fel licht. Fel blauwig licht uit een TL buis, of een led-lamp. Alleen als ik moe ben trouwens, of als ik bezig ben ziek te worden of zoiets. Ik heb daarnaast nog een andere aandoening waardoor mijn ogen extra gevoelig zijn voor teveel licht. Ik vind mezelf dus een prima test-persoon voor het beoordelen van verlichting in het verkeer. Ik ben opgeleid als sterrenkundige, ook daardoor weet ik iets van licht, kleuren en ogen.

Een ander verschil tussen led-licht en “gewoon lamplicht” is dat led-licht veel blauwer is, of minder gelig zo je wilt. Blauw licht heeft meer energie dan geel licht, ik weet niet of dat erg is voor je oog, mijn ervaring is wel dat super wit licht, blauwig licht, meer verblindend is.

De Rijksdienst voor het wegverkeer, RDW, heeft regels opgesteld waar verlichting in het verkeer aan moet voldoen. Die regels hebben, voor zover ik heb kunnen vinden, betrekking op de totale hoeveelheid licht die een lamp uitstraalt. Niet op de oppervlakte-helderheid. En dat is dus een probleem. Mensen ervaren dat moderne verlichting in het verkeer te fel is, blijkt ook uit onderzoek van de ANWB.

Ik vind dat de RDW meer onderzoek moet doen naar verlichting in het verkeer en verblinding van verkeersdeelnemers. Onderzoek naar auto-verlichting, maar ook naar fiets- en scooterverlichting. Zodat mensen met migraine niet hun ogen dicht hoeven doen als ze een auto of scooter tegemoet rijden. En zodat je in het algemeen als verkeersdeelnemer niet verblind wordt door auto’s, scooters en fietsers.

Dat onderzoek moet dan leiden tot betere wetgeving op het gebied van voertuigverlichting. En die wetgeving moet dan ook gehandhaafd worden. Gezien het aantal auto’s met verkeerd afgestelde en dus sterk verblindende verlichting heb ik niet de indruk dat er gehandhaafd wordt op voertuigverlichting.