RSSAmplifier

Blog

Minimum Viable Blog

Recent content on Minimum Viable Blog

isaaclyman.comRSS feed ↗98 posts

Latest posts

The parable of the bowling machine

My friend Larry is getting on in age. I notice it most when he smiles. His thick, round glasses magnify the wrinkles around his eyes, a pattern of lines so familiar I’d recognize them in a dry riverbed. In his prime he was a semi-professional bowler—he laughs when he says it because he mostly did charity events. But his team paid him a modest stipend for travel, which is more than most…

True partnership

A neighborhood friend is talking about her husband. “He’s a good provider,” she says. “He’s a good dad.” That’s her summary of their relationship. Neither of these is a troubling thing to say about one’s partner, but the way she says them—maybe you have friends in this sort of relationship, maybe you’ve heard it too—I can’t help but hear…

There is no genius

A paradox: when we try to applaud work, we often efface it. Authors are asked where they get their ideas. Athletes are described in terms of raw talent. Film directors are called geniuses and visionaries. This implies that people who rise to the top have won an invisible lottery: they were born or gifted with a difference, a lucky advantage, and if someone else had gotten it, they would be there…

Five laws of generative AI

These laws have some exceptions, but I’ve found them broadly useful for navigating the current hype wave, and nearly always correct.
AI is a firehose of mediocrity. AI’s advantages can’t be disentangled from its flaws. It’s never “just” AI. The term is more important than the definition. The promise is more important than the reality. For the purposes of…

Myth vs. Fact: why is code review so hard?

A lot of teams procrastinate code review, phone it in, or get stuck in endless back-and-forth on every PR. Let’s talk about why.
Myth #1 Myth: Code review is difficult because it’s boring and pull requests are too long.
Fact: Code review is difficult because it duplicates the cognitive work of programming without all the intermediate steps.
Engineers tend to dislike…

Coding without AI: a revolutionary new way to work

For the last 20 years or so I’ve been trying out a new way of programming, one that (surprisingly) doesn’t use any LLMs or AI coding agents at all. It’s just me, a keyboard, and an IDE or text editor, writing code line by line—literally typing things like functions and curly braces.
I realize this sounds eccentric. What am I, some kind of minimalist? Actually, I’m what…

Random distributions in programming and video games

Uniform distribution If you roll a 20-sided die (commonly called a d20), there’s an equal chance of rolling any number between 1 and 20. Over the course of infinite rolls, you’ll roll about the same number of 1s, 2s, 3s, and so on. That’s called a “uniform distribution.” The d20, popularized by Dungeons and Dragons, is the best and worst thing to happen to tabletop…

Diagonals of two-dimensional arrays

Today I had an interesting problem to solve. For a given two-dimensional array (or matrix), I needed to construct some efficient views into the data from multiple angles.&#xA;Rows! final List<List<int>> rows = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], ]; This is an example of the data I was starting with. You might call it an &ldquo;array of rows.&rdquo; In terms of tabular data, the indices…

Things I didn&#39;t know were different until I saw them next to each other

You know how sometimes when you don&rsquo;t pay enough attention, two similar but not identical things will occupy the same space in your brain? And you&rsquo;ll go along thinking they&rsquo;re the same until you&rsquo;re 30 years old and see them in the same sentence and suddenly realize they&rsquo;re not the same at all?&#xA;Maybe you&rsquo;ve never had this problem. I might not be playing with…

I&#39;ve fully recovered from burnout

In March 2023, I posted:&#xA;Just thinking about how &ldquo;I&rsquo;ve fully recovered from burnout&rdquo; is a sentence I have never seen or heard someone say. Google has 1 result for that sentence (in quotes). Changing &ldquo;fully&rdquo; to &ldquo;completely&rdquo;: also 1 result. Changing to &ldquo;totally&rdquo;: 0 results.&#xA;I checked again today. Kagi has a couple results that Google…

Believing vs. performing

