88x31 Button Creator
🔗 a linked post to
ritual.sh »
—
originally shared here on
11 year old Tim would've killed for something like this. Instead, 11 year old Tim spent weeks understanding how keyframes work in Photoshop 3.0. 🤦♂️

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. → Click on a tag to see all the posts about that topic.
🔗 a linked post to
ritual.sh »
—
originally shared here on
11 year old Tim would've killed for something like this. Instead, 11 year old Tim spent weeks understanding how keyframes work in Photoshop 3.0. 🤦♂️

I spent most of my day working on Lunara today.
Here's what the app can do now:



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?


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).


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).
Nothing visual here but still dope.

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.

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:
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.
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.
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.

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

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

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:
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.

🔗 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:
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.
🔗 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.
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 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.
🔗 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.
🔗 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.
🔗 a linked post to
wehtt.am »
—
originally shared here on
Apropos of nothing going on in my backyard right now, these fonts are dope.