Blog archives

De muren van het web

Afgelopen week zag ik deze tweets van schrijver Quinn Norton:

Haar punt: steeds meer van het web lijkt achter muren te verdwijnen. Dat kunnen betaalmuren zijn, zoals bij kranten en andere media. Of het zijn inlogmuren, zoals bij Facebook en Instagram. Het internet had de belofte dat het de wereld slimmer, eerlijker en gelijker zou maken. En ik denk dat het de wereld ook veel heeft gebracht. Maar het wordt wel steeds moeilijker om al dat moois te bekijken zonder dat je moet betalen, met geld of met je gegevens.

Dat levert een dilemma op als ik mijn nieuwsbrief De Circulaire samenstel. Elke editie kies ik vijftien linkjes uit waarvan ik denk dat het de tijd van mijn lezers waard is. Maar vaak zitten die linkjes achter een muurtje. Elk jaar hou ik een lezersenquête, en in die van afgelopen jaar schreven mensen: vermijd die linkjes gewoon. Maar is dat de oplossing?

Analyse

Over hoeveel linkjes hebben we het eigenlijk? Ik dook in het archief van mijn nieuwsbrief en maakte van alle edities van deze nieuwsbrief van de afgelopen vijf jaar een analyse. In 112 Circulaires stonden zo’n 3.200 unieke URL’s, van ongeveer 1.000 verschillende sites. Naar bijna 93 sites linkte ik vijf keer of vaker, gemiddeld één keer per jaar. En van die 93 hadden er 18 een soort paywall.

In die betaalmuren zit veel variatie. Bij de Washington Post kun je vrijwel niks lezen zonder te betalen. Bij Follow the Money kan het tot 24 uur na publicatie. Bij De Correspondent kun je artikelen lezen, mits ze gedeeld zijn door betalende abonnees.

Ik betaal voor een aantal sites, maar voor de meeste niet. Want als ik voor die 18 sites het goedkoopste abonnement zou afsluiten zou ik per maand €180 kwijt zijn.

Erfzonde

€180 per maand klinkt als veel geld. Maar dat komt ook door een verwachting: dat alles op het web gratis is. Dat zijn we gewend, maar het is geen natuurwet. Het internet werd opgezet vanuit overheden en de academische wereld met publiek geld, zonder business model. Met de gevolgen van die opzet worstelen we nu nog steeds.

Webontwikkelaar Peter-Paul Koch noemt dat de erfzonde van het web. Er was in het begin geen goede manier om te betalen voor content, en dat interesseerde de eerste producenten van die content ook niet zo. Die waren bezig met hun homepage op te tuigen met foto’s van hun kat en favoriete karakters uit Star Trek. Dat de traditionele media dat model overnamen en hun producten gratis weggaven zorgde ervoor dat mensen dachten dat ze er ook recht op hadden: free content entitlement.

Maar kwaliteit, in welke vorm dan ook, heeft een prijs. En iemand moet er op de een of andere manier voor betalen. Dat mensen nu verwachten dat alles online gratis is heeft Facebook en Google de middelen gegeven om mensen te laten betalen met hun privacy in plaats van met geld.

Publieke functie

Een complicerende factor is dat niet alle websites hetzelfde publiek hebben. Dat een site met juridische artikelen voor advocaten achter een betaalmuur zit lijkt me niet zo gek. Dat is specifieke informatie voor een kleine groep, die het meestal kan betalen. Massamedia hebben echter een rol in het publieke debat. Dat debat wordt gevoerd op basis van onthullende onderzoeksjournalistiek en opiniestukken. Maar als die stukken alleen beschikbaar zijn voor een kleine groep mensen die het kunnen betalen, is dat debat dan nog wel zo publiek?

De essentie wordt ook wel verspreid via ‘gratis’ media als televisiekanalen en social media. De nuance en diepgang verdwijnt dan alleen vaak. Ja, genoeg mensen lezen sowieso alleen een kop en niet de bron. Maar hoe moeilijker je het maakt om bij die bron te komen, hoe minder mensen er kennis van zullen nemen en een goed onderbouwde mening kunnen vormen.

Ik zou hier nu graag een fraaie conclusie willen geven die beter is dan: “het is ingewikkeld en ik weet het ook allemaal niet”. Wat ik hoopgevend vind is dat mensen wel degelijk bereid lijken te zijn om te betalen voor content. Met de meeste media gaat het daardoor een stuk beter dan vijftien jaar geleden werd voorspeld. Maar ik hoop ook dat media een klein achterdeurtje open blijven houden voor wie af en toe wil klikken op een linkje in mijn nieuwsbrief. Zonder dat ze moeten betalen, met hun data of met geld.

Blog archives

Het lijstje van 2021

📷 Orchard / September Recordings

In 2003 bedacht ik dat het leuk zou zijn om een lijstje te maken met mijn favoriete muziekalbums van het jaar. Nu, achttien jaar later, doe ik dat nog steeds. In de loop der tijd zijn albums minder belangrijk geworden. Mensen luisteren inmiddels liever playlists met losse nummers. Maar albums zijn voor mij nog steeds de belangrijkste manier om naar muziek te luisteren, dus ik maak nog steeds elk jaar trouw mijn lijstje.

De albums van 2021

