writing

What put up a fight, and what came of it.

One subject per piece, written after the fact from a real case: what was tried, what held, and what was dropped along the way with the reason. With no case behind it, a piece stays in the drawer.

01contents
subject
year
period
2020202120222023202420252026

2026The grain of randomness: what decides a repetitionA generator of repeated fields is usually set with a single number, the quantity of randomness. It is the less decisive of the two. The one that decides the image is the level at which that randomness is injected, and it appears nowhere in the code.1 September 20262026Gale-Shapley at the milonga: stable does not mean fairThe algorithm behind the 2012 Nobel prize guarantees that no couple will walk off the floor together. It guarantees nobody a dance. Between those two promises the gap is wider than it looks.31 August 20262026Mathematics has no compilerFour mathematicians have opened a blog to say what AI is changing in their work. The discipline believes itself safe: it has proof and peer review. Yet the object is the one software builds, assembled step by step, and without any of what makes refusing free here. That refusal, not trust, is what explains how much I get done now.11 August 20262026AI Act, Cyber Resilience Act, Résilience bill: the same missing inventoryThree European texts land on the same calendar and do not do the same thing to demand: one has just slipped by eighteen months, the next bites in six weeks, the third holds budgets back until it passes. What they ask for, though, looks very much alike.1 August 20262026Astro: rules before pages, then publishingThe whole path, private repository included: design system first, implementation second, deployment on every push. With the five traps that actually bit, because none of them is in any documentation.29 July 20262026Seeing a drawing inside outSeven old drawings lifted off their paper, then turned over. What the paper/ink switch reveals in a sixteenth-century sheet, and what it distorts: because a tool that reveals also distorts.29 July 20262026Astro: from a CV to a static siteThe whole path, for an independent or an association: turning a profile and an idea for a logo into a site one person can maintain. The code matters more than the hosting.28 July 20262026Time saved, strain, and who pockets the difference“It saves me time” is the most common sentence about AI at work and the least useful: it holds three. The first has a mathematical ceiling, the second can move the other way, and the third is not yours.22 July 20262026Agent Skills, out of the clipboardThe instructions given to assistants have settled where nothing gets reviewed: in conversations and personal files. Getting them out does not need one more tool, but treating them like the rest of the code.22 July 20262026Neither all salary nor all dividendsThe question an independent running a company settles once a year, usually by guesswork. The answer is at neither end: the curve has a peak, and it moves with the result.15 July 20262026You are not taxed on what you withdrawThe question fits in a sentence: how much can I live on without eating into the capital? The French answer runs into a misunderstanding that costs in both directions: people expect to pay the headline rate, which applies to only part of the withdrawal.8 July 20262026Two disciplines of lookingChess and drawing teach the same thing by two routes: recognising a configuration before calculating, and agreeing to calculate when recognition fails.10 June 20262026Mathematics seen from the insideA research diary, a thesis on intuition, the history of a single number: three books that show the work rather than its conclusion. And five others, outside computing.10 June 20262026TMDL in Fabric: two routes for the same fileNow that a semantic model is written as text, it can be reviewed and versioned like code. Two ways of deploying it remain, which do not cost the same and do not address the same teams.18 February 20262026Through the tradesman’s entranceA bitter testimony, a television series and a comic. Three routes that carry science to people who will never read a proof, and what each one drops along the way.10 February 20262026dbt exposures generated from TMDLThe dependency graph stops at the last table, while the question asked in meetings is always about what comes after. One repository and a text format are enough to extend it: provided it is generated and never hand-written.20 January 20262025Choosing, rather than taking what comesTwo long engagements, and time between them to look at the practice itself. What rate, what refusals, which tools to keep for ten years.3 December 20252025dbt-fabric called from a Fabric notebookAn integrated platform does not always offer a place to put a dbt project. dbt’s Python entry point provides one, provided you accept what is unusual about the arrangement.17 June 20252025What is decided before the lineThree books that are not about the line but about what is settled before it: where you look from, what the form is made of, and how the darks gather. Nothing artistic about any of it.11 June 20252024On what horizon to judge a systemA year spent from one client to the next. You see up close how an AI budget line is defended or collapses in committee, and on what horizon a system should be judged.4 December 20242024PyMuPDF and pgvector: what the chunking decidesIn a retrieval-augmented chain, attention goes to the model. Quality is settled two steps earlier: in how a PDF is cut, and in what the extraction already lost.15 October 20242024Polars and Delta from a Durable FunctionA transactional table format and a function you do not control sit badly together: one assumes a writer that lasts, the other can be replayed at any moment. What that imposes, and where the line falls.13 February 20242023Deciding whether to buildThe year generative AI stops being a watch item and becomes a question asked in meetings, usually badly. And the year my place in those meetings changed.6 December 20232023dbt under Airflow: one task per model, not one per projectA dbt project launched from an orchestrator usually fits in a single task. The graph on screen is then a lie, and a retry replays everything. What handing the graph back to the orchestrator changes, and what it costs.14 November 20232023SageMaker and EMR from Airflow: an orchestrator that computes nothingA managed DAG has neither the memory nor the permissions to carry a training run. It triggers, it waits, it wakes somebody, and that last part is always written last, usually after the incident.24 January 20232022Around the code, not inside itTwo client engagements in parallel for much of the year. What wears you down at that pace is never the model: it is the review, the estimate, the handover.1 December 20222022Four feature flags, and how long they liveA classification that is not mine, and the question it leaves open: the date the flag goes away. With no written answer, it becomes part of the product.6 April 20222022Celery and FastAPI: answering before the work is doneA server that processes an image during the request eventually falls over. Separating the acknowledgement from the work changes the nature of the failure, and raises three questions the synchronous version hid.25 January 20222021A correct figure is not enoughJoining a consultancy teaches you quickly that the difficulty is not computing correctly but getting a figure accepted by a room that did not follow the computation.2 December 20212020Searching by resemblanceIn 2020, comparing documents by their vectors meant assembling the chain yourself. The state of the art then, and what vector databases actually changed since.7 December 20202020Two ways to open a nutThe chisel or patience: Grothendieck describes two approaches to a problem, and they do not cost the same. Choosing is not a matter of temperament.5 December 20202020What lockdown left time to readA data warehouse, an economist and a psychologist. The year the time given back by the absence of commuting went into books.3 December 20202020What wears a developer down, and what holds them upWhat draws people into this trade is well documented. What comes loose is less so, and gets mistaken for lost interest when it is something else. Three criteria account for most departures.27 November 20202020Public figures do not make proofFrench open data is plentiful and free, which is what makes it misleading. What data journalism teaches an engineer, and the step almost nobody takes.22 November 20202020What tidying does not settleThree method books read the same year, and their shared limit: they organise a stock, while the scarce resource is attention. What survives once that promise is removed.20 November 20202020Negotiating scope, not priceFour traditions say the same thing about cooperation: the room for manoeuvre lies in what gets done, seldom in the amount. The position held since, and what it costs.19 November 20202020A model that runs on the reader’s machineIn 2020 I ran recognition models inside a browser, for a reason that had nothing to do with performance. An openly dated retrospective: the technique has been replaced, the argument has not.14 November 20202020A trade that found out it was a craftSoftware engineering started describing itself in workshop terms (code smells, refactoring, patterns) without deciding to. What that language lets you say about the trade, and what it does not buy back.12 November 20202020Ten years before the trade had a nameFrom soil mechanics to data warehouses, a reading log kept since 2011 tells a decade in which the discipline named itself after the fact. What it shows, and what it hides.1 November 2020
A rider at full gallop, lance extended, painted in ink and colour on silk, between the scroll’s mounting bands, with red seals.
Giuseppe CastiglioneAyusi Assailing the Rebels with a Lance, 1755