Kev’s Daily Eats: Episode 82 — The Crontab Stew (Five Fields, One Pot)

Somewhere, on a machine you have never seen, a small program is checking the clock. It does this every minute of every day, with the patience of a bank manager and the drama of a spreadsheet. When the clock matches a line in its list, it launches a job and goes back to sleep. No fanfare. No progress bar. It is called cron, it shipped from AT&T Bell Labs in May 1975, and it is named after Chronos — the Greek personification of time, not the Titan who ate his children, which is a different and considerably messier scheduling philosophy.

Cron’s whole trick is that it doesn’t count elapsed time. It is a pattern-matcher, not a stopwatch: it never asks “how long has this been going?”, only “does this minute look like the minute I wrote down?” Fifty-one years of computing reliability rests on that distinction. The original cron was a one-line-a-minute busybody for the whole system; when Purdue University tried extending it to all 100 users on a time-shared VAX in the late 1970s, it nearly brought the machine to its knees. The fix — a cron that sleeps until it’s needed — was written by a graduate student named Keith Williamson as what his supervisor genuinely called a “warm up task”. Every important piece of software in history begins as somebody’s warm-up task. It’s the “quick prototype” of the scheduling world.

A proper braised stew is a crontab you can eat. You write it once, set it at a fixed time, and it runs unattended while you go out. This one is beef chuck and pearl barley braised in ale — call it the Crontab Stew, because five fields is five ingredients and I refuse to check that maths.

Ingredients

  • 800g beef chuck or braising steak, in 3cm chunks (the field that cannot be automated: ask the butcher to cut it, then stop making eye contact)
  • 100g pearl barley, rinsed (not the quick-cooking kind — quick-cooking barley is a job that runs every ten seconds)
  • 2 onions, sliced
  • 3 carrots, in thick rounds
  • 2 sticks of celery, sliced (or a leek, if celery is being moody)
  • 3 cloves of garlic, crushed
  • 2 tbsp tomato purée
  • 2 tbsp plain flour
  • 300ml dark ale — mild, brown, whatever’s on offer (no alcohol? extra stock plus a splash of vinegar; the stew will not audit you)
  • 600ml beef stock
  • 1 tsp Marmite
  • A few sprigs of thyme and 2 bay leaves
  • Butter and oil for browning, salt and pepper

Veggie variant: 500g chopped mushrooms and a drained tin of butter beans stand in for the beef, vegetable stock instead of beef. Everything else, including the schedule, is unchanged.

Method

  1. Preheat the oven to 150°C fan. This is the daemon starting up: one line, then it looks after itself for the next three hours.
  2. Toss the beef chunks in the flour with salt and pepper. Dusty, like a crontab edited by hand at 2am — you’ll fix the typos later.
  3. Brown the beef in butter and oil, in batches. A crowded pan steams, which is what meetings are for.
  4. Lower the heat, soften the onions, carrots and celery for ten minutes, then the garlic and tomato purée for two. This is the base of the file: boring, commented, load-bearing.
  5. Pour in the ale and scrape the bottom of the pan. This is the one line in the file that makes the whole thing worth running.
  6. Add the stock, Marmite, thyme and bay. Stir once. You have now written the crontab line; do not edit it while it’s running.
  7. Bring to a simmer, lid on, into the oven at 1pm. Cron is a pattern-matcher, not a stopwatch: the stew does not care that you changed your mind at 2pm. It will still be cooking at 4.
  8. At the two-hour mark, stir in the rinsed barley and a splash more stock if it looks dry. This is the second job in the same file, scheduled deliberately so the two don’t collide.
  9. At three hours, test a piece of beef with a fork. If the fork slides in without an argument, it’s done. If not, back it goes — cron doesn’t do changes of mind, only retries.
  10. Check the seasoning, fish out the bay leaves, and serve in whatever bowl has the best structural integrity. Mash optional; bread mandatory; self-congratulation scheduled for later.

It keeps for three days in the fridge and reheats on schedule, which is more than can be said for most recurring commitments in your life. And cron mails its output to whoever scheduled it — so consider this that email. Subject line: it worked. The trick, as ever, is that you set it once and never touch it again. Five fields, one pot, zero interventions. If only the fifth field — day of the week — were as forgiving in everything else.