Bij de eerste tien albums vind je ook een eenregelige beschrijving zodat je weet waar je aan toe bent. Linkjes gaan naar het album op Spotify.

  1. For Those I Love – For Those I Love. Ierse rauwe hiphop à la The Streets. Opgenomen na het overlijden van de beste vriend van de zanger.
  2. Nala Sinephro – Space 1.8. Experimentele maar zeer luisterbare jazz/ambient.
  3. The Weather Station – Ignorance. Singer-songwritermuziek met een folkrandje. Denk Big Thief of Daniel Romano.
  4. Deafheaven – Infinite Granite. Alternatieve harde melodieuze noise zoals My Bloody Valentine.
  5. Low – HEY WHAT. Zie hierboven, maar dan met meer samenzang.
  6. Nation of Language – Introduction, Presence. Eighties revival synthmuziek.
  7. Lucy Dacus – Home Video. Indierock / singersongwriter in de traditie van Phoebe Bridgers en Julia Jacklin.
  8. Lost Girls – Menneskekollektivet. Experimentele kunstmuziek met praatzang van de Noorse performance artist Jenny Hval.
  9. Arooj Aftab – Vulture Prince. Enigszins spirituele neo-Sufi muziek van deze Pakistaans-Amerikaanse zangeres.
  10. Squid – Bright Green Field. Post-punk liedjes van deze band uit het Britse Brighton.
  11. LUWTEN – Draft
  12. Faye Webster – I Know I’m Funny haha
  13. Altin Gün – Yol
  14. Videoclub – Euphories
  15. Self Esteem – Prioritise Pleasure 
  16. Japanese Breakfast – Jubilee
  17. Kiwi Jr. – Cooler Returns
  18. Floating Points – Promises
  19. Arlo Parks – Collapsed In Sunbeams
  20. Dry Cleaning – New Long Leg

De nummers van 2021

Hier is een playlist met mijn favoriete nummers van 2021 (geen volgorde).

Het optreden van 2021

Ik heb dit jaar helaas geen enkel regulier optreden gezien. Ik zag een paar shows (hier is het hele lijstje) maar veel te weinig om een overzicht te kunnen geven.

De boeken van 2021

Begin dit jaar nam ik me voor om in 2021 elke maand een boek te lezen, twaalf in totaal dus. Ik heb nog elf dagen om het twaalfde boek uit te lezen, dus ik kan wel zeggen dat ik geslaagd ben met mijn goede voornemen.

Alle boeken die ik dit jaar las (met recensie en sterren) vind je hier. In tegenstelling tot de muziek zijn dat ook veel boeken die voor 2021 zijn gepubliceerd. Het is dus wat lastig om een lijstje te maken met de beste boeken van dit jaar.

Hoe dan ook, het beste boek dat ik las in 2021 was Because Internet van de Canadese linguist Gretchen McCulloch (uit 2019). Ze schrijft daarin hoe het internet taal en communicatie verandert. Het is zo’n zeldzaam moment dat je een boek leest en bij vrijwel elke pagina iets leest waar je door wordt verrast of denkt: “ah, dus zo zit dat”. Verplichte kost dus voor iedereen die wel eens op het internet zit.

Meer lijstjes

Meer lijstjes vindt u bij Pitchfork, NPR, Best Ever Albums, The Guardian, Metacritic, Rolling Stone, NME en OOR.

Dit is alweer de achttiende editie van het lijstje. Als u even terug in de tijd wil heb ik ook nog de edities uit 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004 en 2003.

Blog archives

Zo werken SPARQL-queries op Wikidata

(Toen nog) Koningin Beatrix en Willem Alexander. Het waarom van deze foto wordt duidelijk als je dit artikel helemaal hebt gelezen. 📷  Nationaal Archief / ANEFO / 934-4873 / CC-ZERO

Eerder schreef ik hier over Depictor. Dat is mijn tooltje om foto’s te taggen op Wikimedia Commons , de mediabank van de Wikimedia-projecten zoals Wikipedia. Ik schreef toen over één van de opties in dat tooltje: het toevoegen van een SPARQL-query als zoekvraag. Én ik schreef dat het te ingewikkeld was om snel uit te leggen wat SPARQL is.

Nou, dat heb ik geweten. Een paar lezers mailden me: kun je het misschien tóch uitleggen, en dan iets minder snel? Ik stuurde die mensen een uitleg terug, maar het leek me eigenlijk wel handig om dat toch ook maar hier op te schrijven. Dan kunnen mensen het ook lezen die me niet mailen. Zoals jij!

Samengevat is SPARQL een taal waar je zoekvragen mee kan schrijven om gelinkte data uit een systeem (zoals Wikidata) te halen. Eigenlijk dus een soort van Google, maar dan voor gevorderden.

Laat ik een voorbeeld geven. Koning Willem-Alexander heeft een plekje op Wikidata. Alleen dan niet met een artikel maar met een item. Alle items op Wikidata (dat zijn er op het moment van schrijven 95 miljoen) hebben een uniek nummer. Voor de koning is dat nummer Q154952 .

Prinses Beatrix, zijn moeder, heeft ook een nummer: Q29574. Beatrix en Willem-Alexander hebben een relatie: Beatrix is de moeder van Willem-Alexander. Je zegt daarom op Wikidata: item Q29574 (Beatrix) heeft als kind item Q154952 (Willem-Alexander).

Alle soorten relaties (dat zijn er meer dan 9.000) hebben óók een uniek nummer. Je kan bij zo’n relatie denken aan ‘is de hoofdstad van’, ‘is de schilder van’ of zoals bij Beatrix en Willem-Alexander: ‘heeft kind’. Het unieke nummer voor de relatie ‘heeft kind’ is op Wikidata P40. Nummers voor items (zoals de koning en zijn moeder) beginnen altijd met een ‘Q’. Nummers voor relaties (zoals ‘heeft kind’) beginnen met een ‘P’. Die ‘P’ staat trouwens voor property, want dat is hoe je een soort relatie noemt op Wikidata.

U vraagt zich wellicht af: waarom al dat gedoe met die nummers? Waarom heet Beatrix niet gewoon Beatrix? Helaas zijn namen alleen niet uniek genoeg. Er is bijvoorbeeld óók een item voor Beatrix (de voornaam, Q1096551), Beatrix (het cruiseschip, Q70114554) en Beatrix (een asteroïde, Q109927). En de persoon Beatrix zélf heeft meerdere namen. Vòòr haar abdicatie in 2013 hadden we het over ‘Koningin Beatrix’, nu over ‘Prinses Beatrix’. En in andere talen hebben ze ook weer een andere naam. In het Bulgaars hebben ze het bijvoorbeeld over ‘Беатрикс’. Namen veranderen en kunnen verschillen. Nummers veranderen nooit.

Terug naar de band tussen Beatrix en Willem-Alexander. De relatie ‘Beatrix heeft als kind Willem-Alexander’ zou je in SPARQL schrijven als:

