Skip to content

Instantly share code, notes, and snippets.

@ivan
Last active July 13, 2026 03:18
Show Gist options
  • Select an option

  • Save ivan/a36e2489623469d96c1ad79077b6dcf9 to your computer and use it in GitHub Desktop.

Select an option

Save ivan/a36e2489623469d96c1ad79077b6dcf9 to your computer and use it in GitHub Desktop.
2024 reading list

Things I might read in 2024.

Now extended into 2025.



  • Antoine de Saint-Exupéry, Richard Howard (translator) - The Little Prince
  • (Translation by) Sam Hamill - Yellow River: Three Hundred Poems From the Chinese
  • Sayaka Murata, Ginny Tapley Takemori (translator) - Convenience Store Woman (via)
  • Jorge Luis Borges - Tlön, Uqbar, Orbis Tertius (in Labyrinths)/ printed (via)
  • Franz Kafka - The Metamorphosis (via)
  • William Olaf Stapledon - Star Maker/ audio, go to 12m35s to skip past the introduction spoilers

  • The Heart of Innovation: A Field Guide for Navigating to Authentic Demand/ audio (via)
  • Peter D. Kaufman - Poor Charlie's Almanack: The Wit and Wisdom of Charles T. Munger, Expanded Third Edition
  • Lia A. DiBello - Expertise in Business: Evolving with a Changing World (in The Oxford Handbook of Expertise) (via)
  • Joël Glenn Brenner - The Emperors of Chocolate: Inside the Secret World of Hershey and Mars
  • Elad Gil - High Growth Handbook/ audio
  • W. Edwards Deming - The New Economics for Industry, Government, Education/ audio
  • W. Edwards Deming - The New Economics for Industry, Government, Education/ the PDF or ebook
  • Henrik Karlsson - Escaping Flatland/ including the posts I SingleFile'd
  • the relevant-looking posts on benkuhn.net/posts
  • Commoncog Case Library Beta
  • Keith J. Cunningham - The Road Less Stupid: Advice from the Chairman of the Board/ audio
  • Keith J. Cunningham - The 4-Day MBA/ video
  • Cedric Chin's summary of 7 Powers
  • Akio Morita, Edwin M. Reingold, Mitsuko Shimomura - Made in Japan: Akio Morita and Sony
  • Nomad Investment Partnership Letters or redacted (via)
  • How to Lose Money in Derivatives: Examples From Hedge Funds and Bank Trading Departments
  • Brian Hayes - Infrastructure: A Guide to the Industrial Landscape
  • Accelerated Expertise (via)/ printed, "read Chapters 9-13 and skim everything else"
  • David J. Gerber - The Inventor's Dilemma (via Oxide and Friends)
  • Alex Komoroske - The Compendium / after I convert the Firebase export in code/websites/compendium-cards-data/db.json to a single HTML page
  • Rich Cohen - The Fish That Ate The Whale (via)
  • Bob Caspe - Entrepreneurial Action/ printed, skim for anything I don't know



Interactive fiction


unplanned notable things read


unplanned and abandoned

  • Ichiro Kishimi, Fumitake Koga - The Courage to Be Disliked/ audio
  • Matt Dinniman - Dungeon Crawler Carl/ audio
  • Charles Eisenstein - The More Beautiful World Our Hearts Know Is Possible/ audio
  • Geoff Smart - Who: The A Method for Hiring/ audio
  • Genki Kawamura - If Cats Disappeared from the World/ audio
  • Paul Stamets - Fantastic Fungi: How Mushrooms Can Heal, Shift Consciousness, and Save the Planet/ audio
  • Jefferson Fisher - The Next Conversation/ audio
@ivan

ivan commented Apr 2, 2026

Copy link
Copy Markdown
Author

These "AI rewrite" projects are beginning to grate on me.

Sure, if you have a complete test suite for a library or CLI tool, it is possible to prompt Claude Opus 4.6 such that it creates a 100% passing, "more performant", drop-in replacement. However, if the original package is in its training data, it's very likely to plagiarize the original source.

Also, who actually wants to use or maintain a large project that no one understands and that doesn't have a documented history of thoughtful architectural decisions and the context behind them?

