De meetup 😭

Dit is niet de meetup waar ik was. Maar daar had ik geen foto’s van. Foto: Sham Hardy / CC-BY-SA

Het was een woensdagavond. Ik had niet zoveel te doen, dus ik ging naar een meetup. Een meetup is een avond waar mensen bij elkaar komen om te luisteren naar lezingen over technische dingen. Meestal wordt het gesponsord door een bedrijf, dus is er gratis eten en drank. Vaak is het ook een manier voor recruiters om nieuw talent te werven.

De meetup zou gaan over Typescript, een programmeertaal van Microsoft die lijkt op Javascript. Ik had eerder wat experimenten gedaan met Typescript en wilde er wel meer over weten.

Ik kwam uit de lift op de vijfde etage en werd gelijk welkom geheten door een meisje van het bedrijf: ‘drinks are on the left, pizza on the right’. Expats zijn een belangrijke doelgroep van meetups, dus de voertaal is meestal Engels.

Ik ging vooraan zitten en keek een beetje om me heen. Zo’n tachtig mannen en -afgezien van wat dames van het bedrijf zelf- twee vrouwen. Er waren grote problemen met de livestream dus het zou allemaal iets later beginnen. Een jongen die er uitzag alsof hij vaak aan de gewichten hing paste de welkomstslides aan. Op het scherm stond: ‘We’ll start in 12 minutes’.

“Onhandig, want over een minuut klopt dat al niet meer”, zei ik tegen mijn buurman. “Ze kunnen er beter opzetten dat ze om kwart voor zeven beginnen.” Hij vond het een slimme suggestie. De buurman kwam uit Barcelona en was net een week in Amsterdam. Zijn vriendin was recruiter. Ik vroeg hem of hij al had gekeken naar appartementen. ‘Yes, we have been looking for something in Gamstélbin’. Ik moest hem drie keer vragen het te herhalen voordat ik snapte dat hij het over Amstelveen had.

Na iets meer dan de aangekondigde twaalf minuten begon de introductie. De jongen met de spierballen die eerder de welkomstslides aanpaste heette ons in een vreemd Duits accent hartelijk welkom en vroeg meerdere malen om applaus voor het bedrijf dat de ruimte en de versnaperingen had geregeld. Vervolgens kwam iemand van het bedrijf een korte presentatie geven over wat ze allemaal deden. Bij de helft van de slides zei hij: “hier ga ik het nu niet over hebben” om het vervolgens over die slide te hebben.

Na de introductie was het tijd voor de hoofdspreker. Hij kwam uit Spanje, had een zwaar accent en praatte erg snel. Het was lastig hem te volgen. Hij had ongeveer 100 slides over Typescript en vroeg na elke slide heel snel ‘Any questions? No? Next slide’.

De spreker had het vooral over de theorie. Hij gaf weinig praktische voorbeelden, en weinig uitleg over waarom Typescript verschilt van Javascript. Na sommige slides stelde de spreker een vraag aan het publiek, maar niemand gaf antwoord. Één keer probeerde iemand het, maar de spreker legde uit dat hij het helemaal fout had.

Ik kreeg spijt dat ik helemaal vooraan was gaan zitten en besloot om dan maar van het gratis bier gebruik te maken. Ik sloop naar de tafel met drankjes helemaal achteraan in het zaaltje, maar iemand vertelde me dat er alleen nog maar Heineken 0.0% was. Ik liep schoorvoetend terug naar mijn plaats.

Na de presentatie was het tijd voor een spelletje. Iedereen werd gevraagd om z’n smartphone te pakken en Kahoot te openen, waarmee we konden meten hoeveel iedereen van de presentatie had opgestoken. Helaas was de spreker vergeten in te loggen op de presentatielaptop, en duurde het ongeveer een kwartier voordat het hem lukte om z’n wachtwoord te herinneren zodat hij de quiz aan kon zetten. Iedereen logde in en moest een naam invullen. Ik vulde een huilende emoji in.

Mijn huilende emoji kwam snel in de top drie tussen de andere 80 deelnemers. De spreker ging de top drie af en noemde mijn emoji een ‘cry icon’.

Toen kwam de vraag of Typescript álle elementen bevatte van object-georiënteerd programmeren. Ik vond het maar lastig. Want wat zijn die elementen dan? Bovendien was Typescript een vrij nieuwe taal. Ik antwoordde dus ‘nee’. Maar dat was niet goed, want volgens de spreker had hij duidelijk in zijn presentatie laten zien dat alle elementen erin zaten.

Ik zag dat er nog tien vragen zouden volgen en besloot dat ik al te veel tijd kwijt was geweest aan deze avond. Ik droop af. ‘Bedankt voor het komen!’ zei het meisje bij de ingang, terwijl ik wachtte op de lift.

‘Tot ziens’, loog ik.

The Booking.com Travel Agency

Photo: Yonghyun Lee / Unsplash

A man enters the booking.com travel agency.

“Good morning there! Welcome to the booking.com travel agency. How can I help you?”

