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. → Click on a tag to see all the posts about that topic.


Dungeon Crawler Carl Halloween Costume

originally shared here on

For Halloween this year, I went as Carl, the titular hero from my current book series obsession: Dungeon Crawler Carl.

Me as Carl, front view

Me as Carl, back view

For this outfit, I enlisted the help of my wife, who apparently is a secret master seamstress. She sewed her first ever garment last week: a custom costume for my son who wanted to go as an allay from Minecraft. After seeing the impressive results from that, it didn't take much to convince her that a she could also whip up a pleather vest.

The vest is covered in upgrade patches that Carl earns as he progresses through the dungeon. I created several upgrade patches, including the earth, Skyfowl, peace, and bomb upgrade patches.

Earth and Skyfowl Upgrade Patches

Peace Sign and Bomb Upgrade Patches

To make these, I spent a little time formulating a reusable prompt with ChatGPT, like this:

You are an expert visual concept generator creating embroidered patch–style relief designs for a DIY Dungeon Crawler Carl costume.

The output must look like a tactile, 2.5D embroidered patch with clear raised textures suitable for sculpting or casting.

Core visual style:
* Photorealistic embroidered patch on dark fabric (black or charcoal).
* Central circular composition with a stitched border.
* Detailed relief-like subject rendered in thread — clear contours, raised lighting, visible stitch texture.
* Lighting from upper left to emphasize shadows and depth.
* Materials: matte thread with subtle sheen, realistic fiber detail.
* Color palette: mostly monochrome or metallic (grays, bronze, steel) with one accent color (like orange, red, or teal).

Do NOT include: background scenery, text, labels, extra borders, or photographic backgrounds.

Goal: The result should look like a real embroidered patch photographed under studio lighting, with sculptural clarity and texture definition appropriate for converting into a physical relief sculpture.
Now apply this to the following patch concept:

ā€œEarth Upgrade Patch: A tiny, round patch depicting the planet earth. Is about the size of a half-dollar and is screen-printed, not embroidered. Should look ā€œamateur hourā€.ā€

I cribbed the patch descriptions off of the excellent Dungeon Crawler Carl Wiki.

I then fed the prompt through ChatGPT and after a little back and forth, would result in an image like this:

ChatGPT's generated version of the Scavenger's Daughter patch

I took that image into Pixelmator and removed the background around the patch, then headed over to Maker World's Relief Sculpture Maker. That generated a sculpture that I could 3D print.

Screenshot of the relief sculpture maker website with the scavenger's daughter patch

I then opened that file in Bambu Lab's software and began the process of painstakingly coloring in the file. I say "painstakingly" because it was tedious, but honestly, it was a lot of fun.

Coloring in the Skyfowl patch using Bambu Lab's software

The highlight of this vest for me was the Scavenger's Daughter patch, a massive back patch featuring a pile of skulls and a centipede crawling amongst them. I printed the patch out in white PLA, spray painted it black, then hand painted each skull with white acrylic paint. I then painted the centipede and the border with green glow-in-the-dark paint.

The Scavenger's Daughter Upgrade Patch, in progress

The Scavenger's Daughter Upgrade Patch, in progress

Also, I couldn't be Carl without Princess Donut, which my daughter helped me out by loaning me one of her cats and selecting a gem for her tiara.

Grand Champion, Breed Winner Regional, National Winner Princess Donut the Queen Anne Chonk

A closeup of Donut's tiara

Random lessons learned

I said the coloring process was painstaking, but I came to enjoy the tedium of learning new software. My first patch (the earth patch) was pretty terribly colored in and took around 90 minutes. It took me a few iterations of experimentation to learn you could simply click and drag across the interface to color in a bunch of sections at a time. By the time I got to my last patch, it took maybe 30 minutes of coloring?

Hand-painting the Scavenger's Daughter patch taught me that acrylic paint sucks to work with. You'd go to spread the paint with a brush, and the paint would glob together onto the brush and get dragged around like a screaming toddler in Target. I started to feel a little more confident using it after I got the glow-in-the-dark paint going, but still, I think I'd aim for a different type of paint next time.

The spikes for the knee pads were a massive flop for me. I printed out 24 cones in white PLA and intended on spraying them with silver spray paint. Here's the before and after:

Spikes before Spikes after

When I sprayed down on these cones, they would get blasted across the box. None of them ended up having any paint on them, unless the paint was supposed to be transparent with glitter, in which case why not just dump glue on them and dump my own glitter on them?

For months, I would go to print something with my black PLA only to have it result in failure like this:

Spikes before

It turns out that this was not PLA, but PETG. So many wasted prints...

It also turns out that picking this costume, which features short sleeves, no pants, and nothing on the feet, is not a very conducive costume for trick-or-treating in Minnesota.

Finally, I do wish I would've started earlier. I only got 5 of the 8 patches that Carl wears on his vest, and it would've been fun to get the last three done on time.

But hey, I had a blast making this thing, I learned a ton about painting and 3d printing and sewing, and I can't wait to try again with a different idea next year!

My family all together at Halloween (Rosie the Riveter, an Allay from Minecraft, Carl from Dungeon Crawler Carl, and a werewolf)


idle teashop


šŸ”— a linked post to jillian.garden » — originally shared here on

This was a delight to play. I don’t think you can ā€œwinā€, per se, but I sure did have a lot of fun maxing out all my sprites and gardens.

I was never one of those ā€œI got into programming so I could make gamesā€ sorts of developers, but I have made a fair share of games over the years. These sorts of text-based games were always my favorite to make.

I don’t need another project, but I might start thinking through what sort of world I’d build if I made a game like this one.