wd:Q29574 wdt:P40 wd:Q154952

Je ziet dat er voor de items Q29574 (Beatrix) en Q154952 (Willem-Alexander) ‘wd:’ staat, en voor P40 (heeft kind) ‘wdt:’. Die letters noem je een prefix en geeft aan dat je alleen zoekt binnen Wikidata. Je kan met SPARQL namelijk ook door meerdere databases tegelijk zoeken. Dan moet wel duidelijk zijn over welke database je het hebt in je zoekvraag.

Stel dat je niet alleen Willem-Alexander zou willen vinden, maar alle kinderen van Beatrix. Dan zou je dit kunnen schrijven in SPARQL:

select ?child where { wd:Q29574 wdt:P40 ?child }

Hier staat dus zoiets als: “selecteer alle items die de relatie ‘kind van Beatrix’ hebben'”. Als je deze query (zo noem je zo’n zoekvraag) draait op de SPARQL query service van Wikidata krijg je een tabel met de nummers die horen bij Willem-Alexander, Constantijn en Friso.

Wat als je ook alle kleinkinderen van Beatrix wilt hebben? Dus de kinderen van de kinderen?

select ?child ?grandChild where {
    wd:Q29574 wdt:P40 ?child.
    ?child wdt:P40 ?grandChild.
}

Oftewel: “selecteer alle kinderen van Beatrix, en geef me ook de kinderen van die kinderen”. Let op de punt aan het einde van elke regel om aan te geven dat je klaar bent met een triple.

Het resultaat is een lijst met 8 items: alle kleinkinderen van Beatrix mét hun vader. Voeg er nog wat extra dingen aan toe om ook de namen te krijgen (anders krijg je alleen de ID’s) en zet de netwerk-visualisatie-optie aan en je krijgt dit:

Misschien ontgaat je een beetje wat hier het praktisch nut van is. Want even googelen op ‘kleinkinderen beatrix’ levert hetzelfde op. Maar het aardige is dat je in die query alleen maar het nummer van ‘Beatrix’ hoeft te veranderen in dat van een willekeurig ander persoon met een item op Wikidata en je krijgt dáár de complete lijst van kinderen en kleinkinderen van. Of als je bijvoorbeeld álle voorouders van Willem-Alexander wilt hebben, en niet alleen z’n moeder. En het koningshuis is maar een voorbeeld. Wikidata heeft 95 miljoen items, dus of je het nou over schilderijen, monumenten of planten hebt: je kan ze gestructureerd doorzoeken.

Handig toch?

Blog archives

Waarom er op sommige plekken op mijn website(s) geen plaatjes staan

📷 HK

Op sommige plekken op mijn website(s), zoals het archief van mijn nieuwsbrief, staan geen afbeeldingen. Waarom? Daarvoor moeten we even terug in de tijd.

€450

Op 1 februari 2021 kreeg ik een bericht van persbureau ANP. Of ik even €450 wilde dokken, want ik had een foto van ze gebruikt zonder daarvoor te betalen. Permission Machine (sinds 2022 Visual Rights Group), een Belgisch bedrijf, speurt voor het ANP automatisch het internet af. Als ze een afbeelding tegenkomen waar het ANP de rechten over heeft en ze denken dat de website niet betaald heeft voor het gebruik wordt er een rekening verstuurd.

De foto waarover ze mij schreven stond sinds begin 2020 op deze website, in een archief met oude edities van mijn nieuwsbrief: De Circulaire. Dat archief was ik begonnen zodat die oude edities goed terecht zouden komen in het webarchief van de Koninklijke Bibliotheek.

Op het moment dat ik dat archief begon wist ik al: dit kan gedoe opleveren. Ik weet dankzij mijn vrijwilligerswerk voor Wikipedia hoe ingewikkeld het auteursrecht in elkaar zit, en hoe makkelijk het is om het te overtreden. Daarom ben ik heel voorzichtig met beeld. Ik maak het zelf, gebruik foto’s die een Creative Commons-licentie hebben, overduidelijk promotioneel zijn of onder het citaatrecht vallen.

In het archief van mijn nieuwsbrief zitten meer dan 100 edities, met meer dan 1.000 plaatjes. Al die afbeeldingen ben ik vòòr ik het archief opende met de hand doorgegaan. Alles waarvan ik dacht: ik weet niet zeker of ik dit mag gebruiken haalde ik weg.

Ik had alle plaatjes gehad, dacht ik. Maar helaas, een foto uit 2017 van een man met een fiets tijdens de G20-rellen in Hamburg was er doorheen geslipt. Die foto had ik gebruikt bij een link naar een site die rare foto’s verzamelt. Die foto stond daar zonder bronvermelding en staat er nog steeds. Ik had dus maar moeten weten dat die foto van het ANP is. Als dat er bij had gestaan had ik die foto natuurlijk niet gebruikt.

Maar ja, dat deed ik dus wel. Helaas is mijn nieuwsbrief een persoonlijk project. Ik verdien er niks mee. Ik doe alles zelf. Ik heb geen advocaten in dienst die al mijn afbeeldingen nagaan en het me laten weten als er mogelijk een probleem is met een plaatje.

Als het ANP me had gevraagd om die foto te verwijderen had ik dat natuurlijk direct gedaan. Fotografen dienen betaald te worden voor hun werk. Dus ik had daar ook best een redelijk bedrag voor willen betalen. Maar €450 is niet redelijk. Ik ben het nagegaan in mijn statistieken: de pagina met die foto is in totaal vier keer bezocht. En al die vier bezoeken waren hoogstwaarschijnlijk van Permission Machine / ANP zelf. Het ANP wilde dus €450 voor het kijken naar hun eigen foto’s.

Auteursrecht

Belachelijk? Ja. Maar ook onwettelijk? Nee. Juridisch mag het ANP dit doen. Die foto is een reproductie. En of die foto op de voorpagina staat van De Telegraaf of op mijn website maakt voor de wet niet uit: het is inbreuk.