“Hi. My wife and I are celebrating our wedding anniversary. I want to surprise her with a romantic weekend in Paris.”

“Lovely. Where are you going and when?”

“Well, Paris. Next weekend.”

“Excellent, the historic city centre of Paris, next weekend.”

The employee types and looks at the computer screen.

“You want to go to Paris during a very popular period. There’s a 76% increase of people looking for a place to stay there. I recommend booking soon.”

“Well, I’m here now? What’s on offer?”

“’Chez Madrigal’, a ten-minute walk from the Eiffel Tower, excellent for two people, free wifi and it’s heated.”

“Are you offering any unheated hotels? Well, that sounds splendid, let’s go ahead and book…”

“Sorry. It’s gone.”

“Excuse me?”

“You just missed it. Very popular dates apparently. The last room just sold out.”

“Then why are you proposing this hotel?”

“It’s wonderful and gets a 9.7 on average for the location.”

The man sighs.

“Alright. Anything else on offer?”

“’Le Méridien Etoile’, a typical residence in the rustic style from the 17th century with antique furniture.”

“Ah, my wife is very keen on antique furni…”

“This place is in high demand, there’s only 1 room left on this site. It has been booked 12 times in the last 6 hours.”

“Please, could you calm down for a bit?”

“Somebody from Belgium booked a room in this hotel 32 minutes ago.”

“So what? What are the rates?”

“250 euros per night.”

“Jeez! Don’t you have anything more affordable?”

“’Royal Saint Honore’ is available for only 100 euros per night. That’s a rare find, usually it’s booked months in advance. You’re very lucky! I would make a reservation right now before it’s sold out.”

“Please, could you be a little less agitated? This is a nice place to stay?”

“Visitors rate it with an 8.9 on average. Veronica from the Czech Republic calls it ‘magical’, it felt like home.”

“Well, that sounds excellent.”

“I like to give you the full picture. Maura from Israel disliked it heavily and rated it 3.8. Mugur from Romania was awake all night because of mosquitos. Jacqueline from England was disgusted by the mold in the bathroom.”

“Wait a second. Are we talking about the same place?”

“Bruno from Germany compares the interior to a fairytale. Chris from Australia was really satisfied with the modern clean bathroom. Jeanine from the USA was startled by the beauty of the room.”

“I’m confused.”

“96% of all guests rated this hotel as good or better than their expectations.”

“You know what?”

“Yes?”

“We’ll stay at home. I’m going to make a reservation at a restaurant.”

“Oh, but we’ve also added that to our services. I could make a reservation for you”

“I would prefer that you don’t.”

“84% of all restaurants have a reservation already, but there’s this lovely Thai that has a single unreserved table. Kelly from Austria writes that it saved her marriage. Bob from Norway found cockroaches in his food. Somebody from Poland made a reservation 12 minutes ago.”

“Goodbye.”

This post originally appeared in Dutch in the 73th edition of De Circulaire, my biweekly newsletter.

Zo kies ik welke linkjes in De Circulaire komen

Elke twee weken verstuur ik mijn nieuwsbrief: De Circulaire. Behalve kattengifjes (de reden van mijn ongeëvenaarde succes) bevat mijn nieuwsbrief ook een tien tot vijftiental zorgvuldig geselecteerde linkjes naar leuke websites. Maar hoe maak ik elke twee weken die selectie?

Oogst

Linkjes oogsten gaat op veel manieren: via sociale media als Twitter, Facebook en Reddit. Via media die ik lees. Doordat ik plotseling op een gekke website terecht kom. En natuurlijk via mijn trouwe lezers die me dingen sturen.

Dat is de eerste stap. Het linkje komt terecht in een lijstje in Wunderlist, mijn favoriete lijstjesapp. Meestal ben ik lui en wil ik het niet meteen lezen, dus komt het linkje terecht in het lijstje ‘Linkjes ongelezen’. Op het moment van schrijven zitten daar zo’n 79 linkjes te wachten. Vaak zijn het er veel meer.

Schiften

Eens in de zoveel dagen ga ik door dat lijstje heen, lees ik een paar dingen en ben ik aan het schiften: als ik na een paar zinnen al geen zin meer heb gaat het onherroepelijk de prullenbak in. Maar als ik door blijf lezen betekent dat nog geen plaatsing: het linkje gaat eerst naar een ander lijstje: ‘Linkjes gelezen’.

Als ik eenmaal toe ben aan het schrijven de nieuwsbrief ga ik weer door dat lijstje heen en bekijk ik kort nóg een keer of het linkje wel iets is voor voor de aanstaande Circulaire. Dan bedenk ik in welke van de drie vage categorieën het thuishoort: nieuw & belangrijk, kunst & techniek en grappig & opmerkelijk. Ik probeer me te richten op zo’n 3-5 linkjes per categorie. Als er al te veel linkjes van een bepaald type zijn dan gaat het linkje weer terug naar de lijst en wacht het op een volgende editie. Soms komt die editie nooit en valt het linkje alsnog af.

Criteria

