In mijn ontdekkingsreis in zelf leren programmeren en eigen tools maken leer ik om de haverklap nieuwe concepten en begrippen. Soms ontdek je iets dat al decennia bestaat, maar waar je nog nooit van gehoord had. Deze week overkwam me dat met cronjobs. Dat had ik echt eerder willen weten.
Mijn eerste eigen server
Al maanden werk ik aan ThetaOS, mijn eigen Life Lens Systeem. Tot nu toe draaide alles lokaal op mijn Mac. Dat heeft voordelen: ik kan bij al mijn data zonder internetverbinding, en alles is ontzettend snel. Maar mijn smartphone is mijn meest gebruikte werkgereedschap omdat ik die overal kan gebruiken, en ik ben heel vaak op pad zonder laptop. Daarom besloot ik deze week een versie te maken die volledig synchroon gerepliceerd staat op een online server die dag en nacht aan staat.
Ik installeerde voor het eerst in mijn leven een eigen Linux-server. Een technisch klusje waar ik drie maanden geleden niet aan had durven beginnen, maar na alles wat ik de afgelopen tijd heb geleerd was het een fluitje van een cent met hulp van mijn AI-assistent.
Voor de mensen die nu denken dat dit spannend en eng is omdat je zomaar gehackt kunt worden: daar zijn tools zoals Tailscale (een beveiligde privéverbinding naar je server) en Cloudflare (bescherming tegen aanvallen van buitenaf) voor. En hoe ik dit soort nieuwe dingen aanpak is grondig. Ik doe deep research naar instructies van gerenommeerde security-specialisten, laat die output crosschecken door een tweede AI, en bespreek de stappen één voor één met Claude Code voordat ik ze uitvoer. Elke bruikbare bron voeg ik toe aan mijn eigen lijst van vertrouwde bronnen die ik bij elke volgende search meeweeg.
Dit klinkt misschien alsof ik snel werk, maar dat komt niet doordat ik stappen oversla. Mijn bestand met meest voorkomende fouten bij het werken met Claude Code bevat inmiddels 20.000 regels. Juist die gestructureerde aanpak, gecombineerd met ThetaOS, maakt dat dit soort projecten voor mij geen weken maar uren kosten.
Diezelfde werkwijze gebruikte ik bij het installeren van Moltbot, een AI-chatbot waarmee ik via Signal kan communiceren met mijn systeem. Hij draait op mijn eigen server. Er zijn risico's aan verbonden, en terecht. Recent waren er berichten over datalekken en malware in externe skills. Maar ik installeer geen externe scripts zonder ze eerst te controleren, en ik bepaal zelf waar Moltbot toegang toe heeft.
Thijs Pepping, trendanalist en co-auteur van het boek Echt Nep, wees me erop en ik had het in een uurtje aan de praat. Het enige wat ik moest doen was een goede verbinding met de server configureren en één kanaal openen vanuit mijn eigen dichtgetimmerde omgeving. Dat bleek niet heel ingewikkeld.
Omdat mijn data extreem gestructureerd is in ThetaOS, kan ik allerlei klusjes via gesproken woord inspreken in mijn chatbot op mijn telefoon. Die pingt dan de server en reageert binnen twee seconden. Ik kan vragen wie er de komende twee weken jarig is en hoe oud ze worden, wanneer ik voor het laatst in Cambridge was, wat ik de laatste keer kocht in een bepaalde winkel, of wanneer ik iemand voor het laatst sprak. Binnen twee seconden heb ik antwoord. Dat is iets waar ik al lang naar verlangde en dat ik nu eindelijk aan de praat heb.
Moltbot heeft onder strenge voorwaarden toegang tot specifieke plekken in ThetaOS, en daarbuiten en op mijn computer mag hij niks. In combinatie met cronjobs kan ik ineens hele krachtige dingen die voorheen onmogelijk waren qua snelheid en gemak.
Wat is een cronjob?
Ik schreef in het verleden al over kabouters op een computer die volautomatisch dingen doen, zoals het programma Hazel. Maar nu heb ik onvermoeibare kabouters op mijn server die dag en nacht wakker blijven zonder Red Bull. Ze werken met een vijftig jaar oude technologie die cronjob heet.
Een cronjob is geen onderdeel van Moltbot, maar een functie van de server zelf. Het is een taak die je server automatisch uitvoert op een vast tijdstip, zoals elke nacht om drie uur een backup maken, elk uur checken of er nieuwe data is, of elke maandag een rapport genereren.
De naam komt van Chronos, de Griekse god van de tijd. Cron werd in de vroege jaren zeventig ontwikkeld door Ken Thompson bij Bell Labs, als onderdeel van Unix. Unix is het besturingssysteem waaruit later Linux en macOS zijn voortgekomen. Vrijwel elke server op het internet draait op een van deze systemen, en vrijwel al die servers gebruiken dus cron.
Wat kun je ermee? Een paar voorbeelden uit mijn eigen praktijk.
In ThetaOS heb ik van alle mensen een ringensysteem gemaakt. In de binnenste cirkel zitten de mensen met wie ik het meest te maken heb, en zo bouw ik naar buiten toe uit. Van de eerste paar ringen wil ik weten wanneer iemand jarig is.
Mijn cronjob zoekt 's nachts uit wie er uit mijn binnenste cirkel binnen nu en twee weken jarig is, zodat ik nog tijd heb om een cadeautje te regelen. Van de ring daarbuiten zie ik wie er de komende week jarig is, en wie er vandaag jarig is zie ik van elke ring. Elke ochtend krijg ik een Signal-bericht met deze informatie. Die lookup in mijn gestructureerde database stelt voor de kabouters niks voor, maar voor mij is het goud.
Ik had uit nieuwsgierigheid ook de westerse en Chinese astrologie laten doorrekenen van alle mensen waarvan ik de verjaardag weet. Nu kan ik "astro" intikken in Signal met iemands naam en dan krijg ik het complete astrologische profiel, zowel westers als Chinees. Niet dat ik er dagelijks wat mee doe, maar doordat ik met dit speelse experiment snapte hoe het werkte, ging ik daarna iets nuttigs bouwen.
Elke keer dat ik pin bij een winkel, restaurant of kapper, weet mijn systeem precies waar ik was. Bunq stuurt de transactie naar mijn server, die elk uur automatisch synchroniseert. De server herkent de winkelnaam en koppelt deze aan een bekende locatie in mijn database, dus "Barista Café Haarlem" wordt automatisch gelinkt aan de locatie én de stad. Dezelfde logica werkt voor personen: een overboeking van of naar Mark Meinema wordt automatisch gekoppeld aan zijn profiel. Als ik afreken bij een bekende locatie krijg ik een WhatsApp-bericht: "Je was bij Darras in Haarlem, vastleggen?" Met één "ja" wordt het bezoek gelogd op de juiste datum. Zo bouw ik zonder moeite een compleet overzicht van waar ik wanneer was, puur op basis van wat ik toch al deed: betalen.
Een andere cronjob checkt de gezondheid van al mijn systemen en rapporteert me proactief over eventuele kwetsbaarheden. Die kabouters doen onvermoeibaar en moeiteloos precies op het juiste tijdstip of in vaste cycli wat ik ze vraag, en omdat ze op een server staan die 24/7 draait kan ik daar eindeloos mee variëren.
Ik ben nog maar een paar weken bezig, maar dit gaat een wereld van verschil maken. Ik kan op gezette tijden allerlei taken laten uitvoeren, inclusief uitgebreide zoek- en analyseopdrachten met AI. Complete rapportages laten maken in de nacht en de samenvatting 's ochtends ontvangen.
Hoe je zo'n cronjob maakt? Vraag het aan Claude Code. "Maak een cronjob aan die elke dag om 06:00 mijn schema en taken van die dag stuurt, plus alle verjaardagen." Dat is genoeg.
Cron werkt op elke Linux- of macOS-computer, dus ook op je eigen laptop. Het verschil met een server is dat die 24/7 aan staat, waardoor cronjobs ook 's nachts draaien.
Het voelt alsof we met de komst van Windows en macOS de werking van die wonderapparaten onder de motorkap hebben verstopt. We moeten het doen met interfaces die ontwerpers maakten voor een gemiddelde gebruiker, en die sluiten zelden aan bij onze diepere behoeften. Maar de krachtige functies zitten er nog steeds, als je weet waar je moet zoeken. Cron, daemon, shell, crontab: het klinkt als geheimtaal, maar achter elk van die woorden zit iets nuttigs. Ik schat dat een stuk of twintig van dit soort begrippen, met een beetje context, een wereld van verschil kunnen maken. Ik ga ze verder ontdekken, leuke en nuttige toepassingen verzinnen en die hier delen 💪
Hier meer blogs over ThetaOS en LLS-en