A software project's source code and documentation are the empirical ground-truth encoding of a ton of decisions made by many individuals and teams -- decisions that need to be remembered, understood, and reconsidered in light of new information. AI has no ability to consider these types of decisions and their accompanying context, whether they are past, present, or future -- and is not really able to coherently communicate them in a way that can be trusted to be accurate.

That's why I can't and won't trust AI-only software beyond small one-off-type tools until AI gains two fundamentally new capabilities:

(1) logical reasoning that can weigh tradeoffs and make accountable decisions in terms of ground-truth principles accurately applied to present circumstances, and

(2) ability to update those ground-truth principles coherently and accurately based on new, experiential information -- this is real "learning"

https://news.ycombinator.com/item?id=47618827

@ivan

ivan commented Apr 7, 2026

Copy link
Copy Markdown
Author

Oura is BY FAR the most egregious of any app on my phone, sending nearly 10,000 trackers from various data brokers every single time I open the app.

https://old.reddit.com/r/ouraring/comments/1n41lpv/yes_i_have_concerns/

@ivan

ivan commented Apr 8, 2026

Copy link
Copy Markdown
Author

Let me start with noise is subjective, one person may not hear a thing and believe it to be silent whereas another may hear the exact same thing and consider it loud.

I keep seeing this question pop up over and over again then when I look in the comments there's still misinformation about side by side. Before answering some context would be helpful to understand why.

Beat frequency, an annoying periodic humming, occurs when two fans next to each other are running near the same constant speed. This happens in push-pull (radiators and cpu coolers) and SIDE-BY-SIDE (CASE FANS, radiators, etc) applications.

There is a Noctua NF-A12x25 two-pack that states the fans are +/- 50rpm to avoid beat frequency.

Why does the NF-A12x25 G2 PWM Sx2-PP have an rpm offset? The G2's have extremely precise speed control and when combined with their SupraTorque feature allowing for extra torque headroom to maintain an exact speed even when against resistance, their speeds are more likely to align together.

Also you may have seen fan specifications saying 2000 ± 10% RPM or 2000 ± 150 RPM, the fan's nominal rated speed with a tolerance. For example, sometimes when two identical fans running at 100% rpm, one may be 2000 rpm vs the other 2200 rpm. These fans have an rpm offset right out of the factory so beat frequency would be negligible. The G2's have a near 10 rpm tolerance, meaning 2000 rpm vs 2010 rpm so they are affected by beat frequency more than any other fan.

With such a tight tolerance is exactly why Noctua went with a technical solution for the G2's with an inherent rpm offset to eliminate beat frequency.

 I could get a 2-pack and a single and have all three at different frequencies or just load up 3 identical fans.

A 2-pack and a single may be good enough, the single will have an 25 rpm offset compared to the others out of the box. I'd suggest keeping the PP's together like PPA-PPB-Single so at least two fans have 50 rpm offset instead of PPA-Single-PPB with 25 rpm offsets on all. If you encounter beat frequency, you can put the single on another header and introduce your own offset.

3 identical fans, especially if they're G2's may have beat frequency. If you encounter beat frequency, you could daisy chain the top and bottom together and put the middle on it's own fan header for rpm offsets.

As stated in the beginning you may not be noise sensitive and may not hear a difference. However if you are noise sensitive, 50 rpm offset may not be enough, sometimes 100 rpm or 200 rpm is required to completely eliminate beat frequency which would mean creating your own rpm offsets.

Also curious how that works as I have all three fans on a single header and use FanControl to manage it. Does the offset apply in a way that FC is not aware of or will it override that?

FanControl/Bios only sees the rpm of the one fan with the 4th pwm pin, the other two fans are slaved and do not have this pin (3 pins). The offset is inherent and will continue to have an rpm offset at all times even when daisy chained. FC is not aware of the offset at all, as stated when 3 fans daisyed together it'll report the rpm of only the fan with the 4th pwm pin.