Wat ik niét zo belangrijk vind aan een linkje: of iets heel erg actueel en nieuw is. De Circulaire verschijnt maar eens per twee weken, dus ik loop sowieso achter de feiten aan. Juist daarom plaats ik liever linkjes naar dingen die wat langer houdbaar zijn en zich onttrekken aan de waan van de dag (heb ik nog als slogan overwogen, helaas was De Correspondent me voor).

Vaak besluit ik na herlezing van het linkje dat ik tóch niet ga plaatsen: het is niet blijven hangen. Niet meer relevant. Te specialistisch. Eigenlijk gewoon niet zo goed. Of ik heb al genoeg artikelen over Donald Trump voor één nieuwsbrief.

Door dit kritische proces kan ik de beste linkjes aan mijn lezers bieden. Ik schat dat elk linkje dat in het ‘ongelezen’ lijstje komt slechts zo’n 20% kans heeft om in de nieuwsbrief te belanden.

De afvallers

Om een idee te geven wat u elke twee weken niet leest, hier een greep uit de afgewezen linkjes en waarom ze afvielen:

Plaatsing

De laatste stap is een tekstje verzinnen. Ook dat is nog best een proces, want mijn lezers moeten goed weten wat ze kunnen verwachten, maar ik wil ook niet meteen alles verklappen. En zelfs dán besluit ik nog wel eens dat het linkje toch niet Circulaire-waardig is en verdwijnt het naar de prullenbak.

Samengevat: ik ga niet over één nacht ijs voor ik een linkje plaats. En als u nu benieuwd bent welke linkjes het wél hebben gehaald: word lid van mijn nieuwsbrief.

Het booking.com-reisbureau

Foto: Yonghyun Lee / Unsplash

Een man komt het booking.com-reisbureau binnen.

“Goedemiddag, welkom bij het Booking.com-reisbureau, waarmee kan ik u van dienst zijn?”

“Hallo, mijn vrouw en ik vieren binnenkort onze trouwdag. Ik wil haar graag verrassen met een romantisch weekend in Brugge.”

“Wat leuk. Waar gaat u heen en wanneer?”

“Nou, Brugge dus. Volgend weekend.”

“Uitstekend, het historisch centrum van Brugge voor volgend weekend.”

De medewerker tikt iets in en kijkt op de computer.

“U wilt naar Brugge op een populair moment, 76% meer mensen zijn ook aan het kijken naar hotels in Brugge. Ik raad u aan om snel te boeken.”

“Oh, ik ben toch hier? Wat heeft u in de aanbieding?”

“‘Loft Katelijne’, tien minuten lopen van het centrum, uitstekend voor 2 personen, gratis wifi en er is verwarming.”

“Zijn er ook hotels zonder verwarming dan? Nou, dat klinkt goed, laten we dat…”

“Nee, helaas net weg.”

“Pardon?”

“U heeft dit hotel net gemist. Dat weekend is erg populair. Alle kamers zijn op.”

“Waarom stelt u dan dit hotel voor?”

“Het is fantastisch en krijgt gemiddeld een 9.7 voor de locatie.”

De man zucht.

“Ok, wat is er nog meer?”

“Martin’s Relais, een grachtenpand uit de 17de eeuw met antiek meubilair.”

“Oh, mijn vrouw is erg geïnteresseerd in antiek meubi..”

“Er is nog maar één kamer in dit hotel. De afgelopen 6 uur zijn er al 12 boekingen geweest.”

“Nou, doe maar rustig hoor.”

“Iemand uit de Oekraïne heeft 32 minuten geleden een kamer in dit hotel geboekt.”

“So what? Hoeveel kost dit hotel?”

“€250 euro per nacht.”

“Jeetje! Heeft u niet iets goedkopers?”

“Ik heb ‘Bed and breakfast Guido Gezelle’ voor €100 per nacht. Meestal is die niet beschikbaar. U heeft heel veel geluk! Ik zou nu reserveren voor het uitverkocht is!”

“Jaja, niet zo opgefokt. En dit is een goed hotel?”

“Bezoekers geven gemiddeld een 8.9. Veronika uit Tsjechië vond het een magische ervaring, het voelt alsof ze thuis was.”

“Nou, dat klinkt uitstekend.”

“Ik geef u graag het hele plaatje. Maura uit Israël vond het afschuwelijk en gaf een 3.8. Mugur uit Roemenië had de hele nacht last van muggen. Jacqueline uit Engeland had schimmel in de badkamer.”

“Wacht, is dit hetzelfde hotel?”

“Joanna uit Engeland vond het interieur als uit een sprookje. Caroline uit Australië was erg blij met de moderne schone badkamer. Jeanine uit Amerika kon niet meer ademen toen ze de kamer binnenkwam, zo mooi vond ze het.”

“Ik ben een beetje in de war.”

“96% van de gasten vonden dit hotel net zo goed of beter dan ze hadden verwacht.”

“Weet je.”

“Ja?”

“We blijven thuis. Ik reserveer wel een restaurant.”

“Oh, maar dat doen we ook tegenwoordig!”

“Liever niet.”