Ik ben lang niet de enige die zo’n boete heeft gehad. En als mensen er mee naar een rechter gaan zegt die rechter: jammer, maar het ANP heeft gelijk. Dit is gewoon, helaas, hoe auteursrecht werkt.

Juridisch klopt het misschien. Maar moreel niet. Het eerste wat ik dacht toen ik die mail zag was: laat maar hangen. Ik gooi al m’n websites offline en stop met mijn nieuwsbrief. Als ík, met al mijn voorzichtigheid en redelijk wat kennis van het auteursrecht, dit blijkbaar al niet goed kan doen, hoe moet de gemiddelde webmaster van de lokale tennisvereniging dit dan netjes doen?

Het antwoord laat zich raden: niet. De enige manier om geen boetes te krijgen is door je spullen op gereguleerde platforms te zetten zoals Facebook, YouTube en Twitter, die legers advocaten hebben die collectieve regelingen treffen. Of je moet álleen maar Creative Commons-afbeeldingen gebruiken (wat je creativiteit behoorlijk beperkt). Helemaal geen plaatjes gebruiken. Of gewoon geen website hebben.

Om een vriend te citeren die hetzelfde heeft meegemaakt: het internet was vroeger een stuk leuker.

Hoe is het afgelopen? Met behulp van een bevriend advocaat die me kosteloos hielp heb ik een verweer opgesteld. Uiteindelijk heb ik met veel overleg en heen-en-weer gemail de boete van €450 naar €270 kunnen krijgen. Lezers van mijn nieuwsbrief doneerden ruimhartig €347. Wat ik overhield heb ik verdubbeld en aan een goed doel gegeven.

Zonder plaatjes

Eind goed al goed dus? Niet echt. Om nog meer boetes te voorkomen haalde ik behalve het nieuwsbrief-archief nog veel meer pagina’s en sites offline. Sommige daarvan stonden al decennia online. Ik kan moeilijk al die duizenden pagina’s nagaan om te kijken of er, misschien, wellicht, ergens een plaatje staat waar ik gedoe mee kan krijgen. Ik heb wel wat beters te doen.

Het gevolg is dat die sites offline blijven. En dat is ontzettend jammer. Want het internet wordt juist interessant door al die bijzondere projecten die mensen er in de loop van de tijd opzetten én online blijven staan. Een website waar ik met een groep kunstenaars dagelijks een kunstwerk opzette? Offline. De site van mijn afstudeerfilm? Offline. Mijn fansite van een popgroep die ik bouwde toen ik 16 jaar was? Offline.

Nu snap je misschien waarom er op sommige plekken op mijn website geen plaatjes te zien zijn of dat sommige websites überhaupt niet meer online staan. Ik heb geen zin om wéér het risico te lopen op een boete. Tijd en moeite te besteden aan een verweer. Of mensen te vragen om donaties. Ik besteed liever mijn tijd aan het bouwen en bedenken van nieuwe dingen.

Protest

Ik wil niet doen alsof er niks gebeurd is. Vandaar dat ik sommige sites (zoals het Circulaire-archief) weer online heb gezet, maar zonder plaatjes. Als een protest tegen dit soort auteursrechttrollen. Én als protest tegen een wet die ‘onbedoelde inbreuk op kleine schaal’ en ‘grove auteursrechtschending’ als hetzelfde ziet.

Er is opvallend weinig aandacht voor deze gang van zaken. Terwijl er talloze voorbeelden zijn van mensen die hetzelfde overkwam. Ontwerpster Martine Bakx is een van de weinige mensen die dit onderwerp op haar eigen blog al jaren volgt en een petitie begon. Die kun je tekenen.

En voor de rest kun je niks. Behalve al je plaatjes van je site halen en hopen dat je er niet ergens toch per ongeluk eentje bent vergeten.

Blog archives

Tag dingen met Depictor

Foto’s: Theo Crazzolara (CC-BY) / Joaquim Alves Gaspar (CC-BY-SA)

Ik hou me veel bezig met de Wikimedia-projecten, zoals Wikipedia, Wikidata en Wikimedia Commons. Commons is de mediabank van de Wikimedia-projecten: op het moment van schrijven staan daar meer dan 76 miljoen foto’s, video’s en andere mediabestanden op. Al die bestanden kun je gratis en voor niks gebruiken omdat ze onder een vrije licentie vallen. Je hoeft je dus niet druk te maken over, zomaar een hypothetisch scenario, een groot persbureau dat dreigbrieven stuurt met boetes van €450 vanwege een onbedoelde auteursrechtenschending.

Het was wel lastig om op Commons goede metadata toe te voegen aan de bestanden. Tot vrij recent ging dat nogal rudimentair: met veel tekst en eindeloos veel categorieën. Je hebt bijvoorbeeld categorieën als “emmers met levende krabben” en “badkuipen gebruikt als voederbakken voor dieren”. Het zou veel handiger zijn als je zelf zo’n selectie kan samenstellen: “geef me alle afbeeldingen met levende krabben in een emmer”. En dat je dan makkelijk “krabben” kunt vervangen met “schildpadden”. Of “emmer” met “terrarium”. Maar je kunt moeilijk voor elke mogelijke diersoort een categorie “emmers met levende <x>” maken.

Gestructureerde metadata

De oplossing is gestructureerde metadata, en die kun je sinds een paar jaar toevoegen op Commons dankzij Structured Data on Commons (filmpje). Je kan nu plaatjes koppelen aan items op Wikidata. Deze items beschrijven van alles: van diersoorten tot schilderijen en van personen tot sterrenstelsels. En eigenschappen van die items, zoals de Latijnse naam van een diersoort of de geboorteplaats van een architect.

Op Wikidata staan al bijna honderd miljoen van dit soort items. Je kunt het dus gebruiken als een soort gigantische thesaurus. En omdat items op Wikidata weer veel metadata hebben kun je ook hele specifieke afbeeldingen opsporen, bijvoorbeeld ‘alle afbeeldingen van mensen die zijn geboren in Tilburg, architect zijn én getrouwd zijn met iemand van adel maar zelf niet van adel zijn’. Waarom je dat soort bizar specifieke dingen zou willen opzoeken zou ik niet zo snel weten. Maar ik ben zo iemand die van alleen al het idee dat het mogelijk is enthousiast wordt.

