blog

What I'm thinking about

Welcome to my blog! This is mostly a link blog, where I share links to articles and websites that I would otherwise share with my IRL friends. From time to time, I also write my own posts and longer-form entries. You can also subscribe to this blog in an RSS feed reader.

Here are the topics I tend to cover. →


The Paradox of Persuasion


šŸ”— a linked post to mon0.substack.com » — originally shared here on

At a conference once, I vividly recall my supervisor—a brilliant mathematician—listening intently as a colleague presented his research, using every polished, TED-style public speaking technique imaginable. He leaned over and muttered to me: ā€œWe’re not in a theater.ā€

The impressive public speaking techniques that were meant to captivate the audience had the opposite effect on him. He could see right through them and suspected they might serve to obfuscate the true substance of the research being presented. I’ll admit, my own skepticism was rising as well. ā€œJust show me the model, the assumptions, and the theorems,ā€ I thought.

It’s a curious and sometimes jarring phenomenon that in mathematics departments, it’s often the least charismatic talks that get the most respect. If your research has merit, it’ll stand on its own, without the need for rhetorical flourishes or slick presentations. System 1 Jedi tricks will get you nowhere; mathematicians are trained in the dark arts of System 2.

Meanwhile, outside the math department, our social media feeds are overrun by System 1 masters who, for the first time in history, have quick and direct access to millions of minds. And it makes me wonder whether it’s a good thing that some of our best academics are ill-equipped to engage on a battlefield they haven’t been trained for. The quiet, unadorned pursuit of truth is noble, but in a world where the loudest voices often win, I can’t help but feel a twinge of unease. What happens when the guardians of reason can’t—or won’t—compete in a game where style often trumps substance?

Continue to the full article


Trick questions


šŸ”— a linked post to haleynahman.substack.com » — originally shared here on

I often forget my anxiety isn’t caused by a lack of answers to my swirl of questions, but the swirl itself. I frequently operate as if one more Google search will solve everything, circling around and around the internet, mercifully sedated by information I probably don’t need and will forget next week. Sometimes, I really do find the answer I’m looking for, and then I’ll stop, smug and satisfied. The problem with feeding the beast is it’s not the same as killing it. Soon enough, I’m hungry again.

In addition to being a great resource on how to feel like you've got enough, this article taught me a new term:

In Lauren Oyler’s essay about anxiety last week, she referenced a late 19th century diagnosis known as Americanitis, which described ā€œthe high-strung, nervous, active temperament of the American people.ā€ Whether incited by advances in technology (causing loss of sleep, excessive worry) or capitalism (causing long work days, fast pace of life), the result was, according to experts of the time, a rattled population unable to relax. A black mirror of the American dream, Americanitis took the same ideas favored by patriots and recast them as depressing. Here is the land of possibilities—so vast in scale you’ll forever be unsatisfied!

Are we all suffering from Americanitis?

Continue to the full article


A blog post is a very long and complex search query to find fascinating people and make them route interesting stuff to your inbox


šŸ”— a linked post to henrikkarlsson.xyz » — originally shared here on

You ask yourself: What would have made me jump off my chair if I had read it six months ago (or a week ago, or however fast you write)? If you have figured out something that made you ecstatic, this is what you should write. And you do not dumb it down, because you were not stupid six months ago, you just knew less. You also write with as much useful detail and beauty as you can muster, because that is what you would have wanted.

I’m not saying [what I wrote] was a great essay; I’m saying I would have loved it. The essay would have answered most of the questions I had, and it would have given me a new more complex understanding of language models that I could have used to get excited by even more obscure things. And because the internet is big, there were a few thousand people who felt the same way—and I felt really deeply for these people.

A search query doesn’t have to be a 5000-word effort post to work (though the internet does reward that amply). Anything that would have been useful to you sometime in the past will do. Alexey Guzey makes lists, half of which are made up of quotes, and they are incredibly useful and have been instrumental in reshaping his network so that he could start New Science. Most good Twitter accounts can be viewed in the same way.

Life's too short to spend your time worrying about how other people are gonna perceive your work.

Just go do the thing. Make your six-months-ago self proud.

Continue to the full article


The AI Vampire