“84% van alle restaurants zijn al gereserveerd, maar ik heb hier een goede Thai waar nog precies één tafeltje vrij is. Kelly uit Oostenrijk zegt dat door dit restaurant haar huwelijk is gered. Bob uit Noorwegen zegt dat er kakkerlakken in het eten zaten. Iemand in Polen heeft 12 minuten geleden een reservering gemaakt!”

“Goedemiddag.”

Vijf redenen waarom Griekenland een ideaal vakantieland is

Zonsondergang bij ons hotel

Ik was met mijn vriendin drie weken in Griekenland. We vlogen op Thessaloniki en maakten een rondje over het vasteland tot aan Delphi. We zijn op geen enkel groot eiland geweest maar wel in prachtige natuurgebieden, bergen en rustieke dorpjes. En we kwamen na drie weken tot de conclusie dat Griekenland het ideale vakantieland is. Waarom? Lees verder…

Melitzanosalata, ansjovisjes en dolma

1. Griekenland heeft fantastisch eten

De meeste mensen zullen bij de Griekse keuken vooral denken aan grote porties vlees en ouzo. Maar Griekenland heeft een fantastische gevarieerde keuken, juíst voor mensen die niet zo van (veel) vlees houden. Ja, souflaki en moussaka krijg je overal, maar ook alomtegenwoordig zijn mezze: kleine gerechtjes, vergelijkbaar met de Spaanse tapas. Als je er drie of vier van neemt heb je een uitstekende maaltijd. Gegrilde oesterzwammen, auberginedip (melitzanosalata), Griekse salade, fava, gerookte makreel, het is allemaal even smakelijk.

Het gaat niet vervelen, ook al hebben we sommige gerechten misschien wel vijftien keer gegeten. Elke keer was het toch nét weer iets anders. Dat het zo lekker was had ook vast iets te maken met de krankzinnige hoeveelheden olijfolie die de Grieken over alles gooien. Jaarlijks consumeren ze 18 liter per persoon. Elke drie weken een fles per persoon!

Gek genoeg deed de Griekse keuken me denken aan de Japanse. Ook daar heb je vooral veel kleine gerechtjes die draaien om één (vers) ingrediënt. En ook heel Japans: het eten stelt zelden teleur en is heel betaalbaar. Voor drie tot vier mezzes, brood, en drankjes voor twee personen betaalden we maar tussen de €20 – €25. Vaak kreeg je er ook nog een gratis toetje bij.

Een kat bij het dakpannen en bakstenenmuseum in Volos

2. Griekenland heeft gezellige straatdieren

Behalve dat een maaltijd precies €23,50 kost (meerdere malen gebeurd) is een andere zekerheid dat er altijd schooiende katten en honden zijn. Soms irritant, maar meestal gewoon heel gezellig. Ook bij de meeste hotels waar wij zaten waren er altijd straatdieren om je te amuseren (en te bedelen om eten).

Ondergetekende doet even voor hoe je op z’n Grieks rijdt

3. Griekenland is prima te berijden

We hadden dramatische verhalen gehoord over autorijden in Griekenland, want slechte wegen en automobilisten. Het klopt dat Griekenland een van de landen is binnen de Europese Unie waar de meeste verkeersdoden vallen. Maar afgezien van onze brakke auto (huur nooit een auto bij ‘Surprice’ op het vliegveld van Thessaloniki!) viel dat eigenlijk heel erg mee.

De wegen zijn over het algemeen prima (bedankt, EU!) en lang niet zo druk als in Nederland. Het klopt wel dat Grieken er een rare rijstijl op nahouden: half op de vluchtstrook rijden is doodnormaal (of een uitnodiging om in te halen), iedereen rijdt stelselmatig twintig kilometer te hard (het liefst met een arm uit het raampje) en dubbel parkeren is schering en inslag.

Maar Nederlanders rijden ook raar. Opeens drie banen op de snelweg oversteken om nog even snel een afrit te halen, bumperkleven, inhalen zonder richting aan te geven: in Griekenland rijden ze veel relaxter.

De wagenmenner van Delphi

4. Griekenland heeft de wagenmenner

In het Nationaal Museum van Rome werd ik vorig jaar verliefd op de rustende bokser, een meer dan 2000 jaar oud bronzen beeld. Toen ik zag dat ze in het Griekse Delphi óók zo’n oude brons hadden wist ik dat ik daar heen moest. De wagenmenner van Delphi is te zien in het museum daar en is net zo’n ontroerende ervaring.

5. Griekenland heeft de liefste mensen

Het viel me terug in Nederland op hoe afstandelijk iedereen is. Als je een winkel binnengaat word je geholpen, er vindt een transactie plaats, maar over iets anders dan die transactie heb je het niet.

Hoe anders is dat in Griekenland. Zelfs als je in een supermarkt bij de kassa afrekent beginnen mensen tegen je te kletsen: waar kom je vandaan? Wat vind je van Griekenland? Waar ben je al geweest? Het is echt geen trucje: iedereen babbelt de hele dag met elkaar. Je moet daarom wel lang wachten als je de rekening wilt, want de ober moet met iedereen een gesprek gaande houden.

