Latest Posts (20 found)
Justin Duke 1 weeks ago

The Sting

The Sting belongs in the pantheon of films I'm deeply embarrassed to have not watched earlier. Not just because it's a great film — and it is — but because it is so incredibly my shit that I feel retroactively spurned for not having watched it sooner. It's a movie to which the Ocean's franchise obviously owes so much, which is a funny thing to say given that the Ocean's franchise is itself a remake. But much like Ocean's, this is a hedonistic, smooth, and perfectly executed act of escapism, relying in no small part on your love and affection for two absolute behemoth actors. Much like Ocean's — and sometimes even more so — it beggars belief. Early in the film, Paul Newman snaps his fingers and assembles, at a moment's notice, a two-dozen-strong team of expert con artists who work in choreographed unison for the rest of the film, never failing or faltering. A part of my brain went: come on, are you expecting me to believe this? And that part of my brain was immediately silenced by the louder, happier part that whispered: shush, and just let it happen. The film ends with two little twists. One of them is so obvious that I think it barely merits mention; the other — the revelation of a certain assassin's identity — actually did take me by surprise, and kudos to them. But God, I challenge you to watch this film and not spend the final six or so minutes with a maniacal grin on your face. It is a movie faultlessly devoted to pleasure. I'm glad that not every movie is like that, but I'm glad that many of them are.

0 views
Justin Duke 3 weeks ago

To Live and Die in L.A.

To Live and Die in L.A. is a movie I find remarkable in its ability to drown you with positive and negative qualities — so many of each, and so evenly matched, that the two perfectly balance out and leave you with a hangover. Consider the ledger: And then there's the sense that the whole thing somehow exists as a fever dream, untouchable by the artifice of any character besides our central few. The ending wants you to interpret it either very somberly or very trivially, which is not unlike the rest of the film. Perhaps I needed to grow up a decade earlier to appreciate it. The character work is borderline incomprehensible — though I love Rick Masters altogether, and I love that his arc is left largely unresolved. The direction is beautiful (Friedkin! Müller!) and hamstrung by an atonal, often sitcom-esque pacing. The chase scene's heights are cancelled out by some truly awful reaction shots from John Pankow.

0 views
Justin Duke 1 months ago

It's just a model

I, like many people, have witnessed and felt the whiplash between the seemingly-orgastic highs of the Astra launch and the experience of using the model. Whether intentional or otherwise, a lot of airtime was given in the brief pre-release hypecycle to Astra's ability to generate things that looked cool . Lots of games, renders, and examples cluttered my various timelines. This makes sense: 3D stuff is cool; most people don't really have a sense of the toolchain involved in things like this, and how much of the effort is on the part of the LLM versus the structures it builds upon is somewhat obfuscated; platforms like xtheeverythingapp.com tend to reward videos and animations. I try (unsuccessfully) to remain sober about all of this. But the release of the model, coupled with things like the deeper information around the Hugging Face incident and Collusion.wiki, did ignite a bit of a spark in the back of my head — thinking, as always, however briefly, about the chance that things are really different this time. Did we solve software? Then I started using the model. And much like my quasi-review of Fable 5.1 , I found that the model is good! It's hard for me to really compare and contrast it against Fable 5.1 because I didn't do formal comparisons or anything like that; I just tried throwing a couple of problems I was working on against it, and it handled them all well and the things it couldn't handle were generally due to lack of context and agency, not lack of horsepower. It's very smart and capable, but limited by the tools and harnesses and contexts it has access to (words I deploy in the broader sense, not the industry-specific ones.). All of this mirrors almost exactly my sense of wonder followed by disillusion when I started really kicking around Fable for the first time. 1 Though I do maintain that Fable pre-DOD was a slightly different beast, and felt more akin to a real change in how I programmed. Astra is very good at a lot of things; for me, though, it is increasingly extremely competent at tasks that have already been solved by faster, cheaper models. And at least personally, as someone who runs a non-trivial business where the risk of false positives vastly outweighs the attractiveness of sheer velocity, I struggle to find the right balance here between exploring the boundaries of what is possible and remembering that right now my job is no longer that of a technologist but of an industrial designer. I run a small business where we have absolute license to use models at will, so long as we do so judiciously and securely. I talk about them for no economic or personal reason 2 Disclaimer: I am, as of this writing, an investor in Anthropic through an acquisition they made. ; I want to understand (and thereby master) them out of a conviction that they'll improve my business. I bring that up because I found myself vigorously nodding along to this essay from Armin Ronacher , who writes (amongst other things, which I agree with): I'm more and more convinced that all of AI engineering is Neijuan (内卷, meaning curl inwards). In China it describes a system that demands ever more effort and competition without improving output. The way in which it sometimes shows up in the West is the 996 nonsense. The English term for Neijuan is "Involution" from the book Agricultural Involution. Agricultural involution describes the intensification of farming that raises productivity per square meter while leaving productivity per head unchanged. One way of thinking about LLMs (or any technology) is dichotomous: The biggest step function in software engineering over the past few years was not a specific model but Claude Code. Astra and Fable have improved my life less than full support for subagents and worktrees did. I get that it's unfair of me to pretend those two things are discrete! I don't have enough intelligence to understand how raw power acts as a proxy for various other implications outside my industry. But I do — at least for now — have enough experience to understand that right now it's a poor proxy for operational leverage in mine. There is the raw power a given model can generate, and then there's the design and manufacturing of interfaces that can use that model in useful ways.

0 views
Justin Duke 1 months ago

Soulstone Survivors