Continue to the full article


wound(s)


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

I did go to urgent care. And while I was sitting there for an hour (accidentally bleeding on their carpet) I was reflecting on my rush to comfort the people around me for having to react to my injury, and remembered my one and only interaction with the school counselor in 6th grade. Back then elementary schools didn’t have counselors, psychologists, all that. 6th grade was the first time this concept was introduced, and I imagine his mandate was to meet with each kid at least once that year.

So I got called in, and I’m already semi-wondering if I’m in trouble for something, because I was always worried I was in trouble for something. He has me sit down and asks how I’m doing. I immediately have to hold back a flood tears. No one has ever asked me this. I don’t even know what’s happening in the moment, I just know that whatever emotions and feelings he accidentally scraped loose need to be locked down. My instinct was: I don’t want this guy I am meeting for the first time to have to worry about me or take care of me. So I just say ā€œI’m fine, I’m fine, nothing to report, everything’s fine,ā€ desperately trying not to leak tears all over myself, until he sends me back to class. And that was the last time I thought about that until now.

What’s that about one might wonder. Not me though.

When I got laid off last year1, I vividly remember this sense of serenity, of total calmness, as I walked into work that morning.

I knew it was coming. And I knew it was gonna hurt my boss just as much as it hurt me.

During the entire brief meeting, I found myself genuinely asking him how he was feeling, how I could help him, despite the fact that I was the one who needed to figure out how I would feed my family.

I wonder if there’s a psychological term to describe that tendency. Like, a combination of altruism and shock.


  1. Wow, hey, it’s almost been two years! 

Continue to the full article


If You Get the Chance


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

The fact is, someone is almost always watching, so it’s worth treating everything you do with purpose and pride. And, even if no one has their eyes on you, it is still a chance to ā€œpractice your craftā€. To improve. To build strong habits.

Since time is limited, we only get so many opportunities.

We might as well take advantage of each one we get.

Continue to the full article


Rails Needs New Governance


šŸ”— a linked post to davidcel.is » — originally shared here on

ā€œAs I remember Londonā€ should be a wake-up call for everyone in the Ruby and Rails communities. This is not a man who wants to keep going. This is a man who romanticizes a past that was predominantly good for white men. This is a man who has spent years railing against diversity, equity and inclusion and who spreads anti-trans rhetoric. This is a man who is deeply afraid of immigration changing countries’ cultures and ā€œnational identitiesā€, despite this kind of change being a constant for the whole of human history. This is a man who is a white nationalist. And he is in sole control of Rails, this framework we all love.

Just can’t catch a break from fascism.

I’ve been wanting to rewrite my blog1 and while I had been considering running rails new and using it as a chance to learn Rails 8, maybe I should save the Rails for my day job and try something different for these parts.

Any suggestions? What are the kids using these days, HTMX?


  1. The last time I did a ground-up rewrite was 2017, so hey, eight years is a pretty good run! 

Continue to the full article


Turn Off the Internet


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

The solution isn’t to ask nicely for these companies to do better. We tried that. The solution isn’t to hope users will abandon these platforms en masse. That won’t happen as long as the network effects keep people trapped.

The solution is regulation. Real regulation. Not the performative theater we’ve seen in congressional hearings, but actual laws with actual consequences.

[…]

Turn off the internet. Or fix it. Those are the only choices we have left. The time for hoping these companies will self-regulate is over. The time for treating algorithmic manipulation as an inevitable part of modern life is over. We know what these systems do. We know who they hurt. The only question left is whether we’re going to do something about it.

Continue to the full article


On Saving Civil Society


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

We know these platforms are bad for us, so why are they still so widely used? They tell a compelling story: that all of your frantic tapping and swiping makes you a key part of a political revolution, or a fearless investigator, or a righteous protestor – that when you’re online, you’re someone important, doing important things during an important time.

But this, for the most part, is an illusion. In reality, you’re toiling anonymously in an attention factory, while billionaire overseers mock your efforts and celebrate their growing net worths.

After troubling national events, there’s often a public conversation about the appropriate way to respond. Here’s one option to consider: Quit using these social platforms. Find other ways to keep up with the news, or spread ideas, or be entertained. Be a responsible grown-up who does useful things; someone who serves real people in the real world.

Continue to the full article


i ran Claude in a loop for three months, and it created a genz programming language called cursed


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

The programming language is called "cursed". It's cursed in its lexical structure, it's cursed in how it was built, it's cursed that this is possible, it's cursed in how cheap this was, and it's cursed through how many times I've sworn at Claude.

Absolutely dying at this.

Continue to the full article


U2 + Gospel Choir - I still haven't found what I'm looking for


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

I’ve been listening to a lot of Donald Lawrence and the Tri-City Singers lately. Big, powerful gospel choir music feels pretty dang good right now.1

This gospel choir-fueled version of the U2 hit is something else.


  1. I actually got to be part of a gospel choir in college, and it was one of the best experiences I had at the U.  


Irrational Dedication


šŸ”— a linked post to fs.blog » — originally shared here on

Behind every seemingly effortless success lies a landscape of invisible battles: endless meetings, self-doubts, and moments of near-total collapse.

What truly separates people isn’t some magical talent, but an almost irrational commitment to pushing through pain that would break most people.

Everything around you—every convenience you enjoy, every space you inhabit, every service you use—was one person’s refusal to accept the world as it was.

The world progresses from a collection of irrational dedication.

Related: glory means nothing without sacrifice. Personally, I’m sometimes quick to want the glory without the sacrifice, which results in a fairly hallow glory.

Continue to the full article