Grieken geven je ook de hele tijd kadootjes. We hebben een tros bananen gekregen, chocolaatjes, ruitenwisservloeistof(!) en eindeloze toetjes en stukken meloen. Het toppunt was ons hotel in Arachova (bij Delphi), dat door een familie werd bestierd die ons de hele dag wilde verwennen met koffie en gebakjes. Weigeren was lastig: de lobby van het hotel was tevens hun huiskamer. Als je terugkwam van een uitje werd er gelijk een tafelkleedje neergelegd en kwam er zoetigheid en deegflapjes op tafel.

Als u ook enthousiast bent geworden en naar Griekenland wilt: hier is een overzicht van alle plekken waar ik ben geweest, inclusief de beste bezienswaardigheden en hotels.

Indiase Dahl met spinazie

Dit recept maakt ongeveer 3 grote porties.

Ingrediënten

  • 1 blikje tomatenpuree
  • 150 gram rode linzen
  • 2 teentjes knoflook
  • 1 ui
  • 1/4 theelepel kurkuma
  • 1 theelepel komijn
  • 1 theelepel garam masala
  • 1/2 theelepel zeezout
  • 2 eetlepels olijfolie
  • 1 ui, gesnipperd
  • ongeveer 100 gram verse spinazie (3 handen) en eventueel wat om rauw mee te garneren
  • 200 gram basmati rijst

Bereiding

  1. Fruit de ui samen met de knoflook.Roer er de kurkuma, garam masala, knoflook, tomatenpuree en zout door. Doe de linzen erbij met 400 ml koud water en breng aan de kook. Laat minstens 30 minuten koken zonder deksel op laag vuur, terwijl je het af en toe roert tot het een puree wordt. Hoe langer je kookt, hoe lekkerder het wordt. Voeg regelmatig water toe als het te droog wordt.
  2. Maak ondertussen de rijst klaar.
  3. Als de linzen bijna klaar zijn roer je de spinazie door de linzen. Voeg het beetje bij beetje toe, steeds als het geslonken is weer een handje.
  4. Serveer met yoghurt, rijst, rauw spinazie, cranberries en wat je verder maar lekker vindt

The ‘deaditors’ of Wikipedia

I’m an avid reader of the wonderful B3ta newsletter. The last edition had a section that contained ‘projects we’d like to see’, and one of them was:

WHO THE HELL UPDATES CELEB DEATHS ON WIKIPEDIA SO QUICKLY? Maybe do a data project where you check the edit history of celeb deaths for patterns.

I had been looking for a project to teach myself a bit of data wrangling, so this seemed interesting.

So, who are the people who update Wikipedia articles so quickly whenever a celebrity dies?

Who’s dead and famous?

The first question is: who died this year and also happens to be famous?

To answer that question, I consulted Wikidata. A swift query points out that some 6,700 people with an item on Wikidata died this year. But who was famous?

One way to measure ‘celebrity’ is by counting how many language editions of Wikipedia have an article on the subject. Running the query again with that addition provides some well-known names. At the top with 165 articles is Stephen Hawking. After that we find the recently deceased Anthony Bourdain (90 articles) and science-fiction author Ursula Le Guin (84 articles).

So, who edits those articles when a person dies?

After getting a list of celebrities we now can investigate who first edited their Wikipedia articles to indicate that they died. Unfortunately this takes some manual labour so I restricted myself to the first 26 names and the English Wikipedia for the edits.

For those 26 articles there were 26 different ‘deaditors’. And what was surprising: two-thirds of those edits were done by anonymous users.

‘Anonymous’ means that they edit without being logged in. Their edits are logged under their current IP address instead. Those edits tend to be a bit controversial, because the majority of vandalism on Wikipedia comes from anonymous edits. But those anonymous editors apparently are pretty fast when someone dies.

Another interesting observation: almost a third of those 26 edits were done from a mobile phone. I can assure you: editing Wikipedia from a smartphone is not very user-friendly. Most Wikipedia contributors use the desktop version.

Did those ‘deaditors’ write about their subjects earlier? Usually not. For one out of four of the articles, the ‘deaditors’ belong to the top 20 of users with the most edits of the article. They only appear in the top 5 in two cases.

Other patterns

I plotted the number of edits in the article by month. When observing those plots you notice that for Wikipedia, your death is the most important event in your life. In only 3 of the 26 edit histories there was a peak at a different moment. Some people have a constant flow of edits (e.g. Stephen Hawking). With others there’s a big difference between the ‘death peak’ and the other edits. Sometimes because death was unexpected (Dolores O’Riordan of Cranberries fame). Sometimes because little happened in the last years of their lives (Barbara Bush).

In a nutshell

When a celebrity dies, who edits their Wikipedia article so quickly? The answer seems to be: a highly diverse set of people, often anonymous, and surprisingly often from their smartphone.

Why they edit those articles is beyond the scope of this short article and limited research scope. But you could speculate that knowing you’re the first person pronouncing someone dead on such a visible site as Wikipedia might be interesting.