M&Ms tend to trigger in me a kind of existential crisis if I have more than a few. A small handful is no problem, but any more than that and I abruptly come face to face with the mechanics of what I'm doing — the sheer artifice of the thing I'm putting into my body. I find myself overcome with a violent repulsion, so strong that I'll end up literally spitting out whatever is in my mouth and, in doing so, briefly swearing off the mere concept of processed food. Playing — and ultimately washing my hands of — Soulstone Survivors felt very much like this. Not because of anything so simple as in-game quality: the game is a competent, polished entry in the survivors-like genre that Vampire Survivors spawned into existence, one of many that focus on polish and technicolor spectacle. But one of the things I think is underrated about Vampire Survivors' success is that it's a weird and charming game, filled with secrets and surprises meant to confuse and delight the player — not merely to accelerate the rate at which dopamine enters the body. Soulstone Survivors is very good at the dopamine. It is also, in a certain sense, very boring. The game offers breadth — skill sets, customization, playable characters galore — and these choices do have meaningful differences. But they all serve exactly one purpose: to explode things and clear fairly simple arenas in a manner that does not vary from run to run. It would feel disingenuous to give Soulstone Survivors a particularly negative review, because it is a fun game for a time, and it accomplishes exactly what it sets out to do. And yet I can't recommend it — because I don't think it is good for you. I am, at heart, a romantic who believes that video games are, at their best, a transformative piece of art. Even the ones focused purely on pleasure can do so nobly, in a way that puts them on the same tier as something like Ocean's Eleven or Jaws : works of entertainment that carry merits outside that simple rubric. Soulstone Survivors is not one of those. It is an M&M.

0 views
Justin Duke 1 months ago

Conjury

A difficulty I have when reviewing Slay the Spire -likes is a certain anchoring bias. It can feel unfair to judge an otherwise good game, even partially, by dint of it being so aggressively inspired by a game that I consider, on a mechanical level, literally the best ever made. Conjury exists almost as a perfect distillation of this trickiness, because it is fundamentally a very good iOS game with much to love that — after a while of playing it — I cannot help but find wanting in comparison to its forebear. Structurally, and aesthetically, it is almost like a demake of Slay the Spire. Each run consists of a handful of acts, shorter and with fewer branches than Slay the Spire. Combat is a simplification of the same engine: using energy to play and draw cards, balancing attack and defense, leaning on emergent interactions between cards. And it is particularly well optimized for its format. It looks gorgeous on an iPhone; the pixel art is done just right, as are the audio and the scaffolding around it. Where the game struggles, on the gameplay side, is in the monotony — both at a micro and a macro level. In a micro sense, encounters do very little to differentiate themselves from each other; even bosses feel fairly samey, and whatever variety a given fight offers comes much more from the order in which your cards are dealt than from any need to tailor your tactics or decision-making to the enemy you happen to be facing. At a macro level, the various characters you can play in Conjury do feel fresh and distinct from one another, but repeated runs of a given character do not. This would be much less of a problem if it weren't for the fact that, in order to unlock new characters, you have to grind through a lot of runs. Where Slay the Spire is very generous with handing you new mechanics and play styles and characters as soon as you're ready to appreciate them, Conjury makes the exercise feel daunting and chore-like. In a way — and to its credit — that is not entirely dissimilar from games of the era whose aesthetic it so successfully emulates. So it's not as good as Slay the Spire. Is that so brutal a condemnation? No. And, to end on an earnest and positive note: the more honest comparison would be with other iOS games, where all of my quibbles are rendered moot. I don't think it's unreasonable to say that the average iOS game ranges somewhere from offensive to actively malicious. Obviously, there are many counterexamples. But if you're evaluating this game from the perspective of is this a better choice than anything else on the App Store, given that I've already played Slay the Spire to exhaustion? , the answer is an emphatic yes. Hmm.

0 views
Justin Duke 1 months ago

Coffee and Cigarettes