šŸ”— a linked post to steve-yegge.medium.com » — originally shared here on

So I guess what I’m trying to say is, the new workday should be three to four hours. For everyone. It may involve 8 hours of hanging out with people. But not doing this crazy vampire thing the whole time. That will kill people.

As an individual developer, you need to fight the vampire yourself, when you’re all alone, with nobody pushing you but the AI itself. I think every single one of us needs to go touch grass, every day. Do something without AI. Close the computer. Go be a human.

I’m convinced that 3 to 4 hours is going to be the sweet spot for the new workday. Give people unlimited tokens, but only let people stare at reports and make decisions for short stretches. Assume that exhaustion is the norm. Building things with AI takes a lot of human energy.

I’m so glad somebody is saying this out loud.

Continue to the full article


How Generative and Agentic AI Shift Concern from Technical Debt to Cognitive Debt


šŸ”— a linked post to margaretstorey.com » — originally shared here on

But by weeks 7 or 8, one team hit a wall. They could no longer make even simple changes without breaking something unexpected. When I met with them, the team initially blamed technical debt: messy code, poor architecture, hurried implementations. But as we dug deeper, the real problem emerged: no one on the team could explain why certain design decisions had been made or how different parts of the system were supposed to work together. The code might have been messy, but the bigger issue was that the theory of the system, their shared understanding, had fragmented or disappeared entirely. They had accumulated cognitive debt faster than technical debt, and it paralyzed them.

A very appropriate piece for me right now (thanks for sharing it, Simon!).

I set off earlier this week to build an iOS music player. It seemed like an ambitious-enough project that would help me become a better agentic programmer, using an idea that interests me deeply yet I’d realistically never be able to tackle this on by myself.

What I learned was that the glitz and glamour of seeing tokens fly by and then seeing code materialize into existence is addicting. It feels like a slot machine: perhaps this spin will be the thing that eliminates the UI lag! … ope, nope, just ran completely out of tokens. Better upgrade to Max!

I also learned that I’ve been missing something in my life: the joy of making something. I remember seeing my Plex library show up on my iPhone inside the app for the first time. It reminded me of how it felt when I figured out how to change the Windows 95 ā€œIt is now safe to power off your computer.ā€ screen back in the day. I made the computer do that!

But yeah, cognitive debt.

I got the MVP up and working, but then attempted a refactor that left the whole codebase a giant goop of spaghetti. I wasn’t paying any attention to the architecture of the app, and pretty soon, I found myself with three different queues for storing media. Completely untenable slop.

So I’m gonna wipe the repo clean and start fresh. This time, I will be armed with a better plan. One that allows me to be more close to the action, one that keeps me focused and engaged with the architecture.

Let’s see how this goes.

Continue to the full article



Lunara Day 2

originally shared here on

I spent most of my day working on Lunara today.

Here's what the app can do now:

In addition to albums, you can browse by collection or by artist

Lunara's new collection view, showing the Current Vibes in all its gloryThe new artists viewAn updated albums view

I'm not a huge fan of the UI on this, but I'll fix it eventually. I do love being able to search by artist... damn probably should adjust that for the albums page too, eh?

There's a "now playing" screen that shows the songs that are up next in the queue

Lunara now playing screen showing a blink 182 albumLunara now playing screen showing a rezillos album

Tapping the album art loads the album details. Tapping a song in the upcoming queue jumps right to it. Tapping the artist loads the artist page. The colors for the view are dynamically chosen based on the album art. The title of the song scrolls in a marquee (more on that below).

There's an artist page

Lunara artists page showing the bethssame screen as above but scrolled to the bottom

The artist page shows the artist image, their biography from the Plex library, buttons to play all their albums in chronological order (or shuffle the songs from all of their albums), a list of the artist's genres, and then a list of their albums. It shows the album's artwork, the title, the release date, the run time of the album, and a star rating (if present).

Images and library metadata are cached so the app loads fast

Nothing visual here but still dope.

Added a startup screen

Lunara launch screen

I can only see this screen for about half a second, but the triangles in the background sure do render randomly every time it loads.

Continued to make the album detail page look dope

Album detail page

Like the "now playing" screen, the colors are dynamically generated based on the album art.