For example, if your setup is like PPA-PPB-Single and the single has the 4th pin then FC may show 1000 rpm from the single while the PPA is at 975 rpm and PPB is at 1025 rpm. If your setup is like PPA-PPB-Single and the PPA has the 4th pin then FC may show 1000 rpm from the PPA while the PPB is at 1050 rpm and the single is at 1025 rpm.

https://old.reddit.com/r/Noctua/comments/1onf1rc/sidebyside_config/

@ivan

ivan commented Apr 15, 2026

Copy link
Copy Markdown
Author

no i had no insider information. just an accurate world model

https://x.com/tenobrus/status/2041581331076018434

@ivan

ivan commented Apr 16, 2026

Copy link
Copy Markdown
Author

Does Yegge really think that building production software this way is a good idea?

Let's assume that managing context well is a problem and that this kind of orchestration solves it. But I see another problem with agents:

When designing a system or a component we have ideas that form invariants. Sometimes the invariant is big, like a certain grand architecture, and sometimes it's small, like the selection of a data structure. Eventually, though, you want to add a feature that clashes with that invariant. At that point there are usually three choices:

* Don't add the feature. The invariant is a useful simplifying principle and it's more important than the feature; it will pay dividends in other ways.

* Add the feature inelegantly or inefficiently on top of the invariant. Hey, not every feature has to be elegant or efficient.

* Go back and change the invariant. You've just learnt something new that you hadn't considered and puts things in a new light, and it turns out there's a better approach.

Often, only one of these is right. Usually, one of these is very, very wrong, and with bad consequences.

