Stephen Cagle

Menu

  • Home
  • Archives
  • About Me
  • RSS

A New Sketchbook

May 8, 2026

I picked up a Stillman & Birn 3.5" x 5.5"; small, pocketable, 48 pages.

The plan is to do 4 to 6 drawings a week. At that pace, the notebook fills in 8 to 12 weeks. When it's done, I'll post the best 3 here.

I'm motivated by what I see on /r/penandink, /r/urbansketchers, and to a limited degree /r/sketchdaily.

I'm trying to keep this low stakes. Most of what goes in won't be good, and that's fine. Quantity over quality. Let's make the first 5% of the 1000 that you throw away. Setting an alarm for July 3rd.

Read More »

The Minimalist Plague in Sci-Fi & Fantasy Covers

May 7, 2026

I'm befuddled by the growing trend of minimalist/abstract book covers within sci-fi and fantasy. Many of these covers give no indication at all to the content of the book.

What is going on?

A perusal of my local Barnes & Noble.

Admittedly, I don't have strong memories of the Culture series covers (except one with a chair on it ;] ), but these new ones are... I mean, I literally have no idea what this book is about from the cover. That is just absurd. These could be Winamp visualization plugins.

I suppose the Foundation cover is illustrating psychohistory? Or is it just vaguely supposed to look like an atom with it's orbits? Is it just a sort of association thing because ASIMOV's name kinda looks "atomic" in some way? What is this about?

I mean. I guess you have a sky. And I guess the sky looks deep. On the cover. Cool cool.

But Why?

Honestly, I don't know, and I would rather just complain than do any real research. I have some theories:

It is cheaper?

Maybe it just cost less to get a generic cover that looks like an e-vite to a small gallery showing? Are these being generated by AI? It occurs to me that maybe graphic designers are looking for work at this time (see AI), and that they are working at bottom basement prices relative to an artist?

They want something timeless?

Maybe by going minimalist, the publisher feels that they might be able to release a look-and-feel for a book that will better stand the test of time? The less detail provided, the less something can ever look dated, the less it can ever be out of style?

I'm not sure I buy this. I have a feeling that these will age just as poorly as, if not more poorly than, any other cover design.

Does it show better on mobile?

Maybe the new covers are being optimized for high visibility on mobile? They know people are unlikely to be in the actual bookstore looking at the book itself. They are probably choosing to purchase it on a mobile device? Maybe minimal detail helps with catching attention in some way? Higher contrast in general?

Aside: Other failure modes

I picked these 3 because I think it is an example of covers that are almost anti minimal, but that still fail. There is too much visual noise on the page, and none of it seems that important. I don't think I could associate any cover with any particular book of James S.A. Corey's Expanse series.

Older and Contemporary Good Covers

I picked this as an example of an older book cover that at least show some thought put into them.

You look at Anathem, and you say "Ah, this will be something about monkish people, maybe in a cloister or something?" It is such a minimal amount of information, but whenever I see this cover, even without the author or title, I will still associate it with Anathem. A cover should allow you to recognize the book without any wording on it. Tell me, can you visualize the cover to Hyperion without looking it up? What if I just showed you the image, would you be able to name the novel? I bet you are thinking of a Shrike overlooking a boat on a sea of grass. That is a good cover.

Finally, I wanted to pick from at least one contemporary well done cover.

Let's set the scene.

I'm walking through a bookstore. My sightline is sliding across a book. I see "Gideon The Ninth". What is this? Well, it looks like a woman in kinda "Day of the Dead" facepaint who is holding a sword surrounded by skellies. Oh, and she is wearing aviators. Ok, that looks pretty cool. I then scan down and read "Lesbian necromancers explore a haunted gothic palace in space!" Regardless of your taste, you immediately know the ideas, the setting, and probably can infer the vibe from just the cover and a small bit of text. This is a cover that sparks interest, that is immensely recognizable, and that does some job of conveying the content of the book.

Why are we giving this up?

Read More »

Self-Driving Is Closer Than You Think

May 6, 2026

Note: I'm going to genericize any product that lets you pay for a trip in a self-driving car as a "Waymo" for the purpose of this article. As of this writing, Waymo is a division of Alphabet (who also own Google). Although Waymo (the company owned by Alphabet) is clearly leading in self-driving in the US, I am using the term "Waymo" to talk generically about self-summoned self-driving vehicles.

Waymo logo

I think Waymo is going to become commonplace far faster than people anticipate. These are some quick thoughts I have on it that I would love to be challenged on.

Car Ownership is Already Unaffordable to Most

The average car in the US is currently $49,000. No US carmaker currently makes a car under $20,000. The average monthly car payment is $772 for new and $570 for used. There were 3 million repossessions and 10.5 million repossession assignments in 2025. This is a country of 350 million.

These numbers are just not sustainable. If your car is repossessed, you cannot get credit for the next car. You probably can't even afford to repair your other car. When these things happen, you have the cold calculus of either losing your job or figuring out some other way to get to work.

