Contact met ondersteuning

Wij antwoorden per e-mail, meestal binnen twee dagen.

Google reCAPTCHA controleert deze inzending op misbruik; daarbij worden gegevens naar Google gestuurd. Het script laadt pas wanneer dit formulier wordt geopend.

← Alle berichten

De wie-is-online-lijst, beloofd in 2012 en nu live

Op 25 augustus 2012 kondigde een bericht op deze blog aan dat de statistiekvelden zichzelf waren gaan verversen, en het eindigde met een zin: "De geplande lijst 'Wie is online' komt binnenkort!"

Dat bericht staat er nog. De lijst die het aankondigde had veertien jaar nodig. Hij bestaat nu, en de teller waarnaar dat bericht verwees, heeft de hele tijd doorgelopen.

Wat hij toont

De statistiekpagina heeft een live paneel: hoeveel mensen er op dit moment op de site zijn, en de meest recente daarvan uitgeschreven — het land waarvandaan ze verbinding maakten, de stad waar die bekend is, op welke pagina ze zitten, en hoe lang geleden ze voor het laatst gezien zijn. Twaalf tegelijk, de nieuwste eerst.

"Op dit moment" betekent de laatste vijf minuten. Na een uur worden de regels ronduit gewist.

0560in de live lijstregel nog bewaardgewistminuten sinds laatst gezien

Wat "wie" niet betekent

Niemand in die lijst wordt geïdentificeerd. Hij is opgebouwd uit dezelfde dagelijkse hash van 16 bytes die beschreven staat in het bericht over tellen zonder cookie — er zit geen naam, geen account, geen cookie en geen opgeslagen IP-adres achter welke regel dan ook.

Ook bewaart hij alleen het pad van de pagina en niet het volledige adres: /winkel/laarzen, niet de hele link met wat een zoekmachine of een nieuwsbrief er aan het eind ook aan geplakt heeft.

En twee mensen uit dezelfde stad die naar dezelfde pagina kijken, zijn eenvoudigweg twee regels. Niets in het systeem kan twee lezers onderscheiden van één lezer op een telefoon en een laptop. Dat is geen omissie die in een latere versie wordt opgeruimd. Het is het ontwerp, en het is dezelfde ruil die de teller overal maakt: genoeg om nuttig te zijn, niet genoeg om iemand te volgen.

Live zonder een verbinding open te houden

De moderne manier om dit te bouwen is een WebSocket, of server-sent events — de browser houdt één verbinding open en de server duwt er updates doorheen zodra ze er zijn. Dat is het elegante antwoord en hier zou het het verkeerde geweest zijn.

De webserver van deze site gebruikt één proces per open verbinding, en zijn eigenlijke taak is telleraanvragen beantwoorden voor een paar duizend websites. Een verbinding die openstaat, is een proces dat niemand anders kan bedienen. Vijftig mensen die naar hun live pagina kijken, zouden vijftig processen betekenen die niets doen en wachten om een getal af te leveren dat elke paar minuten verandert.

Dus vraagt de pagina in plaats daarvan elke vijftien seconden om een klein blokje JSON. Daaromheen staan drie besluiten die zwaarder wegen dan het interval:

  • Gaan de aanvragen mislukken, dan zakt hij terug naar één keer per minuut — in plaats van te blijven hameren op een server die het duidelijk al moeilijk heeft.
  • In een achtergrondtabblad houdt hij helemaal op met vragen, en ververst hij op het moment dat het tabblad weer naar voren komt. Niemand kijkt naar een verborgen tabblad, en de aanvraag zou precies evenveel kosten als een nuttige.
  • De regel N seconden geleden bijgewerkt telt lokaal omhoog, één keer per seconde, en kost helemaal niets. Er is alleen een aanvraag nodig om de gegevens te veranderen, niet om ze te laten verouderen.

Niets hiervan is knap. Het is in verhouding, en op een kleine server is dat de waardevollere eigenschap van de twee. Een live-overzicht hoort niet meer te kosten om te draaien dan het ding waar het naar kijkt.

Eén onderdeel dat niet is teruggekomen

In september 2015 stond er een bericht over het tabblad Users, dat had geleerd iemand die een pagina actief leest te onderscheiden van iemand die hem in een achtergrondtabblad had geopend en vergeten was.

Dat onderscheid is niet terug. De huidige lijst weet wanneer een bezoeker voor het laatst gezien is; hij weet niet of diegene kijkt. Het is echt het weten waard — een flink deel van de "bezoekers" van elke site is een vergeten tabblad — dus het staat op de lijst met dingen om te bouwen.

Hopelijk niet weer veertien jaar.

Zelf proberen

Het bericht uit 2012 eindigde met een link naar een levend voorbeeld, en dat lijkt ook hier de juiste afsluiting. Die oorspronkelijke link werkt overigens nog steeds: de teller erachter heeft de hele tijd doorgelopen en is 1,3 miljoen bezoeken voorbij.

Er staat hier een levend voorbeeld, geen account nodig om te kijken.

Advertentie