Religion is offended by the literal approach. Believers aren&rsquo;t supposed to ask about the texture or whereabouts of god and heaven, and if they do, the response is most often a patronizing smile and a metaphor. Thus the believer might be forgiven for intuiting religion to be not something you believe, or take to be materially and physically true, but something you do: that is, a…

The behavioral question

If you want to succeed at something or be a certain kind of person, what should you do?&#xA;This must be a hard question, since most people get it wrong, at least at first. But we can modify it to make it easier.&#xA;Try this:&#xA;If I were trying to fail, what things would I do?&#xA;Be honest with yourself. Make a list. And then follow it with:&#xA;How many of those things am I currently doing?

How to get obsessed with cosmic horror

Definitions Horror stories come in multiple flavors. If there&rsquo;s:&#xA;A brooding monster or ghost, an old castle or crypt, and a series of murders? That&rsquo;s Gothic horror. Examples: Frankenstein, Dracula, Strange Case of Dr. Jekyll and Mr. Hyde, Buffy the Vampire Slayer. A human killer that stalks and kills in a gratuitously bloody way? That&rsquo;s slasher horror. Examples: The Texas…

Managing the common cold

I am not a doctor and this is not medical advice. Consult your doctor before beginning any new treatment.&#xA;Long story short: when I feel a cold coming on, I do two rituals.&#xA;Twice-daily sinus rinse with saline spray. (e.g. Arm & Hammer Simply Saline) Once-daily zinc drink. (e.g. Emergen-C Immune+ packets, not to be confused with Emergen-C Vitamin C/Daily Immune Support) Neither of these is…

500 miles later: the Specialized Turbo Tero X 4.0

Since July of last year, I&rsquo;ve put over 500 miles (800 km) on my Specialized Turbo Tero X 4.0.&#xA;What is it? An electric (class 3) hybrid bike with 68 miles (109 km) of maximum range, 300 pounds (136 kg) of rider+cargo capacity, full front and back suspension, and a dropper seatpost.&#xA;About me I&rsquo;m 78 inches tall (198 cm, mostly torso) and weigh 270 pounds (122 kg).&#xA;My setup…

Laws for software engineers

The following adages have been valuable to me over the course of my career.&#xA;Brooks&rsquo;s Law (adding developers to a project) Cargill&rsquo;s Law / The Ninety-Ninety Rule (last 10 percent is the hardest) Chesterton&rsquo;s Fence (ripping things out before you understand them) Conway&rsquo;s Law (systems tend to mirror org charts) Cunningham&rsquo;s Law (the unreasonable effectiveness of…

The artichoke and how to eat it

Some people have never eaten a whole steamed artichoke. This is&hellip;tragic.&#xA;Why should you eat an artichoke?&#xA;Because it&rsquo;s the easiest thing you&rsquo;ll cook this month. Seriously. No knife skills required. It&rsquo;s a vegetable and it&rsquo;s easier than Kraft mac and cheese. Because it&rsquo;s a frontrunner for &ldquo;tastiest plant.&rdquo; I keep trying to think of a vegetable…

&#34;Severance&#34; as Marxist horror

Suppose Gregor Samsa had awoken to find himself a &ldquo;horrible vermin&rdquo; and the entire thrust of the story had been his efforts to communicate to his family that it was still him, it was Gregor, and as readers we felt certain they would take good care of him if they knew.&#xA;Suppose there were some emotional or physical journey Gregor had to complete in order to become human again.…

Rust borrowing

Record scratch. Freeze frame. You&rsquo;re writing a function. What are you thinking about?&#xA;If you&rsquo;re using a mainstream, high-level, memory-managed language like C#, Python, Java, or JavaScript, you&rsquo;re thinking about:&#xA;The parameters Their types What the function will do with the information they contain The return value Its type Which are good and reasonable things to think…

The absurdist&#39;s playground

(Inspired by a conversation with my good friend.)&#xA;The absurdists are saying something very simple. They are saying: life is not an obstacle course. It&rsquo;s a playground.&#xA;What makes a playground different from an obstacle course?&#xA;There&rsquo;s no predetermined or &ldquo;right&rdquo; path. It doesn&rsquo;t lead anywhere else. There are no judges or prizes. There might be rules to…

50 for FOSS needs your help

tl;dr: I&rsquo;m organizing a monthly community event in support of open-source software. You can join up at 50forFOSS.org.&#xA;How it started It all began with a Mastodon post:&#xA;This was my most popular Mastodon post ever. By the end of the day it had been boosted across 28 instances. A lot of people must have been feeling the same thing I was: an urge to protect the fragile and extraordinary…

500 miles later: the Tern GSD S10

Since April, our family has put over 500 miles (800 km) on our Tern GSD S10.&#xA;What is it? An electric (class 1) long-tail cargo bike with 60 miles (96 km) of maximum range per battery slot, about 360 pounds (163 kg) of rider+cargo capacity, and plenty of attachment points for accessories and add-ons.&#xA;About us I&rsquo;m 78 inches tall (198 cm) and my wife is 64 inches tall (162 cm).

Standard resume format

Last revision: 2025-05-07&#xA;This is an opiniated set of guidelines for English-language resumes that effectively communicate high-value information at a glance. They are released under CC BY 4.0 and may be freely adopted by any person or organization.&#xA;Table of Contents&#xA;Style and structure Page layout Alignment Page headers and footers Bullet style Colors Typeface Font Separators File…

Ebikes are better than cars, part 2

Quick poll. How many devices do you own that:&#xA;Force you to sit down and hold still in order to use them? Regularly trap you in random locations for half an hour or more? Cost you several dollars an hour, every hour they&rsquo;re turned on? Take up 100 square feet, whether you&rsquo;re using them or not? Sit unused most of the day while claiming 16% of your household income? Just your car?

Ebikes are better than cars

I haven&rsquo;t received any money or free products for my opinions nor do I have any affiliate links on my blog. I&rsquo;m doing this for free because I don&rsquo;t have the good sense to stop.&#xA;Forget about saving the Earth for a moment. Forget about reducing smog, exercising, or keeping up with the latest trends. Forget about traffic, even.&#xA;It&rsquo;s still worth considering an ebike as…

Solving the CIA Kryptos code in TypeScript (Part 4)

You can find all the code for this series on GitHub.&#xA;Kryptos 4 is, I repeat, unsolved. We&rsquo;re very unlikely to solve it today. Enthusiastic codebreakers have been putting together clues and proposing theories for decades. At least half of them are like this:&#xA;But hey, since we&rsquo;ve got some code ready to go, we might as well try.&#xA;Setup All the code we&rsquo;ve written so far is…

Solving the CIA Kryptos code in TypeScript (Part 3)

You can find all the code for this series on GitHub.&#xA;Kryptos 3 is going to require more code than anything else so far. It&rsquo;s encoded using both the types of transposition we covered in Part 2, plus a twist.&#xA;It&rsquo;s written out with a rectangle size of 86 and a block size of 7. The columns are stacked. A keyed columnar cipher is applied with the key &lsquo;KRYPTOS&rsquo;. (KRYPTOS…

Solving the CIA Kryptos code in TypeScript (Part 2)

You can find all the code for this series on GitHub.&#xA;In the previous post we solved Kryptos 1 and 2. Kryptos 3 is going to be a bit tougher. It doesn&rsquo;t use our trusty Vigenere cipher. And it doesn&rsquo;t use just one cipher, either; it uses two. We&rsquo;ll learn them separately in this post, then use them together in the next one.&#xA;Keyed columnar transposition We need to learn a…

Solving the CIA Kryptos code in TypeScript (Part 1)

You can find all the code for this series on GitHub.&#xA;On the campus of CIA headquarters in Virginia, United States, there&rsquo;s a 34-year-old sculpture called Kryptos. It somewhat resembles a heavy copper flag waving in the wind. Cut out of its surface are 1,736 uppercase ASCII characters split into four encrypted messages and a Vigenere cipher table.&#xA;The first three messages were…

Misunderstanding Yoda

In The Empire Strikes Back (1980), we see a famous exchange between Yoda (an archetypical &ldquo;wise elder&rdquo; figure) and Luke Skywalker, his young apprentice. They stand in a swamp where Luke&rsquo;s spaceship lies submerged after a crash landing.&#xA;LUKE: We&rsquo;ll never get it out now.&#xA;YODA: So certain are you. (Sighs.) Always with you what cannot be done. Hear you nothing that I…

Should more developers be starting software companies?

A software developer has, in theory, the ability to walk into an outhouse with an old laptop and emerge a few days later with something worth millions of dollars. If you can build software, you can create value out of thin air. Software has no material components.&#xA;It&rsquo;s been rightly pointed out that software does have material components, namely a working computer, which over half the…

Seven tenets of media consumption

Media here refers to books, movies, journalism, music, video games, and other published content of any genre.&#xA;Works that present abject real-world violence for the purpose of entertainment or gratification are specifically excluded from this discussion and should not be misclassified as &ldquo;media.&rdquo;&#xA;Consumption is value-neutral. No one is evil for consuming a particular piece of…

My top home software upgrades

I&rsquo;ve made some big changes to my personal tech ecosystem over the last few years and discovered some great applications along the way. Here are a few standouts.&#xA;Kagi Paid for by the user&#xA;Replacement for: Google search, which I&rsquo;ve used since at least 2004.&#xA;If you&rsquo;ve noticed your Google results have been getting steadily worse—or if you&rsquo;re getting sick of having…

The 3D object model of software construction

Software projects are most efficient when, at any given time, each contributor is focused on a different concern. Like objects in 3D space, projects can be said to have surface area and volume:&#xA;Surface area represents the number of opportunities to contribute—that is, how many people could efficiently work on the project at the same time. Volume represents the knowledge space of the project…

So software engineering isn&#39;t working out for you

I used to be solidly on team &ldquo;anyone can code.&rdquo; That changed when I talked to my therapist about it.&#xA;ME: I&rsquo;m a big believer in neuroplasticity. I think anyone can learn to do anything, it&rsquo;s just a matter of how long it takes.&#xA;THERAPIST (visibly uncomfortable): I don&rsquo;t think that&rsquo;s fair.&#xA;ME: Why not?&#xA;THERAPIST: Well, for example, my partner and I…

Why &#39;Netflix with ads&#39; makes no sense

At time of writing, Netflix&rsquo;s Standard plan costs 15.49 USD, while its Standard with ads plan costs 6.99 USD. The difference between those prices is 8.50 USD; it costs more than twice as much to watch without ads.&#xA;What&rsquo;s the math on that one? Advertisers are estimated to pay up to 50 USD per thousand ad views. That&rsquo;s five cents per view. In 2019, the average Netflix viewer…

On the ethics of counterfactual messaging

Suppose a given audience can, in a majority of some kind, be expected to misinterpret a piece of information when presented factually. Is it then justified to present counterfactual information calibrated to be misinterpreted so that a correct meaning will be received?&#xA;&ldquo;Misinterpretation&rdquo; here includes not only a failure to understand the information as intended, but a failure to…

What I want my friends to know about drugs

I am not a doctor and this is not medical advice. Consult your doctor before using any drug.&#xA;In the United States, LSD and heroin are in the same controlled substance category (the most restrictive one, Schedule I), placing them a category above amphetamines and fentanyl, two categories above ketamine, and three full categories above alprazolam (Xanax). Tobacco is not a controlled substance at…

On art

Any 21st-century definition of art has to pass a few tests.&#xA;It must include all commonly-understood examples of art such as paintings, novels, plays, movies, music, video games, sculptures, photographs, and poems. It must not therefore smell like an attempt to launder one&rsquo;s personal likes and dislikes as though they were objective or authoritative, which unfortunately rules out many…

If you don&#39;t hire juniors, you don&#39;t deserve seniors (2023)

This was originally written in 2018. It remains one of my more popular blog posts, so I&rsquo;ve taken some time to revise it to match the current market environment and my evolving opinions on the topic.&#xA;Let me tell you the story of a very successful company that made a very big, dumb decision.&#xA;We don&rsquo;t hire junior developers or interns&hellip;if you don&rsquo;t get a puppy, you…