Given this, it is better to use a ride-sharing service and keep your job and benefits than to lose your job. I think American car companies are cannibalizing themselves by targeting the rich and those who aren't good at math by only offering luxury products ($70k trucks!).

They will drive people to try out and then acclimatize to self-driving at a rate that is far greater than our "open road" American mentality projects. We associate having our own car as "freedom" in the states, but those romantic notions will quickly fall to the side when you are worried about losing your health insurance.

There is a Growing Elderly Population

America is getting older. There will be more Americans over 65 than children under 18 by 2034 according to the Census Bureau. Many older people cannot (or do not want to) operate a motor vehicle. A Waymo or Uber is the only non-compromising option for getting around in much of the US. You can theoretically take the bus or some other public transit, but in much of the US this is not a great option for anyone who can afford otherwise. Waymos give the elderly the autonomy and flexibility that they want without requiring them to manually operate the vehicle.

I think autonomous vehicles will radically improve road efficiency

A vehicle that can go into self-driving mode (or autonomous directed driving mode) will be able to park a car with a density that only a skilled valet could usually perform. It will be able to avoid the "caterpillar" patterns in road congestion. It will never waste time by being distracted on its phone at the light. It will understand how and when to do a zipper merge... The list just goes on. Even low-level penetration of "polite, law-abiding" Waymos on the road will result in much easier traffic for the rest of us. It will mean that there will always be a car that is obeying the speed limit (which will effectively enforce the speed limit as the lead car). It will mean that some Waymo will end up stopping for the light rather than running the yellow.

I skeptically believe that autonomous vehicles are much safer

There is a huge marketing department attempting to convince you of the safety of self-driving. It is somewhat difficult to separate the PR from the truth. With that said, the apparent rate of self-driving accidents seems to be radically lower than average accident rates. As these become regulated and safety measurements come out at scale, it will eventually become evident that having a machine driver is substantially safer than an average human. This will probably result in legislation in multiple settings that encourage the adoption of self-driving for safety reasons (MADD, school dropoff/pickup zones, etc).

Seems that Young drivers don't value it the same

I am meeting more and more young (20-something year olds) who still do not have driver's licenses. Could just be sampling, but it seems like many younger people do not regard driving as the rite of passage that it once was.

Autonomous Driving is far Cheaper than Human Driving

A Waymo I-PACE is estimated to be around $120-150k. This cost will drop substantially in the future (it is just tech), but a human being will still need to draw some minimal wage to drive for Uber. I've heard that Waymos run for approximately 22 hours a day in some cases. A Waymo can be paid for over a full and entire day of work. No need for restrooms. No meal breaks. No sick days. No sleep. Nevermind the benefits and profit sharing that an Uber driver needs to exist.

I think the economics are such that Uber driving will disappear very quickly when they have to compete with Waymos. The real number is not only amortized vehicle cost, but taking the human out of the equation is going to be a huge savings on the cost in general.

There will be lots of competition

At this time, in the United States, Alphabet's Waymo has a substantial lead on all competitors in the self-driving ridesharing space. I hear that China also has impressive ridesharing as well, but it is very hard to get reliable verified news out of China. I think self-driving is immensely challenging, but I don't believe it is insurmountable. I think (Alphabet) Waymo's self-driving technology will be developed by competitors. When this happens the unit economics of offering a self-driving vehicle will just be irresistible. There are going to be a lot of providers offering really cheap self-driving services. Competition will lead to price wars.

Tesla just got a TX license in August. Zoox has launched commercially. Plus all these Chinese players.

Read More »

Babe: Pig in the City

May 5, 2026
Letterboxd

This film has some truly great setpieces, backgrounds, and design.

It is in no way as endearing or charming as the original film. But the thing I appreciated the most is that this is a reflection of the environment, not the pig! Babe is just as moral, kind, and good in this film as he is in the previous. He retains his quiet dignity and kindness (and perhaps even strengthens it) despite the wickedness of "The City".

I think "Paddington 2" may have taken inspiration from this film a bit. The main beats of the two plot are rather similar. Though the color scheme in this is closer to "City of Lost Children" or "Dark City".

It can be a little dark at times, and the city and its inhabitants are decidedly adult, but this only strengthens the moral character that Babe shows throughout the film.

Read More »

The Straight Story

April 25, 2026
Letterboxd

This feels like the American inverse of "Perfect Days".

The acting of the main characters is so unassumingly confident. No, that is the wrong word. It is so natural that it genuinely feels like you are watching a hidden camera of the journey. I am really impressed with both the skill of the actors as well as the eye of the director for capturing this.

The other thing is the simple way the story stops at moments to capture scenery, interactions, and humor. It is a movie that does not have anywhere to be at this moment, we will get there when we get there. The pacing somehow flows you into feeling like a ride along.

Finally, the color scheme on this film was just wonderful. I in no way have the words to express this correctly, but god, some of the yellows and reds and the contrast and the warmth... Beautiful.

Read More »

There Is No Antimemetics Division

qntm
April 21, 2026
There Is No Antimemetics Division cover

It is such a cool idea.