I can't overstate how much fun I'm having with this.

It's incredible how fast I am iterating on my ideas. For example: on the now playing screen, I wanted the title of the track to be a single line long, and if the title was too long, it would scroll back and forth. This feature likely would've taken me two or three days of experimentation to get it right. Codex took 6 minutes.

Yeah, I believe this will be my primary music player by the end of this week.


Up next:

  • Settings screen. I want to run A/B experiments in my app, and having a settings screen will let me enable flipper tags to toggle behavior.
  • Offline listening. We've already got a cache system for images and metadata, so this is the next logical step. I'll download music on the device and store it such that I won't need to stream it again.
  • Queue management. I want to be able to insert an album or track to the top of the queue. I'll also want look-ahead downloading such that the next 5 songs that are in an upcoming queue are downloaded to the device ahead of time.
  • Lock screen now playing and remote controls. I gotta be able to skip tracks from the lock screen.

Fine, I'll make my own music player!

originally shared here on

The most compelling use case I see for agentic programming is to enable home-cooked software on a scale like never before. As part of my burnout recovery, I noticed that I've been searching for years for a home-cooked meal I can sink my teeth into and build for myself.

I recently beta tested James Reeves' Spite. It's an exceptional, opinionated music player, targeted to fit James' vision for how he consumes music.

As I was playing around with it, it dawned on me: I could do this.

I have opinions. I have $20 per month. I have a decade of iOS development experience.

So I've decided I'm going to see how far I can push an agent to help me brew up a custom music player.

I'm calling it Lunara.

My requirements

I currently use Plexamp to achieve about 90% of what I would like to do with my music listening... but it's that 10% that I'm going to push on to see how weird I can make this app.

I want to build this in public.

I want to mostly use agentic tools. I'll drop into Xcode and help handle some of the quirks that LLMs can't handle yet, but for the most part, I'm gonna be hands off of the code itself. I will be more concerned about writing clear requirements up front, reviewing the unit tests that the agents will write, and dogfood the hell out of it.

The app will evolve to match my specific listening habits. As I outline in the project readme, I use Plex to manage my library. I've spent an embarrassing amount of time pruning my library, adding tags and high res album art and whatnot. I don't want to replace it; I want a new front end that integrates deeply with it.

I see my digital music garden as a large pool. I like to jump into my library and wade around, often hitting "shuffle" on my thousands of songs until something matches my current mood.

I never plan on releasing this thing to the App Store, by the way. If you want, you can absolutely download the repo and run it against your own Plex library. In fact, one of the dopest things that the agents have done so far is incorporate Plex's PIN login approach. I have a feeling I'll say this a lot, but I absolutely would not have gone that far had I been forced to write all of this myself.

Current progress

I've been obsessed with this idea for the last 24 hours. And in just 24 hours, I've been truly unbelievable progress.

Using gpt-5.2-codex-medium with the Codex app for macOS (since it gives me 2x tokens lol), here are a couple screenshots of what I've built:

This is the main page so far. It's a grid of album art. It's not very impressive, except for the fact that it's loading dynamically from an authenticated Plex session and none of this existed 24 hours ago.

Mobile app library screen showing a grid of music albums with cover art, titles, artists, and years, plus a Sign Out button


Here's the "album details" page. Again, nothing revolutionary yet... but isn't it cool?

Music app album screen showing Michael Jackson ā€œNumber Onesā€ cover art with track list including Don’t Stop ’til You Get Enough, Rock With You, Billie Jean, and Beat It


It also actually plays music from the library! Behold: Taco Grande in all it's glory.

Music app album details screen showing review text, genres Comedy/Spoken and Pop/Rock, rating 9.0, and currently playing track Taco Grande with progress bar

Next steps

I stayed up until midnight last night getting this far, and I'm afraid I'll get sucked into a deeper rabbit hole if I don't sign off for now. So here's my next steps:

  1. Offline media manager. I don't want to be streaming music across the internet if I can help it. I have a beefy drive on my phone, might as well use it.
  2. Queue manager. I want there to be a queue, should be able to insert albums into the bottom of the queue as needed.
  3. Now playing screen. I will mostly get close to what Plexamp does for a v1 but just need something in place for now.
  4. Caching artwork and library metadata. Right now, the app refreshes the library every time I launch the app. I don't update it that often, so I'd like it to do a one-time full sync of everything and then cache that.
  5. Hand-in-hand with that feature, I want to get a selective sync engine going which periodically detects and refreshes the local cache when there are changes remotely.
  6. Incorporate with the lock screen's now playing + remote control functionality.
  7. Get a basic settings screen in place.