Er is één probleem: die 76 miljoen mediabestanden op Commons moeten nog wel de juiste metadata krijgen. Op het meest basale niveau is dat ‘dit plaatje toont dat’. Een zogenaamd depictsstatement. De afbeeldingen staan vaak in een categorie, en die zijn wél vaak gekoppeld aan Wikidata-items.

Je zou dus kunnen zeggen: er is een categorie ‘Vincent van Gogh’, die is gekoppeld aan het Wikidata-item over de persoon Van Gogh, dus alle plaatjes in die categorie tonen Vincent van Gogh.

Alleen is dat te kort door de bocht. Afbeeldingen in zo’n categorie kunnen van alles zijn. “De aardappeleters” is bijvoorbeeld wel een schilderij van Van Gogh maar toont niet de persoon Van Gogh. Een zelfportret is van Van Gogh, maar toont hem ook. Een grafsteen of een handtekening toont Van Gogh dan weer niet. De enige manier om er zeker van te zijn dat zo’n depictsstatement klopt is dus toch door al die afbeeldingen handmatig door te nemen. 76 miljoen keer.

Tooltje

Dat kan een stuk sneller, dankzij een handig nieuw tooltje dat ik heb gebouwd met de weinig tot de verbeelding sprekende naam Depictor. Je kunt het tooltje alleen gebruiken als je een account hebt op één van de Wikimedia-sites (dus bijvoorbeeld op Wikipedia). Je logt in, drukt op ‘start’ en je krijgt een persoon toegewezen uit een willekeurig geboortejaar. Vervolgens krijg je de simpele vraag: zie je die persoon op de weergegeven foto? Elke keer als je op ‘Ja’ klikt voeg je op de achtergrond een depicts-statement toe aan Wikimedia Commons.

Iets meer dan twee weken geleden heb ik het tooltje online gezet. Tot nu toe hebben zo’n 150 mensen meer dan 40.000 statements toegevoegd. Ik hou een scorebord bij, en iemand uit Polen heeft al meer dan 6.000 keer een foto beoordeeld. Zelf heb ik er slechts een paar honderd. Het verbaast me altijd weer hoe ontzettend fanatiek mensen kunnen zijn als je ze de juiste tools geeft.

Overigens kan Depictor ook gebruikt worden voor meer dan alleen mensen uit willekeurige geboortejaren. Willekeurige Commons-categorieën werken ook (mits gekoppeld aan een Wikidata-item), net zoals SPARQL-queries (dat iets te ingewikkeld is om hier snel uit te leggen maar lees vooral dit artikel). Ik werk nu aan een mogelijkheid om challenges toe te voegen. Zodat bijvoorbeeld erfgoedinstellingen de tool kunnen gebruiken om kleine competities te organiseren: wie kan de meeste afbeeldingen depicten?

Enthousiast geworden? Wilt u zelf aan de slag? Log in met uw Wikimedia-account en ga lekker depicten!

PS: De Tilburger George van Heukelom, architect van De Inktpot in Utrecht, was getrouwd met jonkvrouw Henriëtte van den Brandeler. Leuk dat je het vraagt!

Blog archives

Waarom verdwijnt Andere Tijden? Omdat de NPO het internet niet serieus neemt

📷 Stolbovsky / CC BY-SA / Wikimedia Commons / Nabewerking HK

Afgelopen week werd bekend dat geschiedenisprogramma Andere Tijden na twintig jaar gaat verdwijnen. De NPO wil graag een jonger publiek trekken (dat is alles onder de 50 in Hilversum). Het programma moest eerder al van 35 naar 18 uitzendingen per jaar. Presentator Hans Goedkoop vertrok destijds. Hij wist al wat die vermindering inhield: een sterfhuisconstructie. 

Frans Klein van de NPO was te gast bij Nieuwsuur om de keuze te motiveren. Echt heel duidelijk werd het niet waarom Andere Tijden moet verdwijnen (iets met ‘een betere mix van aanbod’). Interessant werd het wel, toen interviewer Jeroen Wollaars vroeg hoe het zit met de distributie: “mensen van mijn generatie kijken wel NPO, maar dan op hun laptop”. Klein: “Maar laptop is ook TV kijken voor ons (…) dus laten we niet over de definitie steggelen.”

Klein’s functie is ‘directeur video’, maar zijn antwoord laat goed zien wat hij eigenlijk is: directeur televisie. Voor de NPO is ‘online video’ een synoniem voor ‘televisie terugkijken’. Maak een programma voor primetime NPO1, pleur het in een app en tada: video on demand. Ik zou zeggen dat online hele andere eisen stelt aan inhoud en distributie, maar voor de NPO is alles lineair. Als je dat eenmaal weet zie je die zienswijze bij alles wat de NPO doet. Bij de NPO-podcasts bijvoorbeeld, waarin stukken van het radiojournaal opduiken, of de uitslag van FC Emmen – VVV midden in een gevoelig verhaal. Maak een radioprogramma, pleur het in een app en tada: een podcast.

Er zijn in Hilversum wél mensen die snappen dat internet iets anders is dan televisie. BOOS van Tim Hofman krijgt regelmatig een miljoen views op YouTube. NOS Stories krijgt er ook makkelijk een paar honderdduizend. Maar die, specifiek voor internet gemaakte, initiatieven kwamen er vooral ondanks, niet dankzij de NPO. Suzanne Kunzeler, die verantwoordelijk is voor de jongerenzender NPO3, noemde in 2016 de video’s van BOOS (die zij ‘vlogs’ noemt) “leuke initiatieven, maar niet direct (…) waartoe wij op aarde zijn. (…) het [is geen] content is die wij op een podium willen tillen.” 