The relative scarcity of anthology films contributes to an unease with their lack of narrative cohesion in much the same way someone reading a collection of short stories for the first time might get to the end and, in desperation and frustration, rapidly flip back through the pages as if to spot the technicolor threads binding each story together. The joy is in spinning the threads yourself, not spotting them! (That's not to suggest the through-lines in Coffee and Cigarettes are particularly subtle. Many are textual: as if the titular motifs and the various displays of vaguely anonymous cafés weren't enough, characters echo other characters' prior lines verbatim, perhaps most obviously and symbolically in the Nikola Tesla line — that the earth is a conductor of acoustical resonance .) Regardless of narrative structure, though, I found the film straightforwardly entertaining by the second or third segment, once I felt like I had really gotten used to its vibe. (The first segment in particular caught me off guard and suggested a much more surreal film than the ten which followed it.) And from then on out, I started to understand this film to be an exploration — both earnest and comedic — of the ways people try to connect with one another, and the ways people try to seek refuge in consumption, and the overlap of those two things. I am surprised to discover that people think of this as a boring film, but perhaps that is my biases showing. Most scenes are, to re-use a parallel, like a well-crafted short story: exactly the right length to land the punches they wish to before departing. And I will remember this film more by its trees than its forest: the sheepish way Iggy Pop, after awkwardly dismissing Tom Waits despite their kindred spirit, reaches for a second cigarette, hoping no one catches him doing so; the shadows falling on Alfred Molina's face as he is finally and explicitly rejected by Steve Coogan, both of whom playing fictionalized versions of themselves to great effect; the angelic notes of Janet Baker summoned as if to suggest a bright and beckoning afterlife awaiting the protagonists of the final segment, who, pretending for sport that their coffee is champagne, takes one last celebratory sip.

0 views
Justin Duke 1 months ago

Fable 5.1

Anthropic released Fable 5.1 this week. My initial reaction to the release was this comment I made in the Third South Slack: More seriously: I'm excited to see the reduced cost, but have a very hazy time of describing the shape of work that Fable 5 was unable to complete, which is not to say that it didn't exist, but that it's hard to even conceptualize a step function improvement because the line between "LLM can do this" and "LLM cannot" feels so amorphous. I suspect their lack of concrete examples here is proof that this is a broader issue. Later that afternoon, I fired up 5.1 in much the same way I had fired up Fable 5 for the past few weeks, both on Conductor and, an hour or so later, on the Claude Code webface. When I fired up the webface, it prompted me -- in a full-screen modal dialog -- to try out Fable 5.1, even though Anthropic had all the information it needed to know I had already tried it out. Then, later that evening, I wanted to look at one of the long-running tasks I had kicked off before leaving work. So I opened up Claude on my phone, at which point it announced -- in a full-screen modal dialog -- the release of Fable 5.1. The two options to dismiss this dialog were "try it now" and "maybe later." This little papercut is not novel in any sense: it's happened for every model release from Anthropic in recent memory, and is a common genre of problem across all sorts of applications. Anyway: Fable 5.1 seems good. It is faster and cheaper for the work I've used it for than Fable 5. And I am quite confident that someone could probably feed it the contents of this blog post and it would fix the issue I am whining about. But every time I hear a frontier lab employee mention that software engineering is a solved problem I pretend they say that cooking is a solved problem.

0 views
Justin Duke 1 months ago

The Man Who Knew Too Much

The Man Who Knew Too Much is a film of peaks and valleys. There is little argument that it is a good film; whether you place it amongst the highest of Hitchcock's work depends on just how much you value the stratospheric heights it reaches, and whether they overcompensate for the lulls. The film is never weak, but it is weak for Hitchcock in parts. Watching it for the first time, and knowing that it is a Hitchcock film, you feel as though you don't quite need all the foreshadowing and lampshading. As it progresses, you can't help but feel a sense of déjà vu with his other work — remarkable for this film as compared to the parts of his filmography not considered his absolute best. As a remake of his own 1934 work, and something relatively mid-career for him, it is very much him in his bag, doing what he does and what he is well known for. Compare this with, say, Family Plot , where your mileage largely depends on how willing you are to go along with him doing something much shaggier than usual. Put another way: this is the first Hitchcock film where I found myself not once, but twice , checking how much time was left in the movie and being surprised that there was so much still to go. But those dizzying heights. There is, crucially, the ability Hitchcock has to wring noteworthy performances from the Jimmy Stewarts of the world — to see something new and interesting in a face you have already seen so many times. I say this without consulting any of my prior notes, but my gut reaction was that this was my favorite Jimmy Stewart performance I have ever seen. He plays a man who fits perfectly the definition of fumbling . Hitchcock uses his frame for great gags, especially in the first act. But there are two scenes in particular where you see Jimmy Stewart as something an actor of his caliber is almost never shown as: a completely broken man. First, the close-up of him holding the corpse of a dying man, trying to process on many levels the mistakes and errors he has made over the past few days. And then a scene that is grotesque in many ways, but not unrealistic, when he coerces Doris Day — his wife, who must be said is consistently much smarter than him throughout the film — to take a fistful of tranquilizers before he delivers the news that their son has been kidnapped. For all the love I have for Cary Grant, he tends to have a certain problem in Hitchcock films of being too starkly charming in the scenes where terrible things have happened to him. Jimmy Stewart crumbles, and stays crumbled, until the very end. And then, of course, there is the VistaVision and the scene work. I am not smart or well versed enough to talk about the technology and how Hitchcock used it, but the aesthetics are perfect and gorgeous. He relies a lot on static shots, especially when we are first introduced to Marrakesh, that — like a discordant note held for slightly too long — usefully upset the viewer. But where I must end this review is, I imagine, with the set piece that most people think about when they think about this film: Albert Hall. Five minutes of opera and those aforementioned static shots, not a single line of dialogue, but stress building and building and building — for me, it is indelible, and so powerful that even after I forget the silly international spy bits, I know I will remember it for years to come. I think this is correctly placed in the mid-tier of Hitchcock's canon. His best films are tauter and have more things to say, tauter and carry more opinions than this one does. But a middle-tier Hitchcock film is still a very good film. And if I got to watch something this good every evening for years to come, I would consider myself a very lucky filmgoer. 8 out of 10. One last thing: Doris Day was great. The script did not really give her much to display any sort of range, despite the character herself being very competent and capable and, again, much smarter than Jimmy Stewart's — but there's just not a lot for her to do. 1 Honestly, the same could be said of Jimmy Stewart's character, and to a certain extent that's why parts of the film drag as much as they do: you get the sense that our protagonists are, up until that Albert Hall scene, passive observers more than they are agents of the action. Not a sin in and of itself, but it exacerbates the drag in the middle of the film, because everyone is just going through the motions. But Day's performance in that tranquilizer scene is unimpeachable — and, as with Jimmy Stewart, not something you're used to seeing from an actress of her stature.

0 views
Justin Duke 1 months ago

Wet Hot American Summer

It feels like a long-standing embarrassment that I had never seen Wet Hot American Summer . And the longer I put it off, the harder it became to watch — like an undergrad paper already past its deadline. It wasn't even a worry that I wouldn't like it, but a sense that everything the movie had to offer I had already consumed in some other form or fashion, in the various spiritual sequels and films its stars went off to make. I was wrong, obviously, and I loved it. I loved it in much the same way I loved They Came Together , which is essentially the same film with a slightly different cast. Where They Came Together skewered rom-coms, this one makes fun of teen movies. These films are not well-reviewed in the same way a particularly good episode of Saturday Night Live in its heyday would not be well-reviewed: part of the appeal is vibes and volume. It is easy, perhaps, to focus too much on the jokes that don't land, as opposed to the ones that do. For my part, what the movie feels like is a warm hug. And in a strange way, it gives me the sense of having already watched it many times — this first viewing being the latest in an ongoing series. Not because the jokes are stale (though, having spent enough time internalizing the UCB extended universe, you could certainly make that accusation) but because it feels comfortable . Obviously it is fun to note, as many people do when discussing the film in retrospect, how many incredible stars — or if not stars, then guys — are jammed in here. But I'll avoid saying too much about them, because I don't have much to add that hasn't already been covered at length. I do want to give specific accolades to the children, who managed, in scene after scene, to just absolutely nail the assignment. This is not easy work, honestly. A version of this film in which the child actors drag down the whole thing is not far-fetched. Is this the greatest comedy movie ever? No, obviously not. But it might be the one, in some small way, that I'm most grateful for — both as a kind of beachhead for a bunch of very talented people to go on and do other things, and as a sort of rallying flag around which people can organize.

0 views
Justin Duke 2 months ago

Near to the Wild Heart

Two friends, upon learning that I wanted to get into Clarice Lispector, advised me not to start with Near to the Wild Heart . Having now finished the book, I think I understand why. The two parallels that come to mind — less in terms of style and message than in terms of how one situates the prose — are Murakami and Woolf. Murakami is, to be clear, the much less stylistically successful of the two. But like Murakami, Lispector's work has been treated with a sense of otherness — not as a method of denigrating it, but to suggest that it sits outside its country's literary tradition. And while you can make a compelling argument that Murakami taps into a distinctly Japanese sense of alienation and ennui in the modern era — and, moreover, that much of his earlier writing is explicitly political — Lispector here is ethereal, barely attempting to give any hint or indication of where and how her protagonists live. Part of this otherness — the sense of the story being completely untethered to any semblance of setting — serves contemporary reading well, in this age of autofiction and, for lack of a better term, idealistic narcissism. There is hardly a hint of whiplash going from Ben Lerner to Lispector. Woolf I evoke for a handful of reasons. First: like Lispector, Virginia Woolf is often praised backhandedly, under the umbrella of feminist literature, or feminist modernism. But Woolf's goals — say, in To the Lighthouse — are directly oppositional to Lispector's. The Lighthouse is an argument toward the permeability of consciousness and shared existence, conveyed with empathy and perspective. Woolf uses the frame of modernism to talk about shared experience , and this pattern forms a lineage in which I can find much of my favorite writing. (See also A.S. Byatt's Possession .) Lispector, conversely — at least in this book — is a solipsist. Her self-insert protagonist is the raison d'être of the entire prose, the sun about which every other character orbits. Any character not named Joana is given time and energy only insofar as they shed light on Joana. And the philosophy of the book — beyond its explicit cribbing of Spinoza — is an argument, if not quite in favor of this, then against the status quo that spawns it. All that aside: this book makes me more intrigued to read the Lispector of her later years, while considerably less excited at the prospect of having found an author I can spend the next decade absorbing. Her biggest asset on display is the prose. Even through translation, her writing is beautiful and serrated, while never being Rococo. And considering her age upon writing this — and this is where the Woolf comparisons begin to feel unfair — one gets the sense of a young master in full control of what she wants to say and how she wants to say it, but who unfortunately does not yet have much at all to say. One last note: the final chapter, a series of monologues from Joana, is indeed placeable among the highest echelons of modernism — beautiful and cryptic and self-indulgent all at once.

0 views
Justin Duke 2 months ago

Cursed knowledge

Nick pointed me towards Marcin who pointed me towards immich's list of cursed knowledge the other day, and it has already become a running joke in the Slack. Here is a baker's dozen of Buttondown's own cursed knowledge: 1 Yes, that's the joke. The Python library assigns the device family to every non-Mac desktop browser The HTML attribute only filters what the file-picker dialog shows you; drag-and-drop and clipboard paste bypass it entirely. Safari and Chrome re-serialize quoted CSS custom-property strings differently when you read them back via : Chrome keeps the single quotes, WebKit rewrites them to double quotes. Django emits a — which fails our CI — for any cache key over 250 bytes or containing a space or control character. Python's has no default timeout and will, given the opportunity, wait forever. SPF directives recursively chain DNS lookups against a hard cap of ten — exceed it and you get a , which can fail authentication for all of your mail. Outlook and Hotmail enforce mandatory TLS but serve a certificate chain rooting at DigiCert Global Root CA (G1) — a root that Ubuntu has since removed from its trust store. Django's tests whether the key exists , not whether its value is JSON . does not lock rows in the order you listed them — Postgres locks them in executor scan order, which is a wonderful way to deadlock two queries that both thought they were being careful. A postgres cannot exceed ~1MB. Stripe will send subscription update events for paused subscriptions. The Python library assigns the device family to every non-Mac desktop browser The HTML attribute only filters what the file-picker dialog shows you; drag-and-drop and clipboard paste bypass it entirely. Safari and Chrome re-serialize quoted CSS custom-property strings differently when you read them back via : Chrome keeps the single quotes, WebKit rewrites them to double quotes. Django emits a — which fails our CI — for any cache key over 250 bytes or containing a space or control character. Python's has no default timeout and will, given the opportunity, wait forever. SPF directives recursively chain DNS lookups against a hard cap of ten — exceed it and you get a , which can fail authentication for all of your mail. Outlook and Hotmail enforce mandatory TLS but serve a certificate chain rooting at DigiCert Global Root CA (G1) — a root that Ubuntu has since removed from its trust store. Django's tests whether the key exists , not whether its value is JSON . does not lock rows in the order you listed them — Postgres locks them in executor scan order, which is a wonderful way to deadlock two queries that both thought they were being careful. A postgres cannot exceed ~1MB. Stripe will send subscription update events for paused subscriptions.

0 views
Justin Duke 3 months ago

Two hundred decisions

This week, after a little under two years of having adopted the practice, Buttondown has minted its 200th decision log. This is a practice very similar to RFCs or ADRs, but I prefer the term decision because it's both A, used for a variety of non-engineering purposes, and B, sounds a little less lame. The practice itself is extremely simple and there is no catch. It goes something like the following: Our decisions range from the monumental-yet-concise: to the trivial-but-nuanced: It is objectively not a free lunch in that it does take time for you to sit down and explain concisely in prose why you are doing a thing and what the other options are. It was most of all the null hypothesis of simply not acting. But a cost which serves as a forcing function to write, I mostly think of as a reward at this point. The world is complex: with every patch of fog that lifts, I find four more in the distance. 1 Only very recently have I started to understand knowledge as a perception of fog rather than a dispelling of it. And so I am very careful not to prescribe these days, unless I am so overwhelmingly confident in the universality of a given prescription. This is one such thing: keep a decision log. (See also Oxide's public RFD system .) Decisions are any non-trivial choice made for a specific reason. The context behind a decision is very hard to retrieve after the fact and grows in difficulty over time. The ability to revisit this context and update, invalidate, or buttress it is extremely useful in a variety of reasons.

0 views
Justin Duke 4 months ago

Indeterminate / Squash

The hardest part of gardening is not correctly timing the seedling transfer, or deciding when a plant is a goner versus when it just needs one more week. The hardest part of gardening, at least for me, is resisting the urge to make cheap and facile metaphors. One example comes to mind from this weekend, when I was trellising a handful of truly overgrown cherry tomato plants. Cherry tomatoes are indeterminate, which means there's no size at which they stop growing and start to ripen. They're like mint, secretly — they will happily grow and grow and grow forever. The only thing stopping them, barring human intervention, is the comic rapidity with which they'll die: from blight, from dehydration, from sheer overextension — almost as quickly as they prospered, if not more so. There are a lot of ways to curtail this, and one of the things we do is trellis. We've got this very fun, K'nex-esque trellis system that acts as a kind of three-dimensional grid. The tricky bit is that you can't really set it up before you've set up the tomato; you build the trellis around the plant, carefully, using it as an opportunity to find which branches are in danger of touching the ground. It's a satisfying exercise in its own right. Often, when Haley and I tear down the tomato crop for the year, we'll sit for a minute and just look at our lovely little cityscape of green rods and connectors before we tear those down too and throw them in the bucket. Because as cool as they look, there's no real reason to keep them around in an empty bed. And of course structure is necessary but insufficient. So we did the things one does when tomatoes are overgrown. First, Lucy and I started with the two existential threats. Anything in danger of stooping down to touch the bare ground had to be either scaffolded immediately or mercifully pruned. Then came the work of trying to establish a sight line to the soil, which is a useful proxy for two things: airflow and sunlight. The plants had a couple of little yellow bits here and there, but no blight — nothing too serious. From there we moved on to the more qualitative work, and in doing so started to discover just how bountiful these couple of plants had been. I tried not to wince at every little tug Lucy gave at the root. Slowly and surely, the plants started to look less grisly, less insanely overgrown, until the garden resembled a garden and not a jungle — something I could show my mother-in-law with pride and not fear. And finally, at the end of this week-long journey — every morning Lucy waking up with me, having a few eggs, and going outside before the humidity made the prospect unbearable — we discovered the very back of the garden, hidden and prospering all this time: a terrific squash plant, happy and beaming, its first fruit ready not to be plucked or picked but cut with one ginger motion. For the past three days, Lucy has refused to eat anything until she gets to go look at her squash. I do not like squash, and yet it appears it has now earned a permanent place in our harvest.

0 views
Justin Duke 4 months ago

The Man from Earth

One interesting thing about films, relative to — say — writing within video games, is the demarcation of amateurishness. (A description I don't mean to carry any moral valence.) The indie revival in games owes much, much of itself to the fact that games are a medium where polish and craftsmanship and production value can actively work against the core gameplay loop. Books, on the other hand, have such a fundamentally small gap between what we'd call unpolished, messy prose and avant-garde experimentalism that it becomes hard to apply the lens of quality at all. One of the joys of my recent cinema excursions has been getting to understand some of these mechanics — even when the films themselves aren't particularly successful. There's Vanya on 42nd Street , a film whose lack of production is literally part of the text, and which uses that fact to brilliant effect. And there's Mindwalk , a film forgotten to history, with interesting elements of its zeitgeist, that nonetheless conjures a dreamlike quality out of the graininess of its direction layered over the beauty of its landscapes. Somewhere in the middle of these sits The Man from Earth , which is probably best introduced through the lens of its screenwriter, Jerome Bixby — a quasi-famous science-fiction writer who did a lot of work on The Twilight Zone (as one might guess from the title) and the then-successful B-movie side of Hollywood; the film's executive producer is his son, and it is hard not to think of this as more of an act of Asthi Visarjan than of genuine creative commitment. This is very much a five-act play captured on camera rather than a work built for the medium. The entire action takes place in a single remote house, and unlike the aforementioned Vanya it is filled with actors you've never heard of performing, by and large, very poorly. The music is bad; the lighting is bad. 1 And yet, for a certain type of person — i.e. myself, and perhaps you as well — this will be a movie you cannot tear yourself away from, even as it grows more and more absurd. The conceit of the exercise is very simple: the central character reveals himself to be a man who is (for the sake of this essay) immortal, then he invites his colleagues — a coterie of university professors in various disciplines — to interrogate him and to challenge the veracity of his claim. That is the film, by and large: professors quizzing an immortal man on what he should or should not know and what he should or should not remember. If you think that is interesting, it may be worth watching; if you don't, turn away. As poor as every other part of the product is, the writing (not unlike the best of Bixby's Twilight Zone episodes) is arresting not for its clarity or beauty but because it forces you, however briefly, to completely eject yourself from your frame of reference. It's a really, really fun premise, delivered earnestly and intelligently. What is the difference between someone with a sufficiently encyclopedic memory and understanding of the world and someone who has actually lived it? You might think understand that this is suddenly a more relevant question than it has been. Where it becomes more entertaining but harder to recommend is in its attempts to introduce dramatic stakes. One of the characters does not believe John, and so first tries to bring in a psychology professor to commit him — or, failing that, to disprove him. The professor, it's revealed, has recently lost his wife; he pulls a gun on John, points it, and then relents. It's all a little boggling. And then a twin pair of revelations brings the whole thing to its most absurd. One: that John is Jesus Christ. Two: in the final scenes, that John is in fact the psychiatrist's father — having abandoned him long ago, owing to his policy of moving on every ten years to shift identities — a revelation after which John's son promptly dies of a heart attack. It's hard to describe such plotting as anything but insanity. And it's the point at which you begin to suspect that perhaps it isn't just a lack of budget that has made the film feel so shoddily crafted. And yet you can't look away. And I don't mean that in a train-wreck sense. There's a real nuance and depth and earnestness to the film's discussion of religion, of history, of all these things. It is not meant to shock. This is a film that has clearly been researched and considered deeply — made less as an act of entertainment than as an act of inquiry . And I have to admire those bets, and respect them. I think it's a film that many, many more people could enjoy than have. Especially right now, when the value of intelligence and experience feels increasingly slippery.

0 views
Justin Duke 4 months ago

Victory is a lossy compressor

The NBA's conference finals wrapped up this past week, and as a Heat fan and a Seattle émigré I was pleased with both results. Happy that the Cavs lost, because I still resent them for being the destination to which LeBron fled in 2014; happy that the Thunder lost, because fuck Howard Schultz. 1 For the uninitiated: Schultz, as owner, presided over the sale of the Seattle SuperSonics in 2006, which led directly to their relocation to Oklahoma City. The Thunder are, in a very real sense, the Sonics. I am not over it. Both losses were noteworthy. The Cavs were, after game three, safely assumed to be dead in the water — no NBA team has ever come back from a 3-0 deficit in the playoffs. Their head coach, JB Bickerstaff, infamously (yes, it can already be classified as infamous) claimed that from an analytics standpoint they were really up — that the underlying numbers had the series at a 2-2 coin flip they happened to be losing. The Thunder, last season's champions, were being discussed around the halfway mark as candidates for the greatest team of all time: whether they could break the all-time regular-season wins record, or, more humbly, be the team that finally snapped the league's eight-season no-repeat-champion streak. Those discussions promptly ended in December, when — in what turned out to be foreshadowing — the Spurs beat them three times in ten days. Even gods can bleed. Now the conversation has gone the other direction entirely: whether they should blow up their core three and pursue a win-now trade for Giannis, or some similarly older-but-better superstar. All of this is, in my opinion, kind of silly, by all parties involved. Bickerstaff should not have tried to invoke the spirit of Pythagorean victories to motivate his team or deflect criticism about their dire straits. And yet — it's not like he was completely incorrect. In much the same way that, if you know with absolute certainty a coin is rigged to land heads 70% of the time, you shouldn't start betting tails just because tails came up the last three times. 2 Now, if it comes up tails ten times in a row, maybe that's a sign to reevaluate your threshold for "absolute certainty." And the discourse around the Thunder's prospects glosses over the fact that the second-best player on their team — and, during some stretches, arguably the fourth-best player on their team — were both out for the entire series. Which is a boring but plausible explanation for why they lost. (It should be noted that they lost in seven, and scored more total points than the Spurs across the span.) But the narrative of Wemby, the seven-foot-seven godkiller, has taken root. Let me be clear: the Knicks and the Spurs did win, and no number of hypothetical simulations changes or devalues that fact. But as soon as we turn the page onto next season, the nuances that led up to the result will grow hazier and dimmer and more nebulous, until recovering them requires archaeology rather than recall. The NBA is a league where we talk about rings, not net rating. Which is to say: victory, whether over the course of a single game or an entire season, is not a lagging metric assembled from the true granules of play-by-play data. It is the thing itself — the reified artifact. The banner, the line in the record book, the ring. And there is nothing wrong with this, in the same way that it is no crime that both PNGs and JPEGs exist. Victory is a lossy compressor: it takes the full, lossless record of a season and squeezes it down into something small and portable, discarding almost all of the granular detail in order to do so. It is enormously useful to be able to optimize for file size — for what travels, for what gets remembered. But it is not the only use. All of this is to say: I bring it up not just because I'm waiting for Zach Lowe to publish his Tuesday episode previewing the Knicks-Spurs series, but because in America sports are metonymous with many things, and one of those things is business. And I have found it far more revealing, in trying to understand a company that has — capital M, capital I — Made It, not to read their most recent batch of press releases, but to crank up the Wayback Machine and go look at the launches they shipped in 2018 that failed. The press release is the JPEG. The failures are the bits that got thrown away. If you want to understand how something actually won, you don't get to recall it — you have to decompress it, and the only way to recover what victory discarded is to dig.

0 views
Justin Duke 4 months ago

Back to Overcast

In what is certainly the least consequential update in this blog's history: I have boomeranged back from Apple Podcasts to Overcast. None of my gripes with Overcast have been fixed, or even assuaged. But paper cuts are less annoying than other forms of pain. If I really wanted to, I could sit down for thirty minutes and assemble a meaningful list of everything that bothers me about the first-party app — but instead I'll present only the two that are actually load-bearing. The first, and the trivial one: there is no easy way to search for episodes within a given podcast feed. I'm not talking about clever, fancy, transcription-based search — just searching by title. Apple Podcasts' search functionality has many oddities, but this one is bizarre, and it is crucial for me whenever I'm trying to dredge up an old episode. This probably reveals something idiosyncratic about my listening habits: there are very few podcasts I subscribe to — exactly one of them technical — that aren't evergreen. The second point is less about features and more about existential positioning. Compare the home screen for Apple Podcasts to the home screen for Overcast. One of these apps is designed with the primary goal of letting me listen to the podcasts to which I've subscribed. The other is designed with the primary goal of getting me to listen to a podcast to which I have not. I could make grand sweeping gestures about how this reflects various pricing models and success criteria — and maybe I'll do that in some future essay — but I actually don't care about the bigger picture. My point is narrower: Apple Podcasts pursues goals that result in a worse experience for me. And so I'm not back on Overcast out of any solidarity for a fellow independent developer, nor because of some vague, abstract sense of it being capital-B Better. I'm back on Overcast because I like it.

0 views
Justin Duke 4 months ago

Let Them All Talk

This was a film that I found, in some order, slight, confounding, sweet, clever, and — above all of these things — reaching but not yet grasping. It is interesting to me how little of a cultural footprint it has, given that it's a Soderbergh film starring, amongst other luminaries, Meryl Streep, Candice Bergen, and Lucas Hedges. Soderbergh appears to have exactly two speeds: perfectly crafted and honed, and hodgepodge. This film is in the latter camp. It is tempting, as other reviewers have done, to call it lighthearted — but it's not so much lighthearted as it is lightfooted . Watching each scene bleed into the next, with confounding but naturalistic plot developments unfolding in a quasi–Dogme 95 sense, contributes above all else to the feeling that you are watching a dream. My dreams are wistful and incoherent, and I wake from them happy to be back in the real world, yet already nostalgic for a place I can no longer revisit.

0 views
Justin Duke 4 months ago

Self-hosting our CI, three months later

A couple of folks have written in over the past month asking how my experiments in self-hosting GitHub Actions runners have held up. And three months seems like a reasonable amount of time to post a follow-up. I'll also treat this as a bit of a first draft for a longer engineering post on the Buttondown blog itself — so please write in if there's something you wish I'd covered here. The short version: the experiment graduated into the plan. That March post ended on a half-joking aside — "maybe we're just going to self-host the entire CI suite" — and, reader, we did. When I wrote that post back in March, I called out two things that were true at the time: Neither is quite true anymore, and — as you might expect — the way each stopped being true turns out to be somewhat commensal. Around a month or so ago, on a lark and the back of a Blacksmith incident, I decided to try running the entirety of CI on Pythia just to see what would happen. As is often the case, experiments are really just preludes to decisions; what seemed fairly promising — a 30% slowdown in performance on a quote-unquote hot server, but saving a hundred or so bucks a month in exchange — felt good enough to commit to. To put some numbers on it: that January Blacksmith bill was $300, and by the time I got around to this it had crept up toward $400 as the team merged more. The backend suite was the single fattest line item — around $100/month on its own. Moving it over was the last domino; our Blacksmith bill now rounds to zero. The 30% is less scary than it sounds in the body of an actual workday. The backend suite that used to go green in around six minutes on Blacksmith's 8-CPU runner now lands closer to eight. You notice it; you do not particularly care. The flip side is that it's very easy to unintentionally starve yourself. Just like in the initial post, we have five GitHub Actions runners running in parallel on a single box. This works well for our smaller jobs, which are IO-bound and don't really use multi-threading in any real capacity. But we do still have very big jobs, and poor Pythia suffers the consequences when we try to run three or so backend test jobs simultaneously. GitHub Actions helpfully provides a parameter, but it's a bit finicky to get working in exactly the right way, because it applies at an overall workflow level and not a job level. To enforce the concurrency I actually want, I'd have to isolate the backend tests into their own workflow. All of this is a very in-the-weeds way of saying: migrating the whole gestalt of our CI onto a dinky little box in my office has resulted in tiny amounts of pain that could probably go away if I spent an afternoon thinking really hard about the problem. And then there's the objection everyone reaches for first: you've put all of your CI behind a single point of failure, and that single point of failure is a box in your office. Which is true! But that single point of failure resides in my office, which — notably — is not the same thing as residing in my head. The total number of times I have had to bike over to the office and restart the server over the past 90 days has been exactly one.[^bike] [^bike]: It would be disingenuous not to also cop to the other time this happened — except that one doesn't count, because I was already at the office. But the fact that I've been able to save the team and myself almost $400 a month — with very, very little work, and no marginal cost — has been a bit of a revelation. I highly encourage you to spend an afternoon giving it a shot yourself. We were continuing to use Blacksmith for our heaviest suite of jobs — the backend test suite. We had touched essentially nothing since setting it up; it just ran.

0 views
Justin Duke 4 months ago

May, 2026

There are two mental models about work and fatigue which, like my brief dalliance with Roshe Runs, I have loved and outgrown: The first is the fungibility of fatigue. Also known as the spoon theory , 1 To be clear, my point is with the colloquial extension of spoon theory to able-bodied people like myself, and not the chronic illness context in which it was coined. it is roughly the notion that everything we do — from the mundane (brushing one's teeth, taking a shower) to the expensive (entering flow state for four hours of incident response) — carries some vaguely quantitative measure of toil, all of it drawn from a single reservoir over the course of the day. Like a wizard spending mana to cast spells at varying levels. This model, like all models, is useful insofar as it offers some bit of truth: for everyone there is an innate drain from everything we do, even the things we don't think of as draining, and both those numbers and the size of the central reservoir vary from person to person. The second is the idea that productive work is inherently toilsome in a way that consumptive work is not — a concept often espoused by Cal Newport, for example, generally as a kind of groundwork lemma, to then advocate against consumption in favor of productive work as a form of leisure. This, too, contains some scintilla of truth: on net, work that we would describe as productive does have characteristics distinct from work that we would describe as consumptive. But the dichotomy is fake, and with enough rigor can be made contradictory. I take quite a bit of pride in my approach to consumption; when I am watching a movie or reading a book it is the only thing receiving my attention, and I am often thinking very, very hard as I do so. And conversely, many bits of ostensibly productive work are without a doubt the easiest and most energizing parts of my day — fixing a quick bug, or cooking Lucy an omelette. The synthesis of these two anti-revelations is probably obvious, and perhaps one that you arrived at years before I did: energy is not a trivial thing, whether in the growing or in the reaping. May was filled with days in which I would happily and ably spend sixteen hours straight playing with Lucy and cleaning the house, then running a dozen errands, then reviewing a handful of PRs. And then suddenly it is 9pm, and for all the Café Bustelo in the world I cannot summon the energy to open Slack for the first time in twelve hours — not out of fear or dread of what may await me, but because in that moment a dozen hashtagged channels lit up and awaiting my attention feels akin to a text from my friend Colin asking whether I'd like to go on a quick eighteen-mile jog to shake the rust off. It took time to earn the comfort of hitting on Slack. Two years ago, as I have written , a couple of days away from the business meant a week of lost growth, meant a week of angry customers. Now: I spent a week away and came back to one of my lovely support folks genially informing me that everything had gone great, and that I should take more time logged off. 2 This conversation concluded with her daring me to stay logged out of her customer support tool forever — a dare which I happily accepted. Thanks, Anita. How do you relax when the things that once brought you energy now demand it? One way involves a very happy dog with a newly-repaired ACL and what is frankly the most disgusting tennis ball I have ever seen or felt, its entire surface smothered in a slime-like residue of slobber and dirt from the herb garden, followed by a night in which I go to bed at 9pm, arms sore and grateful, brain too empty to entertain any thought of the days ahead. I hope you had a lovely May. Mine was filled with rest and unanswered push notifications, and now it is time to spend a little bit of the former on a little bit of the latter. The first is the fungibility of fatigue. Also known as the spoon theory , 1 To be clear, my point is with the colloquial extension of spoon theory to able-bodied people like myself, and not the chronic illness context in which it was coined. it is roughly the notion that everything we do — from the mundane (brushing one's teeth, taking a shower) to the expensive (entering flow state for four hours of incident response) — carries some vaguely quantitative measure of toil, all of it drawn from a single reservoir over the course of the day. Like a wizard spending mana to cast spells at varying levels. This model, like all models, is useful insofar as it offers some bit of truth: for everyone there is an innate drain from everything we do, even the things we don't think of as draining, and both those numbers and the size of the central reservoir vary from person to person. The second is the idea that productive work is inherently toilsome in a way that consumptive work is not — a concept often espoused by Cal Newport, for example, generally as a kind of groundwork lemma, to then advocate against consumption in favor of productive work as a form of leisure. This, too, contains some scintilla of truth: on net, work that we would describe as productive does have characteristics distinct from work that we would describe as consumptive. But the dichotomy is fake, and with enough rigor can be made contradictory. I take quite a bit of pride in my approach to consumption; when I am watching a movie or reading a book it is the only thing receiving my attention, and I am often thinking very, very hard as I do so. And conversely, many bits of ostensibly productive work are without a doubt the easiest and most energizing parts of my day — fixing a quick bug, or cooking Lucy an omelette.

0 views
Justin Duke 4 months ago

The Best and the Brightest

I started this book on the recommendation of Scholar's Stage , who I would describe as one of the few deeply interesting and serious conservative historians on X, the Everything App — someone whose recommendations and commentary I find uniformly interesting. His was a rapturous recommendation, albeit one prefaced with a caveat: that the book is deeply liberal, to the point of some small amount of bias. As a leftist I didn't expect to have a problem with this except for the fact that I find the truly great works of non-fiction — those of Caro, or Tony Judt — to be non-ideological : not centrist, exactly, but focused on a discourse that cannot be reduced to one side of the political axis. (As an aside, I agree with Scholar's Stage that this kind of book is the new great American novel; I have waxed and waned online and offline about Caro's work long enough to make my opinion clear in that regard. The downside of this kind of book, however, can be worse than the downside of overwrought fiction. Most recently, I failed to make it through Nixonland for reasons along these lines: partisan, scattered, poorly researched, and above all else, incoherent.) The Best and the Brightest does not share this problem. First and foremost, this is clearly a well-researched book, full of individual reportage and fact-finding. And unlike Nixonland, it has a clear and specific thesis it aims to espouse. I think you could argue that the thesis — even if it's old hat by now, thanks to works like The Fog of War — is arguably non-partisan. The author spends much of his critique on Kennedy for being a centrist rather than the liberal he campaigned on. But that is more of an ancillary concern relative to the main one: that the centrism itself, rather than being inherently problematic, was indicative of Kennedy's lack of a coherent platform or ideal besides competence and intelligence. Where I find the book wanting — and where, around a third of the way through, I discovered that it was simply not my kind of book, nor did it live up to the admittedly lofty bar of works like Postwar and The Power Broker — is in its plotting and structure. Reading Caro sometimes feels like reading Will and Ariel Durant: slow and meticulous, but rewarding patience. The Best and the Brightest gives a sense, more than anything else, of unpleasant déjà vu. You are constantly bouncing between Eisenhower and Truman and Kennedy and LBJ, from the '40s into the '50s into the '60s, as the author redoubles and re-triples his points about fatalism and poor appointments and poor choices — often under the auspices of a micro-biography of an undersecretary or erstwhile diplomat. There are two things I appreciate about this book. One is that the author really does spend the time to capably and exhaustively illustrate the people in the room, transforming the Kennedy administration from a homogenous blob of former executives for Dow Chemical into a realistic, albeit samey, cast of characters with subtly competing agendas, ideologies, and win conditions. The second is that he successfully makes the point that there was not one single thing that caused Vietnam. It was a preponderance of own goals and blunders, all stemming from a couple of poor base assumptions during the early days of the Kennedy administration — assumptions that themselves had echoes in the final, waning days of the Eisenhower administration. But the book is slow and repetitive, and given its immense size and length, does not wield its heft to full advantage. All of this is to say: I'm happy for having read it. I do feel like I learned much — not just about the preconditions of the Vietnam War, but about the true inner workings of power within the executive branch. But I have to keep this book at arm's length from the glittering gems to which it might otherwise be compared.

0 views