De beste roerbak-rijstmaaltijd

Toen ik een paar weken geleden mijn zolder aan het opruimen was kwam ik een map tegen met recepten. Jarenlang had ik met veel ijver recepten uit de Allerhande gescheurd, geperforeerd en in een mapje gestopt. Want ooit zou ik een goede keuken krijgen en dat allemaal gaan koken.

Nu, zo’n tien jaar later, bladerde ik er doorheen. Ik had helemaal niks met die recepten. Moet ik dit nu allemaal gaan koken omdat ik dat in 2008 wilde?

Jammer voor de 24-jarige versie van mezelf, maar ik heb alle recepten weggegooid.

Alle recepten? Nee, één recept heb ik bewaard, want dat klonk interessant. Het stond nog steeds online: Fried Rice with Ginger, Hoisin and Sesame. Een gerecht met barbecuesaus, hoisinsaus én pindakaas? Het proberen waard.

En wat bleek? Het was heerlijk. Een heel fijn rijstgerecht wat je zo kan serveren in een groezelig maar goed tentje op de Zeedijk. Met wat eigen aanpassingen presenteer ik jullie: wat ik tien jaar geleden wilde dat ik ooit ging koken.

Hoisinroerbakschotel met broccoli, erwten en sesamzaadjes
Voor vier personen

Ingrediënten

  • 120g ongekookte witte rijst
  • 4 el BBQ saus
  • 4 el hoisin saus
  • 1 el oestersaus
  • 1 el pindakaas
  • 1 el sojasaus (b.v. kikkoman)
  • 2 teentjes knoflook
  • stukje gember
  • 1 rood pepertje
  • sesamolie of arachideolie
  • 2 uien
  • 1 winterpeen of 1-2 flinke wortels.
  • 1 kleine broccoli
  • 300g diepvrieserwten
  • 2 eieren
  • 3 el sesamzaadjes
  • 400g rund, kip, varken of vegavervangers, in dunne reepjes gesneden.

Bereiding

  1. Maak eerst de saus. Deze gebruik je zowel voor het gerecht als voor het marineren van het vlees. Snipper of pers de knoflook, gember en rode peper en meng met de BBQ saus, hoisin saus, oestersaus, pindakaas en sojasaus. Voeg eventueel een scheutje water toe als de saus niet goed mengt.
  2. Marineer het vlees in een à twee eetlepels van de saus.
  3. Kook de rijst gaar in weinig water.
  4. Snipper ondertussen de uien, snij de broccoli in roosjes en snij de wortel julienne.
  5. Blancheer de broccoli: laat deze een paar minuten koken, giet af en overgiet vervolgens met koud water.
  6. Als de broccoli is geblancheerd, de groentes gesneden en de rijst gaar kun je het gerecht gaan maken. Zorg ervoor dat je alle spullen bij de hand hebt, want een roerbakschotel dient snel en op hoog vuur te worden gemaakt.
  7. Verhit een wok zo heet als je durft. Bak kort even de sesamzaadjes tot ze een beetje bruinig zijn in de droge wok en zet ze opzij.
  8. Verhit olie in de wok. Roerbak het vlees op hoog vuur tot het gaar is.
  9. Voeg de ui en wortel toe en roerbak gaar in enkele minuten. Voeg dan de rijst toe, en iets later ook de broccoli en de erwten. Blijf omscheppen op hoog vuur. Als het gerecht te veel plakt aan de pan kun je altijd een klein scheutje water toevoegen.
  10. Maak wat ruimte midden in de pan en breek hier de twee eieren. Schep ze om met de rest van het gerecht zodra ze enigszins gestold zijn.
  11. Voeg de helft van de saus toe, meng goed, proef en voeg dan de rest van de saus toe naar smaak.
  12. Garneer met de sesamzaadjes en serveer met je favoriete selectie aan condimenten. Ik ben zelf fan van srirachasaus en de pittige roti sambal tomaat van Lekkerbekkie.

Wat kies ik in Amsterdam?

Een rood potlood op een stemformulier

Foto: J.M. Luijt via Wikimedia Commons / CC-BY

Over anderhalve week mogen we stemmen voor de gemeenteraad. Maar op wie? De gemeente Amsterdam kent maar liefst 28 partijen die meedoen.

Ja, er zijn stemwijzers, partijprogramma’s en debatten. Maar wat gaan de partijen voor mijn persoonlijke situatie doen?

Ik besloot om alle partijen een mailtje te sturen met een concrete vraag. Ik woon op de Oostelijke Eilanden in Amsterdam, waar de laatste tijd nogal wat ellende heeft plaatsgevonden.

Dus dit vroeg ik een week geleden:

Beste,
Ik ben mij aan het oriënteren op welke partij ik ga stemmen voor de gemeenteraadsverkiezingen in Amsterdam. Vandaar dat ik alle partijen aanschrijf met dezelfde vraag.

Ik ben zelf woonachtig op de Oostelijke Eilanden. Zoals u wellicht weet zijn daar recent meerdere gewelddadige incidenten geweest, waarvan een aantal zelfs met dodelijke afloop, en zijn er problemen met drugscriminaliteit.

Mijn vraag is daarom: wat gaat u doen aan deze problematiek op de Oostelijke Eilanden als u in de gemeenteraad komt?

Resultaten van dit onderzoekje onder alle partijen zal ik publiceren in De Circulaire, mijn tweewekelijkse nieuwsbrief.

Bij voorbaat dank voor het beantwoorden van mijn vraag.

Met vriendelijke groet,
– Hay Kranen

De eerste stap was de contactgegevens achterhalen van alle 28 partijen. Bij voorkeur mailde ik direct de lijsttrekker. Dat was niet altijd mogelijk, dus dan zocht ik het algemene mailadres van de Amsterdamse afdeling. In sommige gevallen kon ik alleen een Facebook-pagina vinden en heb ik daar een bericht naar gestuurd. Soms bleek dat ook de enige manier om de lijsttrekker te bereiken.

Het achterhalen van al die gegevens was trouwens niet makkelijk, zelfs bij de grotere partijen. De PvdA had dan wel de vriendelijke campagnekat Bert, maar de apenstaart-icoontjes bij de nummers 1 en 2 van de lijst leidden niet naar een mailadres. De VVD had de contactknop in een carrousel zitten, waardoor je ze per ongeluk liket op Facebook in plaats van mailt. Het dieptepunt was toch wel Groenlinks, die op hun website geen enkele contactmogelijkheid bood voor de kandidaten in Amsterdam en zelfs niet om de afdeling Amsterdam (zes zetels in de raad) te contacteren. Ik heb uiteindelijk maar iets gestuurd naar het algemene landelijke(!) mailadres van Groenlinks.

Opvallend was ook de dominantie van Facebook: 3 partijen hadden zelfs alleen maar een Facebook-pagina. Uiteindelijk heb ik er 8 via Facebook gecontacteerd.

Het resultaat

Bij het versturen van de 63ste editie van De Circulaire (bijna een week nadat ik mijn vraag had gesteld) had ik van twaalf partijen een reactie, waarvan negen (bijna een derde van de totale 28) daadwerkelijk een antwoord gaven op mijn vraag. En wat heel opvallend is: van die negen antwoorden was er slechts één van een partij die nu in de raad zit: de SP.

Wat gaan die negen partijen doen aan de problemen op de Oostelijke Eilanden?

  • De SP wil meer politiecapaciteit en verder gaan met de top 600, waar de grootste criminelen van de stad in staan. Maar ze willen ook meer preventieve maatregelen, zoals meer en goedkopere woningen voor jongeren. Ten slotte wil de SP de jeugdwerkeloosheid aanpakken, aangezien veel jongeren thuis zitten vanwege discriminatie op de arbeidsmarkt.
  • De Piratenpartij wil de nationalisering van de politie ongedaan maken en meer kleine politiebureaus openen en wijkagenten inzetten.
  • Het legaliseren van XTC en cannabis, dat is volgens de Basisinkomen Partij de belangrijkste maatregel.
  • De Amsterdamse Juffers zijn vooral van het informeren en uitzoeken van wat er aan de hand is en vervolgens extra maatregelen treffen zoals camera’s en politie-inzet. Misschien dat de Juffers iets anders bedoelen, maar dit is volgens mij exact wat er al gebeurd is.
  • Samen heeft een hele innovatieve oplossing: een ‘geheime camerahotspot’ waar de criminelen stiekem op vastgelegd kunnen worden.
  • Carry on the move geeft eerlijk toe dat ze als 1-vrouw partij zich vooral wil focussen op haar belangrijkste punt (participatie van mensen met een handicap) en daarom geen concrete ideeën heeft.
  • 50PLUS wil meer wapencontroles, desnoods elke week. En verder moet de politie de oplossingsquotas verhogen en moeten de criminelen uit de top 600 veel harder worden aangepakt.
  • De SGP wil het “ingezetenebeleid” handhaven (alleen inwoners van Nederland mogen cannabis kopen in een coffeeshop), op termijn alle coffeeshops sluiten, meer voorlichting geven aan jongeren over drugs en meer politie tegen drugshandel inzetten.
  • Tenslotte U-Buntu Connected Front, die het invoeren van de duurzame ontwikkelingsdoelen van de Verenigde Naties als de oplossing ziet.

Ik weet nog niet op wie ik ga stemmen, maar ik ben wel blij dat bijna een derde van de partijen de moeite hebben genomen om een antwoord te sturen.

Want dat viel mij het meest op: het uitblijven van een reactie van alle partijen die nu in de raad zitten, afgezien van de SP. Van D66, de PvdA, VVD, Groenlinks, Partij voor de Dieren, CDA en Partij van de Ouderen heb ik niks teruggehoord.

Je zou verwachten dat er bij de grotere partijen budget is voor een campagneteam dat zich inspant om alle vragen van potentiële kiezers te behandelen. Er is maar één moment in de vier jaar dat er zoveel aandacht is voor de gemeentepolitiek. Maar het leek soms wel of er helemaal geen verkiezingen waren: sommige partijen hadden het niet eens op hun site staan, of hadden een aparte campagnesite die nauwelijks te vinden was (hallo, VVD).

De grote partijen kunnen wat dat betreft wat leren van de kleintjes. Want met ongetwijfeld minder budget en mankracht lijken zij deze verkiezingen een stuk serieuzer te nemen.

Het complete onderzoek met alle data is te vinden in deze Google Spreadsheet.

How software developers really spend their day

So here’s what i did this afternoon.

I was migrating some git repositories. A repository is something developers use to safeguard code. One of the most popular systems to do that is called git. For reasons that are beyond the scope of this blogpost the git repositories for my team were located on a personal account instead of a company account. Obviously this is a situation that needs to be fixed.

This task seemed simple enough: copy the repositories, change a couple of references and be done with it. The first step (the copying) was actually finished in just a couple of minutes.

Unfortunately things (and my afternoon) went downhill from there. One of the repositories was used as a Javascript dependency in around 250 projects that my colleagues and i have been working on for the past couple of years. A dependency in a software project is another piece of software that is needed to perform some well-defined task.

I needed to make sure that the more recent of those 250+ projects got an up-to-date version of this dependency, specifically one that was above version 3.0.0. This dependency was included as a direct link to the git repository, opposed to the more regular method of using a ‘registered package’ (this distinction is important later on in this story).

I already had this working (or so i thought), but one colleague mentioned to me earlier that for some reason the dependency didn’t install on his laptop. The thing is, i already had a hunch what the problem could be. One of the most popular options to install dependencies in the Javascript world is called npm, the so called node package manager (note that ‘package’ and ‘dependency’ are more or less the same thing). Because Javascript is in constant flux and things get outdated very fast there is actually another popular package manager that’s basically the same thing as ‘npm’ but does things slightly different. That package manger is called yarn.

I use yarn, my colleague uses npm. And that was, i thought, the cause of the problem.

So, i experimented with the dependency and the quite esoteric syntax to get ‘i need version 3.0.0 or later of this package’ working with the two different package managers (npm and yarn).

It didn’t work. In any of those package managers.

First i thought i was doing something wrong with the syntax. Then after many failed attempts i gave up and decided that maybe this method just wasn’t working. Instead of using the direct link to the git repository i decided to publish the whole thing as a ‘registered package’. This means that the package is published under a short name in a public register (known as the ‘npm registry’) instead of the direct url to the git repository.

However, publishing the package didn’t work. I got a pretty cryptic error message. After some Googling it turns out that my package name was ‘too similiar’ (but not identical!) to another package.

No worries, apparently i could use something called ‘scoped packages’ that would fix this problem and make my package name unique (at least unique enough to stop npm from throwing errors).

Turns out that making my package ‘scoped’ ment i also needed to change lots of code in all of those 250 projects that depended on it.

That seemed like a lot of extra work, so i decided to try one last time getting the git repository link to work as intended.

And then, after a closer look, i realised i didn’t transfer any of the version tags from the old to the new repository, i only transferred the files. Npm and yarn need those tags to install dependencies of a certain version.

So, after transferring the version tags i tried installing the dependency again with ‘npm’ and voila: it worked!

Just as a precaution i checked if my dependency installed with ‘yarn’ as well (remember the story about the two package managers that do the same thing but aren’t the same thing?).

It didn’t.

From a situation where installing dependencies in yarn worked but not in npm i now had the complete opposite.

I got some pretty esoteric error from yarn this time, which is weird, given that i’ve used the official documentation to figure out the exact way to indicate a ‘version range’, and the thing installed with npm perfectly.

So i sighed, and turned to Google again. I looked at all the known bugs and issues with yarn and found a couple that seemed similar to my problem, but none that were really helpful. So i reported a bug with the yarn project, figuring i would probably need to postpone the whole repository migration.

Fortunately i got a response pretty quick and it turns out this was actually a known problem, and already fixed in a new version of the tool that was released in a beta version just a day before. I tried the new version and voila: no problems installing the dependency. This beta version of yarn is probably going to be released in a couple of days, so if i had waited with transferring the repositories just a few days and updated my installation of yarn then i wouldn’t have encountered this problem at all.

After i was finally done migrating the git repositories and making sure all dependencies were installed i looked at the clock. Three pretty useless hours had gone by.

So, is there any moral to this story? Things that could have prevented me from spending my afternoon chasing ghosts and cryptic error messages?

I guess i could have taken a longer look at some of the error messages, so i might have realised earlier my files were transferred but my version tags were not. I guess the yarn project could spend some time rephrasing their error messages to be less cryptic. I guess git might transfer files and tags by default. I guess npm could warn about the problems you might encounter if you use scoped packages.

But in all honesty i think it’s just another story that shows that software development is a difficult, tricky and error-prone practice. Situations like this happen to me virtually every day and i guess, to every other developer in the world as well.

And we, humble programmers, should just accept that as a sad and sobering fact of life.