But picking among them isn't a matter of context. It's a matter of judgment and the models - not the harnesses - get this judgment wrong far too often (they go with what they know - the "average" of their training - or they just don't get it). So often, in fact, that mistakes quickly accumulate and compound, and after a few bad decisions like this the codebase is unsalvageable. Today's models are just not good enough (yet) to create a complete sustainable product on their own. You just can't trust them to make wise decisions. Study after study and experiement after experiment show this.

Now, perhaps we make better judgment calls because we have context that the agent doesn't. But we can't really dump everything we know, from facts to lessons, and that pertains to every abstraction layer of the software, into documents. Even if we could, today's models couldn't handle them. So even if it is a matter of context, it is not something that can be solved with better context management. Having an audit trail is nice, but not if it's a trail of one bad decision after another.

https://news.ycombinator.com/item?id=47619679

@ivan

ivan commented Apr 21, 2026

Copy link
Copy Markdown
Author

you can easily identify the people who were not involved in sports or extra curricular activities in middle school/high school when playing ranked

there are people who think they make no mistakes and talking to them is harassment, for them winning is just a coincidence of events going their way sometimes

https://x.com/dubbyOW/status/2046439897402106317

@ivan

ivan commented Apr 25, 2026

Copy link
Copy Markdown
Author

evergreen controversial opinion: it is good to care about the quality of your work

https://x.com/garybernhardt/status/2047931752132510013

@ivan

ivan commented May 5, 2026

Copy link
Copy Markdown
Author

get bodylastics bands, they have an inner cord that prevents the latex from snapping at you

https://old.reddit.com/r/ResistanceBand/comments/1inz6v1/how_sure_can_i_be_that_i_wont_get_injured_if_a/

@ivan

ivan commented May 31, 2026

Copy link
Copy Markdown
Author

I am not getting anything out of the meeting. I am learning nothing. Because there are no experiments, this field is not an active one, so few of the best men are doing work in it. The result is that there are hosts of dopes here and it is not good for my blood pressure: such inane things are said and seriously discussed here that I get into arguments outside the formal sessions (say, at lunch) whenever anyone asks me a question or starts to tell me about his “work” [...] There is great deal of “activity in the field” these days, but this “activity” is mainly in showing that the previous “activity” of somebody else resulted in an error or in nothing useful or in nothing promising. It is like a lot of worms trying to get out of a bottle by crawling all over each other.

https://meaningness.substack.com/p/why-i-left-academia-love-letters

@ivan

ivan commented Jun 5, 2026

Copy link
Copy Markdown
Author

Demanding everything be free and open source is important if you don't want independent developers to be able to make a living, and instead wish to create a world where the vast majority of software is controlled by big tech, who are the benefactors of "free" software. The less you're willing to pay people making good software, the more territory predatory ad/tracking-fueled "free" software gets. The more territory you give them, the more they're going to buy out open source software to destroy. We see this happening more and more recently, with uv, bun, vite etc. being bought out - if they can't put food on the table, they will sell out to monopolists.

https://news.ycombinator.com/item?id=48383667

@ivan

ivan commented Jun 13, 2026

Copy link
Copy Markdown
Author

The correct mood for art is a kind of loving misanthropy. There may be no use for art when we are as the angels. Comedy in particular is powered very deeply by cruelty.

https://x.com/BjarturTomas/status/2065657344042967059

Comedians tend to be uneven minds. The humor of whole minds is often a humor of minutia.

https://x.com/BjarturTomas/status/2065657586075177217

@ivan

ivan commented Jun 17, 2026

Copy link
Copy Markdown
Author

there isn't really any "prompt engineering" involved

You should make an experiment; take someone who never used any LLMs or agents, and tell them to use it for the first time in front of you, and tell them to build something like a calculator program or whatnot. Bonus points if they're ICs or at least not-managers.

I think there is a lot us engineers take for granted, when it comes to communicating via text, how to state things clearly and what we think/reason when we read things. A lot of people don't have those "skills" innate, and the first time they use LLMs, they basically don't know how to interact with them, until they realize what they're able to do and not. Then they also learn what to say to steer the model into the right way, this is quite literally a "prompt engineering" skill they're now learning.

You don't even have to go outside engineers. I have teammates that get very little out of Claude Code because the way they integrate their own knowledge doesn't allow them to think of what Claude might not know. They'd say a task was impossible with the tooling, and I'd get instant answers, because I understand what is weird internal business logic sitting 6 repos away, and what is knowledge claude has by default. I can commit Claude.md files for them, but I have to include EVERYTHING, because otherwise they'll let Claude make assumptions and waste minutes, if not hours.

It's a big part of what, in my experience, is separating the very good engineer from the iffy one: Do you have a good mental model, and can you put yourself in the shoes of people sitting in a different mental model? It makes you a better dev, and even more so when it comes to AI tools, which have their own kind of alien brain.

https://news.ycombinator.com/item?id=48553224

@ivan

ivan commented Jun 20, 2026

Copy link
Copy Markdown
Author

Assertions detect programmer errors. Unlike operating errors, which are expected and which must be handled, assertion failures are unexpected. The only correct way to handle corrupt code is to crash. Assertions downgrade catastrophic correctness bugs into liveness bugs. Assertions are a force multiplier for discovering bugs by fuzzing.

https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md

@ivan

ivan commented Jun 22, 2026

Copy link
Copy Markdown
Author

Not really. Software development includes a lot of soft skills, architectural decisions, processes, interpersonal things, working relationships with colleagues, things bare AI cannot (yet) cover. For personal projects - I either do a learning project with no AI or a fun quick project with AI. For work - it's just another tool.

https://old.reddit.com/r/rust/comments/1ubvauy/ai_is_making_me_want_to_quit_everything_related/?depth=99

@ivan

ivan commented Jun 22, 2026

Copy link
Copy Markdown
Author

It's not even close. The CEMU version is objectively the best way to play the game. Over any Switch emulator or the Switch 2.
All the mods (google BCML and check out gamebanana's CEMU BOTW page), graphic packs, reshade presets, the motion control support with any gamepad incl. Steam Deck, higher performance even at 4k... The ONE thing the Switch emulated version has going for it, a texture mod, is also entirely usable on PC with an unpacked game (the only caveat being some shrines may crash on load, so it's better to keep a vanilla dump for shrines if they do).

Otherwise, CEMU is so much better in every way. Switch also has mods, but they are far fewer and require more steps to set up and use BCML for.

https://old.reddit.com/r/cemu/comments/1ljqlrb/is_cemu_still_the_best_for_breath_of_the_wild/

@ivan

ivan commented Jun 24, 2026

Copy link
Copy Markdown
Author

If It's Worth Your Time To Lie, It's Worth My Time To Correct It

https://x.com/danwilliamsphil/status/2069712003464048777

@ivan

ivan commented Jul 3, 2026

Copy link
Copy Markdown
Author

My background is in embedded systems, specifically routers, in which bugs and unexpected operations happen from time to time, causing problems. In this environment, storage space is at a premium (most routers do not have hard drives, and only a limited amount of RAM and non-volatile flash memory), and devices are often deployed at remote sites with no operator at the console. Embedded devices are expected to function properly without human intervention, and crashes or other malfunctions are rare compared to interactive applications.

In this environment, when an error occurs, it is a good idea to record as much information as possible, because asking the operator to turn on extra event logging and then try to re-create the failure is only going to make the customer more angry ("my network has already broken once today, you want me to intentionally break it again?"). That one crash is the only chance you have to learn about the cause.

https://raw.githubusercontent.com/zooko/foolscap/refs/heads/master/doc/logging.xhtml

@ivan

ivan commented Jul 7, 2026

Copy link
Copy Markdown
Author

There's a huge case of survivorship bias when trying to recall historical analogues, because in every instance where margins collapsed and competition made the industry a commodity business, the big proprietary names are no longer with us. Here's a selection of examples, though:

1. Memory chip margins collapsed so much in the 80s that Intel exited the memory chip business entirely. At the time, they were known much more as a memory chip company than a microprocessor company.

2. Margins for high-end workstations collapsed in the face of cheaper IBM PC clones and an explosion of MS Windows software. This led directly to the deaths of SGI, Sun, Symbolics, Lucid, LMI, etc.

3. Proprietary UNIX variants like HP-UX, IRIX, AIX, and SCO Unix have basically completely died out, replaced by lower-cost proprietary OSes like Windows and MacOS, or by open-source descendants of Linux and BSD.

4. Many commercial database vendors like Oracle, dBase, Sybase, FoxPro, and Microsoft (SQL Server and Access) found themselves very much under margin pressure from PostGres, MySQL, and SQLite. Oracle survived thanks to their massive installed base and legal department, and Microsoft survived because they could cross-subsidize from their OS and Office monopolies, but dBase, Sybase, and FoxPro are no longer with us.

https://news.ycombinator.com/item?id=48809877

@ivan

ivan commented Jul 9, 2026

Copy link
Copy Markdown
Author

LLMs drive the unit cost of cognition to zero. Therefore, you will exhaust yourself near-instantly trying to drive differentiated value out of cognitive work. Non-arbitrable labor is one safe haven: bending steel, drilling wells, running cables, flying drones, etc. Physical agency gets you a premium the clankers can’t (yet?) trespass upon. That’s why guys building data centers are making bank & job-hopping while the SAs administering the computational guts of them are struggling. A second vector is reputational: either by authority (you’re a regulator) or by taste (you’re a rare/reknown specialist) you make quality attestations about cheaply-produced cognitive artifacts. The first vector is a big community; the second is not. Get out of being in a knife fight with the clankers on their own turf, they’ll gut you.

https://news.ycombinator.com/item?id=48839984

@ivan

ivan commented Jul 12, 2026

Copy link
Copy Markdown
Author

the triumphal afterglow of a successful slop project

https://catpranks.tv/posts/andrew-kelley-did-nothing-wrong/

@ivan

ivan commented Jul 13, 2026

Copy link
Copy Markdown
Author

I have never interacted with a more annoying entity, human or otherwise, than this thing. I hate it more than I have ever hated any human being. I hate that I am constantly, frantically typing away “chatting” with this fucking thing and that’s how I make my living now. I hate that if I choose not to talk to this obnoxious piece of shit that I will fall behind the rest of the people at my job because the baseline is now “chatting” with, wrangling, waiting for this smug, twee digital sex pest who I would never, ever desire to speak to in real life if it were a person. I hate when it says my name. I hate when it pretends to speak like an ensouled human instead of an arc welder with the incidental capacity for English. I hate the cynical, faux-precocious new elite that sits behind it and has shoved it into our lives. I only believe it will eliminate my job because I’ll have finally had enough and switched to digging for clams in the mud.

https://x.com/pneumic/status/2074662768175681857

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment