legos vs 3d printers

Let's say, as a dad, that there are two cool kinds of creative toys you could make with your kid.

  1. You buy a 3d printer, and print what-ever creative thing you two can come up with.
  2. You buy lego, and take things apart together when you want to make an adjustment.

The 3d printer is way more flexible in what shapes it can create. But once it's created, you cannot change it anymore. The only thing you can do is to put down the shape, walk to the computer and then re-design. Then, you have to wait for the 3d printer to print the new shape and hope for the best because there is a disconnect between holding something in your hand and seeing a design plan on a screen.

Lego is different. Don't like a part? Take it out, and swap it. Not only is this fun, but you are actively using your hands the whole time! By interacting with the shape, you also become better at creating it. It's a super direct feedback mechanism, very different to the 3d printer.

The reason I bring up this story is because it describes why I still like to code, be it manually or agentically, in Python notebooks. It allows me to think more about the pieces of legos that I want to have and how they are going to click together. This lets me play and understand the problem I am trying to solve much better. And it also gives me the ability to quickly iterate on my ideas. Even when I decide to drop a lego-piece for now, I can still easily pick it up again later. It's also a lot easier to explain what the code is doing to a 3rd party when you have the right widgets/elements.

I've met peers who prefer to fully vibe code an app for each and every use-case. There's a place and a time for that. But that feels too much like a 3d-printer to me and sometimes I want software that's just more like legos.

video game write-offs

2026-04-08

It seems that companies might have very good reasons to hang on to a video game IP even if they have no intention of using it. I imagined this would mainly be to prevent another company from using the IP, but Michael Cain, a developer on Arcanum, has another reason: taxes!

When Microsoft bought Activision, they had to assign a dollar value to every "dead" IP they acquired—including Arcanum. Let’s say they assigned it a value of $5 million.

If Microsoft decides they will never make Arcanum 2, they can write that $5 million off as a total loss to lower their tax bill.

So that means that if anyone wants to buy the IP, even if Microsoft is never planning on doing something with it, it can still be more valuable to sit on it. It's worth more as a tax-shield than a source of revenue.

the light of a CPU

2026-04-08

Just quoting this tweet.

I would like to make my apologies for defending M$, but I must from time to time. I have to put respect on github for handling the amount of shit code that has been added over the last 3 months. literally 10s of billions of lines of code that will never see the light of a CPU

It does a good job of describing something that I've been wondering. How many of those lines of code are written only to never ever run anywhere?

once the ball is rolling

2026-04-07

It can be hard to go from 0 to 1. But once you're there, it's much easier to go from 1 to 2.

I was reminded of this today when I looked at the YT stats for the marimo channel. It took 6 months to get our first 500,000 views. But it only took 3 months to go from 1,000,000 to 1,500,000.

notes on youtube and devrel

2026-04-01

I've been doing developer relations for over five years now, and YouTube has been a big part of that. The marimo channel sits around 1.5 million views and 10k subscribers after a year, so I like to think I've learned a thing of two that others might learn from.

I'm writing this for DevRel people who might be curious to upload videos to share their (hopefully good) ideas.

  • YouTube is a huge. It stands as one of the largest search engines ever now. If you have a tool that's worth knowing about, odds are people are going to learn from it by searching on YouTube as opposed to Google. That means that either you put a video there such that you can own the message, or you're going to have to accept the voice of some influencer to do this for you.
  • Thumbnails and titles are important. People click before they watch something. As always in life, try to keep things simple. You can overdo it with thumbnails. But a small pro tip. Try to go for a background that's common across all the videos. That way if someone likes your content, your background is a thing that they will recognize.
  • Hooks matters less than story. Grabbing a hook to pull someone's attention tends to be common advice, but it will only get you so far. If you overpromise, people will remember and it's your job to stand out as a reliable source of information. So instead of worrying about the introduction, maybe you should worry about the full story of the video first. Once the story is solid, making the introduction is going to be a lot easier.
  • Short form content is increasingly becoming the norm. It's content that's easier to make, easier to get high view numbers for, but it's also content that shows up much less when users search for you.
  • Subscribers matter way less than they used to. It used to be the case that the algorithm would favor a high subscriber count. It feels that that's less the case. It's more preferred that you have a video that is watched till the end.
  • Resist the views temptation. Views, that's the thing that's measurable. But that's also a distraction. Remember that anything you do on YouTube is meant to be a funnel for "another thing" you're trying to promote. Views matter less than that "other thing". It's not necessarily the case that download numbers correlate with view counts on YouTube. So you want people to see your video, sure, but the video should also convince people to do something after they see it. Influencers might care more about viewcounts for their sponsors, but you should care
  • Analytics are deceiving. A view doesn't imply a single person saw one video. If it's a YouTube short a view is counted twice, or even three times, if the video loops back to the start. More important metrics exist, like number of (new) viewers, but these require a drill down in analytics.
  • Show don't tell. Too many videos don't take the actual efforts to even run a line of code. When you're doing developer relations, you're talking to adults here. So why would you repeat what's listed on the documentation page? Go a step further. Be enthusiastic. Show that you care!
  • Having a popular channel is very valuable. When the channel was small, it was hard for us to find guests who might want to appear on a livestream. Now that the channel is bigger, there's a lot more inbound for this. Sure, it might take a year before you get there, but do consider it's an investment. One that can pay off well.
  • Buy decent gear. The camera matters less than the microphone. But you can't expect to get people to take your video serious with a potato quality video.

Just some points, feel free to take a lesson out of it. I also have this video and this video on my recording setup for extra details.

prune early and often

uv is amazing but it does come with a sneeky little downside. Every time and you create a cache there's a good chance that it will stick around for-ever. Especially if you create many demo projects with their own environment.

That's why, like flossing, you'll want to frequently do this:

uv cache prune 

Just today this saved 168.2Gb from my drive!

marathon data

This paper had an interesting chart:

Uploaded image
The time it took for a large group of people to finish a marathon.

Notice how this marathon chart has spikes at precise half-hour marks? These numbers are self reported and they also serve as an interesting reminder not to trust data at face value.

3b1b setup guide

2026-03-25

This is an AI generated guide I wrote for myself that I put up on my blog for safekeeps.

This tutorial covers how to replicate Grant Sanderson's interactive math animation environment (as seen at the start of this video) using the ManimGL engine and the uv package manager.


1. Environment Initialization

Grant uses ManimGL (the OpenGL version), which allows for real-time interaction. Use uv to manage the specific legacy dependencies required.

# Create project and pin stable Python version
mkdir math-animations && cd math-animations
uv init
uv python pin 3.12

# Install ManimGL and legacy compatibility tools
uv add manimgl "setuptools<70.0.0"

2. Fixing LaTeX Dependencies

Manim renders math via LaTeX. If you see .sty file errors, you are likely using a minimal LaTeX install (like BasicTeX) and need to add specific packages via your terminal:

sudo tlmgr install calligra relsize standalone preview doublestroke fundus-calligra

3. The Interactive Script

Create start.py. This script uses self.embed() to open the interactive window and an IPython terminal simultaneously.

from manimlib import *

class InteractiveScene(Scene):
    def construct(self):
        plane = ComplexPlane()
        self.add(plane)

        # Input Dot (Yellow)
        dot = Dot(color=YELLOW).shift(RIGHT)
        self.add(dot)

        # Output Dot (Pink) following w = z^2
        out_dot = Dot(color=PINK)
        out_dot.add_updater(lambda m: m.move_to(
            plane.c2p(plane.p2c(dot.get_center())**2)
        ))
        
        # Visual trail
        trace = TracedPath(out_dot.get_center, stroke_color=PINK)
        self.add(out_dot, trace)

        self.embed() 

4. Running the Setup

Execute the following command:

uv run manimgl start.py InteractiveScene

5. Interaction Controls

Once the window opens:

  • Mouse: Click and drag the yellow dot to see the pink dot react.
  • Terminal: Type dot.set_color(BLUE) in the IPython prompt to see the change live.
  • Camera: Right-click and drag to rotate into 3D; use Z + scroll to zoom.

From ride to movie

2026-03-22

Pirates of the Caribbean supposedly went ride to movie, not the other way around. The Disneyland attraction opened in 1967 and supposedly it was one of the last projects Walt Disney personally worked on before his death. After more than 35 years of the attraction entertaining guests, the story was adapted for the screen (Disney Gallery archive).

What I like about this is the reminder that at if you have multiple assets that they can inspire each-other in both directions. Disney has a bunch of movie-inspired rides, but that doesn't mean there can't be a ride-inspired movie.

I'm sure this effect can go well beyond movies and across other aspects in industry too. Food for thought.