On horoscopic projection

Imagine you&rsquo;ve misheard the lyrics to a song. You&rsquo;ve interpreted it to be saying something the musician could not possibly have intended. This is a common experience: music adds sensory noise to speech, making it more difficult to decipher what&rsquo;s being said. And people frequently mishear each other anyway, even when speaking clearly in a quiet place.&#xA;Music also adds an…

Mastodon is so simple, literally everyone already understands it

One hundred percent of people&rsquo;s confusion about Mastodon comes from journalists doing a bad job explaining it. It&rsquo;s not complicated. In fact, it&rsquo;s so simple that you already understand it, and you use something exactly like it every single day.&#xA;I&rsquo;m talking about email.&#xA;If you understand one basic thing about email, you already know everything you need to know about…

On tools of unusual advantage

People have an excessive tendency to reason by definition. We want to understand events in terms of principles; we prefer stories to systems; we like brevity more than nuance. When something doesn&rsquo;t fit our framing, most of us close our eyes and fool ourselves that it does.&#xA;This underpins the perennial debate of &ldquo;X is good, X is evil.&rdquo; Occasionally the topic, X, is a person,…

My favorite beard products

I have a beard now. And&hellip;that&rsquo;s everything that&rsquo;s new with me. What&rsquo;s new with you?&#xA;The following is a list of my favorite beard products, after a year of trying a whole lot of different ones. I&rsquo;m not being paid to write this, nor can I be bothered to sign up for some affiliate links, so enjoy—no strings attached.&#xA;For reference, my beard is coarse, dry, and…

Have we reached Peak Programming Languages?

I’m relatively young on the programming scene (I wasn&rsquo;t around when FORTRAN came out or anything) so this is a hubristic thing to say, but it feels like we’ve reached Peak Programming Languages. For anything you want to build and any way you want to build it, there&rsquo;s a mature and popular language already available. Typically the community around it is robust and the syntax is…

Wordle spinoffs and competitors, ranked

Wordle took social media by storm in December 2021. The online word game, a spinoff of 1955&rsquo;s Jotto, was addictive, social, and easy to play—perfectly positioned to become an object of mass obsession. By now it&rsquo;s cemented itself as an all-star in a tradition of word games that have been popular across the world for centuries.&#xA;In the the year since Wordle&rsquo;s rise to popularity,…

A keyboard is not a list of buttons

Building a software keyboard is almost always a Bad Idea. The keyboards that come installed with our phones and tablets represent years of institutional knowledge and are fine-tuned for user experience and accessibility. A good keyboard is something you never have to think about, and it takes a significant investment to get there.&#xA;However, there are cases where you have no choice but to render…

Credit card chips and encryption in plain JavaScript

Your current credit card can be used in four different ways:&#xA;Typing in the card number. We&rsquo;ve been using credit cards this way since 1950. Sliding the card&rsquo;s magnetic strip (the black stripe) through a card reader. This method was invented by IBM in the 1960s and has been in use ever since, but it&rsquo;s on its way out. In a few short years many credit cards will no longer have a…

Logging in, a thing we all hate

We&rsquo;ve all seen this one, right?&#xA;&ldquo;As a user, I want to log in to the app.&rdquo;&#xA;That&rsquo;s a lie. And not just a little one—a whopper. Logging in isn&rsquo;t on anyone&rsquo;s to-do list. It doesn&rsquo;t put anyone closer to their goals. It doesn&rsquo;t create value and it doesn&rsquo;t provide a service. Logging in, like locking your front door, isn&rsquo;t something you…

Is code a performative speech act?

Computer processing is the act by which the world of the computer is constructed. We can call it a world because it appears to exist unto itself, persisting its environment and taking scripted actions well outside of our awareness. Modern computers rarely shut off completely, so the illusion of persistence (&ldquo;my user desktop is still there even when my computer is asleep; I just drop in on it…