Once that's done, I'm going to make this app my daily driver and go from there.

Okay if I don't just go to bed now I'll stay up for another six hours doing this. I haven't had this much fun on a computer in years. Even while writing this blog post I made some tweaks, like adding the track artist to its listing in the show album screen if it differs from the album artist.

Showing the current vol. 1 with track artists in the view


We mourn our craft


šŸ”— a linked post to nolanlawson.com » — originally shared here on

We’ll miss the feeling of holding code in our hands and molding it like clay in the caress of a master sculptor. We’ll miss the sleepless wrangling of some odd bug that eventually relents to the debugger at 2 AM. We’ll miss creating something we feel proud of, something true and right and good. We’ll miss the satisfaction of the artist’s signature at the bottom of the oil painting, the GitHub repo saying ā€œI made this.ā€

I don’t celebrate the new world, but I also don’t resist it. The sun rises, the sun sets, I orbit helplessly around it, and my protests can’t stop it. It doesn’t care; it continues its arc across the sky regardless, moving but unmoved.

If you would like to grieve, I invite you to grieve with me. We are the last of our kind, and those who follow us won’t understand our sorrow. Our craft, as we have practiced it, will end up like some blacksmith’s tool in an archeological dig, a curio for future generations. It cannot be helped, it is the nature of all things to pass to dust, and yet still we can mourn. Now is the time to mourn the passing of our craft.

Last night, I started work on a project I’m calling Lunara. It’s my own personal iOS client for my Plex music library.

I basically rattled off a whole bunch of wishlist items at an LLM and had it organize it into a README.

I decided my goals for the project are two-fold:

  1. Experiment mightily. Use unfamiliar technologies in a domain I am no longer actively being paid to be an expert in.
  2. Use the LLMs to teach me how to work with them.

So far, in perhaps 2 hours of work, I’ve got a shell of an app that can communicate with my Plex library. All it can do right now is list out the albums, but that would’ve taken me a week or two of diligent troubleshooting before having Codex.

These ā€œwoe is my craftā€ posts make sense to me when you view them through the lens of an engineer who truly cares about the code.

But as someone who has never really cared much about the code, these are tools of liberation. I can come up with a hairbrained idea that’ll work specifically for me and prototype something into existence in a couple days.

There’s time to lament what once was. But like my friend Carrie used to say after losing a big race: you have twenty-four hours to feel bad for yourself. Then, you gotta get back up and keep moving forward.

LLMs are here. They enable a completely different form of developer: the homebaked variety.

Did you watch all those AI commericals yesterday during the Super Bowl? Almost all of them featured people doing their normal, boring jobs, but they were able to get computers to do all the things we, as engineers, take for granted.

This does mean us engineers won’t be paid as well as we once were, but that’s okay. Now we can go out and solve more complex problems!

You can either adapt or be relegated to the other myriad forms of artistry that hang their hat on their craft. You can hire a master woodworker to build you a table or you can go to IKEA and buy a cheap one.

Figure out what your problem is first. Then find the right approach (and tools) to solve that problem.

Continue to the full article


My Taste Is Basic. So What?


šŸ”— a linked post to harpersbazaar.com » — originally shared here on

I can’t live in hell and make excuses for ravenously consuming a shitty reality show produced by a person I don’t know personally on a network I am unaffiliated with. You can use ā€œI like it!ā€ (the exclamation point is necessary) any time freaks question a regular-ass thing you enjoy, and it’ll swipe their legs out from under them every single time, and you can stand over their quivering body with your subpar tastes and laugh your face off.

Deploy it whenever you want, then sit back and watch judgmental friends splutter and try to choke out a response, because what people like that really want is to show off how much more cultured and evolved they are than you, and saying ā€œI like it!ā€ robs them of that opportunity.

Continue to the full article