Dat interview is vijf jaar oud, maar in Hilversum is die houding niet veranderd. Online wordt nog altijd gezien als minderwaardig ten opzichte van lineaire televisie. En de kijker wordt stelselmatig onderschat, want die zou geen moeilijke onderwerpen dulden. Maar kijk naar de YouTube-kanalen van Vox of Kurzgesagt: die leggen zware onderwerpen als klimaatverandering of racisme toegankelijk uit voor een grote, jonge doelgroep. Zonder dat er een blik BN’ers wordt opengetrokken, of dat er stomme spelletjes worden bedacht. Nee, gewoon door er geld, tijd en liefde in te steken. En ja, speciaal gemaakt voor online. Niet voor televisie. Want dat doe je gewoon op een andere manier.

Waar de liefde voor online ook in ontbreekt is de presentatie. Ik schreef eerder al eens over de app van de NPO. In de bijna vier(!) jaar sinds ik dat artikel schreef is er nauwelijks iets veranderd. Nog steeds is de app helemaal gebouwd rondom het idee dat je televisie wilt terugkijken. In de app staat bij elk programma prominent het afleveringsnummer en de oorspronkelijke uitzendtijd en datum, alsof je dat ooit zou willen zien als je online video kijkt. Die uitzenddatum en tijd staat trouwens bij alle programma’s in een onleesbaar lichtgrijs lettertype op een donkerblauwe achtergrond. Als de app een televisieprogramma was zou de netmanager op z’n achterste poten staan, maar in de app is het al maanden zo. Het toont maar weer aan dat de NPO de app niet ziet als een hoofdkanaal, maar als een bijzaak.

Die minachting voor de online kijker komt overal terug bij de NPO. Ook bij Andere Tijden. Die hebben een YouTube-kanaal. Het is echter pijnlijk duidelijk dat de video’s hermontages zijn van de televisieprogramma’s. In een video over vrachtwagenchaffeurs hoor je Hans Goedkoop aan het begin van de video gewoon ‘goedenavond’ zeggen. Maar dat die video tóch 200.000 views heeft zegt veel over het potentieel van zo’n kanaal.

Want stel dat Andere Tijden niet zou verdwijnen maar meer afleveringen zou gaan maken? Geen hermontages, maar specifiek voor online gemaakte bingeworthy documentaires met hetzelfde budget, grondige research en archiefmateriaal als voor televisie. Dat zou een stuk beter werken dan ‘jongeren’ teruglokken naar lineaire televisiekanalen. Waarom doet de NPO dát niet?

Het antwoord op die vraag zit ook in dat Nieuwsuur-interview. Frans Klein zegt dat “er gelukkig in Nederland nog steeds heel veel mensen televisie kijken.” Dat zegt hij niet alleen uit een soort stille hoop dat iedereen net zoals in 1975 weer stipt op zondag om 20.25 Nederland 1 aanzet om Showcolade te kijken. Hij zegt het ook omdat in Hilversum geldstromen gekoppeld zijn aan lineaire programma’s. Dat verandert maar langzaam, en er is ook weinig reden voor. 20% van het NPO-budget bestaat uit STER-inkomsten, bijna allemaal uit televisiereclames want de mogelijkheden om online te adverteren zijn sinds 2020 beperkt. Hoe vaak de NPO ook roept dat ze online serieus nemen: als je geld (en dus kwaliteit) wil in Hilversum moet je een televisieprogramma maken.

De commerciële concurrenten (DPG Media, RTL, SBS) hebben jarenlang gelobbyd dat de publieke omroep online zo weinig mogelijk mag. Dat heeft gewerkt. In een tijd waarin iedereen voor online gemaakte content kijkt maakt de publieke omroep vooral programma’s voor een oudere doelgroep, op een oud medium, dat uiteindelijk, net zoals die doelgroep, zal uitsterven.

Hoe de publieke omroep in 2021 nog steeds worstelde met het internet en dacht dat ze jongeren wel weer voor de buis konden krijgen. Je had er een prachtige aflevering van Andere Tijden over kunnen maken.

Eerdere afleveringen uit de serie ‘Hay Kranen heeft een mening over de NPO’:
* Hoe gebrek aan liefde de NPO online opbreekt (2017)
* NPO moet open kaart spelen (2015)

Blog archives

Het Lijstje van 2020

Foto: Jacob Boll

Er zijn drie zekerheden in het leven: je wordt geboren, je gaat dood, en je leest hier elk jaar Het Lijstje, mijn favoriete muziek van het afgelopen jaar.

Ik maak al zo’n lijstje sinds 2003 dus het is interessant om te zien wat er is veranderd.

Één verandering is dat vrouwen de laatste jaren hoger komen. Twee van de platen in de top 3 werden de afgelopen jaren gemaakt door vrouwen. Komt dat doordat ik feministischer ben geworden? Of omdat er domweg meer goed aanbod is dat niét door mannen wordt gemaakt? Dit schreeuwt natuurlijk naar een promotie-onderzoek, maar ik denk dat ik het maar laat bij deze observatie.

