blog

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


Practice Guide for Computer

originally shared here on

Originally adapted from Ron Miller's Advanced Improv Practice Guide, and discovered at the bottom of jyn's incredible blog post titled "i'm just having fun", which is a must-read.

Before starting your daily practice routine, read and seriously consider the following:

A. DAILY AFFIRMATIONS

  1. How fortunate I am that in this life I am one who has been allowed to create beauty with computer.
  2. It is my responsibility to create peace, beauty, and love with computer.

B. I WILL BE KIND TO MYSELF

  1. IT IS ONLY COMPUTER
  2. No matter my level of development in computer, how good or bad I think I am, it is only computer and I am a beautiful person.
  3. I will not compare myself with my colleagues. If they do computer beautifully, I will enjoy it and be thankful and proud that I live in fellowship with them.
  4. There will always be someone with more abilities in computer than my own as there will be those with less.

C. REASONS TO DO COMPUTER

  1. To contribute to the world's spiritual growth.
  2. To contribute to my own self-discovery and spiritual growth.
  3. To pay homage to all the great practitioners of computer, past and present, who have added beauty to the world.

D. RID YOUR SELF OF THE FOLLOWING REASONS FOR BEING A PRACTITIONER OF COMPUTER

  1. To create self-esteem
  2. To be "hip"
  3. To manipulate
  4. To get rich or famous

The psychology of evil


🔗 a linked post to builders.genagorlin.com » — originally shared here on

When we fail to take active responsibility for our life, we tend to feel helpless, which breeds resentment of others—especially those who seem to be doing better than us and to be looking down on us. A passive person is easily hurt and so fixates on, exaggerates, or manufactures grievances. This then creates a felt need to expend energy on destroying perceived threats instead of creating and defending genuine values. This felt need takes the form of an unadmitted motivation that’s possible to all of us, and that we’ve all experienced in moments, but which is fundamentally different from the rational pursuit of values, and which can come to dominate and pervert a soul: the motivation to destroy.

When we see signs of it in our selves, our neighbors, or our nation, we can and need to recognize it for what it is, to isolate and disempower it—and to turn our attention toward building something better.

Continue to the full article


Monocle for macOS


🔗 a linked post to heyiam.dk » — originally shared here on

My buddy Paul1 sent me a link to this macOS app a few weeks ago, but I didn’t have a use case for it until yesterday.

I was reading a few different documents relating to a machine learning contract I just started, and I was getting overwhelmed by the mountains of text on my screen.

Monocle is a very simple utility for macOS that blurs out every app window that is not in the foreground. If you want to see everything, you can shake your mouse back and forth2. If you want it blurred again, you do the same shake gesture.

It’s the best $9 I’ve spent on software in years.


  1. Latest blog post was over a year ago?! Come on man, share some of those dope woodworking projects you’ve been working on! 😅 

  2. Which also triggers one of my favorite macOS features: making your mouse cursor super huge so you can find it on your screen. 

Continue to the full article


The Rise of Sanityware


🔗 a linked post to thatshubham.com » — originally shared here on

The most annoying thing about corporate surveillance to me is the arrogance of the prediction mechanisms. These algorithms build a model of me based on my clicks from three years ago and then try to trap me in that loop forever. They show me music they think I'll like, and news they think I'll engage with, and videos they think will enrage me enough to keep me hooked to their platforms. They are actively trying to flatten my personality into something easy to monetize.

As most people I've seen say out loud, "Privacy as a concept is way beyond hiding secrets. A part of it also means preserving your capacity to change. To be surprised. To be inconsistent." If I could tell every human one thing, it would be to actively refuse to be a predictable data point.

Mess up their metrics. In whatever way you are capable of.

Continue to the full article



Prompt caching: 10x cheaper LLM tokens, but how?


🔗 a linked post to ngrok.com » — originally shared here on

What's going on in those vast oceans of GPUs that enables providers to give you a 10x discount on input tokens? What are they saving between requests? It's not a case of saving the response and re-using it if the same prompt is sent again, it's easy to verify that this isn't happening through the API. Write a prompt, send it a dozen times, notice that you get different responses each time even when the usage section shows cached input tokens.

Not satisfied with the answers in the vendor documentation, which do a good job of explaining how to use prompt caching but sidestep the question of what is actually being cached, I decided to go deeper. I went down the rabbit hole of how LLMs work until I understood the precise data providers cache, what it's used for, and how it makes everything faster and cheaper for everyone.

After reading the Joan Westenberg article I posted yesterday, I decided I’m going to read more technical articles and focus my attention on them.

This post from the ngrok blog was very helpful in explaining how LLMs work up through the attention phase, which is where prompt caching happens.

It also got me to go down a rabbit hole to remember how matrix multiplication works. I haven’t heard the phrase “dot product” since high school.

Continue to the full article


The Discourse is a Distributed Denial-of-Service Attack


🔗 a linked post to joanwestenberg.com » — originally shared here on

Every attempt to discuss the problem becomes another piece of content, another take, another entry in the engagement competition that makes the problem worse. I'm aware that this essay is doing exactly that. I'm aware that you, reading this, are spending cognitive resources on yet another analysis of the discourse when you could be spending those resources on something more important. I'm sorry. I'm not sure what else to do.

What I do know is that the feeling of being overwhelmed, of never being able to keep up, of having strong opinions about everything and confident understanding of nothing, is not a personal failing. It's a predictable response to an impossible situation. Your brain is being DDoS'd, and the fact that you're struggling to think clearly under that onslaught is evidence that your brain is working normally. The servers aren't broken. They're overloaded. And until we figure out how to reduce the load or increase the bandwidth, the best any of us can do is recognize what's happening and try, when possible, to step away from the flood long enough to do some actual thinking.

Find some topic you care about. Just one. Resist the temptation to have takes on everything else. Let the discourse rage without you while you spend weeks or months actually understanding something. Read books about it, not takes. Talk to experts, not pundits. Follow the evidence where it leads, even when it's uncomfortable. Change your mind when you find you were wrong. And when you finally have something to say, something you've actually earned through careful thought rather than absorbed from the tribal zeitgeist, say it clearly and then step back.

Continue to the full article


Why We've Tried to Replace Developers Every Decade Since 1969


🔗 a linked post to caimito.net » — originally shared here on

Here’s the paradox that makes this pattern particularly poignant. We’ve made extraordinary progress in software capabilities. The Apollo guidance computer had 4KB of RAM. Your smartphone has millions of times more computing power. We’ve built tools and frameworks that genuinely make many aspects of development easier.

Yet demand for software far exceeds our ability to create it. Every organization needs more software than it can build. The backlog of desired features and new initiatives grows faster than development teams can address it.

This tension—powerful tools yet insufficient capacity—keeps the dream alive. Business leaders look at the backlog and think, “There must be a way to go faster, to enable more people to contribute.” That’s a reasonable thought. It leads naturally to enthusiasm for any tool or approach that promises to democratize software creation.

The challenge is that software development isn’t primarily constrained by typing speed or syntax knowledge. It’s constrained by the thinking required to handle complexity well. Faster typing doesn’t help when you’re thinking through how to handle concurrent database updates. Simpler syntax doesn’t help when you’re reasoning about security implications.

Continue to the full article