But dammit, it just does not make any sense when you think about it. Or, to my mind, it only makes sense when physical reality is in some way subordinate to consciousness or something (waves hands).

I think I understand that it is supposed to be in the same vibe as for instance the immense (horror?) of Cthulhu. Something that is so vast, so beyond mortal minds, that it can't actually be understood without causing madness. But we keep probing the edge of the antimeme. We keep prodding and boxing it in. We keep defining the negative space it occupies, which just makes it's existence (or ours) seem less and less believable.

I kept expecting there to be a explanation for how humanity keeps surviving these completely impossible scenarios. But as near as I understood, it was simply humanities plot armor at play. I found that deeply unsatisfying. I'm partially writing the review in the hopes that someone will correct me, will point out something I missed about what makes this story hold its form. If antimemes have been preying on the stuff of thought for all of eternity, how is it that humanity ever rose in the first place?

Read More »

Towers of Midnight (Wheel of Time, #13)

Robert Jordan
April 13, 2026
Towers of Midnight (Wheel of Time, #13) cover

Have you ever watched any of the latest "Fast & Furious" films? They are loud like this book is loud. There is so much more action, so many epic scenes, so many skin of our teeth moments. You become somewhat deafened by the cacophony of it all. Half of you appreciates that this is great cinematography (in book form), but the other half feels that it is all intense first order emotions. The emotions and plot devices are so big and bright that it becomes less clear whether any of these characters have background thoughts or feelings. It is so saturated that subtlety or detail become washed out.

I hope that someday we might see the extensive notes left by Jordan to Sanderson. I'm interested in understanding how Jordan initially thought this was going to fit in one final book. I'd also appreciate understanding what Sanderson kept, what he revised, and what he invented in the later books. I'd also very much appreciate knowing if Sanderson would rewrite certain parts of his own work? What parts did he think he nailed, what parts did he wish he did differently?

I'm not putting this very well. I lack the skill to even put it clearly, but there is just something subtly wrong about this book. It is the most peculiar feeling. Objectively, I feel that I should like it. It is punchy. Fast paced. Has regular setups and payouts. It is good.

I think my dissatisfaction stems from a feeling that this series has switched from a sort of study of characters to an almost visual medium. It took the characters I love and it skillfully marionetted them in ways that are similar, but not quite the same as the characters I knew. Almost feels like the characters have been elided (archetyped?) into their core characteristics; soft edged Playmobile versions of the characters they once were.

I wish that Sanderson could have been Jordan's editor for Jordan's last few books. Sanderson has the raw skill and discipline to keep things moving, the theory of mind to recognize flagging attention or exhaustion in the reader. That might have significantly raised the quality of some of Jordan's later books as well as made the switch to the Sanderson books a less jarring transition.

Read More »

Little Dorrit

March 29, 2026
Letterboxd

So, evidently the BBC released this as 14 episodes where the first and last episodes are 60 minutes and the rest are 30 (60, 30*12, 60). Somehow though, the version I watched was condensed down to 8 episodes of 53 minutes each. So, by my math, some things must have been cut (possibly re-arranged) to make this kind of work out. I don't know, the whole thing is just deeply complicated, why would you remix the original series anyway?

The story itself was kind of ridiculous. Dickens wrote most of this stuff in serial form, and it kind of shows. The ending is... a bit unexpected. It was well acted and well produced, but the pacing is absurd. I also don't know if it is just this rendition or the original source material, but it is very uneven. Some characters are given half an episode, and then are never heard of again. Sometimes they mention characters late in the series that we have never heard mention before. It is just odd. I would say that the choice of how to cut up this material was (maybe) the most serious failure of this series.

Still, it was actually quite enjoyable. We had to pause several times per episode to talk our way through characters and their relationships, as well as make our future predictions about who was what to whom. Imagine what this felt like in serial form, as people waited for the next part of the series. It must have been all people talked about around the water cooler.

Read More »

Vibecoding a Whole App

March 25, 2026

I created BoltRead as a 100% vibecoded app (I've never even looked at the code). The following is a personal retrospective on how this app development felt relative to other LLM assisted development I have done.

I have tried vibe coding in at least 3 different ways.

Specs as far as the eye can see

At first I wrote a system that had specs (markdown files) where there is a 1 to 1 mapping between each spec to a matching python module. I only ever edited the spec, treating the code itself as opaque. It kind of worked, though I realized how distinct the difference between a spec that communicates intent and a spec that specifies detail really is. I had a nagging suspicion that the amount of code necessary to properly spec software may be greater than or equal to the actual cost of writing the software itself. So what am I doing here?

Mental Health: Not Great, Bob (Tedious) (I am a PM now)

Productivity: 2x un-augmented productivity (these are guesses)?

Bicyle of the mind

From this, I felt that maybe I need to stay closer to the code. I decided to use the LLM as an assistant that only helps with filling in boring functions, doing research, remembering libraries for me, or just acting as a rubber ducky. I basically called Clauade from within emacs, having contextual conversations with the LLM about the code I was writing. This worked (though I never wrote anything more then small snippets of Elisp with it). I did do more active and engaged learning doing things this way, though I suspect that I was actually moving slower than I theoretically could have.

Mental Health: Actually, quite fun. Probably the most fun I have had with an LLM only partner.

Productivity: 1.2x un-augmented productivity (progress is slower, but understanding is greater)?

Jesus Claude, take the wheel

I'm currently experimenting with a 100% vibe coded project https://boltread.com. I drive it through interaction on the terminal, letting it create "specs" that act more as records of decisions than actual specs (like writing your test after you write the code). I find the temptation to get out of the outside critic mode and into just looking at the code is quite strong. I have resisted it to date (I want to experiment with what it feels like to be a vibe coder who cannot program), to judge if I realistically need to be concerned about displacement of Software Engineering. I am trying to see it with the eyes of someone who cannot program. This approach to development is frustrating. Like many, I find getting something 80% right with an LLM is relatively easy, but the last 20% are exponentially challenging. The project seems to get closer and closer to what I want, but it is like shaping mud, you can put detail into something, but it won't stay that way over time; its sharp detail will be reduced to smooth curves as you switch to putting detail elsewhere. I am not 100% sure on how to deal with that issue. I know I could manually fix many of the issues I have with this project, but how do I then stop the project from rewriting that manual work at some future date?

Mental Health: Certainly better than spec driven development. It is like pair programming, but with a partner who does not really learn.

Productivity: 3x un-augmented productivity (partially reflects the improvement in models)?

Retrospective

My current thoughts is that we have failed to actually find a good way of switching from the "macro" (vibbed) to the "micro" (hand coded) process of LLM development. It's almost like we need modules (blast chambers?) for different parts of any software project. Where we can switch to doing things by hand (or at least with more intent) when necessary, and doing things by vibe when not. Striking a balance that nets the greater output is quite challenging, and it may not even be that there is an optimal intersection. I'm floating the belief that vibe coding may be a shortcut that moves development forward, but does so at the cost of future flexibility in the software. I wonder if there may be a future where software teams mix the notion of technical debt and vibe coding as being the same thing? A sort of realization that, yes, we can move faster with LLMs, but the cost of doing so may be that software will become more brittle and inflexible the more we "juice" our development with them. I wonder if there will be roving programmers who come into organizations and rewrite large parts of a system to match what the LLM is doing functionally, but do so in a way that actually reduces the incidental complexity of the sytem?

Of course, this is my view of LLM development with current models. It is always possible that future models will be capable of working without slowly (and sometimes quickly) making a mess of the system. We will see.

Read More »

Anthropic Performance Takehome Writeup

March 9, 2026

tldr; The transcript of my Claude conversation.

I did the Anthropic Original Performance Take Home on 2026-02-12 and succeeded in getting a runtime of 1157 cycles. I'm going to assume at this time (roughly a month later) that it is reasonable to talk about solutions to this problem. I am basically a startup-shaped programmer and have never needed to do any real performance programming, so I found this problem rather novel.

I'll start with a summary of what Claude says the optimizations were:

Tier 1: Order-of-magnitude wins

  • VLIW packing (1 slot/cycle to many slots/cycle): The baseline wastes ~95% of available slots. Just packing independent ops into the same cycle is probably the single biggest win, maybe 8-10x alone.
  • SIMD vectorization (scalar to VLEN=8): Another ~8x on the batch processing. Combined with VLIW packing, these two likely account for the bulk of 147,734 to ~2,000.
  • Loops with jumps (fully unrolled to looped): The baseline emits 16x256 = 4,096 copies of the loop body as separate instructions. Looping collapses this massively, both in instruction count and enabling the scheduler to pack across iterations.

Tier 2: Significant wins (100s of cycles each)

  • Wavefront batching tuning: n_batches=4 gave 1385, n_batches=16 gave 1157. That's ~228 cycles just from picking the right batch shape.
  • Scheduler parameter tuning (WAR weight sweep, VALU boost=-0.8): The final push from ~1353 to 1157, about 196 cycles / 14.5%.

Tier 3: Smaller refinements (10s of cycles each)

  • XOR fusion (1 VALU saved per group per round)
  • Depth-1 preloading (7 to 6 VALU per group)
  • Addr-in-idx, 4-way split addressing, build-time pointers: each chipped away a few cycles

The first three (VLIW + SIMD + loops) do ~99% of the work getting from 147K to ~1500. Everything else squeezes out the last 23% from ~1500 to 1157.

I am anthropomorphizing here, but I think this provides some guidance about what Claude regards as the major optimizations. I largely think this is correct, but it still somewhat surprises me; it reads more like an archaeological summary than a lived experience.

I was going to do a writeup of the optimizations I did. Honestly though, although it seemed exciting to me, it read as pretty boring when I wrote it down. I thought a bit and decided that it would be more interesting to just make a little one-page site that shows my interaction with Claude and how I got to 1157. I think this is actually much better than a "postmortem" on what I did, as it illustrates how to interact with an LLM and provides more direct guidance on what things resulted in bigger and smaller performance changes.

So, without further ado, here is my conversation with Claude to get me to 1157.

In summary, what was responsible for the largest improvement in performance? Judge for yourself with the transcript, but I think the actual biggest performance differentiators were three things (which Claude barely noted):

  1. Reading and understanding the code and removing the unneeded computation before doing anything else (I think we started at ~93k before doing VLIW and SIMD).
  2. Loading the hash into memory for lower rounds (0, 1, 2) so that it did not need to LOAD at all.
  3. Doing some slightly different computation on specific rounds that have specific characteristics.

Strictly speaking, it is true that the majority of the performance comes from VLIW and SIMD instruction packing. However, VLIW and SIMD are seriously hampered by LOAD instructions. Without some sort of optimization, the LOADs will be the limiting factor. You have to optimize away as many LOAD instructions as you can, and then do the packing in order to get the lower performance. It was fun!

Read More »

The Gathering Storm (The Wheel of Time, #12)

Robert Jordan
March 3, 2026
The Gathering Storm (The Wheel of Time, #12) cover

Entirely enjoyable, though still a little bittersweet. It would have been wrong to ask Sanderson to continue the "Wheel of Time" in Jordan's style. I appreciate the quickening of the pace and the different renderings of the characters.

It does feel different though.

I think the best way I can state it is that Jordan feels "Third Person, over the shoulder" while Sanderson is more "First Person" (that was a (weak) video game metaphor). Jordan's books almost feel like a work of historical fiction, where the author is attempting to be as accurate as possible, but maybe some of the details are lost to time and so he does not fill them in. Sanderson's feel more like a ride along on real time events. Jordan is like hearing about someone else from a third party, Sanderson's feel like I am actually present.

You would think that this would mean that I would like Sanderson much more as an author, but it is more complex than that. Jordan, in his distant voice, left me to fill in the details about what I felt and thought about the characters. Sanderson, fills in the internal mindset and thoughts of his characters more richly, and a wonderful intimacy and immediacy is gained in Sanderson's approach. However, something is also lost in making me judge someones less by their actions and more by their own headspace. I miss that from Jordan.

Read More »

Ghost in the Eshell

March 2, 2026

I have used emacs for ~20 years (currently using spacemacs). Although I am very familiar with it, I have never really plumbed its depths. My "under the hood" usage of emacs does not go much beyond writing a few lines for a function to do some very specific thing I want in my editor. I would say I am one of those emacs users who principally uses emacs not because of its power, but because of its dependability. I know that emacs will quickly (a few years at most) get every feature in every editor that survives the test of time. However, more importantly to me, while all those editors will likely be discarded as people lose interest, emacs will keep plodding on. The Lindy effect applied to editors.

With that said, I am not uninterested in getting better at emacs; I am just lazy! I recently hit upon the idea of embedding an LLM in my emacs. Giving an LLM access to my emacs allows the LLM itself to do two things that are kind of neat.

  1. It can literally look at open buffers and variables in my actual emacs session (really, anything accessible within emacs lisp).
  2. It can execute elisp code in my running editor.

Getting this working was surprisingly easy. I basically just spun up a VM and cloned spacemacs within it. I then copied my own .spacemacs file into said VM. I ssh into the VM myself and connect to emacs, with (emacs-server) being part of my startup script. On a separate terminal, I then ssh into the VM with Claude Code and have Claude interact with my (emacs-server) instance with emacsclient.

And we are done! I now have an emacs instance that Claude can fully inspect and interact with as I use it.

The first thing I did with my new (and very patient) friend was figure out exactly why I was seeing certain warnings and errors when starting emacs. These obviously were not breaking bugs, as I just ignored them previously. But it was really illuminating to have a very knowledgeable but unhurried guide to help me debug the problems. I'm not sure what I'll do next with it, but I think editors like emacs that are almost entirely introspectable will have somewhat of an advantage in an LLM assisted world.

Read More »

Anthropic Performance Takehome

February 17, 2026

I did the Anthropic Original Performance Take Home last Thursday and succeeded in getting a runtime of 1157 cycles. I basically focused on optimizing/pruning the actual instructions initially, and then passed a large set of instructions to an LLM to pack and bit twiddle the actual program. I used Claude Code exclusively as an LLM.

For reference, the best solution that an LLM alone is able to do was 1363 cycles, so this is a significant improvement. The github does not really mention an etiquette on when people should disclose solutions, so I will wait a while before revealing any details.

I mostly program in Clojure, a language that largely eschews any real concerns about performance in favor of making code simple. Clojurians are lax and hand wave log_32(N) data structures as being "constant", and mostly don't care about memory alignment or things of that nature. I think this is entirely the right set of tradeoffs for > 99.9% of use cases.

That is a digressive way of saying that most of this optimization stuff was new to me. I knew about it because I know CS fundamentals, data structures, and algorithms; but I have never concerned myself with it in reality. Probably the closest I ever come to being concerned about it is in optimizing view renderings to make UI's feel responsive and snappy to the user. But this sort of work feels different. It is such a well-defined problem space (make the number go down), and you are free to do any logically equivalent transformation to the program in your pursuit of that goal. It is something that is really easy to get "in the flow" when you do it, and I found myself in that state at many points while working on it. It was fun, and I enjoyed the opportunity.

Read More »

Jane Street Monthly Challenge (Subtiles 2)

February 15, 2026

I did this months Jane Street Puzzle with LLM assistance (my name is on the list). It took just a smidgen more than 2 hours.

About 25% of my time was spent just getting Claude to actually understand how to view the table. Vision models still don't seem good enough to make sense of tabular data (especially as an image). I had to hint it that the puzzle was 13x13, and that the example puzzle at the bottom was 5x5. Once it understood that I had to explicitly tell it to use imagemagic to cut the puzzle into cell sized images so that it could more accurately do OCR on the actual cell.

I won't mention how to solve it as I am not sure about the etiquet on when it is ok to talk about these puzzles, maybe I will update this section at a later time.

Anyway, I am just floored that you can solve something like this in 2 hours even with the parsing difficulties. I am certain that this is a great deal faster than I would have been able to solve it if I had to write the code myself. It is really interesting to instrument a solver like this so that you have a sense of how it is doing.

In my particular case, it did not seem like Claude would have necessarily solved the puzzle on its own. With that said, although I could have written the algorithms it used to solve this, there is simply no way I could have implemented a solution in 2 hours. Frankly, it writes code much more quickly and often more accurately than I do.

The only real advantage I have over the LLM is the wisdom of what we should do or how we should go about it, it is however better than me at the actual application of my own knowledge. It is interesting that it is an intelligence that knows how to do the output of a specified task, but lacks the judgement to specify the task itself. I find that seeming contradiction remarkable, I think it may point to just how alien this intelligence is compared to human intellect.

Read More »

Is LLM Code a Natural Monopoly?

February 10, 2026

I have done two small vibecoding projects recently, and after reviewing the code that was generated for both of them I am struck by a single thought... I've never seen (human) code like this!

I feel like LLMs tend to generate code that is locally good but has no coherent narrative or larger abstractions. It (mostly) gets the idea of encapsulating things in functions, but I almost feel like it does not even quite understand why it does that. It will create a 1 line functions. It will repeat a pattern 20 times in a file without bothering to make a function out of it. It will inline code that it explicitly wrote a function to handle, seemingly having forgotten that it did so. I have yet to see an LLM do any sort of architecture or design of a system. I have yet to see an LLM generate even a proto DSL of a problem domain. I have yet to see a LLM even recognize the desire to move up the tree of abstraction.

And yet, despite all this. It works sometimes!

Now, my philosophy is that working code beats ideal unrealized code any day of the week. However, there are a few things that make LLMs different than human beings in terms of the code artifacts that they generate.

  1. They have (almost) no taste.
  2. They don't seem to climb the abstraction tree.
  3. They are infinitely patient.
  4. They don't get bored or tired of repeating themselves.
  5. They can process a superhuman amount of text.

I'm reminded of a quote by our "Programmer-at-Arms" hero in "A Deepness in the Sky",

"Over thousands of years, the machine memories have been filled with programs that can help. But like Brent says, many of those programs are lies, all of them are buggy, and only the top-level ones are precisely appropriate for our needs."

Not a perfect similarity, but I think this may end up being what software in general looks like if LLMs are allowed to write most of it. It will be literally just.. so... much... stuff. It will be impossible for anyone to make sense of; confined as we are by our puny attention, retention, and tendency to boredom. I am not actually convinced that this LLM generated code will be any better than what a skilled human could have written in external functionality, but it will be much more complex in internal complexity than any human being would be able to deal with. Perhaps, we could someday make an LLM with an internal sense of distate for ugliness, with a desire (pride?) to write artful code, with the capacity for boredom. But as it stands, I don't believe they have any of these capabilities.

Anyway, my only interesting point here is that once you start letting (current generation) LLMs write your code, you are going to end up in a potential situation where only LLMs can make any sense of your code. This sort of makes LLMs a natural monopoly, in the sense that they make code that is so human unparsable that they necessitate using other LLMs to make sense of their own work. LLMs may displace programmers literally because they write code that only another LLM could reason about, not because they are genius, but simply because they are tireless.

Read More »

No Other Choice

February 8, 2026
Letterboxd

The film itself is great, I just don't care for the characters.

The problem is I kind of know this guys shtick. I know that he likes characters that resort or revolve around murder; he just loves the idea. I just don't take any real pleasure watching characters explore "dark impulses" that much, I find it kinda boring.

It kind of frustrates me, as I can clearly see that he has the skill to make other genres into great films, but he is always obsessed with exploring things from a "dark psyche" mode. I guess I respect the fact that he just has a thing he seems to like and he will always explore it, but it just isn't that interesting to me.

Read More »

Shelter

February 6, 2026
Letterboxd

This is no beekeeper.

My main issue with this is the sound design was weak and the action just lacked kinetic energy. It tried to kind of do the nightclub scene from collateral, but just wasn't up to it.

I'd say the biggest miss here is that no one acted as the straight man in our two main character's relationship. It might have been slightly more interesting if the young girl gets to act as a proxy for the audience, commenting on the insanity of the situation or the violence, but she is just oddly quite when not being addressed.

Read More »

Train Dreams

February 4, 2026
Letterboxd

I think I may have overhyped this in my head upon seeing the preview, but I still enjoyed it. It was good, but it was kind of more of a reflection on Enlightenment than Grace, and I though this might be a film about the later.

I really want to support small vignette stories like this. Some of the scenery was great.

Read More »

Hiero's Journey (Hiero, #1)

Sterling E. Lanier
February 2, 2026
Hiero's Journey (Hiero, #1) cover

If you told me this was one player's attempt to make a single work of fiction out of a few year D&D campaign, I would completely believe you.

I'm not sure why it kind of works honestly. Perhaps it is just that it is so earnest and unabashedly straightforward in its definition of good vs evil? In the plot driving power of radiation and the mutations they engender? In the "hidden powers" of the human mind (very 1970s)? It is just so... unabashedly silly and yet genuine at the same time.

Read More »

Vibe Coding a Warhammer 40k item wiki

January 30, 2026

My childhood gaming group has been playing (but has not completed) Warhammer 40k: Rogue Trader.

We noticed that the items mentioned on public facing wikis often seem outdated or just incorrect. So two of us, Warren and myself, decided to see if we could use a free weekend to vibecode a wiki derived directly from the game.

In total, it took us about 5 hours to put together our own item wiki almost entirely through vibecoding.

The meat of the problem was getting the item database from the game. As a starting point, we just scanned through the list of files and found a rather likely "blueprint" file (.jbp). A blueprint file is a JSON file that lists all the in game assets, looking at it in a hex editor it seemed like a good place to start.

Now, I was convinced that we needed to write a parser to parse this file, put together the uuids to actual art assets, and then go from there. We spent about 30 minutes on that. However, Warren thought it might actually be easier to write a mod using their mod tools that would allow us to parse the running game itself. We were not sure which approach would actually be better, so initially I walked down the path of the parser and he walked down the path of the mod.

At some point, he got the mod to at least install correctly. I am eliding over a huge number of times that he basically made some changes to the mod, reloaded the game, and then attempted to load the mod in the game. But it eventually worked! This was a real win as we discovered that 40KRT is a Unity game written in C#. This is wonderful as it means that we can use introspection on most objects. Now I don't really get how the [namespace|object graph|whatever] system in C# actually works, but it allowed us to ask for all the objects at root and then recursively walk down the object graph. There was some confusion about getting the references in objects as we kept getting empty caches, but we did some sort of thing that forced them to be realized (I forgot how), and then we had a tree of all the objects in the system. We then added an http server to our mod so that we could make restful request to our running server from our LLM, which certainly helped in walking the tree (both for us and for it). We then had the LLM just poke around until it found what looked like the items. It was able to capture the items and then we wrote it into a giant json file.

Concurrently, we built a site that actually hosts this data. I remember once reading about mcmaster.com and how their site is legendarily fast because they just put everything in a single file. So we did the same thing for our site. You just download the "large" (185k compressed) items.json file at load, and then every interaction (search, filter, ordering) you do afterwards is just client side. You do of course load images dynamically as needed, but I am still impressed by how often the "just give them everything at the start" philosophy of web development works.

The final section was taking the texture data for the items and projecting them (I am not clear on all this) so that we could view them as images. I then looped it all together to include the images in the site.

I was impressed that we were able to build a working item wiki of a video game based on "live" (running game) information in just half a working day. As an observation, I think that with LLM assisted coding, having a diverse team may be more important than ever. Part of the reason we were able to accomplish what we did is that we both are rather different types of programmers (I am web/CRUD/startups, he is computer graphics). The fact that we had different ideas about how to do different things was actually quite beneficial, as experimentation is cheap when you are using vibecoding, and the LLM is tireless in trying out different paths. LLMs do have endurance, but they don't have much taste. Pairing LLMs with a group of people with "reified" (though perhaps divergent) sensibilities allows for the pairing of their infinite endurance with humans' earned experience. It was fun!

Read More »

Knife of Dreams (The Wheel of Time, #11)

Robert Jordan
January 3, 2026
Knife of Dreams (The Wheel of Time, #11) cover

Ok, not really 5 stars (I rate that as "nothing could be improved", and this isn't perfect), but 5 stars if you have been following along and largely enjoying the series.

The last 2 books have been a bit rough in my mind. I was simply floored by just how little happened in the previous book. Contrasted with this book, which had so many great scenes... it is just weird. I wish he had largely elided the previous book and just combined it into it's two adjacent books.... Anyway.

This book is just so many great scenes. I am just reiterating them form myself so I remember

Nynaeve & Lan


My name is Nynaeve ti al'Meara Mandragoran. The message I want sent is this. My husband rides from World's End toward Tarwin's Gap, toward Tarmon Gai'don. Will he ride alone?


So freaking great! You know he will never fly the Golden Crane on his own. You know that he is a great man that could lead but is honor bound not to. You trick him into taking the long route home, and you seed news of his coming to everyone on his way. Damn. She knows he is going to be furious with her, but she does it anyway because she loves him. Just. Freaking. Great.

Mat & Tuon

“Matrim Cauthon is my husband,”the High Lady said in a loud, clear voice. Everyone froze where they stood. “Matrim Cauthon is my husband.”
Karede felt as if Hartha had kicked him again. No, not Hartha. Aldazar. What madness was this? Cauthon looked like a man watching an arrow fly toward his face, knowing he had no chance to dodge.
“Bloody Matrim Cauthon is my husband. That is the wording you used, is it not?”


I mean, it is good that it finally happened. I never felt that strongly about Tuon and Mat, but I really enjoyed their sorta 1940's screwball comedy romance.

Perrin and Faile
Finally, this captive story is resolved. I mean, yes, it is tragic that he killed the man who in multiple situations saved Fail (though also abducted her in the first place). But honestly this whole thing was kind of a boring sidequest the entire time. I feel like this story was supposed to temper Perrin, who is largely more sensitive than either Matt or Rand. In that regard, I guess it succeeded (he cut off a guys hand), but it was just a little dull. Also, I just find Faile kind of annoying as a character. I remember telling someone more than 20 years ago that I thought she was going to die as a character (and I still don't know), but that may just reflect my exasperation with her.

Egwene gets accepted by a bunch of novices
Good for Egwene. I find the whole idea that the White Tower literally chose to keep her alive so preposterous that I am just whatever on her whole plot at this time. This whole arch feels a little on the "Yes Mr. Bond, but before I kill you, first let me tell you what I am trying to accomplish, and also give you plenty of time to potentially escape from this trap" level of plot line. I am just having a real hard time understanding why she wasn't just dissapeared, stilled, and killed. She is instead allowed to run around and become a possible martyr (or, to her credit, a coup-leader) in the actual white tower. It just... I try to make allowances for the will of the pattern sometimes. :]

Rand looses a hand
This was boneheaded move number 2 by Rand (admitedly, he is under pressure). But damn man, you literally walk into what is so obviously a trap. You have become so high strung that you literally have no one to rely upon. And you are so arrogant that you didn't just like, slow the role down so that you could wrestle the power before walking into obvious danger... Dude.

Taim reveals himself

"What would you have me say? Fair is fair? Equal shares? Accept 'very well' and ask who will let you bond them. Besides, you must remember the old saying. Let the lord of chaos rule." The chamber erupted with men's laughter.
Pevara had never heard any saying like that. The laughter made the hair on the back of her neck try to stand.


Ok, the setup and scene is kinda cliche. Feels like the end of a serial that is designed to get you to read the next one. But damn, I don't know why, it really hit pretty strong. It was actually a pretty great end to the book.


Anyway, having captured all that for my future self, my suggestion to you (if you ever need to re-read these), would be basically to just skip the previous book "Crossroads of Twilight" (read the online summaries) and go directly to this one.

This is peak Jordan.

Read More »

Avatar: Fire and Ash

December 29, 2025
Letterboxd

I left after the first act. Wasn't terrible, but I felt that I had effectively read the first 100 pages and decided I didn't want to finish this book.

Read More »

Sweet Silver Blues (Garrett P.I., #1)

Glen Cook
December 21, 2025
Sweet Silver Blues (Garrett P.I., #1) cover

It's interesting, because the actual physical detail (characters, surroundings, buildings, etc) are so bare that your mind's eye only visualizes the players most of the time. Kind of like one of those plays with no props, set pieces or character costumes. In a weird way, this let's you focus on just the personalities, without spending too much time thinking about the environment.

I appreciate this author's ability to add humor into most situations. Things go from harried to lethal, and yet throughout it all our author keeps the tone light, mostly through (verbal) quips and jabs, and to a lesser degree by the characters sort of having a fatalistic-but-we-are-never-going-to-give-up type ethos.

Read More »

Batman Returns

December 20, 2025
Letterboxd

It is just so dreadfully dark and dull. And the last act seems to last forever. I love the idea of focusing on the villains rather than batman, but although the acting is inspired, the actual character's core feels hollow.

Have to give it credit to the sound design for including the labored breathing of the Penguing though, that was inspired.

Read More »

Zootopia 2

December 19, 2025
Letterboxd

Disney is really scraping bottom here. The writing in this film is just bad. This remind me of late term Daniel Craig Bond films, where he just goes from one random setpiece to another because some flimsy evidence connects the two.

I think I (and I assume most of the audience) predicted basically the entire plot of this film in the first 5 minutes of it's runtime. Maybe they revealed too much in the trailer?

What are the major feelings I am supposed to take from this? She overcompensates and he has trouble showing his affection? Ok, so we have an adventure and then we literally state our weaknesses and our confessions to each other verbatim? This is storytelling?

Altogether just kinda dull.

Read More »

Next »

Copyright © 2026 Stephen Cagle

Powered by Cryogen | Free Website Template by Download Website Templates

×