Ik merk ook dat ik vaker dan voorheen kies voor muziek die richting de ambient gaat (al zou je dat niet zeggen als je naar #2 kijkt in mijn lijstje). Misschien heb ik meer behoefte aan rust en reinheid in deze rare tijden? Of word ik gewoon een oude lul die niks meer kan hebben?

Dit jaar kan ik in ieder geval wel weer opscheppen dat ik allemaal obscure vage bandjes bovenaan heb staan. De nummer 1 heeft slechts 15.000 maandelijkse luisteraars op Spotify, maar daar gaat nu natuurlijk verandering in komen!

De albums van 2020

  1. Deserta – Black Aura My Sun
  2. Special Interest – The Passion Of
  3. Ana Roxanne – Because of a Flower
  4. Porridge Radio – Every Bad
  5. Caribou – Suddenly
  6. Phoebe Bridgers – Punisher
  7. Fontaines D.C. – A Hero’s Death
  8. Wolf Parade – Thin Mind
  9. Jessie Ware – What’s Your Pleasure?
  10. Destroyer – Have We Met
  11. Sufjan Stevens – The Ascension
  12. Róisín Murphy – Róisín Machine
  13. Squarepusher – Be Up A Hello
  14. keiyaA – Forever, Ya Girl
  15. Run the Jewels – RTJ4
  16. Adrianne Lenker – songs
  17. Siv Jakobsen – A Temporary Soothing
  18. Tame Impala – The Slow Rush
  19. HAIM – Women In Music Pt. III
  20. Julianna Barwick – Healing Is A Miracle

De nummers van 2020

Ik maakte ook een Spotify-playlist met van alle hierboven genoemde albums minimaal één nummer, plus andere liedjes die ik goed vond (zoals dat nummer over emmers, dweilen en natte poesjes, ook leuk in de Disney-versie).

📀 Bijna drie uur luisterplezier voor de pandemische feestdagen.

In die playlist zit verder geen volgorde. Maar wat ik nog wel wil opmerken is dat ik Young Buck van de Canadese band Braids echt hét nummer van het jaar vind.

Het optreden van 2020

Volgend jaar beter!

Nog meer lijstjes bij Pitchfork, NPR, Best Ever Albums, The Guardian, Metacritic en OOR.

En als u even in de archieven wilt duiken: hier is Het Lijstje uit 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004 en 2003.

Blog archives

How to know which Micro USB cables have data (and which ones can only charge)

Here’s a seemingly simple question, what is the difference between these two Micro USB to USB-A cables?

They look very much alike. They are both black, have a USB-A connector on one side and a Micro USB connector on the other side, and feature the ‘trident’ USB logo.

However, something funny happens when you try to use these cables to send over data to a device, like sending music to your (Android) smartphone or books to your e-reader (like a Kindle or Kobo). One of these will work, and the other will not.

Why is that? Let’s take a look at the pins of a USB-A connector:

Image adapted from Simon Eugster / Wikimedia Commons / CC-BY-SA

There are four pins here. Pin 1 and 4 carry the power (for example, to charge your phone), pins 2 and 3 are used for data transfer (like sending photos). However, even though these pins are here, doesn’t mean that the wires for data transfer (pins 2 and 3) are necessarily available. Especially in cheaper cables, that you might get when ordering stuff from sites like AliExpress, these wires might be missing to reduce cost.

When you try to use one of those cables (without data transfer wires) your phone or e-reader will be charged, but you can’t send data over from your laptop. The same thing also happens when you’re trying to send programs to a development board, like an Arduino or ESP32 device.

If you’re like me, and you tend to accumulate all kinds of gadgets over the years you’ll probably have a drawer full of Micro USB cables like this:

You’re probably wondering now: how do i know which ones of these are usable for data transfer, and which ones can you only use to charge devices?

Turns out there’s no easy way to do that by just looking at the cable. In theory, USB cables that support data transfer should have the ‘trident fork’ logo, but in practice the cheap stuff from China uses that logo whether it has data capabilities or not.

So the only way to know for sure is to test them all by hand. I used my Kindle for this. When a cable has data, you will see the ‘USB Drive Mode’ screen featured on the left, and the Kindle will show up in your file manager after a couple of seconds. If the cable only has power, it will just show the regular ‘standby’ screen (on the right).

Obviously, you don’t need a Kindle to do this. You can use any device that supports file / data transfer. Like you could use Android File Transfer if you have an Android smartphone.

I just went through my drawer of cables, tested them all, and put a little label on them. Yellow if the cable only supported power, green if it had both power and data.

Hopefully this article clears up some of the headaches you might have with USB cables. Let me know in the comments if you have any other useful advice.

Blog archives

Welke tools, hardware en software ik allemaal gebruik

Stickers op mijn laptop. Is dit hardware of software?

Uses This (voorheen: The Setup) is een van mijn favoriete rabbit holes. Een website met meer dan 1.000 interviews waarin bekende en minder bekende mensen vertellen welke tools ze gebruiken om hun werk gedaan te krijgen. Ik ben natuurlijk lang niet belangrijk genoeg voor die site, maar gelukkig kan ik het format van Uses This even stelen voor mijn eigen blog.

Hardware

Ik voldoe aan alle clichés over webontwikkelaars en heb dus een MacBook. Specifiek is dat een MacBook Pro 13″ uit 2014. Die dingen gaan nooit stuk, zelfs de allereerste MacBook van wit plastic die ik ooit had wordt nog steeds door mijn vader gebruikt. Het fijne van mijn model is dat het geen nutteloze touch bar heeft, wél poorten waar je geen stekkertjes voor nodig hebt en een fatsoenlijk toetsenbord.

Als ik niet onderweg ben plug ik mijn laptop in op een externe monitor. Op dit moment is dat een Apple Cinema Display van 23″ van minstens 12 jaar oud die ik voor €50 op Marktplaats op de kop heb getikt. Ik tik het liefst op een Microsoft Sculpt ergonomisch toetsenbord. Bijkomend voordeel is dat niemand achter mijn Mac durft te zitten door de rare vorm. Helaas is de bijpassende muis recent gesneuveld en behelp ik me nu met een budget Logitech-muis (lees: ik ben te gierig).

Verder heb ik twee Raspberry Pi minicomputertjes. Eentje om backups te maken van mijn servers, en eentje met RetroPie die ik gebruik om oude Nintendospelletjes te spelen. Met een Playstation 4-controller gaat dat zelfs draadloos.

Ouderwetse papieren aantekeningen maak ik in Moleskine Cahier gelinieerde boekjes. Die zijn ook een stuk goedkoper dan de reguliere notitieboekjes van Moleskine (bespeuren jullie een thema?). Ik schrijf dan het liefst met de Papermate Inkjoy 100.

Al die spullen vervoer ik in een legergroene Fjällräven rugzak die natuurlijk nergens meer te krijgen is en dus ook niet linkbaar. Hij heeft heel veel vakjes, inclusief eentje bovenop waar je snel oordopjes en dergelijke in kan dumpen.

Software

Mijn belangrijkste browser is Chrome, vooral vanwege DevTools. Het internet zonder adblocker is onveilig en traag, dus ik gebruik uBlock Origin. Ik probeer soms te switchen naar Firefox omdat ik minder Google in mijn leven wil, maar dat is me nog niet gelukt.

Voor websites maak ik voor de voorkant meestal gebruik van Javascript-framework Vue, in combinatie met SASS voor de styling. Aan de achterkant is dat meestal Python, en sporadisch PHP. Mijn eigen websites draaien op WordPress (met zo weinig mogelijk plugins) en al dat moois host ik op een virtuele server bij Tilaa.

Mijn code tik ik in Sublime Text. Aantekeningen maak ik als simpele tekstbestanden via NvAlt, die ik sync met Dropbox en op mijn iPhone kan lezen met 1Writer. Al mijn messaging apps, Slack en dergelijke laat ik lopen via Franz. Voor to-do’s ben ik recent overgestapt van Wunderlist naar TickTick. Dat gebruik ik ook voor het verzamelen en organiseren van linkjes voor mijn nieuwsbrief. Die nieuwsbrief verstuur ik via Revue. Verder gebruik ik vaak de terminal, om bijvoorbeeld mijn code in te checken in Git.

Om te mediteren gebruik ik Oak op mijn iPhone. Overcast voor podcasts. Op verre reizen ben ik fan van maps.me voor offline kaarten. TunnelBear is mijn VPN-dient als ik illegale torrents…eh privacy-gevoelige dingen moet doen. Mijn telefoonabonnement neem ik al jaren af via Simyo, voor €20 heb ik een databundel van 15GB en onbeperkt bellen. 

De toekomst

Ik ben eigenlijk best tevreden met al mijn spulletjes. Op termijn zal ik wel een nieuwe MacBook nodig hebben. Ik hoop dus dat Apple een beetje opschiet met die nieuwe toetsenborden op laptops. En dat Microsoft me na het lezen van dit stuk een gratis nieuwe muis opstuurt.

En wat zijn jouw favoriete tools en dingen die je niet kan missen? Laat een comment achter hieronder.

Blog archives

How i fixed the PHP processes killing my server

Photo by Taylor Vick / Unsplash

The website you’re currently visiting is hosted on a VPS (virtual private server) running Ubuntu 16.04 with Nginx as a web server and PHP for most applications.

Unfortunately it wasn’t running that well. I use an excellent free service called Uptime Robot that sends me e-mail if the website is down for more than five minutes. And my inbox looked like this for the past few days.

What you see here are warnings about the fact that Uptime Robot can’t load this website. Maybe i should do something about that.

However, i’m not really a sysadmin. I like running my own server because that allows me lots of freedom in what technologies i can use to run my projects. But i don’t like fixing problems like this. So what i usually do is ssh to my server and run:

sudo reboot

Which tends to fix most problems. This problem kept returning though.

So, when i got another mail indicating the server was down i logged in, didn’t reboot it and checked a couple of vital things. The first thing i did was running:

uptime

Apart from giving you stats about how long your server has been running, it also gives you some other statistics.

 14:36:46 up  1:33,  2 users,  load average: 0.08, 0.02, 0.01

The three numbers at the end are the load averages for the past 1, 5 and 15 minutes. This gives an indication of how hard your CPU is working. If you have a single CPU in your machine these values should not exceed 0.7 or so (because a 1 indicates maximum load). If you have more than one CPU you can multiply the value by the number of CPUs in your machine.

But as you can see, these values are pretty low. So the problem wasn’t that my CPU was overloaded.

The next step was running htop (a more user friendly version of the classic top command). This showed me something was eating up all my RAM. What was going on?

Because this server is used mainly for serving websites i checked the logs for my web server, nginx.

sudo vim /var/log/nginx/error.log

And sure enough, around the same time i received all the e-mails about my site going down the log was filled with messages like this:

2020/03/28 12:05:53 [error] 998#998: *128599 open() "/usr/share/nginx/www/50x.html" failed (2: No such file or directory), client: x.x.x.x, server: www.haykranen.nl,     request: "POST /xmlrpc.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock", host: "www.haykranen.nl"

I don’t have a HTTP 500 error page defined, that’s the reason for the error messages. But the message also indicates something is causing these errors. Because it also mentions PHP i checked my PHP logs:

sudo vim /var/log/php7.0-fpm.log

And sure enough, there i found the culprit:

[28-Mar-2020 11:31:03] WARNING: [pool www] server reached pm.max_children setting (50), consider raising it

PHP spins up a new process every time a script gets executed. However, a new process takes up a block of memory. How much depends on your settings, but in my case it was around 64MB. The pm.max_children setting is crucial here, because it determines the maximum number of processes. Given that my server only has 2GB of memory, 50 PHP processes of roughly 64MB would take 3.2GB of RAM. No wonder my server had some issues!

To make sure there were actually 50 processes running i executed this command:

systemctl status php7.0-fpm

And sure enough, it showed me the 50 processes.

Now, i could just lower the pm.max_children setting (or use some other setting to determine that number automatically). However, the more important question is: why is PHP running so many processes?

There are many ways to check that, but one simple way is by using the lsof command that will list all open files.

lsof

This will produce a gigantic list of all open files on the system, so you need a little filtering. Let’s use this together with the grep command.

lsof | grep php

This still gives loads of results (over 4.000 lines in my case). So i saved it to a file

lsof | grep php > php.txt

And then copied it over to my local machine to inspect the contents of the file.

scp myserver:php.txt .

I did some searching through the file and finally found something interesting. The php files that were run and located in my /var/www/ folder (that contains all of my websites) all referred to the same website: sum.bykr.org.

The website at that URL was an old project that had been running for years. A hackathon project, it was basically a dynamic mirror of Wikipedia with a different skin and some added features. The thing is, because pages were generated dynamically it could render any page on the English Wikipedia. And not just that: it also contained links to every language edition of Wikipedia. Meaning it potentially could generate millions of pages.

And sure enough, when i took a look at the log files of this old website, it was filled with endless requests from search engine spiders trying to index the complete Wikipedia in 200 languages.

So in the end, the fix for the problems with my server was very simple: just disable this old website. I put an ‘out of order’ page on sum.bykr.org, so i could finally stop doing maintenance work.

And i wrote a blog about it.