<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Michael Snoyman&#x27;s Homepage</title>
        <link>https://www.snoyman.com</link>
        <description>Michael Snoyman&#x27;s personal homepage and blog, featuring writing about programming, open source, health, finance, religion, and whatever else catches his interest.</description>
        <generator>Zola</generator>
        <language>en</language>
        <atom:link href="https://www.snoyman.com/rss.xml" rel="self" type="application/rss+xml"/>
        <lastBuildDate>Mon, 31 Aug 2026 00:00:00 +0000</lastBuildDate>
        <item>
            <title>job-watcher: Monitoring background jobs in Rust</title>
            <pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2026/08/announcing-job-watcher/</link>
            <guid>https://www.snoyman.com/blog/2026/08/announcing-job-watcher/</guid>
            <description>&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;psibi.in&#x2F;&quot;&gt;Sibi Prabakaran&lt;&#x2F;a&gt; just published a nice write-up of &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;psibi.in&#x2F;posts&#x2F;job-watcher&#x2F;&quot;&gt;&lt;code&gt;job-watcher&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a small Rust library we&#x27;ve been using in production for the past few years to run and monitor background jobs. Sibi and I have used this code across multiple clients, and I think it may be a good choice for others as well.&lt;&#x2F;p&gt;
&lt;p&gt;The original code started life inside a futures trading platform we were building. It was important to know not just that a process was alive, but that the background work inside it was actually succeeding and making progress. Sibi later extracted the code into a standalone crate and has continued evolving it across multiple projects and clients.&lt;&#x2F;p&gt;
&lt;p&gt;The basic problem sounds simple: run some work every so often. Then production happens. You need retries. You need to detect jobs that are stuck instead of simply failed. You want useful status information. You want alerts, but you don&#x27;t want an alert for every retry of the same failure. And ideally you don&#x27;t want to rebuild all of that machinery for every service.&lt;&#x2F;p&gt;
&lt;p&gt;That&#x27;s the niche &lt;code&gt;job-watcher&lt;&#x2F;code&gt; fills. It owns the lifecycle of the jobs it runs, tracks their state, supports retries and heartbeats, exposes a status page, and can integrate with external health checks and alerting.&lt;&#x2F;p&gt;
&lt;p&gt;Sibi&#x27;s post does a much better job of walking through the design and production setup than I will here, so rather than duplicate it: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;psibi.in&#x2F;posts&#x2F;job-watcher&#x2F;&quot;&gt;go read the post&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;I always enjoy seeing small bits of application code survive long enough, and prove useful enough, to turn into reusable infrastructure.&lt;&#x2F;p&gt;
</description>
        </item>
        <item>
            <title>Kabbalah and Economics</title>
            <pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2026/07/kabbalah-economics/</link>
            <guid>https://www.snoyman.com/blog/2026/07/kabbalah-economics/</guid>
            <description>&lt;p&gt;In my &lt;a href=&quot;https:&#x2F;&#x2F;www.snoyman.com&#x2F;blog&#x2F;2026&#x2F;06&#x2F;kabbalah-haskell-st-monad&#x2F;&quot;&gt;last post&lt;&#x2F;a&gt;, I compared Kabbalah to Haskell. It&#x27;s only fitting that my next post compares Kabbalah to another topic I blog about frequently: economics. Heads up in advance that this post will be very revealing about my political&#x2F;economic compass.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;it-s-all-about-want&quot;&gt;It&#x27;s all about want&lt;&#x2F;h2&gt;
&lt;p&gt;One of the first things you learn in economics is about &lt;em&gt;wants&lt;&#x2F;em&gt;. Human beings want things. Those things are scarce. Economics analyzes how these scarce things—food, water, cell phones, land, and more—are allocated, based on people&#x27;s wants and preferences.&lt;&#x2F;p&gt;
&lt;p&gt;You would think that Jewish mysticism would have nothing to do with that. But instead, a core concept in Kabbalah is the &lt;em&gt;ratzon lekabel&lt;&#x2F;em&gt;, or &lt;em&gt;desire to receive&lt;&#x2F;em&gt;. God created the world out of a desire to give. In order to give, He needed something to receive. The essence of the created beings is this desire to receive. Or, putting other words to it, the core of creation is &lt;em&gt;want&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The Kabbalistic story doesn&#x27;t stop at desire to receive. We want to achieve affinity of form with God. Which means acquiring a nature of giving. This is &lt;em&gt;incredibly difficult&lt;&#x2F;em&gt;, because the core of our creation is the desire to receive. Kabbalah describes how to achieve this giving nature. We&#x27;ll get to that a bit later.&lt;&#x2F;p&gt;
&lt;p&gt;But things aren&#x27;t quite as simple as desire to receive vs desire to give. Within the Kabbalistic framing, we distinguish between the &lt;em&gt;action&lt;&#x2F;em&gt; and the &lt;em&gt;intent&lt;&#x2F;em&gt;. And we end up with four levels:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Receiving (action) to receive (intent)&lt;&#x2F;strong&gt; This is a fully selfish form of receiving, and is our natural state. That doesn&#x27;t mean &quot;you&#x27;re a bad person for being like this.&quot; It means it&#x27;s the starting point. Think of a baby: all it does is eat because it wants to eat. That&#x27;s quintessential receiving to receive.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Giving (action) to receive (intent)&lt;&#x2F;strong&gt; You still desire to receive, your actions are geared towards receiving. However, your acts are now acts of giving. A lot of our actions in this world fall into this category. When I go to work, I&#x27;m rarely doing it out of purely altruistic motivation. I&#x27;m doing it to receive a paycheck.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Giving (action) to give (intent)&lt;&#x2F;strong&gt; This is already beyond the level most of us achieve in this world. It&#x27;s true altruism, true selflessness. One of the ways we get close to this is giving to our loved ones. But even there, there&#x27;s generally at least some level of intent to receive: the happiness of seeing a loved one&#x27;s appreciation, for example.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Receiving (action) to give (intent)&lt;&#x2F;strong&gt; This is, perhaps surprisingly, the highest level we can achieve. Why it&#x27;s greater than giving to give is because, unlike giving to give, this actually fulfills the purpose of creation (receiving). But this is a subtle point, and not really necessary for the economics comparison. So we&#x27;ll focus on the first three levels instead.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;At this point, we&#x27;re going to veer away from strict Kabbalistic definitions, and instead use these receiving and giving terms in more economics-friendly ways.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;violence-receiving-to-receive&quot;&gt;Violence: receiving to receive&lt;&#x2F;h2&gt;
&lt;p&gt;An extreme form of receiving to receive is violence. Theft, pillage, conquering, enslaving... all of these are an act of receiving, fully with the intent of receiving. There&#x27;s no giving at all.&lt;&#x2F;p&gt;
&lt;p&gt;That&#x27;s not to say that &lt;em&gt;every&lt;&#x2F;em&gt; form of receiving to receive necessitates violence. Receiving a gift from another person can be receiving to receive. But violence definitely falls into this category too.&lt;&#x2F;p&gt;
&lt;p&gt;Much of human history has lived under receiving to receive economic systems. These kinds of systems are destructive. They lead to lack of societal progress. People rarely advocate for such systems today.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;free-markets-giving-to-receive&quot;&gt;Free markets: giving to receive&lt;&#x2F;h2&gt;
&lt;p&gt;By free markets, I&#x27;m going to focus on idealized versions. By that, I mean a system where:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;No one is forced to participate in a trade&lt;&#x2F;li&gt;
&lt;li&gt;All trade is fully voluntary&lt;&#x2F;li&gt;
&lt;li&gt;Participants have full access to information to avoid being deceived&lt;&#x2F;li&gt;
&lt;li&gt;Courts enforce laws and contracts fairly and equally&lt;&#x2F;li&gt;
&lt;li&gt;Money is &lt;em&gt;hard&lt;&#x2F;em&gt;: it cannot be created by privileged parties cheaply&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Under these assumptions, there&#x27;s only one way to get money: offer someone with money something they value more than the money for trade. I&#x27;d describe that as a perfect example of giving to receive. If I sell you an apple for $2, I haven&#x27;t coerced you into buying it, and you&#x27;re well aware of your other options for buying food, then the trade means you value the apple more than the $2.&lt;&#x2F;p&gt;
&lt;p&gt;In this case, I&#x27;m giving you the apple. The &lt;em&gt;act&lt;&#x2F;em&gt; is one of giving. (Yes, it&#x27;s &lt;em&gt;also&lt;&#x2F;em&gt; an act of receiving the money.) But the intent isn&#x27;t altruistic. I&#x27;m not giving you the apple because I &lt;em&gt;want&lt;&#x2F;em&gt; to give you the apple. I&#x27;m doing it because I want the money. I want to receive. It just so happens that the economic system forces me to give in order to receive.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;becoming-selfless-under-free-markets&quot;&gt;Becoming selfless under free markets&lt;&#x2F;h2&gt;
&lt;p&gt;In practice, many people in free market systems &lt;em&gt;do&lt;&#x2F;em&gt; end up engaging in nominally selfless acts. They give charity, spend time volunteering, and so on. And far be it from me to criticize such actions! Those are wonderful things for people to do, and it&#x27;s wonderful that free markets tend to encourage people in such directions.&lt;&#x2F;p&gt;
&lt;p&gt;But rarely, if ever, would these be truly &quot;selfless&quot; in the Kabbalistic sense. I already hinted at this above. There&#x27;s usually a selfish ulterior motive associated with these things. That motive could be feeling good about yourself, wanting to avoid the negative feeling of the suffering of others, social pressure, social status, or tax write-offs.&lt;&#x2F;p&gt;
&lt;p&gt;Again, it&#x27;s great that people give, even if the motivations aren&#x27;t pure. But ultimately, free markets cannot, on their own, help us escape from selfishness. Free markets don&#x27;t try to combat selfishness. Instead, they channel that selfishness, through incentives, towards productivity and wealth creation.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s a great way to create a productive, modern world. It&#x27;s not a great way to fulfill the purpose of Creation.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;socialism-the-shortcut-to-giving&quot;&gt;Socialism: the shortcut to giving?&lt;&#x2F;h2&gt;
&lt;p&gt;If we truly want to evolve to selflessness and a world of giving, capitalism and free markets appear to be a dead end. And to be fair, many free market advocates would argue that selflessness isn&#x27;t a good goal to strive for anyway. Selfishness makes the world go round.&lt;&#x2F;p&gt;
&lt;p&gt;But let&#x27;s say you want to live in a world of selfless giving. Free markets are greedy by nature. Instead of &quot;free exchange of goods between willing partners,&quot; you base your economic philosophy around:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;From each according to his ability, to each according to his need&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The system gives. It gives people what they need. Selfish wants disappear. All needs are met. People selflessly give.&lt;&#x2F;p&gt;
&lt;p&gt;Except, of course, for the fact that this has never happened. Not in one example of socialism did the system work out as I just described.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;There&#x27;s never enough wealth to fulfill the wants of every person. Scarcity hasn&#x27;t been defeated.&lt;&#x2F;li&gt;
&lt;li&gt;Defining &quot;need&quot; is complex. Do you &lt;em&gt;need&lt;&#x2F;em&gt; to take a shower every day? Or are you just wasting water?&lt;&#x2F;li&gt;
&lt;li&gt;People &lt;em&gt;don&#x27;t&lt;&#x2F;em&gt; selflessly give. They give at gunpoint.&lt;&#x2F;li&gt;
&lt;li&gt;When the connection between production and reward is weakened, the incentive to produce weakens too.&lt;&#x2F;li&gt;
&lt;li&gt;People find other, non-monetary ways to compete for reward, status, and power.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;I&#x27;m sure many readers are strongly disagreeing with this point. (Or rather, if anyone with socialist leanings got through the previous section without rage quitting, they&#x27;re disagreeing.) Maybe you truly believe there&#x27;s a way to fix all these problems somehow.&lt;&#x2F;p&gt;
&lt;p&gt;My Kabbalistic response is: you can&#x27;t. You can&#x27;t uproot the desire to receive like this. It&#x27;s the core of who and what we are. Trying to take the shortcut to a world of giving, at the end of the barrel of a gun, will never work.&lt;&#x2F;p&gt;
&lt;p&gt;In my opinion, socialism has the right &lt;em&gt;goal&lt;&#x2F;em&gt;, but achieves the exact opposite of its intent. Using the Kabbalistic framing:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Capitalism&#x2F;free markets sit squarely in the giving to receive world, and can never naturally improve beyond that.&lt;&#x2F;li&gt;
&lt;li&gt;Advocates of socialism want to push us into a world of giving to give (the right &lt;em&gt;goal&lt;&#x2F;em&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;But in practice, by doing so through force, they aren&#x27;t encouraging people to selflessly give. They&#x27;re using force to take from some people and redistribute to others, while calling the resulting transfer an act of giving. In other words, socialism is a reversion back to the realm of receiving to receive.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;the-kabbalistic-answer&quot;&gt;The Kabbalistic answer&lt;&#x2F;h2&gt;
&lt;p&gt;So how do you become selfless? It&#x27;s not at gunpoint. It&#x27;s not through coercion. The Kabbalistic answer is to do acts of giving, with the intention of becoming a giving person.&lt;&#x2F;p&gt;
&lt;p&gt;There&#x27;s far more to that story than I&#x27;ve just said. In Rav Ashlag&#x27;s framework, this is deeply connected with learning Torah and performing &lt;em&gt;mitzvot&lt;&#x2F;em&gt; (commandments) for the sake of heaven. The relationship between that and &quot;giving with the intent of becoming a giving person&quot; is a somewhat shocking revelation. It&#x27;s not something I&#x27;ll dive into further here, but if you&#x27;re interested in the topic, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.sefaria.org.il&#x2F;Kuntres_Mattan_Torah%2C_First_Discourse%3B_The_Giving_of_the_Torah.2?lang=bi&quot;&gt;Kuntres Matan Torah&lt;&#x2F;a&gt; is a good starting point.&lt;&#x2F;p&gt;
&lt;p&gt;But there&#x27;s a form of that answer I can give here that&#x27;s far more readily adaptable by most. The way to start giving with pure intent is to give, at the small scale, with as much love as you can. The simplest is to start with your spouse, your children, and your close friends. The goal isn&#x27;t perfection in intent. The goal is to begin the process of refining your will from one of pure egoistic desire to love of your fellow.&lt;&#x2F;p&gt;
&lt;p&gt;I don&#x27;t think we&#x27;re ready for socialism. We&#x27;re not ready for large-scale selflessness-based systems. We need to let the engine of selfishness run the macro, while the core of selflessness can develop in the micro.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;low-time-preference&quot;&gt;Low time preference&lt;&#x2F;h2&gt;
&lt;p&gt;And this is my final parting thought. One of the central ideas in Kabbalah is the &lt;em&gt;masach&lt;&#x2F;em&gt;, or screen. It&#x27;s a complex topic that I won&#x27;t fully explain here. But I &lt;em&gt;will&lt;&#x2F;em&gt; give a simple if incomplete analogy. The screen says: I won&#x27;t immediately and automatically receive the thing I want right now. I will push it away, and receive it in a more refined form.&lt;&#x2F;p&gt;
&lt;p&gt;That description, while not the literal one of a &lt;em&gt;masach&lt;&#x2F;em&gt;, sounds remarkably like the economic concept of low time preference. Low time preference means: instead of wanting to consume everything immediately, I&#x27;m willing to defer my consumption, invest in the future, save my money, and consume in the future.&lt;&#x2F;p&gt;
&lt;p&gt;Putting money in an interest-bearing account would be an example of low time preference behavior.&lt;&#x2F;p&gt;
&lt;p&gt;Saving money so I can use it in the future is &lt;em&gt;not&lt;&#x2F;em&gt; a selfless act. It&#x27;s remarkably selfish, in fact! But it still has the same &lt;em&gt;shape&lt;&#x2F;em&gt; as developing towards selflessness: being willing to forgo my immediate wants. One way of looking at it, if a bit stretched, is that I am selflessly giving to my future self.&lt;&#x2F;p&gt;
&lt;p&gt;One of the complaints I (and many others) have about the modern financial world is that its inflationary nature necessarily reduces the incentive to behave in a low time preference way. Said another way: the fact that $10 in five years will buy less than $10 buys today pushes the incentive somewhat toward consuming that $10 sooner, acting more selfishly, focusing on my immediate needs, and bypassing the &lt;em&gt;masach&lt;&#x2F;em&gt; or screen concept. Inflation can also encourage investment instead of consumption, but it clearly discourages simply holding cash.&lt;&#x2F;p&gt;
&lt;p&gt;Maybe, just maybe, moving towards a hard money system is one way the world can evolve to one of selflessness. But don&#x27;t worry, this post is long enough already, I won&#x27;t turn it into a Bitcoin advocacy bit. And I&#x27;m definitely &lt;em&gt;not&lt;&#x2F;em&gt; claiming that Bitcoin is a sign of the redemption... that would be crazy!&lt;&#x2F;p&gt;
</description>
        </item>
        <item>
            <title>Kabbalah, Haskell, and the ST Monad</title>
            <pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2026/06/kabbalah-haskell-st-monad/</link>
            <guid>https://www.snoyman.com/blog/2026/06/kabbalah-haskell-st-monad/</guid>
            <description>&lt;p&gt;For the past year, I’ve been learning Kabbalah for the first time in my life. It has been a fascinating journey. I haven’t really shared much about it publicly, and I’m not sure whether I’m going to continue discussing it on this blog or anywhere else.&lt;&#x2F;p&gt;
&lt;p&gt;However, I recently ran into an overlap between Kabbalistic teachings and purely functional programming which is, frankly, kind of hilarious. So I figured I would write something down for the three other people in the world who may be interested in this intersection.&lt;&#x2F;p&gt;
&lt;p&gt;To the other Kabbalistic religious Jews who know a little bit of Haskell: hey there.&lt;&#x2F;p&gt;
&lt;p&gt;This is a weird post to write, because I’m basically aiming at an audience that may know the functional programming side, may know the Kabbalistic side, may know both, or may know neither. So I’m going to introduce both. Let’s start with the part I’m much more comfortable with: functional programming.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;immutability&quot;&gt;Immutability&lt;&#x2F;h2&gt;
&lt;p&gt;Let’s say you have a list of numbers:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #657B83; background-color: #FDF6E3;&quot;&gt;&lt;code data-lang=&quot;haskell&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;And you want to add one to each number, ending up with:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #657B83; background-color: #FDF6E3;&quot;&gt;&lt;code data-lang=&quot;haskell&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 6&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;In many programming languages, the natural way to think about this is mutation. Somewhere in the computer’s memory, there are five numbers. We go to that memory and modify the values in place.&lt;&#x2F;p&gt;
&lt;p&gt;Purely functional programming languages like Haskell don’t really like this approach. One reason is that mutation makes code harder to reason about. Another is aliasing: if two different parts of your program are both referring to the same list, and one part changes the list, the other part is now holding on to something different from what it thought it had.&lt;&#x2F;p&gt;
&lt;p&gt;So one of the core ideas in Haskell, and in purely functional programming more generally, is immutability.&lt;&#x2F;p&gt;
&lt;p&gt;Once a value exists, you don’t change it.&lt;&#x2F;p&gt;
&lt;p&gt;But of course, we still need to “change” things. Programs that can’t produce new values aren’t very useful. So instead of modifying an existing value, we create a new value based on the old one.&lt;&#x2F;p&gt;
&lt;p&gt;In our example, we don’t mutate:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #657B83; background-color: #FDF6E3;&quot;&gt;&lt;code data-lang=&quot;haskell&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;into:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #657B83; background-color: #FDF6E3;&quot;&gt;&lt;code data-lang=&quot;haskell&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 6&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Rather, we create a new list. The old list still exists. The new list exists too.&lt;&#x2F;p&gt;
&lt;p&gt;Now let’s make this a little more concrete. Imagine we had an operation that modifies one position in a list. You tell it which position you want to modify, how you want to modify it, and it gives you back a new list.&lt;&#x2F;p&gt;
&lt;p&gt;We could use that operation like this:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #657B83; background-color: #FDF6E3;&quot;&gt;&lt;code data-lang=&quot;haskell&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 6&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Conceptually, this works. We never mutated any list. Every step produced a new list.&lt;&#x2F;p&gt;
&lt;p&gt;The problem is that this is terribly inefficient. We didn’t really want five intermediate lists. We wanted one final list.&lt;&#x2F;p&gt;
&lt;p&gt;Now, of course, we can define better operations for this specific case. We can use &lt;code&gt;map (+1)&lt;&#x2F;code&gt;, and everything is wonderful. That’s not the point I’m getting at here.&lt;&#x2F;p&gt;
&lt;p&gt;The question is: what happens when we want the efficiency of mutation, but we still want the safety and reasoning benefits of immutability?&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-st-monad&quot;&gt;The ST monad&lt;&#x2F;h2&gt;
&lt;p&gt;This is where the &lt;code&gt;ST&lt;&#x2F;code&gt; monad comes in.&lt;&#x2F;p&gt;
&lt;p&gt;I am not going to try to give a full explanation of monads here. That way lies madness, blog comments, and probably someone correcting me on category theory. For our purposes, a monad gives us a way to sequence operations. Do this, then do that, then do the next thing.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;code&gt;ST&lt;&#x2F;code&gt; monad is particularly interesting because it lets us perform local mutation inside an otherwise pure program.&lt;&#x2F;p&gt;
&lt;p&gt;A typical pattern looks something like this:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Start with an immutable vector.&lt;&#x2F;li&gt;
&lt;li&gt;Create a mutable copy of it inside &lt;code&gt;ST&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Mutate that copy in place.&lt;&#x2F;li&gt;
&lt;li&gt;Freeze it back into an immutable vector.&lt;&#x2F;li&gt;
&lt;li&gt;Return the immutable result.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;From the outside, nobody can observe the mutation. The mutable vector never escapes. The rest of the program just sees a pure function from one immutable value to another immutable value.&lt;&#x2F;p&gt;
&lt;p&gt;That means we can do something mutation-like internally while preserving the external semantics of pure functional programming.&lt;&#x2F;p&gt;
&lt;p&gt;Or, since I’m already writing a Jewish blog post: the mutation is kosher.&lt;&#x2F;p&gt;
&lt;p&gt;The key idea is containment. Haskell as a language does not generally embrace arbitrary mutation. But it gives us a controlled environment where local mutation is allowed, as long as the mutation cannot leak out and break the guarantees of the rest of the program.&lt;&#x2F;p&gt;
&lt;p&gt;Put differently: inside this little sealed-off world, mutation exists. From the outside, the whole thing is just one pure action.&lt;&#x2F;p&gt;
&lt;p&gt;Let’s put that to the side for a moment and switch to Kabbalah.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;yn-h-dr-brvkhny&quot;&gt;אין העדר ברוחני&lt;&#x2F;h2&gt;
&lt;p&gt;One of the core ideas I’ve encountered in Kabbalistic learning is:&lt;&#x2F;p&gt;
&lt;p&gt;אין העדר ברוחני&lt;&#x2F;p&gt;
&lt;p&gt;There is no absence in the spiritual.&lt;&#x2F;p&gt;
&lt;p&gt;Or said another way: in spirituality, nothing is ever erased, destroyed, or removed.&lt;&#x2F;p&gt;
&lt;p&gt;That is a very strange idea from the perspective of our physical world. In our world, things change all the time. A building stands, and then it is knocked down. A cup is whole, and then it breaks. A document exists, and then someone deletes it. A person is in one emotional state, and later they are in a different emotional state.&lt;&#x2F;p&gt;
&lt;p&gt;We naturally think in terms of mutation. Something was one way, and now it is another way.&lt;&#x2F;p&gt;
&lt;p&gt;But in the spiritual system, as I understand it, that is not what happens. When something “changes,” the original state is not destroyed. Instead, a new state comes into being.&lt;&#x2F;p&gt;
&lt;p&gt;Let’s take one example.&lt;&#x2F;p&gt;
&lt;p&gt;In Kabbalistic terminology, there is a concept called a מסך, a screen. The screen has some level of עביות, usually translated as thickness or coarseness. That thickness can be at different levels: Shoresh, Aleph, Bet, Gimel, Dalet.&lt;&#x2F;p&gt;
&lt;p&gt;Let’s say there is a Masach at level Dalet. It is exposed to light, and the light refines it, bringing it down to level Gimel.&lt;&#x2F;p&gt;
&lt;p&gt;In our normal physical intuition, we would say: the Masach used to be level Dalet, and now it has changed into level Gimel.&lt;&#x2F;p&gt;
&lt;p&gt;But spiritually, that’s not quite right. The level Dalet state is not erased. It remains. The refinement gives rise to a new state, a new Masach, now at level Gimel.&lt;&#x2F;p&gt;
&lt;p&gt;The old thing was not modified.&lt;&#x2F;p&gt;
&lt;p&gt;A new thing was created.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;this-sounds-suspiciously-familiar&quot;&gt;This sounds suspiciously familiar&lt;&#x2F;h2&gt;
&lt;p&gt;At this point, the overlap should be pretty obvious.&lt;&#x2F;p&gt;
&lt;p&gt;The Kabbalistic idea that nothing is ever removed or changed in spirituality sounds a lot like immutability in Haskell.&lt;&#x2F;p&gt;
&lt;p&gt;In Haskell, if I have a value, I don’t mutate that value. I create a new value based on the old one.&lt;&#x2F;p&gt;
&lt;p&gt;In the spiritual system, as I’m currently understanding it, a spiritual state is not mutated into a different spiritual state. The original state remains, and the new state emerges from it.&lt;&#x2F;p&gt;
&lt;p&gt;That’s already a neat overlap. But for me, the more interesting part is the connection to &lt;code&gt;ST&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Because we clearly do not experience our world this way.&lt;&#x2F;p&gt;
&lt;p&gt;In this physical world, mutation seems very real. Things change. Things decay. Things are built, broken, refined, damaged, repaired, and transformed. We live in time and space. We experience before and after. We experience cause and effect. We experience becoming.&lt;&#x2F;p&gt;
&lt;p&gt;And that makes me wonder whether our physical world is, in some sense, like one giant &lt;code&gt;ST&lt;&#x2F;code&gt; action.&lt;&#x2F;p&gt;
&lt;p&gt;Inside the &lt;code&gt;ST&lt;&#x2F;code&gt; monad, mutation is real. You really can modify a mutable vector. You really can write to a mutable reference. Step one happens, then step two happens, then step three happens.&lt;&#x2F;p&gt;
&lt;p&gt;But from the outside, the entire &lt;code&gt;ST&lt;&#x2F;code&gt; computation is pure. No mutation leaked out. The outside world doesn’t see the intermediate states. It sees one pure transformation from input to output.&lt;&#x2F;p&gt;
&lt;p&gt;That feels like a surprisingly good analogy for our world.&lt;&#x2F;p&gt;
&lt;p&gt;Inside this world, mutation is real. Time is real. Our choices are real. Actions matter. Things can be damaged, repaired, elevated, or corrupted.&lt;&#x2F;p&gt;
&lt;p&gt;But from a higher spiritual perspective, perhaps the entirety of this world is one contained process. We begin from one state. We go through the entire history of this world, with all of its apparent mutations, choices, actions, and consequences. And at the end, there is a final corrected state.&lt;&#x2F;p&gt;
&lt;p&gt;Inside the process, mutation.&lt;&#x2F;p&gt;
&lt;p&gt;Outside the process, immutability.&lt;&#x2F;p&gt;
&lt;p&gt;To be clear: I am not claiming this is a rigorous Kabbalistic model. Please do not build theology on top of my Haskell analogy. That way lies even more madness than monad tutorials.&lt;&#x2F;p&gt;
&lt;p&gt;But as an analogy, it feels useful.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;programming-as-spiritual-training-wheels&quot;&gt;Programming as spiritual training wheels&lt;&#x2F;h2&gt;
&lt;p&gt;There is a broader point here that I keep noticing.&lt;&#x2F;p&gt;
&lt;p&gt;A lot of Kabbalistic ideas are incredibly abstract. That’s not a complaint. They are supposed to be abstract. We are dealing with realities that are not physical, not spatial, and not bound by the categories we normally use to understand the world.&lt;&#x2F;p&gt;
&lt;p&gt;But modern life gives us access to abstractions that earlier generations simply did not encounter in the same way.&lt;&#x2F;p&gt;
&lt;p&gt;Programming is one of the clearest examples.&lt;&#x2F;p&gt;
&lt;p&gt;In Kabbalah, distance is not necessarily physical distance. Spiritual distance is measured by similarity and difference of form. Two things are “close” if they are similar in form, and “far” if they are different in form.&lt;&#x2F;p&gt;
&lt;p&gt;That sounds strange if your only model of location is physical space.&lt;&#x2F;p&gt;
&lt;p&gt;But if you write software, this isn’t that strange.&lt;&#x2F;p&gt;
&lt;p&gt;In a computer game, an object may have an on-screen location: it is standing next to a tree, or inside a room, or ten meters away from another character. But where is that object “really”? It may be stored in memory somewhere completely unrelated to any of those visual relationships. Two objects that are “next to each other” in the game world may be nowhere near each other in memory. Two objects next to each other in memory may have nothing to do with each other in the game.&lt;&#x2F;p&gt;
&lt;p&gt;The represented space and the storage space are not the same thing.&lt;&#x2F;p&gt;
&lt;p&gt;As programmers, we deal with these kinds of distinctions all the time. We constantly move between levels of abstraction. We understand that something can be “located” in one structure conceptually while being represented somewhere entirely different physically. We understand that identity, equality, reference, state, and transformation are not simple ideas.&lt;&#x2F;p&gt;
&lt;p&gt;That doesn’t make Kabbalah easy. I’m not sure anything makes Kabbalah easy.&lt;&#x2F;p&gt;
&lt;p&gt;But I do think that spending a lifetime programming has given me some mental handles that make certain Kabbalistic ideas easier to approach. Or at least easier to misunderstand in interesting ways.&lt;&#x2F;p&gt;
&lt;p&gt;And this itself lines up with an idea I’ve heard in Kabbalistic learning: as we approach redemption, these teachings become more accessible and more widespread. I don’t know exactly what to do with that idea yet. But it is interesting to me that the modern world is filled with abstractions that make some of these concepts less foreign than they may have been centuries ago.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;no-grand-conclusion&quot;&gt;No grand conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;I don’t have a big takeaway here.&lt;&#x2F;p&gt;
&lt;p&gt;I’m not announcing a new series. I’m not claiming to have discovered the secret Haskell encoding of the עולמות. I’m definitely not suggesting that the Ari was secretly using &lt;code&gt;runST&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Mostly, I’m sharing a surprising overlap between two parts of my life that I never expected to meet.&lt;&#x2F;p&gt;
&lt;p&gt;On one side: Haskell, immutability, and the &lt;code&gt;ST&lt;&#x2F;code&gt; monad.&lt;&#x2F;p&gt;
&lt;p&gt;On the other side: אין העדר ברוחני, spiritual states that are not erased, and a physical world where change and mutation appear to be very real.&lt;&#x2F;p&gt;
&lt;p&gt;And sitting somewhere in the middle: one religious Jewish programmer, slightly amused that the mental model he used to explain mutable vectors may also help him think about Kabbalah.&lt;&#x2F;p&gt;
</description>
        </item>
        <item>
            <title>Who pays a tax?</title>
            <pubDate>Tue, 04 Feb 2025 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2025/02/who-pays-a-tax/</link>
            <guid>https://www.snoyman.com/blog/2025/02/who-pays-a-tax/</guid>
            <description>&lt;p&gt;President Trump has started rolling out his tariffs, something I &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.snoyman.com&#x2F;blog&#x2F;2024&#x2F;11&#x2F;steelmanning-tariffs&#x2F;&quot;&gt;blogged about in November&lt;&#x2F;a&gt;. People are talking about these tariffs a lot right now, with many people (correctly) commenting on how consumers will end up with higher prices as a result of these tariffs. While that part is true, I’ve seen a lot of people taking it to the next, incorrect step: that consumers will pay the entirety of the tax. I &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;x.com&#x2F;snoyberg&#x2F;status&#x2F;1886035800019599808&quot;&gt;put up a poll on X&lt;&#x2F;a&gt; to see what people thought, and while the right answer got a lot of votes, it wasn&#x27;t the winner.&lt;&#x2F;p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Checking on people&amp;#39;s general view of taxes. When the government imposes a tax on trade (sales tax, VAT, tariff, or even payroll tax), which party absorbs the cost of the tax?&lt;&#x2F;p&gt;&amp;mdash; Michael Snoyman (@snoyberg) &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;snoyberg&#x2F;status&#x2F;1886035800019599808?ref_src=twsrc%5Etfw&quot;&gt;February 2, 2025&lt;&#x2F;a&gt;&lt;&#x2F;blockquote&gt; &lt;script async src=&quot;https:&#x2F;&#x2F;platform.twitter.com&#x2F;widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;&#x2F;script&gt;
&lt;p&gt;For purposes of this blog post, our ultimate question will be the following:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Suppose apples currently sell for $1 each in the entire United States.&lt;&#x2F;li&gt;
&lt;li&gt;There are domestic sellers and foreign sellers of apples, all receiving the same price.&lt;&#x2F;li&gt;
&lt;li&gt;There are no taxes or tariffs on the purchase of apples.&lt;&#x2F;li&gt;
&lt;li&gt;The question is: if the US federal government puts a $0.50 import tariff per apple, what will be the change in the following:
&lt;ul&gt;
&lt;li&gt;Number of apples bought in the US&lt;&#x2F;li&gt;
&lt;li&gt;Price paid by buyers for apples in the US&lt;&#x2F;li&gt;
&lt;li&gt;Post-tax price received by domestic apple producers&lt;&#x2F;li&gt;
&lt;li&gt;Post-tax price received by foreign apple producers&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Before we can answer that question, we need to ask an easier, first question: before instituting the tariff, why do apples cost $1?&lt;&#x2F;p&gt;
&lt;p&gt;And finally, before we dive into the details, let me provide you with the answers to the ultimate question. I recommend you try to guess these answers before reading this, and if you get it wrong, try to understand why:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;The number of apples bought will go down&lt;&#x2F;li&gt;
&lt;li&gt;The buyers will pay more for each apple they buy, but not the full amount of the tariff&lt;&#x2F;li&gt;
&lt;li&gt;Domestic apple sellers will receive a &lt;em&gt;higher&lt;&#x2F;em&gt; price per apple&lt;&#x2F;li&gt;
&lt;li&gt;Foreign apple sellers will receive a &lt;em&gt;lower&lt;&#x2F;em&gt; price per apple, but not lowered by the full amount of the tariff&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;In other words, regardless of who sends the payment to the government, both taxed parties (domestic buyers and foreign sellers) will absorb some of the costs of the tariff, while domestic sellers will benefit from the protectionism provided by tariffs and be able to sell at a higher price per unit.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;marginal-benefit&quot;&gt;Marginal benefit&lt;&#x2F;h2&gt;
&lt;p&gt;All of the numbers discussed below are part of a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;spreadsheets&#x2F;d&#x2F;14ZbkWpw1B9Q1UDB9Yh47DmdKQfIafVVBKbDUsSIfGZw&#x2F;edit?usp=sharing&quot;&gt;helper Google Sheet&lt;&#x2F;a&gt; I put together for this analysis. Also, apologies about the jagged lines in the charts below, I hadn’t realized before starting on this that there are &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;superuser.com&#x2F;questions&#x2F;1359731&#x2F;how-to-create-a-supply-demand-style-chart&quot;&gt;some difficulties with creating supply and demand charts in Google Sheets&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Let’s say I absolutely love apples, they’re my favorite food. How much would I be willing to pay for a single apple? You might say “$1, that’s the price in the supermarket,” and in many ways you’d be right. If I walk into supermarket A, see apples on sale for $50, and know that I can buy them at supermarket B for $1, I’ll almost certainly leave A and go buy at B.&lt;&#x2F;p&gt;
&lt;p&gt;But that’s not what I mean. What I mean is: how high would the price of apples have to go &lt;em&gt;everywhere&lt;&#x2F;em&gt; so that I’d no longer be willing to buy a single apple? This is a purely personal, subjective opinion. It’s impacted by how much money I have available, other expenses I need to cover, and how much I like apples. But let’s say the number is $5.&lt;&#x2F;p&gt;
&lt;p&gt;How much would I be willing to pay for another apple? Maybe another $5. But how much am I willing to pay for the 1,000th apple? 10,000th? At some point, I’ll get sick of apples, or run out of space to keep the apples, or not be able to eat, cook, and otherwise preserve all those apples before they rot.&lt;&#x2F;p&gt;
&lt;p&gt;The point being: I’ll be progressively willing to spend less and less money for each apple. This form of analysis is called &lt;em&gt;marginal benefit&lt;&#x2F;em&gt;: how much benefit (expressed as dollars I’m willing to spend) will I receive from each apple? This is a downward sloping function: for each additional apple I buy (quantity demanded), the price I’m willing to pay goes down. This is what gives my personal &lt;em&gt;demand curve&lt;&#x2F;em&gt;. And if we aggregate demand curves across all market participants (meaning: everyone interested in buying apples), we end up with something like this:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;who-pays-tax&#x2F;demand-before-tariff.png&quot; alt=&quot;Demand curve before tax&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Assuming no changes in people’s behavior and other conditions in the market, this chart tells us how many apples will be purchased by our buyers at each price point between $0.50 and $5. And ceteris paribus (all else being equal), this will continue to be the demand curve for apples.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;marginal-cost&quot;&gt;Marginal cost&lt;&#x2F;h2&gt;
&lt;p&gt;Demand is half the story of economics. The other half is supply, or: how many apples will I sell at each price point? Supply curves are upward sloping: the higher the price, the more a person or company is willing and able to sell a product.&lt;&#x2F;p&gt;
&lt;p&gt;Let’s understand why. Suppose I have an apple orchard. It’s a large property right next to my house. With about 2 minutes of effort, I can walk out of my house, find the nearest tree, pick 5 apples off the tree, and call it a day. 5 apples for 2 minutes of effort is pretty good, right?&lt;&#x2F;p&gt;
&lt;p&gt;Yes, there was all the effort necessary to buy the land, and plant the trees, and water them… and a bunch more than I likely can’t even guess at. We’re going to ignore all of that for our analysis, because for short-term supply-and-demand movement, we can ignore these kinds of &lt;em&gt;sunk costs&lt;&#x2F;em&gt;. One other simplification: in reality, supply curves often start descending before ascending. This accounts for achieving efficiencies of scale after the first number of units purchased. But since both these topics are unneeded for understanding taxes, I won’t go any further.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, back to my apple orchard. If someone offers me $0.50 per apple, I can do 2 minutes of effort and get $2.50 in revenue, which equates to a $75&#x2F;hour wage for me. I’m more than happy to pick apples at that price!&lt;&#x2F;p&gt;
&lt;p&gt;However, let’s say someone comes to buy 10,000 apples from me instead. I no longer just walk out to my nearest tree. I’m going to need to get in my truck, drive around, spend the day in the sun, pay for gas, take a day off of my day job (let’s say it pays me $70&#x2F;hour). The costs go up significantly. Let’s say it takes 5 days to harvest all those apples myself, it costs me $100 in fuel and other expenses, and I lose out on my $70&#x2F;hour job for 5 days. We end up with:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Total expenditure: $100 + $70 * 8 hours a day * 5 days == $2900&lt;&#x2F;li&gt;
&lt;li&gt;Total revenue: $5000 (10,000 apples at $0.50 each)&lt;&#x2F;li&gt;
&lt;li&gt;Total profit: $2100&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;So I’m still willing to sell the apples at this price, but it’s not as attractive as before. And as the number of apples purchased goes up, my costs keep increasing. I’ll need to spend more money on fuel to travel more of my property. At some point I won’t be able to do the work myself anymore, so I’ll need to pay others to work on the farm, and they’ll be slower at picking apples than me (less familiar with the property, less direct motivation, etc.). The point being: at some point, the number of apples can go high enough that the $0.50 price point no longer makes me any money.&lt;&#x2F;p&gt;
&lt;p&gt;This kind of analysis is called &lt;em&gt;marginal cost&lt;&#x2F;em&gt;. It refers to the additional amount of expenditure a seller has to spend in order to produce each additional unit of the good. Marginal costs go up as quantity sold goes up. And like demand curves, if you aggregate this data across all sellers, you get a supply curve like this:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;who-pays-tax&#x2F;supply-before-tariff.png&quot; alt=&quot;Supply curve before tariff&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;equilibrium-price&quot;&gt;Equilibrium price&lt;&#x2F;h2&gt;
&lt;p&gt;We now know, for every price point, how many apples buyers will purchase, and how many apples sellers will sell. Now we find the equilibrium: where the supply and demand curves meet. This point represents where the marginal benefit a buyer would receive from the next buyer would be less than the cost it would take the next seller to make it. Let’s see it in a chart:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;who-pays-tax&#x2F;supply-demand-before-tariff.png&quot; alt=&quot;Supply and demand before tariff&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;You’ll notice that these two graphs cross at the $1 price point, where 63 apples are both demanded (bought by consumers) and supplied (sold by producers). This is our equilibrium price. We also have a visualization of the &lt;em&gt;surplus&lt;&#x2F;em&gt; created by these trades. Everything to the left of the equilibrium point and between the supply and demand curves represents surplus: an area where someone is receiving something of more value than they give. For example:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;When I bought my first apple for $1, but I was willing to spend $5, I made $4 of consumer surplus. The consumer portion of the surplus is everything to the left of the equilibrium point, between the supply and demand curves, and above the equilibrium price point.&lt;&#x2F;li&gt;
&lt;li&gt;When a seller sells his first apple for $1, but it only cost $0.50 to produce it, the seller made $0.50 of producer surplus. The producer portion of the surplus is everything to the left of the equilibrium point, between the supply and demand curves, and below the equilibrium price point.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Another way of thinking of surplus is “every time someone got a better price than they would have been willing to take.”&lt;&#x2F;p&gt;
&lt;p&gt;OK, with this in place, we now have enough information to figure out how to price in the tariff, which we’ll treat as a negative externality.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;modeling-taxes&quot;&gt;Modeling taxes&lt;&#x2F;h2&gt;
&lt;p&gt;Alright, the government has now instituted a $0.50 tariff on every apple sold within the US by a foreign producer. We can generally model taxes by either increasing the marginal cost of each unit sold (shifting the supply curve up), or by decreasing the marginal benefit of each unit bought (shifting the demand curve down). In this case, since only some of the producers will pay the tax, it makes more sense to modify the supply curve.&lt;&#x2F;p&gt;
&lt;p&gt;First, let’s see what happens to the foreign seller-only supply curve when you add in the tariff:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;who-pays-tax&#x2F;supply-tariff-shift.png&quot; alt=&quot;Foreign supply shift from tariff&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;With the tariff in place, for each quantity level, the price at which the seller will sell is $0.50 higher than before the tariff. That makes sense: if I was previously willing to sell my 82nd apple for $3, I would now need to charge $3.50 for that apple to cover the cost of the tariff. We see this as the tariff “pushing up” or “pushing left” the original supply curve.&lt;&#x2F;p&gt;
&lt;p&gt;We can add this new supply curve to our existing (unchanged) supply curve for domestic-only sellers, and we end up with a result like this:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;who-pays-tax&#x2F;supply-curves-post-tariff.png&quot; alt=&quot;Supply curves post tariff&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The total supply curve adds up the individual foreign and domestic supply curves. At each price point, we add up the total quantity each group would be willing to sell to determine the total quantity supplied for each price point. Once we have that cumulative supply curve defined, we can produce an updated supply-and-demand chart including the tariff:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;who-pays-tax&#x2F;supply-demand-post-tariff.png&quot; alt=&quot;Supply and demand post tariff&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;As we can see, the equilibrium has shifted:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The equilibrium price paid by consumers has risen from $1 to $1.20.&lt;&#x2F;li&gt;
&lt;li&gt;The total number of apples purchased has dropped from 63 apples to 60 apples.&lt;&#x2F;li&gt;
&lt;li&gt;Consumers therefore received 3 less apples. They spent $72 for these 60 apples, whereas previously they spent $63 for 3 more apples, a definite decrease in consumer surplus.&lt;&#x2F;li&gt;
&lt;li&gt;Foreign producers sold 36 of those apples (see the raw data in the linked Google Sheet), for a gross revenue of $43.20. However, they also need to pay the tariff to the US government, which accounts for $18, meaning they only receive $25.20 post-tariff. Previously, they sold 42 apples at $1 each with no tariff to be paid, meaning they took home $42.&lt;&#x2F;li&gt;
&lt;li&gt;Domestic producers sold the remaining 24 apples at $1.20, giving them a revenue of $28.80. Since they don’t pay the tariff, they take home all of that money. By contrast, previously, they sold 21 apples at $1, for a take-home of $21.&lt;&#x2F;li&gt;
&lt;li&gt;The government receives $0.50 for each of the 60 apples sold, or in other words receives $30 in revenue it wouldn’t have received otherwise.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We could be more specific about the surpluses, and calculate the actual areas for consumer surplus, producer surplus, inefficiency from the tariff, and government revenue from the tariff. But I won’t bother, as those calculations get slightly more involved. Instead, let’s just look at the aggregate outcomes:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Consumers were unquestionably hurt. Their price paid went up by $0.20 per apple, and received less apples.&lt;&#x2F;li&gt;
&lt;li&gt;Foreign producers were also hurt. Their price received went down from the original $1 to the new post-tariff price of $1.20, minus the $0.50 tariff. In other words: foreign producers only receive $0.70 per apple now. This hurt can be mitigated by shifting sales to other countries without a tariff, but the pain will exist regardless.&lt;&#x2F;li&gt;
&lt;li&gt;Domestic producers scored. They can sell less apples and make more revenue doing it.&lt;&#x2F;li&gt;
&lt;li&gt;And the government walked away with an extra $30.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Hopefully you now see the answer to the original questions. Importantly, while the government imposed a $0.50 tariff, neither side fully absorbed that cost. Consumers paid a bit more, foreign producers received a bit less. The exact details of how that tariff was split across the groups is mediated by the relevant supply and demand curves of each group. If you want to learn more about this, the relevant search term is “price elasticity,” or how much a group’s quantity supplied or demanded will change based on changes in the price.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;other-taxes&quot;&gt;Other taxes&lt;&#x2F;h2&gt;
&lt;p&gt;Most taxes are some kind of a tax on trade. Tariffs on apples is an obvious one. But the same applies to income tax (taxing the worker for the trade of labor for money) or payroll tax (same thing, just taxing the employer instead). Interestingly, you can use the same model for analyzing things like tax incentives. For example, if the government decided to subsidize domestic apple production by giving the domestic producers a $0.50 bonus for each apple they sell, we would end up with a similar kind of analysis, except instead of the foreign supply curve shifting up, we’d see the domestic supply curve shifting down.&lt;&#x2F;p&gt;
&lt;p&gt;And generally speaking, this is what you’ll &lt;em&gt;always&lt;&#x2F;em&gt; see with government involvement in the economy. It will result in disrupting an existing equilibrium, letting the market readjust to a new equilibrium, and incentivization of some behavior, causing some people to benefit and others to lose out. We saw with the apple tariff, domestic producers and the government benefited while others lost.&lt;&#x2F;p&gt;
&lt;p&gt;You can see the reverse though with tax incentives. If I give a tax incentive of providing a deduction (not paying income tax) for preschool, we would end up with:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Government needs to make up the difference in tax revenue, either by raising taxes on others or printing more money (leading to inflation). Either way, those paying the tax or those holding government debased currency will pay a price.&lt;&#x2F;li&gt;
&lt;li&gt;Those people who don’t use the preschool deduction will receive no benefit, so they simply pay a cost.&lt;&#x2F;li&gt;
&lt;li&gt;Those who do use the preschool deduction will end up paying less on tax+preschool than they would have otherwise.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This analysis is fully amoral. It’s not saying whether providing subsidized preschool is a good thing or not, it simply tells you where the costs will be felt, and points out that such government interference in free economic choice does result in inefficiencies in the system. Once you have that knowledge, you’re more well educated on making a decision about whether the costs of government intervention are worth the benefits.&lt;&#x2F;p&gt;
</description>
        </item>
        <item>
            <title>The Paradox of Necessary Force</title>
            <pubDate>Thu, 16 Jan 2025 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2025/01/paradox-necessary-force/</link>
            <guid>https://www.snoyman.com/blog/2025/01/paradox-necessary-force/</guid>
            <description>&lt;p&gt;Humans want the resources of other humans. I want the food that the supermarket owns so that I can eat it. Before buying it, I wanted the house that I now own. And before that, someone wanted to build a house on that plot of land, which was owned by someone else first. Most of the activities we engage in during our lifetime revolve around extracting something from someone else.&lt;&#x2F;p&gt;
&lt;p&gt;There are two basic modalities to getting the resources of someone else. The first, the simplest, and the one that has dominated the majority of human history, is force. Conquer people, kill them, beat them up and take their stuff, force them into slavery and make them do your work. It’s a somewhat effective strategy. This can also be more subtle, by using coercive and fraudulent methods to trick people into giving you their resources. Let’s call this modality the looter approach.&lt;&#x2F;p&gt;
&lt;p&gt;The second is trade. In the world of trade, I can only extract resources from someone else when they willingly give them to me in exchange for something else of value. This can be barter of value for value, payment in money, built-up goodwill, favors, charity (exchanging resources for the benefit you receive for helping someone else), and more. In order to participate in this modality, you need to create your own valuable resources that other people want to trade for. Let’s call this the producer approach.&lt;&#x2F;p&gt;
&lt;p&gt;The producer approach is better for society in every conceivable way. The looter approach causes unnecessary destruction, pushes production into ventures that don’t directly help anyone (like making more weapons), and rewards people for their ability to inflict harm. By contrast, the producer approach rewards the ability to meet the needs of others and causes resources to end up in the hands of those who value them the most.&lt;&#x2F;p&gt;
&lt;p&gt;Looter philosophy is rooted in the concept of the zero sum game, the mistaken belief that I can only have more if someone else has less. By contrast, the producer philosophy correctly identifies the fact that we can &lt;em&gt;all&lt;&#x2F;em&gt; end up better by producing more goods in more efficient ways. We live in our modern world of relatively widespread luxury because producers have made technological leaps—for their own self-serving motives—that have improved everyone’s ability to produce more goods going forward. Think of the steam engine, electricity, computing power, and more.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-producer-only-world&quot;&gt;A producer-only world&lt;&#x2F;h2&gt;
&lt;p&gt;It would be wonderful to live in a world in which there are no looters. We all produce, we all trade, everyone receives more value than they give, and there is no wasted energy or destruction from the use of force.&lt;&#x2F;p&gt;
&lt;p&gt;Think about how wonderful it could be! We wouldn’t need militaries, allowing a massive amount of productive capacity to be channeled into things that make everyone’s lives better. We wouldn’t need police. Not only would that free up more resources, but would remove the threat of improper use of force by the state against citizens. The list goes on and on.&lt;&#x2F;p&gt;
&lt;p&gt;I believe many economists—especially Austrian economists—are cheering for that world. I agree with them on the cheering. It’s why things like Donald Trump’s plans for tariffs are so horrific in their eyes. Tariffs introduce an artificial barrier between nations, impeding trade, preventing the peaceful transfer of resources, and leading to a greater likelihood of armed conflict.&lt;&#x2F;p&gt;
&lt;p&gt;There’s only one problem with this vision, and it’s also based in economics: game theory.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;game-theory-and-looters&quot;&gt;Game theory and looters&lt;&#x2F;h2&gt;
&lt;p&gt;Imagine I’m a farmer. I’m a great farmer, I have a large plot of land, I run my operations efficiently, and I produce huge amounts of food. I sell that food into the marketplace, and with that money I’m able to afford great resources from other people, who willingly trade them to me because they value the money more than their own resources. For example, how many T-shirts does the clothing manufacturer need? Instead of his 1,000th T-shirt, he’d rather sell it for $5 and buy some food.&lt;&#x2F;p&gt;
&lt;p&gt;While I’m really great as a farmer, I’m not very good as a fighter. I have no weapons training, I keep no weapons on my property, and I dislike violence.&lt;&#x2F;p&gt;
&lt;p&gt;And finally, there’s a strong, skilled, unethical person down the street. He could get a job with me on the farm. For back-breaking work 8 hours a day, I’ll pay him 5% of my harvest. Or, by contrast, he could act like the mafia, demand a “protection fee” of 20%, and either beat me up, beat up my family, or cause harm to my property, if I don’t pay it.&lt;&#x2F;p&gt;
&lt;p&gt;In other words, he could be a producer and get 5% in exchange for hard work, or be a looter and get 20% in exchange for easy (and, likely for him, fun) work. As described, the game theoretic choice is clear.&lt;&#x2F;p&gt;
&lt;p&gt;So how do we stop a producer world from devolving back into a looter world?&lt;&#x2F;p&gt;
&lt;h2 id=&quot;deterrence&quot;&gt;Deterrence&lt;&#x2F;h2&gt;
&lt;p&gt;There’s only one mechanism I’m aware of for this, and it’s deterrence. As the farmer, I made a mistake. I &lt;em&gt;should&lt;&#x2F;em&gt; get weapons training. I &lt;em&gt;should&lt;&#x2F;em&gt; keep weapons on my farm. I &lt;em&gt;should&lt;&#x2F;em&gt; be ready to defend myself and my property. Because if I don’t, game theory ultimately predicts that all trade will collapse, and society as we know it will crumble.&lt;&#x2F;p&gt;
&lt;p&gt;I don’t necessarily have to have the power of deterrence myself. I could hire a private security company, once again allowing the producer world to work out well. I trade something of lesser value (some money) for something I value more (the protection afforded by private security). If I’m lucky, that security company will never need to do anything, because the mere &lt;em&gt;threat&lt;&#x2F;em&gt; of their presence is sufficient.&lt;&#x2F;p&gt;
&lt;p&gt;And in modern society, we generally hope to rely on the government police force to provide this protection.&lt;&#x2F;p&gt;
&lt;p&gt;There are easy ways to defeat the ability of deterrence to protect our way of life. The simplest is to defang it. Decriminalize violent and destructive acts, for example. Remove the consequences for bad, looter behavior, and you will incentivize looting. This is far from a theoretical discussion. We’ve seen the clear outcome in California, which has decriminalized theft under $950, resulting—in a completely predictable way—in more theft, stores closing, and an overall erosion of producer philosophy.&lt;&#x2F;p&gt;
&lt;p&gt;And in California, this is even worse. Those who try to be their own deterrence, by arming themselves and protecting their rights, are often the targets of government force instead of the looters.&lt;&#x2F;p&gt;
&lt;p&gt;I’m guessing this phrasing has now split my reading audience into three groups. Group A agrees wholly with what I’m saying. Group B believes what I’ve just written is pure evil and garbage. Group C initially disagreed with my statements, but has an open mind and is willing to consider a different paradigm. The next section is targeted at groups A and C. Group B: good luck with the broken world you’re advocating.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;global-scale&quot;&gt;Global scale&lt;&#x2F;h2&gt;
&lt;p&gt;This concept of deterrence applies at a global scale too. I would love to live in a world where all nations exchange value for value and never use force against others. In fact, I believe the ultimate vision for this kind of a world ends with anarcho-capitalism (though I don’t know enough about the topic to be certain). There ends up being no need for any force against anyone else. It’s a beautiful vision for a unified world, where there are no borders, there is no destruction, there is only unity through trade. I love it.&lt;&#x2F;p&gt;
&lt;p&gt;But game theory destroys this too. If the entire world disarmed, it would take just one person who thinks he can do better through looter tactics to destroy the system. The only way to defeat that is to have a realistic threat of force to disincentivize someone from acting like a looter.&lt;&#x2F;p&gt;
&lt;p&gt;And this is the paradox. In order to live in our wonderful world of production, prosperity, health, and happiness, we always need to have our finger near enough to the trigger to respond to looters with force. I know of no other approach that allows production to happen. (And I am very interested in other theoretical solutions to this problem, if anyone wants to share reading material.)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;peace-through-strength&quot;&gt;Peace through strength&lt;&#x2F;h2&gt;
&lt;p&gt;This line of thinking leads to the concept of &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Peace_through_strength&quot;&gt;peace through strength&lt;&#x2F;a&gt;. When those tempted to use violence see the overwhelming strength of their potential victims, they will be disincentivized to engage in violent behavior. It’s the story of the guy who wants to rob my farm. Or the roaming army in the ancient world that bypassed the well fortified walled city and attacked its unprotected neighbor.&lt;&#x2F;p&gt;
&lt;p&gt;There are critics of this philosophy. As put by Andrew Bacevich, &quot;&#x27;Peace through strength&#x27; easily enough becomes &#x27;peace through war.&#x27;&quot; I don’t disagree at all with that analysis, and it’s something we must remain vigilant against. But disarming is not the answer, as it will, of course, necessarily lead to the victory of those willing to use violence on others.&lt;&#x2F;p&gt;
&lt;p&gt;In other words, my thesis here is that the threat of violence must be present to keep society civilized. But the cost of &lt;em&gt;using&lt;&#x2F;em&gt; that violence must be high enough that neither side is incentivized to initiate it.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;israel&quot;&gt;Israel&lt;&#x2F;h2&gt;
&lt;p&gt;I’d been thinking of writing a blog post on this topic for a few months now, but finally decided to today. Israel just agreed to a hostage deal with Hamas. In exchange for the release of 33 hostages taken in the October 7 massacre, Israel will hand over 1,000 terrorists in Israeli prisons.&lt;&#x2F;p&gt;
&lt;p&gt;I have all the sympathy in the world for the hostages and their families. I also have great sympathy for the Palestinian civilians who have been harmed, killed, displaced, and worse by this war. And I have empathy (as one of the victims) for all of the Israeli citizens who have lived under threat of rocket attacks, had our lives disrupted, and for those who have been killed by this war. War is hell, full stop.&lt;&#x2F;p&gt;
&lt;p&gt;My message here is to those who have been pushing the lie of “peace through negotiations.” Or peace through capitulation. Or anything else. These tactics are the reason the war has continued. As long as the incentive structure makes initiating a war a positive, wars will continue to be initiated. Hamas has made its stance on the matter clear: it has sworn for the eradication of all Jews within the region, and considers civilian casualties on the Palestinian side not only acceptable, but advantageous.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;civilian-bloodshed.png&quot; alt=&quot;Gaza Chief&amp;#39;s Brutal Calculation: Civilian Bloodshed Will Help Hamas&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I know that many people who criticize Israel and put pressure on us to stop the war in Gaza believe they are doing so for noble reasons. (For the record, I also believe many people have less altruistic reasons for their stance.) I know people like to point to the list of atrocities they believe Israel has committed. And, by contrast, the pro-Israel side is happy to respond with corresponding atrocities from the other side.&lt;&#x2F;p&gt;
&lt;p&gt;I honestly believe this is all far beyond irrelevant. The only question people should be asking is: how do we disincentivize the continuation of hostilities? And hostage deals that result in the release of terrorists, allow “aid” to come in (which, if history is any indication, will be used to further the construction of tunnels and other sources for attack on Israel), and give Hamas an opportunity to rearm, only incentivize the continuation of the war.&lt;&#x2F;p&gt;
&lt;p&gt;In other words, if you care about the innocent people on either side, you should be opposed to this kind of capitulation. Whatever you think about the morality of each side, more people will suffer with this approach.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;skin-in-the-game&quot;&gt;Skin in the game&lt;&#x2F;h2&gt;
&lt;p&gt;It’s easy to say things like that when your life isn’t on the line. I also don’t think that matters much. Either the philosophical, political, and economic analysis is correct, or it isn’t. Nonetheless, I &lt;em&gt;do&lt;&#x2F;em&gt; have skin in the game here. I still live in a warzone. I am less than 15 kilometers from the Lebanese border. We’ve had Hezbollah tunnels reaching into our surrounding cities. My family had to lock ourselves inside when Hezbollah paratroopers had attempted to land in our city.&lt;&#x2F;p&gt;
&lt;p&gt;My wife (Miriam) and I have discussed this situation at length, many times, over the course of this war. If I’m ever taken hostage, I hope the Israeli government bombs the hell out of wherever I am being held. I say this not only because I believe it is the right, just, moral, ethical, and strategically correct thing to do. I say this because I am selfish:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;I would rather die than be tortured by our enemies.&lt;&#x2F;li&gt;
&lt;li&gt;I would rather die than be leveraged to make my family and country less safe.&lt;&#x2F;li&gt;
&lt;li&gt;I would rather die than live the rest of my life a shell of my former self, haunted not only by the likely torture inflicted on me, but by the guilt of the harm to others resulting from my spared life.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;I don’t know why this hostage deal went through now. I don’t know what pressures have been brought to bear on the leaders in Israel. I don’t know if they are good people trying to protect their citizens, nefarious power hungry cretins looking to abuse both the Israeli and Palestinian populace to stay in control, weak-willed toadies who do what they’re told by others, or simply stupid. But my own stance is clear.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;but-what-about-the-palestinians&quot;&gt;But what about the Palestinians?&lt;&#x2F;h2&gt;
&lt;p&gt;I said it above, and I’ll say it again: I truly do feel horrible for the trauma that the Palestinian people are going through. Not for the active terrorists mind you, I feel no qualms about those raising arms against us being destroyed. But everyone else, even those who wish me and my fellow Israelis harm. (And, if polling is to be believed, that’s the majority of Palestinians.) I would much rather that they &lt;em&gt;not&lt;&#x2F;em&gt; be suffering now, and that eventually through earned trust on both sides, everyone’s lots are improved.&lt;&#x2F;p&gt;
&lt;p&gt;But the framework being imposed by those who “love” peace isn’t allowing that to happen. Trust cannot be built when there’s a greater incentive to return to the use of force. I was strongly opposed to the 2005 disengagement from Gaza. But once it happened, it could have been one of those trust-building starting points. Instead, I saw many people justify further violence by Hamas—such as non-stop rocket attacks on the south of Israel—because Israel hadn’t done enough yet.&lt;&#x2F;p&gt;
&lt;p&gt;Notice how fundamentally flawed this mentality is, just from an incentives standpoint! Israel gives up control of land, something against its own overall interests and something desired by Palestinians, and is punished for it with increased violence against citizens. Hamas engaged in a brutal destruction of all of its opponents within the Palestinian population, launched attacks on Israel, and when Israel &lt;em&gt;did&lt;&#x2F;em&gt; respond with force, Israel was blamed for having not done enough to appease Hamas.&lt;&#x2F;p&gt;
&lt;p&gt;I know people will want to complicate this story by bringing up the laundry list of past atrocities, of assigning negative motivations to Israel and its leaders, and a million other evasions that are used to avoid actually solving this conflict. Instead, I beg everyone to just use basic logic.&lt;&#x2F;p&gt;
&lt;p&gt;The violence will continue as long as the violence gets results.&lt;&#x2F;p&gt;
</description>
        </item>
        <item>
            <title>Incentives Determine Outcomes</title>
            <pubDate>Mon, 13 Jan 2025 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2025/01/incentives-determine-outcomes/</link>
            <guid>https://www.snoyman.com/blog/2025/01/incentives-determine-outcomes/</guid>
            <description>&lt;p&gt;My blog posts and reading material have both been on a decidedly economics-heavy slant recently. The topic today, incentives, squarely falls into the category of economics. However, when I say economics, I’m not talking about “analyzing supply and demand curves.” I’m talking about the true basis of economics: understanding how human beings make decisions in a world of scarcity.&lt;&#x2F;p&gt;
&lt;p&gt;A fair definition of incentive is “a reward or punishment that motivates behavior to achieve a desired outcome.” When most people think about economic incentives, they’re thinking of money. If I offer my son $5 if he washes the dishes, I’m incentivizing certain behavior. We can’t guarantee that he’ll do what I want him to do, but we can agree that the incentive structure itself will guide and ultimately determine what outcome will occur.&lt;&#x2F;p&gt;
&lt;p&gt;The great thing about monetary incentives is how easy they are to talk about and compare. “Would I rather make $5 washing the dishes or $10 cleaning the gutters?” But much of the world is incentivized in non-monetary ways too. For example, using the “punishment” half of the definition above, I might threaten my son with losing Nintendo Switch access if he doesn’t wash the dishes. No money is involved, but I’m still incentivizing behavior.&lt;&#x2F;p&gt;
&lt;p&gt;And there are plenty of incentives beyond our direct control! My son is &lt;em&gt;also&lt;&#x2F;em&gt; incentivized to not wash dishes because it’s boring, or because he has some friends over that he wants to hang out with, or dozens of other things. Ultimately, the conflicting array of different incentive structures placed on him will ultimately determine what actions he chooses to take.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-incentives-matter&quot;&gt;Why incentives matter&lt;&#x2F;h2&gt;
&lt;p&gt;A phrase I see often in discussions—whether they are political, parenting, economic, or business—is “if they could &lt;strong&gt;just&lt;&#x2F;strong&gt; do…” Each time I see that phrase, I cringe a bit internally. Usually, the underlying assumption of the statement is “if people would behave contrary to their incentivized behavior then things would be better.” For example:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;If my kids would just go to bed when I tell them, they wouldn’t be so cranky in the morning.&lt;&#x2F;li&gt;
&lt;li&gt;If people would just use the recycling bin, we wouldn’t have such a landfill problem.&lt;&#x2F;li&gt;
&lt;li&gt;If people would just stop being lazy, our team would deliver our project on time.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;In all these cases, the speakers are seemingly flummoxed as to why the people in question don’t behave more rationally. The problem is: each group is behaving perfectly rationally.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The kids have a high time preference, and care more about the joy of staying up now than the crankiness in the morning. Plus, they don’t really suffer the consequences of morning crankiness, their parents do.&lt;&#x2F;li&gt;
&lt;li&gt;No individual suffers much from their individual contribution to a landfill. If they stopped growing the size of the landfill, it would make an insignificant difference versus the amount of effort they need to engage in to properly recycle.&lt;&#x2F;li&gt;
&lt;li&gt;If a team doesn’t properly account for the productivity of individuals on a project, each individual receives less harm from their own inaction. Sure, the project may be delayed, company revenue may be down, and they may even risk losing their job when the company goes out of business. But their laziness individually won’t determine the entirety of that outcome. By contrast, they greatly benefit from being lazy by getting to relax at work, go on social media, read a book, or do whatever else they do when they’re supposed to be working.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;incentives&#x2F;free-candy.png&quot; alt=&quot;Free Candy!&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;My point here is that, as long as you ignore the reality of how incentives drive human behavior, you’ll fail at getting the outcomes you want.&lt;&#x2F;p&gt;
&lt;p&gt;If everything I wrote up until now made perfect sense, you understand the premise of this blog post. The rest of it will focus on a bunch of real-world examples to hammer home the point, and demonstrate how versatile this mental model is.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;running-a-company&quot;&gt;Running a company&lt;&#x2F;h2&gt;
&lt;p&gt;Let’s say I run my own company, with myself as the only employee. My personal revenue will be 100% determined by my own actions. If I decide to take Tuesday afternoon off and go fishing, I’ve chosen to lose that afternoon’s revenue. Implicitly, I’ve decided that the enjoyment I get from an afternoon of fishing is greater than the potential revenue. You may think I’m being lazy, but it’s my decision to make. In this situation, the incentive–money–is perfectly aligned with my actions.&lt;&#x2F;p&gt;
&lt;p&gt;Compare this to a typical company&#x2F;employee relationship. I might have a bank of Paid Time Off (PTO) days, in which case once again my incentives are relatively aligned. I know that I can take off 15 days throughout the year, and I’ve chosen to use half a day for the fishing trip. All is still good.&lt;&#x2F;p&gt;
&lt;p&gt;What about unlimited time off? Suddenly incentives are starting to misalign. I don’t directly pay a price for not showing up to work on Tuesday. Or Wednesday as well, for that matter. I might ultimately be fired for not doing my job, but that will take longer to work its way through the system than simply not making any money for the day taken off.&lt;&#x2F;p&gt;
&lt;p&gt;Compensation overall falls into this misaligned incentive structure. Let’s forget about taking time off. Instead, I work full time on a software project I’m assigned. But instead of using the normal toolchain we’re all used to at work, I play around with a new programming language. I get the fun and joy of playing with new technology, and potentially get to pad my resume a bit when I’m ready to look for a new job. But my current company gets slower results, less productivity, and is forced to subsidize my extracurricular learning.&lt;&#x2F;p&gt;
&lt;p&gt;When a CEO has a bonus structure based on profitability, he’ll do everything he can to make the company profitable. This might include things that actually benefit the company, like improving product quality, reducing internal red tape, or finding cheaper vendors. But it might also include destructive practices, like slashing the R&amp;amp;D budget to show massive profits this year, in exchange for a catastrophe next year when the next version of the product fails to ship.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;incentives&#x2F;golden-ceo.png&quot; alt=&quot;Golden Parachute CEO&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Or my favorite example. My parents owned a business when I was growing up. They had a back office where they ran operations like accounting. All of the furniture was old couches from our house. After all, any money they spent on furniture came right out of their paychecks! But in a large corporate environment, each department is generally given a budget for office furniture, a budget which doesn’t roll over year-to-year. The result? Executives make sure to spend the entire budget each year, often buying furniture far more expensive than they would choose if it was their own money.&lt;&#x2F;p&gt;
&lt;p&gt;There are plenty of details you can quibble with above. It’s in a company’s best interest to give people downtime so that they can come back recharged. Having good ergonomic furniture can in fact increase productivity in excess of the money spent on it. But overall, the picture is pretty clear: in large corporate structures, you’re guaranteed to have mismatches between the company’s goals and the incentive structure placed on individuals.&lt;&#x2F;p&gt;
&lt;p&gt;Using our model from above, we can lament how lazy, greedy, and unethical the employees are for doing what they’re incentivized to do instead of what’s right. But that’s simply ignoring the reality of human nature.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;moral-hazard&quot;&gt;Moral hazard&lt;&#x2F;h2&gt;
&lt;p&gt;Moral hazard is a situation where one party is incentivized to take on more risk because another party will bear the consequences. Suppose I tell my son when he turns 21 (or whatever legal gambling age is) that I’ll cover all his losses for a day at the casino, but he gets to keep all the winnings.&lt;&#x2F;p&gt;
&lt;p&gt;What do you think he’s going to do? The most logical course of action is to place the largest possible bets for as long as possible, asking me to cover each time he loses, and taking money off the table and into his bank account each time he wins.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;incentives&#x2F;headstails.png&quot; alt=&quot;Heads I win, tails you lose&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;But let’s look at a slightly more nuanced example. I go to a bathroom in the mall. As I’m leaving, I wash my hands. It will take me an extra 1 second to turn off the water when I’m done washing. That’s a trivial price to pay. If I &lt;em&gt;don’t&lt;&#x2F;em&gt; turn off the water, the mall will have to pay for many liters of wasted water, benefiting no one. But I won’t suffer any consequences at all.&lt;&#x2F;p&gt;
&lt;p&gt;This is also a moral hazard, but most people will still turn off the water. Why? Usually due to some combination of other reasons such as:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;We’re so habituated to turning off the water that we don’t even consider &lt;em&gt;not&lt;&#x2F;em&gt; turning it off. Put differently, the mental effort needed to not turn off the water is more expensive than the 1 second of time to turn it off.&lt;&#x2F;li&gt;
&lt;li&gt;Many of us have been brought up with a deep guilt about wasting resources like water. We have an internal incentive structure that makes the 1 second to turn off the water much less costly than the mental anguish of the waste we created.&lt;&#x2F;li&gt;
&lt;li&gt;We’re afraid we’ll be caught by someone else and face some kind of social repercussions. (Or maybe more than social. Are you sure there isn’t a law against leaving the water tap on?)&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Even with all that in place, you may notice that many public bathrooms use automatic water dispensers. Sure, there’s a sanitation reason for that, but it’s also to avoid this moral hazard.&lt;&#x2F;p&gt;
&lt;p&gt;A common denominator in both of these is that the person taking the action that causes the liability (either the gambling or leaving the water on) is not the person who bears the responsibility for that liability (the father or the mall owner). Generally speaking, the closer together the person making the decision and the person incurring the liability are, the smaller the moral hazard.&lt;&#x2F;p&gt;
&lt;p&gt;It’s easy to demonstrate that by extending the casino example a bit. I said it was the father who was covering the losses of the gambler. Many children (though not all) would want to avoid totally bankrupting their parents, or at least financially hurting them. Instead, imagine that someone from the IRS shows up at your door, hands you a credit card, and tells you you can use it at a casino all day, taking home all the chips you want. The money is coming from the government. How many people would put any restriction on how much they spend?&lt;&#x2F;p&gt;
&lt;p&gt;And since we’re talking about the government already…&lt;&#x2F;p&gt;
&lt;h3 id=&quot;government-moral-hazards&quot;&gt;Government moral hazards&lt;&#x2F;h3&gt;
&lt;p&gt;As I was preparing to write this blog post, the California wildfires hit. The discussions around those wildfires gave a &lt;em&gt;huge&lt;&#x2F;em&gt; number of examples of moral hazards. I decided to cherry-pick a few for this post.&lt;&#x2F;p&gt;
&lt;p&gt;The first and most obvious one: California is asking for disaster relief funds from the federal government. That sounds wonderful. These fires were a natural disaster, so why shouldn’t the federal government pitch in and help take care of people?&lt;&#x2F;p&gt;
&lt;p&gt;The problem is, once again, a moral hazard. In the case of the wildfires, California and Los Angeles both had ample actions they could have taken to mitigate the destruction of this fire: better forest management, larger fire department, keeping the water reservoirs filled, and probably much more that hasn’t come to light yet.&lt;&#x2F;p&gt;
&lt;p&gt;If the federal government bails out California, it will be a clear message for the future: your mistakes will be fixed by others. You know what kind of behavior that incentivizes? More risky behavior! Why spend state funds on forest management and extra firefighters—activities that don’t win politicians a lot of votes in general—when you could instead spend it on a football stadium, higher unemployment payments, or anything else, and then let the feds cover the cost of screw-ups.&lt;&#x2F;p&gt;
&lt;p&gt;You may notice that this is virtually identical to the 2008 “too big to fail” bail-outs. Wall Street took insanely risky behavior, reaped huge profits for years, and when they eventually got caught with their pants down, the rest of us bailed them out. “Privatizing profits, socializing losses.”&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;incentives&#x2F;toobig.png&quot; alt=&quot;Too big to fail&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;And here’s the absolute best part of this: I can’t even truly blame either California &lt;em&gt;or&lt;&#x2F;em&gt; Wall Street. (I mean, I &lt;em&gt;do&lt;&#x2F;em&gt; blame them, I think their behavior is reprehensible, but you’ll see what I mean.) In a world where the rules of the game implicitly include the bail-out mentality, you would be harming your citizens&#x2F;shareholders&#x2F;investors if you didn’t engage in that risky behavior. Since everyone is on the hook for those socialized losses, your best bet is to maximize those privatized profits.&lt;&#x2F;p&gt;
&lt;p&gt;There’s a lot more to government and moral hazard, but I think these two cases demonstrate the crux pretty solidly. But let’s leave moral hazard behind for a bit and get to general incentivization discussions.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;non-monetary-competition&quot;&gt;Non-monetary competition&lt;&#x2F;h2&gt;
&lt;p&gt;At least 50% of the economics knowledge I have comes from the very first econ course I took in college. That professor was amazing, and had some very colorful stories. I can’t vouch for the veracity of the two I’m about to share, but they definitely drive the point home.&lt;&#x2F;p&gt;
&lt;p&gt;In the 1970s, the US had an oil shortage. To “fix” this problem, they instituted price caps on gasoline, which of course resulted in insufficient gasoline. To “fix” this problem, they instituted policies where, depending on your license plate number, you could only fill up gas on certain days of the week. (Irrelevant detail for our point here, but this just resulted in people filling up their tanks more often, no reduction in gas usage.)&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, my professor’s wife had a friend. My professor described in &lt;em&gt;great&lt;&#x2F;em&gt; detail how attractive this woman was. I’ll skip those details here since this is a PG-rated blog. In any event, she never had any trouble filling up her gas tank any day of the week. She would drive up, be told she couldn’t fill up gas today, bat her eyes at the attendant, explain how helpless she was, and was always allowed to fill up gas.&lt;&#x2F;p&gt;
&lt;p&gt;This is a demonstration of &lt;em&gt;non-monetary compensation&lt;&#x2F;em&gt;. Most of the time in a free market, capitalist economy, people are compensated through money. When price caps come into play, there’s a limit to how much monetary compensation someone can receive. And in that case, people find other ways of competing. Like this woman’s case: through using flirtatious behavior to compensate the gas station workers to let her cheat the rules.&lt;&#x2F;p&gt;
&lt;p&gt;The other example was much more insidious. Santa Monica had a problem: it was predominantly wealthy and white. They wanted to fix this problem, and decided to put in place rent controls. After some time, they discovered that Santa Monica had become &lt;em&gt;wealthier and whiter&lt;&#x2F;em&gt;, the exact opposite of their desired outcome. Why would that happen?&lt;&#x2F;p&gt;
&lt;p&gt;Someone investigated, and ended up interviewing a landlady that demonstrated the reason. She was an older white woman, and admittedly racist. Prior to the rent controls, she would list her apartments in the newspaper, and would be legally obligated to rent to anyone who could afford it. Once rent controls were in place, she took a different tact. She knew that she would only get a certain amount for the apartment, and that the demand for apartments was higher than the supply. That meant she could be picky.&lt;&#x2F;p&gt;
&lt;p&gt;She ended up finding tenants through friends-of-friends. Since it wasn’t an official advertisement, she wasn’t legally required to rent it out if someone could afford to pay. Instead, she got to interview people individually and then make them an offer. Normally, that would have resulted in receiving a lower rental price, but not under rent controls.&lt;&#x2F;p&gt;
&lt;p&gt;So who did she choose? A young, unmarried, wealthy, white woman. It made perfect sense. Women were less intimidating and more likely to maintain the apartment better. Wealthy people, she determined, would be better tenants. (I have no idea if this is true in practice or not, I’m not a landlord myself.) Unmarried, because no kids running around meant less damage to the property. And, of course, white. Because she was racist, and her incentive structure made her prefer whites.&lt;&#x2F;p&gt;
&lt;p&gt;You can deride her for being racist, I won’t disagree with you. But it’s simply the reality. Under the non-rent-control scenario, her profit motive for money outweighed her racism motive. But under rent control, the monetary competition was removed, and she was free to play into her racist tendencies without facing any negative consequences.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;bureaucracy&quot;&gt;Bureaucracy&lt;&#x2F;h3&gt;
&lt;p&gt;These were the two examples I remember for that course. But non-monetary compensation pops up in many more places. One highly pertinent example is bureaucracies. Imagine you have a government office, or a large corporation’s acquisition department, or the team that apportions grants at a university. In all these cases, you have a group of people making decisions about handing out money that has no monetary impact on them. If they give to the best qualified recipients, they receive no raises. If they spend the money recklessly on frivolous projects, they face no consequences.&lt;&#x2F;p&gt;
&lt;p&gt;Under such an incentivization scheme, there’s little to encourage the bureaucrats to make intelligent funding decisions. Instead, they’ll be incentivized to spend the money where they recognize non-monetary benefits. This is why it’s so common to hear about expensive meals, gift bags at conferences, and even more inappropriate ways of trying to curry favor with those that hold the purse strings.&lt;&#x2F;p&gt;
&lt;p&gt;Compare that ever so briefly with the purchases made by a small mom-and-pop store like my parents owned. Could my dad take a bribe to buy from a vendor who’s ripping him off? Absolutely he could! But he’d lose more on the deal than he’d make on the bribe, since he’s directly incentivized by the deal itself. It would make much more sense for him to go with the better vendor, save $5,000 on the deal, and then treat himself to a lavish $400 meal to celebrate.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;government-incentivized-behavior&quot;&gt;Government incentivized behavior&lt;&#x2F;h2&gt;
&lt;p&gt;This post is getting longer in the tooth than I’d intended, so I’ll finish off with this section and make it a bit briefer. Beyond all the methods mentioned above, government has another mechanism for modifying behavior: through directly changing incentives via legislation, regulation, and monetary policy. Let’s see some examples:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Artificial modification of interest rates encourages people to take on more debt than they would in a free capital market, leading to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Malinvestment&quot;&gt;malinvestment&lt;&#x2F;a&gt; and a consumer debt crisis, and causing the boom-bust cycle we all painfully experience.&lt;&#x2F;li&gt;
&lt;li&gt;Going along with that, giving tax breaks on interest payments further artificially incentivizes people to take on debt that they wouldn’t otherwise.&lt;&#x2F;li&gt;
&lt;li&gt;During COVID-19, at some points unemployment benefits were greater than minimum wage, incentivizing people to rather stay home and not work than get a job, leading to reduced overall productivity in the economy and more printed dollars for benefits. In other words, it was a perfect recipe for inflation.&lt;&#x2F;li&gt;
&lt;li&gt;The tax code gives deductions to “help” people. That might be true, but the real impact is incentivizing people to make decisions they wouldn’t have otherwise. For example, giving out tax deductions on children encourages having more kids. Tax deductions on childcare and preschools incentivizes dual-income households. Whether or not you like the outcomes, it’s clear that it’s government that’s encouraging these outcomes to happen.&lt;&#x2F;li&gt;
&lt;li&gt;Tax incentives cause people to engage in behavior they wouldn’t otherwise (daycare+working mother, for example).&lt;&#x2F;li&gt;
&lt;li&gt;Inflation means that the value of your money goes down over time, which encourages people to spend more today, when their money has a larger impact. (Milton Friedman described this as &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=ZwNDd2_beTU&quot;&gt;high living&lt;&#x2F;a&gt;.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;The idea here is simple, and fully encapsulated in the title: incentives determine outcomes. If you want to know how to get a certain outcome from others, incentivize them to want that to happen. If you want to understand why people act in seemingly irrational ways, check their incentives. If you’re confused why leaders (and especially politicians) seem to engage in destructive behavior, check their incentives.&lt;&#x2F;p&gt;
&lt;p&gt;We can bemoan these realities all we want, but they &lt;em&gt;are&lt;&#x2F;em&gt; realities. While there are some people who have a solid internal moral and ethical code, and that internal code incentivizes them to behave against their externally-incentivized interests, those people are rare. And frankly, those people are self-defeating. People &lt;em&gt;should&lt;&#x2F;em&gt; take advantage of the incentives around them. Because if they don’t, someone else will.&lt;&#x2F;p&gt;
&lt;p&gt;(If you want a literary example of that last comment, see the horse in Animal Farm.)&lt;&#x2F;p&gt;
&lt;p&gt;How do we improve the world under these conditions? Make sure the incentives align well with the overall goals of society. To me, it’s a simple formula:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Focus on free trade, value for value, as the basis of a society. In that system, people are always incentivized to provide value to other people.&lt;&#x2F;li&gt;
&lt;li&gt;Reduce the size of bureaucracies and large groups of all kinds. The larger an organization becomes, the farther the consequences of decisions are from those who make them.&lt;&#x2F;li&gt;
&lt;li&gt;And since the nature of human beings will be to try and create areas where they can control the incentive systems to their own benefits, make that as difficult as possible. That comes in the form of strict limits on government power, for example.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;And even if you don’t want to buy in to this conclusion, I hope the rest of the content was educational, and maybe a bit entertaining!&lt;&#x2F;p&gt;
</description>
        </item>
        <item>
            <title>A secure Bitcoin self custody strategy</title>
            <pubDate>Mon, 23 Dec 2024 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2024/12/secure-bitcoin-self-custody/</link>
            <guid>https://www.snoyman.com/blog/2024/12/secure-bitcoin-self-custody/</guid>
            <description>&lt;p&gt;Up until this year, my Bitcoin custody strategy was fairly straightforward, and likely familiar to other hodlers:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Buy a hardware wallet&lt;&#x2F;li&gt;
&lt;li&gt;Put the seed phrase on steel plates&lt;&#x2F;li&gt;
&lt;li&gt;Secure those steel plates somewhere on my property&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;But in October of last year, the situation changed. I live in Northern Israel, close to the Lebanese border. The past 14 months have involved a lot of rocket attacks, including destruction of multiple buildings in my home town. This brought into question how to properly secure my sats. Importantly, I needed to balance two competing goals:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Resiliency of the saved secrets against destruction. In other words: make sure I didn&#x27;t lose access to the wallet.&lt;&#x2F;li&gt;
&lt;li&gt;Security against attackers trying to steal those secrets. In other words: make sure no one else got access to the wallet.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;I put some time into designing a solution to these conflicting goals, and would like to share some thoughts for others looking to improve their BTC custody strategy. And if anyone has any recommendations for improvements, I&#x27;m all ears!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;goals&quot;&gt;Goals&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Self custody&lt;&#x2F;strong&gt; I didn&#x27;t want to rely on an external custody company. Not your keys, not your coins.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Full access&lt;&#x2F;strong&gt; I always maintain full access to my funds, without relying on any external party.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Computer hack resilient&lt;&#x2F;strong&gt; If my computer systems are hacked, I will not lose access to or control of my funds (neither stolen nor lost).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Physical destruction resilient&lt;&#x2F;strong&gt; If my hardware device and steel plates are both destroyed (as well as anything else physically located in my home town), I can still recovery my funds.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Will survive me&lt;&#x2F;strong&gt; If I&#x27;m killed, I want my wife, children, or other family members to be able to recover and inherit my BTC.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;multisig&quot;&gt;Multisig&lt;&#x2F;h2&gt;
&lt;p&gt;The heart of this protection mechanism is a multisig wallet. Unfortunately, interfaces for setting up multisig wallets are tricky. I&#x27;ll walk through the basics and then come back to how to set it up.&lt;&#x2F;p&gt;
&lt;p&gt;The concept of a multisig is that your wallet is protected by multiple signers. Each signer can be any &quot;normal&quot; wallet, e.g. a software or hardware wallet. You choose a number of signers and a threshold of signers required to perform a transaction.&lt;&#x2F;p&gt;
&lt;p&gt;For example, a 2 of 2 multisig would mean that 2 wallets can sign transactions, and both of them need to sign to make a valid transaction. A 3 of 5 would mean 5 total signers, any 3 of them being needed to sign a transaction.&lt;&#x2F;p&gt;
&lt;p&gt;For my setup, I set up a 2 of 3 multisig, with the 3 signers being a software wallet, a hardware wallet, and SLIP39 wallet. Let&#x27;s go through each of those, explain how they work, and then see how the solution addresses the goals.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;software-wallet&quot;&gt;Software wallet&lt;&#x2F;h2&gt;
&lt;p&gt;I set up a software wallet and saved the seed phrase in a dedicated password manager account using Bitwarden. Bitwarden offers an emergency access feature, which essentially means a trusted person can be listed as an emergency contact and can recover your account. The process includes a waiting period, during which the account owner can reject the request.&lt;&#x2F;p&gt;
&lt;p&gt;Put another way: Bitwarden is offering a cryptographically secure, third party hosted, fully managed, user friendly dead-man switch. Exactly what I needed.&lt;&#x2F;p&gt;
&lt;p&gt;I added a select group of trusted people as the recoverers on the account. Otherwise, I keep the account securely locked down in Bitwarden and can use it for signing when necessary.&lt;&#x2F;p&gt;
&lt;p&gt;Let&#x27;s see how this stacks up against the goals:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Self custody&lt;&#x2F;strong&gt; Check, no reliance on anyone else&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Full access&lt;&#x2F;strong&gt; Check, I have access to the wallet at all times&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Computer hack resilient&lt;&#x2F;strong&gt; Fail, if my system is hacked, I lose control of the wallet&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Physical destruction resilient&lt;&#x2F;strong&gt; Check, Bitwarden lives beyond my machines&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Will survive me&lt;&#x2F;strong&gt; Check thanks to the dead-man switch&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;hardware-wallet&quot;&gt;Hardware wallet&lt;&#x2F;h2&gt;
&lt;p&gt;Not much to say about the hardware wallet setup that I haven&#x27;t said already. Let&#x27;s do the goals:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Self custody&lt;&#x2F;strong&gt; Check, no reliance on anyone else&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Full access&lt;&#x2F;strong&gt; Check, I have access to the wallet at all times&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Computer hack resilient&lt;&#x2F;strong&gt; Check, the private keys never leave the hardware device&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Physical destruction resilient&lt;&#x2F;strong&gt; Fail, the wallet and plates could easily be destroyed, and the plates could easily be stolen. (The wallet could be stolen too, but thanks to the PIN mechanism would theoretically be resistant to compromise. But that&#x27;s not a theory I&#x27;d want to bet my wealth on.)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Will survive me&lt;&#x2F;strong&gt; Check, anyone can take my plates and recover the wallet&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;slip39&quot;&gt;SLIP39&lt;&#x2F;h2&gt;
&lt;p&gt;This one requires a bit of explanation. SLIP39 is a not-so-common standard for taking some data and splitting it up into a number of shards. You can define the threshold of shards necessary to reconstruct the original secret. This uses an algorithm called &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Shamir&amp;#x27;s_secret_sharing&quot;&gt;Shamir&#x27;s Secret Sharing&lt;&#x2F;a&gt;. (And yes, it is very similar in function to multisig, but implemented differently).&lt;&#x2F;p&gt;
&lt;p&gt;The idea here is that this wallet is controlled by a group of friends and family members. Without getting into my actual setup, I could choose 7 very trusted individuals from all over the world and tell them that, should I contact them and ask for them, they should send me their shards so I can reconstruct that third wallet. And to be especially morbid, they also know the identity of some backup people in the event of my death.&lt;&#x2F;p&gt;
&lt;p&gt;In any event, the idea is that if enough of these people agree to, they can reconstruct the third wallet. The assumption is that these are all trustworthy people. But even with trustworthy people, (1) I could be wrong about how trustworthy they are, or (2) they could be coerced or tricked. So let&#x27;s see how these security mechanism stands up:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Self custody&lt;&#x2F;strong&gt; Fail, I&#x27;m totally reliant on others.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Full access&lt;&#x2F;strong&gt; Fail, by design I don&#x27;t keep this wallet myself, so I must rely on others.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Computer hack resilient&lt;&#x2F;strong&gt; Check, the holders of these shards keep them in secure, offline storage.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Physical destruction resilient&lt;&#x2F;strong&gt; Check (sort of), since the probability of all copies being destroyed or stolen is negligible.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Will survive me&lt;&#x2F;strong&gt; Check, by design&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;comparison-against-goals&quot;&gt;Comparison against goals&lt;&#x2F;h2&gt;
&lt;p&gt;We saw how each individual wallet stacked up against the goals. How about all of them together? Well, there are certainly some &lt;em&gt;theoretical&lt;&#x2F;em&gt; ways I could lose the funds, e.g. my hardware wallet and plates are destroyed &lt;em&gt;and&lt;&#x2F;em&gt; a majority of shard holders for the SLIP39 lost their shards. However, if you look through the check&#x2F;fail lists, every category has at least two checks. Meaning: on all dimensions, if some catastrophe happens, at least two of the wallets should survive.&lt;&#x2F;p&gt;
&lt;p&gt;Now the caveats (I seem to like that word). I did a lot of research on this, and this is at least tangential to my actual field of expertise. But I&#x27;m not a dedicated security researcher, and can&#x27;t really claim full, deep understanding of all these topics. So if I made any mistakes here, &lt;strong&gt;please&lt;&#x2F;strong&gt; let me know.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-to-guide&quot;&gt;How-to guide&lt;&#x2F;h2&gt;
&lt;p&gt;OK, so how do you actually get a system like this running? I&#x27;ll give you my own step-by-step guide. Best case scenario for all this: download all the websites and programs mentioned onto a fresh Linux system install, disconnect the internet, run the programs and copy down any data as needed, and then wipe the system again. (Or, alternatively, do all the actions from a Live USB session.)&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Set up the SLIP39. You can use an &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;iancoleman.io&#x2F;slip39&#x2F;&quot;&gt;online generator&lt;&#x2F;a&gt;. Choose the number of bits of entropy (IMO 128bit is sufficient), choose the total shares and threshold, and then copy down the phrases.&lt;&#x2F;li&gt;
&lt;li&gt;Generate the software wallet. You can use a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;iancoleman.io&#x2F;bip39&#x2F;&quot;&gt;sister site to the SLIP39 generator&lt;&#x2F;a&gt;. Choose either 12 or 24 words, and write those words down. On a different, internet-connected computer, you can save those words into a Bitwarden account, and set it up with appropriate emergency access.&lt;&#x2F;li&gt;
&lt;li&gt;Open up &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;electrum.org&#x2F;&quot;&gt;Electrum&lt;&#x2F;a&gt;. (Other wallets, like &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;sparrowwallet.com&#x2F;&quot;&gt;Sparrow&lt;&#x2F;a&gt;, probably work for this too, but I&#x27;ve only done it with Electrum.) The rest of this section will include a step-by-step guide through the Electrum steps. And yes, I took these screenshots on a Mac, but for a real setup use a Linux machine.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Set up a new wallet. Enter a name (doesn&#x27;t matter what) and click next.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;18ca27095ba566fbee61c3f5e2b657d91394b5e955b660a38cfd00baa2d3ef4d.png&quot; alt=&quot;New wallet&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Choose a multisig wallet and click next.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;f088c7f3a3014adf9f1f778bec23d84e5ba91cd7812e892935f39a334b220bf8.png&quot; alt=&quot;Multisig&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Choose 3 cosigners and require 2 signatures.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;d26f78cdca0a5924faed7bde45b2262fe02b3e130adbcac052b053ffd8eebc6b.png&quot; alt=&quot;Signer count&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Now we&#x27;re going to enter all three wallets. The first one will be your hardware device. Click next, then follow all the prompts to set it up.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;29f1dd5ec0782c2b3b9a45b3659e9d7786e36df98f0bbbffa0cd8e5095ed8958.png&quot; alt=&quot;Hardware&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;After a few screens (they&#x27;ll be different based on your choice of hardware device), you&#x27;ll be prompted to select a derivation path. Use native segwit and the standard derivation path.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;07e1f3c950faeda9c4a84675fb3115033f65f5d834a8a4c923e0af16a6d11523.png&quot; alt=&quot;segwit&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This next screen was the single most complicated for me, simply because the terms were unclear. First, you&#x27;ll see a &lt;code&gt;Zpub&lt;&#x2F;code&gt; string displayed as a &quot;master public key,&quot; e.g.:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #657B83; background-color: #FDF6E3;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Zpub75J9cLwa3iX1zB2oiTdvGDf4EyHWN1ZYs5gVt6JSM9THA6XLUoZhA4iZwyruCKHpw8BFf54wbAK6XdgtMLa2TgbDcftdsietCuKQ6eDPyi6&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;You need to write this down. It&#x27;s the same as an xpub, but for multisig wallets. This represents all the possible public keys for your hardware wallet. Putting together the three &lt;code&gt;Zpub&lt;&#x2F;code&gt; values will allow your software of choice to generate all the receiving and change addresses for your new wallet. You&#x27;ll need all three, so don&#x27;t lose them! But on their own, they cannot be used to access your funds. Therefore, treat them with &quot;medium&quot; security. Backing up in Bitwarden with your software wallet is a good idea, and potentially simply sending to some friends to back up just in case.&lt;&#x2F;p&gt;
&lt;p&gt;And that explanation brings us back to the three choices on the screen. You can choose to either enter a cosigner key, a cosigner seed, or use another hardware wallet. The difference between key and seed is that the former is public information only, whereas the latter is full signing power. Often, multisig wallets are set up by multiple different people, and so instead of sharing the seed with each other (a major security violation), they each generate a seed phrase and only share the key with each other.&lt;&#x2F;p&gt;
&lt;p&gt;However, given that you&#x27;re setting up the wallet with access to all seed phrases, and you&#x27;re doing it on an airgapped device, it&#x27;s safe to enter the seed phrases directly. And I&#x27;d recommend it, to avoid the risk of generating the wrong master key from a seed. So go ahead and choose &quot;enter cosigner seed&quot; and click next.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;12460a29f30656f1d507952127e54e548e2488adb4fec2c0e8f1f8d3226ac2de.png&quot; alt=&quot;Add cosigner 2&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;And now onto the second most confusing screen. I copied my seed phrase into this text box, but it won&#x27;t let me continue!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;5b23d3d205ae7e52935bc42869d4e57135830acebe84070c9251782d95f757e3.png&quot; alt=&quot;Cannot continue&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The trick is that Electrum, by default, uses its own concept of seed phrases. You need to click on &quot;Options&quot; and then choose BIP39, and then enter your seed phrase.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;61d16652ed4cf231a3fcece212005a581d05bb361e5e324ee5a7b569b15cb78f.png&quot; alt=&quot;BIP39&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Continue through the other screens until you&#x27;re able to enter the final seed. This time, instead of choosing BIP39, choose SLIP39. You&#x27;ll need to enter enough of the SLIP39 shards to meet the threshold.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;1783da39985111f75cd6a95791df2e0a6243298b0906f434674dd3e1a61132e7.png&quot; alt=&quot;SLIP39&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;And with that, you can continue through the rest of the screens, and you&#x27;ll now have a fully operational multisig!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;image.nostr.build&#x2F;e33dd69e0c177d43000eed5c07233bd19560125125b8ac26478d1e79aa2b1298.png&quot; alt=&quot;Addresses&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Open up Electrum again on an internet-connected computer. This time, connect the hardware wallet as before, enter the BIP39 as before, but for the SLIP39, enter the master key instead of the SLIP39 seed phrase. This will ensure that no internet connected device ever has both the software wallet and SLIP39 at the same time. You should confirm that the addresses on the airgapped machine match the addresses on the internet connected device.&lt;&#x2F;p&gt;
&lt;p&gt;If so, you&#x27;re ready for the final test. Send a small amount of funds into the first receiving address, and then use Electrum on the internet connected device to (1) confirm in the history that it arrived and (2) send it back to another address. You should be asked to sign with your hardware wallet.&lt;&#x2F;p&gt;
&lt;p&gt;If you made it this far, congratulations! You&#x27;re the proud owner of a new 2of3 multisig wallet.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;I hope the topic of death and war wasn&#x27;t too terribly morbid for others. But these are important topics to address in our world of self custody. I hope others found this useful. And once again, if anyone has recommendations for improvements to this setup, please do let me know!&lt;&#x2F;p&gt;
</description>
        </item>
        <item>
            <title>Normal People Shouldn&#x27;t Invest</title>
            <pubDate>Wed, 18 Dec 2024 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2024/12/normal-people-shouldnt-invest/</link>
            <guid>https://www.snoyman.com/blog/2024/12/normal-people-shouldnt-invest/</guid>
            <description>&lt;p&gt;The world we live in today is inflationary. Through the constant increase in the money supply by governments around the world, the purchasing power of any dollars (or other government money) sitting in your wallet or bank account will go down over time. To simplify massively, this leaves people with three choices:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Keep your money in fiat currencies and earn a bit of interest. You’ll still lose purchasing power over time, because inflation virtually always beats interest, but you’ll lose it more slowly.&lt;&#x2F;li&gt;
&lt;li&gt;Try to beat inflation by investing in the stock market and other &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.investopedia.com&#x2F;terms&#x2F;r&#x2F;risk-on-risk-off.asp&quot;&gt;risk-on investments&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Recognize that the game is slanted against you, don’t bother saving or investing, and spend all your money today.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;(Side note: if you’re reading this and screaming at your screen that there’s a much better option than any of these, I’ll get there, don’t worry.)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;high-living-and-melting-ice-cubes&quot;&gt;High living and melting ice cubes&lt;&#x2F;h2&gt;
&lt;p&gt;Option 3 is what we’d call “high time preference.” It means you value the consumption you can have today over the potential savings for the future. In an inflationary environment, this is unfortunately a very logical stance to take. Your money is worth more today than it will ever be later. May as well live it up while you can. Or as Milton Friedman put it, engage in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=ZwNDd2_beTU&quot;&gt;high living&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;But let’s ignore that option for the moment, and pursue some kind of low time preference approach. Despite the downsides, we want to hold onto our wealth for the future. The first option, saving in fiat, would work with things like checking accounts, savings accounts, Certificates of Deposit (CDs), government bonds, and &lt;em&gt;perhaps&lt;&#x2F;em&gt; corporate bonds from highly rated companies. There’s little to no risk in those of losing your original balance or the interest (thanks to FDIC protection, a horrible concept I may dive into another time). And the downside is also well understood: you’re still going to lose wealth over time.&lt;&#x2F;p&gt;
&lt;p&gt;Or, to quote James from &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;youtube.com&#x2F;@investanswers&quot;&gt;InvestAnswers&lt;&#x2F;a&gt;, you can hold onto some melting ice cubes. But with sufficient interest, they’ll melt a little bit slower.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-investment-option&quot;&gt;The investment option&lt;&#x2F;h2&gt;
&lt;p&gt;With that option sitting on the table, many people end up falling into the investment bucket. If they’re more risk-averse, it will probably be a blend of both risk-on stock investment and risk-off fiat investment. But ultimately, they’re left with some amount of money that they want to put into a risk-on investment. The only reason they’re doing that is on the hopes that between price movements and dividends, the value of their investment will grow faster than anything else they can choose.&lt;&#x2F;p&gt;
&lt;p&gt;You may be bothered by my phrasing. “The only reason.” Of course that’s the only reason! We only put money into investments in order to make more money. What other possible reason exists?&lt;&#x2F;p&gt;
&lt;p&gt;Well, the answer is that while we invest in order to make money, that’s not the only reason. That would be like saying I started a tech consulting company to make money. Yes, that’s a true reason. But the purpose of the company is to meet a need in the market: providing consulting services. Like every economic activity, starting a company has a dual purpose: making a profit, but by providing actual value.&lt;&#x2F;p&gt;
&lt;p&gt;So what actual value is generated for the world when I choose to invest in a stock? Let’s rewind to real investment, and then we’ll see how modern investment differs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;michael-midas-mulligan&quot;&gt;Michael (Midas) Mulligan&lt;&#x2F;h2&gt;
&lt;p&gt;Let’s talk about a fictional character, Michael Mulligan, aka Midas. In Atlas Shrugged, he’s the greatest banker in the country. He created a small fortune for himself. Then, using that money, he very selectively invested in the most promising ventures. He put his own wealth on the line because he believed each of those ventures had a high likelihood to succeed.&lt;&#x2F;p&gt;
&lt;p&gt;He wasn’t some idiot who jumps on his CNBC show to spout nonsense about which stocks will go up and down. He wasn’t a venture capitalist who took money from others and put it into the highest-volatility companies hoping that one of them would 100x and cover the massive losses on the others. He wasn’t a hedge fund manager who bets everything on financial instruments so complex he can’t understand them, knowing that if it crumbles, the US government will bail him out.&lt;&#x2F;p&gt;
&lt;p&gt;And he wasn’t a normal person sitting in his house, staring at candlestick charts, hoping he can outsmart every other person staring at those same charts by buying in and selling out before everyone else.&lt;&#x2F;p&gt;
&lt;p&gt;No. Midas Mulligan represented the true gift, skill, art, and value of real investment. In the story, we find out that he was the investor who got Hank Rearden off the ground. Hank Rearden uses that investment to start a steel empire that drives the country, and ultimately that powers his ability to invest huge amounts of his new wealth into research into an even better metal that has the promise to reshape the world.&lt;&#x2F;p&gt;
&lt;p&gt;That’s what investment is. And that’s why investment has such a high reward associated with it. It’s a massive gamble that may produce untold value for society. The effort necessary to determine the right investments is high. It’s only right that Midas Mulligan be well compensated for his work. And by compensating him well, he’ll have even more money in the future to invest in future projects, creating a positive feedback cycle of innovation and improvements.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;michael-crappy-investor-snoyman&quot;&gt;Michael (Crappy Investor) Snoyman&lt;&#x2F;h2&gt;
&lt;p&gt;I am not Midas Mulligan. I don’t have the gift to choose the winners in newly emerging markets. I can’t sit down with entrepreneurs and guide them to the best way to make their ideas thrive. And I certainly don’t have the money available to make such massive investments, much less the psychological profile to handle taking huge risks with my money like that.&lt;&#x2F;p&gt;
&lt;p&gt;I’m a low time preference individual by my upbringing, plus I am very risk-averse. I spent most of my adult life putting money into either the house I live in or into risk-off assets. I discuss this background more in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.snoyman.com&#x2F;blog&#x2F;2024&#x2F;11&#x2F;my-path-to-bitcoin&#x2F;&quot;&gt;a blog post on my current investment patterns&lt;&#x2F;a&gt;. During the COVID-19 money printing, I got spooked about this, realizing that the melting ice cubes were melting far faster than I had ever anticipated. It shocked me out of my risk-averse nature, realizing that if I didn’t take a more risky stance with my money, ultimately I’d lose it all.&lt;&#x2F;p&gt;
&lt;p&gt;So like so many others, I diversified. I put money into stock indices. I realized the stock market was risky, so I diversified further. I put money into various cryptocurrencies too. I learned to read candlestick charts. I made some money. I felt pretty good.&lt;&#x2F;p&gt;
&lt;p&gt;I started feeling more confident overall, and started trying to predict the market. I fixated on this. I was nervous all the time, because my entire wealth was on the line constantly.&lt;&#x2F;p&gt;
&lt;p&gt;And it gets even worse. In economics, we have the concept of an opportunity cost. If I invest in company ABC and it goes up 35% in a month, I’m a genius investor, right? Well, if company DEF went up 40% that month, I can just as easily kick myself for losing out on the better opportunity. In other words, once you’re in this system, it’s a constant rat race to keep finding the best possible returns, not simply being happy with keeping your purchasing power.&lt;&#x2F;p&gt;
&lt;p&gt;Was I making the world a better place? No, not at all. I was just another poor soul trying to do a better job of entering and exiting a trade than the next guy. It was little more than riding a casino.&lt;&#x2F;p&gt;
&lt;p&gt;And yes, I ultimately lost a massive amount of money through this.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;normal-people-shouldn-t-invest&quot;&gt;Normal people shouldn’t invest&lt;&#x2F;h2&gt;
&lt;p&gt;Which brings me to the title of this post. I don’t believe normal people should be subjected to this kind of investment. It’s an extra skill to learn. It’s extra life stress. It’s extra risk. And it doesn’t improve the world. You’re being rewarded—if you succeed at all—simply for guessing better than others.&lt;&#x2F;p&gt;
&lt;p&gt;(Someone out there will probably argue efficient markets and that having everyone trading stocks like this does in fact add some efficiencies to capital allocation. I’ll give you a grudging nod of agreement that this is somewhat true, but not sufficiently enough to justify the returns people anticipate from making “good” gambles.)&lt;&#x2F;p&gt;
&lt;p&gt;The only reason most people ever consider this is because they feel forced into it, otherwise they’ll simply be sitting on their melting ice cubes. But once they get into the game, between risk, stress, and time investment, they’re lives will often get worse.&lt;&#x2F;p&gt;
&lt;p&gt;One solution is to &lt;em&gt;not be greedy&lt;&#x2F;em&gt;. Invest in stock market indices, don’t pay attention to day-to-day price, and assume that the stock market will continue to go up over time, hopefully beating inflation. And if that’s the approach you’re taking, I can honestly say I think you’re doing better than most. But it’s not the solution I’ve landed on.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;option-4-deflation&quot;&gt;Option 4: deflation&lt;&#x2F;h2&gt;
&lt;p&gt;The problem with all of our options is that they are built in a broken world. The fiat&#x2F;inflationary world is a rigged game. You’re trying to walk up an escalator that’s going down. If you try hard enough, you’ll make progress. But the system is against you. This is inherent to the design. The inflation in our system is so that central planners have the undeserved ability to appropriate productive capacity in the economy to do whatever they want with it. They can use it to fund government welfare programs, perform scientific research, pay off their buddies, and fight wars. Whatever they want.&lt;&#x2F;p&gt;
&lt;p&gt;If you take away their ability to print money, your purchasing power will not go down over time. In fact, the opposite will happen. More people will produce more goods. Innovators will create technological breakthroughs that will create better, cheaper products. Your same amount of money will buy more in the future, not less. A low time preference individual will be rewarded. By setting aside money today, you’re allowing productive capacity today to be invested into building a stronger engine for tomorrow. And you’ll be rewarded by being able to claim a portion of that larger productive pie.&lt;&#x2F;p&gt;
&lt;p&gt;And to reiterate: in today’s inflationary world, if you defer consumption and let production build a better economy, you are punished with reduced purchasing power.&lt;&#x2F;p&gt;
&lt;p&gt;So after burying the lead so much, my option 4 is simple: Bitcoin. It’s not an act of greed, trying to grab the most quickly appreciating asset. It’s about putting my money into a system that properly rewards low time preference and saving. It’s admitting that I have no true skill or gift to the world through my investment capabilities. It’s recognizing that I care more about destressing my life and focusing on things I’m actually good at than trying to optimize an investment portfolio.&lt;&#x2F;p&gt;
&lt;p&gt;Can Bitcoin go to 0? Certainly, though year by year that likelihood is becoming far less likely. Can Bitcoin have major crashes in its price? Absolutely, but I’m saving for the long haul, not for a quick buck.&lt;&#x2F;p&gt;
&lt;p&gt;I’m hoping for a world where deflation takes over. Where normal people don’t need to add yet another stress and risk to their life, and saving money is the most natural, safest, and highest-reward activity we can all do.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;further-reading&quot;&gt;Further reading&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.snoyman.com&#x2F;blog&#x2F;2024&#x2F;10&#x2F;buying-bitcoin-or-selling-dollars&#x2F;&quot;&gt;Buying Bitcoin or selling dollars?&lt;&#x2F;a&gt; (my own blog post)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.snoyman.com&#x2F;blog&#x2F;2024&#x2F;11&#x2F;my-path-to-bitcoin&#x2F;&quot;&gt;My Path to Bitcoin&lt;&#x2F;a&gt; (also my own blog post)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;medium.com&#x2F;@vijayboyapati&#x2F;the-bullish-case-for-bitcoin-6ecc8bdecc1&quot;&gt;The Bullish Case for Bitcoin&lt;&#x2F;a&gt; (great explanation of the monetization of Bitcoin)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
        </item>
        <item>
            <title>Hello Nostr</title>
            <pubDate>Tue, 17 Dec 2024 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2024/12/hello-nostr/</link>
            <guid>https://www.snoyman.com/blog/2024/12/hello-nostr/</guid>
            <description>&lt;p&gt;This blog post is in the style of my &lt;a href=&quot;https:&#x2F;&#x2F;www.snoyman.com&#x2F;blog&#x2F;2018&#x2F;05&#x2F;guide-to-matrix-riot&#x2F;&quot;&gt;previous blog post on Matrix&lt;&#x2F;a&gt;. I&#x27;m reviewing and sharing onboarding experience with a new technology. I&#x27;m sharing in the hopes that it will help others become aware of this new technology, understand what it can do, and if people are intrigued, have a more pleasant onboarding experience. Just keep in mind: I&#x27;m in no way an expert on this. PRs welcome to improve the content here!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nostr.com&#x2F;&quot;&gt;https:&#x2F;&#x2F;nostr.com&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nostr.org&#x2F;&quot;&gt;https:&#x2F;&#x2F;nostr.org&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nostr.how&#x2F;&quot;&gt;https:&#x2F;&#x2F;nostr.how&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;aljazceru&#x2F;awesome-nostr&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;aljazceru&#x2F;awesome-nostr&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;njump.me&#x2F;nevent1qgsr7acdvhf6we9fch94qwhpy0nza36e3tgrtkpku25ppuu80f69kfqqypw05fjshncr453ltvtvn67swrv2zhz8xvwxcjxr7vl8wse6lv6njzum09e&quot;&gt;Onboarding post from Derek Ross&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;njump.me&#x2F;nevent1qgsrtuazdng7waddzmdd3nyw36w5sfvler95vgcte9nreqf8jtwlyvgqyz3htukyplqltu65rlcx4p7fa2w8c5r39mg05ghaj9ae9saqlyr277geeeu&quot;&gt;Onboarding post from Rod&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-is-nostr-why-nostr&quot;&gt;What is Nostr? Why Nostr?&lt;&#x2F;h2&gt;
&lt;p&gt;I’d describe Nostr as decentralized social media. It’s a protocol for people to identify themselves via public key cryptography (thus no central identity service), publish various kinds of information, access through any compatible client, and interact with anyone else. At its simplest, it’s a Twitter&#x2F;X clone, but it offers much more functionality than that (though I’ve barely scratched the surface).&lt;&#x2F;p&gt;
&lt;p&gt;Nostr has a high overlap with the Bitcoin ecosystem, including built-in micropayments (zaps) via the Lightning Network, an instantaneous peer-to-peer payment layer built on top of Bitcoin.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ll start off by saying: right now, Nostr&#x27;s user experience is &lt;em&gt;not&lt;&#x2F;em&gt; on a par with centralized services like X. But I can see a lot of promise. The design of the protocol encourages widespread innovation, as demonstrated by the plethora of clients and other tools to access the protocol. Decentralized&#x2F;federated services are more difficult to make work flawlessly, but the advantages in terms of freedom of expression, self-custody of your data, censorship resistance, and ability to build more featureful tools on top of it make me excited.&lt;&#x2F;p&gt;
&lt;p&gt;I was skeptical (to say the least) about the idea of micropayments built into social media. But I&#x27;m beginning to see the appeal. Firstly, getting away from an advertiser-driven business model fixes the age old problem of &quot;if you&#x27;re not paying for a service, you&#x27;re the product.&quot; But I see a deeper social concept here too. I intend to blog more in the future on the topic of non-monetary competition and compensation. But in short, in the context of social media: every social network ends up making its own version of imaginary internet points (karma, moderator privileges, whatever you want to call it). Non-monetary compensation has a lot of downsides, which I won&#x27;t explore here. Instead, making the credit system based on money with real-world value has the promise to vastly improve social media interactions.&lt;&#x2F;p&gt;
&lt;p&gt;Did that intrigue you enough to want to give this a shot? Awesome! Let me give you an overview of the protocol, and then we&#x27;ll dive into my recommendation on getting started.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;protocol-overview&quot;&gt;Protocol overview&lt;&#x2F;h2&gt;
&lt;p&gt;The basics of the protocol can be broken down into:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Relays&lt;&#x2F;li&gt;
&lt;li&gt;Events&lt;&#x2F;li&gt;
&lt;li&gt;Identities&lt;&#x2F;li&gt;
&lt;li&gt;Clients&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;As a decentralized protocol, Nostr relies on public key cryptography for identities. That means, when you interact on the network, you&#x27;ll use a private key (represented as an &lt;code&gt;nsec&lt;&#x2F;code&gt; value) to sign your messages, and will be identified by your public key (represented as an &lt;code&gt;npub&lt;&#x2F;code&gt; value). Anyone familiar with Bitcoin or cryptocurrency will be familiar with the keys vs wallet divide, and it lines up here too. Right off the bat, we see the first major advantage of Nostr: no one controls your identity except you.&lt;&#x2F;p&gt;
&lt;p&gt;Clients are how a user will interact with the protocol. You&#x27;ll provide your identity to the client in one of a few ways:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Directly entering your &lt;code&gt;nsec&lt;&#x2F;code&gt;. This is generally frowned upon since it opens you up for exploit, though most mobile apps work by direct &lt;code&gt;nsec&lt;&#x2F;code&gt; entry.&lt;&#x2F;li&gt;
&lt;li&gt;Getting a view-only experience in clients that support it by entering your &lt;code&gt;npub&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Using a signing tool to perform the signing on behalf of the client without giving away your private keys to everyone. (This matches most web3 interactions that rely on a wallet browser extension.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Events are a general-purpose concept, and are the heart of Nostr interaction. Events can represent a note (similar to a Tweet), articles, likes, reposts, profile updates, and more. Anything you do on the protocol involves creating and signing an event. This is also the heart of Nostr&#x27;s extensibility: new events can be created to support new kinds of interactions.&lt;&#x2F;p&gt;
&lt;p&gt;Finally there are relays. Relays are the servers of the Nostr world, and are where you broadcast your events to. Clients will typically configure multiple relays, broadcast your events to those relays, and query relays for relevant events for you (such as notes from people you follow, likes on your posts, and more).&lt;&#x2F;p&gt;
&lt;h2 id=&quot;getting-started&quot;&gt;Getting started&lt;&#x2F;h2&gt;
&lt;p&gt;This is where the suboptimal experience really exists for Nostr. It took me a few days to come up with a setup that worked reliably. I&#x27;m going to share what worked best for me, but keep in mind that there are many other options. I&#x27;m a novice; other guides may give different recommendations and you may not like my selection of tools. My best recommendation: don&#x27;t end up in shell shock like I did. Set up &lt;em&gt;any&lt;&#x2F;em&gt; kind of a Nostr profile, introduce yourself with the &lt;code&gt;#introductions&lt;&#x2F;code&gt; hashtag, and ask for help. I&#x27;ve found the community unbelievably welcoming.&lt;&#x2F;p&gt;
&lt;p&gt;Alright, so here are the different pieces you&#x27;re going to need for a full experience:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Browser extension for signing&lt;&#x2F;li&gt;
&lt;li&gt;Web client&lt;&#x2F;li&gt;
&lt;li&gt;Mobile client&lt;&#x2F;li&gt;
&lt;li&gt;Lightning wallet&lt;&#x2F;li&gt;
&lt;li&gt;A Nostr address&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;I&#x27;m going to give you a set of steps that I hope both provides easy onboarding while still leaving you with the ability to more directly control your Nostr experience in the future.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;lightning-wallet-coinos&quot;&gt;Lightning wallet: coinos&lt;&#x2F;h3&gt;
&lt;p&gt;First, you&#x27;re going to set up a Lightning wallet. There are a lot of options here, and there are a lot of considerations between ease-of-use, self-custody, and compatibility with other protocols. I tried a bunch. My recommendation: use &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;coinos.io&#x2F;&quot;&gt;coinos&lt;&#x2F;a&gt;. It&#x27;s a custodial wallet (meaning: they control your money and you&#x27;re trusting them), so don&#x27;t put any large sums into it. But coinos is really easy to use, and supports Nostr Wallet Connect (NWC). After you set up your account, click on the gear icon, and then click on &quot;Reveal Connection String.&quot; You&#x27;ll want to use that when setting up your clients. Also, coinos gives you a Lightning address, which will be &lt;code&gt;&amp;lt;username&amp;gt;@coinos.io&lt;&#x2F;code&gt;. You&#x27;ll need that for setting up your profile on Nostr.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;web-client-yakihonne&quot;&gt;Web client: YakiHonne&lt;&#x2F;h3&gt;
&lt;p&gt;I tried a bunch of web clients and had problems with almost all of them. I later realized most of my problems seemed to be caused by incorrectly set relays, which we&#x27;ll discuss below. In any event, I ultimately chose &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;yakihonne.com&#x2F;&quot;&gt;YakiHonne&lt;&#x2F;a&gt;. It also has mobile iOS and Android clients, so you can have a consistent experience. (I also used the Damus iOS client, which is also wonderful.)&lt;&#x2F;p&gt;
&lt;p&gt;Go to the homepage, click on the Login button in the bottom-left, and then choose &quot;Create an account.&quot; You can add a profile picture, banner image, choose a display name, and add a short description. In the signup wizard, you&#x27;ll see an option to let YakiHonne set up a wallet (meaning a Lightning wallet) for you. I chose not to rely on this and used coinos instead to keep more flexibility for swapping clients in the future. If you want to simplify, however, you can just use the built-in wallet.&lt;&#x2F;p&gt;
&lt;p&gt;Before going any further, &lt;em&gt;make sure you back up your &lt;code&gt;nsec&lt;&#x2F;code&gt; secret key!!!&lt;&#x2F;em&gt; Click on your username in the bottom-left, then settings, and then &quot;Your keys.&quot; I recommend saving both your &lt;code&gt;nsec&lt;&#x2F;code&gt; and &lt;code&gt;npub&lt;&#x2F;code&gt; values in your password manager.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;hello-nostr&#x2F;yakikeys.png&quot; alt=&quot;YakiHonne keys&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;No, this isn&#x27;t my actual set of keys, this was a test profile I set up while writing this post.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Within that settings page, click on &quot;wallets,&quot; then click on the plus sign next to add wallets, and choose &quot;Nostr wallet connect.&quot; Paste the NWC string you got from coinos, and you&#x27;ll be able to zap people money!&lt;&#x2F;p&gt;
&lt;p&gt;Next, go back to settings and choose &quot;Edit Profile.&quot; Under &quot;Lightning address,&quot; put your &lt;code&gt;&amp;lt;username&amp;gt;@coinos.io&lt;&#x2F;code&gt; address. Now you&#x27;ll also be able to receive zaps from others.&lt;&#x2F;p&gt;
&lt;p&gt;Another field you&#x27;ll notice on the profile is NIP-05. That&#x27;s your Nostr address. Let&#x27;s talk about getting that set up.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;nip-05-nostr-address&quot;&gt;NIP-05 Nostr address&lt;&#x2F;h3&gt;
&lt;p&gt;Remembering a massive &lt;code&gt;npub&lt;&#x2F;code&gt; address is a pain. Instead, you&#x27;ll want to set up a NIP-05 address. (NIP stands for Nostr Implementation Possibilities, you can see &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nostr-protocol&#x2F;nips&#x2F;blob&#x2F;master&#x2F;05.md&quot;&gt;NIP-05 on GitHub&lt;&#x2F;a&gt;.) There are many services—both paid and free—to get a NIP-05 address. You can see a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;aljazceru&#x2F;awesome-nostr?tab=readme-ov-file#nip-05-identity-services&quot;&gt;set of services on AwesomeNostr&lt;&#x2F;a&gt;. Personally, I decided to set up an identifier on my own domain. You can &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.snoyman.com&#x2F;.well-known&#x2F;nostr.json&quot;&gt;see my live nostr.json file&lt;&#x2F;a&gt;, which at time of writing supports:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;michael@snoyman.com&lt;&#x2F;code&gt; and an alias &lt;code&gt;snoyberg@snoyman.com&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;The special &lt;code&gt;_@snoyman.com&lt;&#x2F;code&gt;, which actually means &quot;the entire domain itself&quot;&lt;&#x2F;li&gt;
&lt;li&gt;And an identifier for my wife as well, &lt;code&gt;miriam@snoyman.com&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you host this file yourself, keep in mind these two requirements:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;You cannot have any redirects at that URL! If your identifier is &lt;code&gt;name@domain&lt;&#x2F;code&gt;, the URL &lt;code&gt;https:&#x2F;&#x2F;domain&#x2F;.well-known&#x2F;nostr.json?name=&amp;lt;name&amp;gt;&lt;&#x2F;code&gt; &lt;em&gt;must&lt;&#x2F;em&gt; resolve directly to this file.&lt;&#x2F;li&gt;
&lt;li&gt;You need to set CORS headers appropriately to allow for web client access, specifically the response header &lt;code&gt;access-control-allow-origin: *&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Once you have that set up, add your Nostr address to your profile on YakiHonne. Note that you&#x27;ll need the hex version of your &lt;code&gt;npub&lt;&#x2F;code&gt;, which you can generate by using the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nak.nostr.com&#x2F;&quot;&gt;Nostr Army Knife&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;hello-nostr&#x2F;nok.png&quot; alt=&quot;Nostr Army Knife&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;BONUS&lt;&#x2F;strong&gt; I decided to also set up my own Lightning wallet address, by rehosting the Lightning config file from &lt;code&gt;https:&#x2F;&#x2F;coinos.io&#x2F;.well-known&#x2F;lnurlp&#x2F;snoyberg&lt;&#x2F;code&gt; on my domain at &lt;code&gt;https:&#x2F;&#x2F;snoyman.com&#x2F;.well-known&#x2F;lnurlp&#x2F;michael&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;signer&quot;&gt;Signer&lt;&#x2F;h3&gt;
&lt;p&gt;As far as I can tell, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;getalby.com&#x2F;&quot;&gt;Alby&lt;&#x2F;a&gt; provides the most popular Nostr signing browser extension. The only problem I had with it was confusion about all the different things it does. Alby provides a custodial lightning wallet via Alby Hub, plus a mobile Alby Go app for accessing it, plus a browser extension for Nostr signing, and that browser extension supports using both the Alby Hub wallet and some other lightning wallets. I did get it all to work together, and it&#x27;s a pleasant experience.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;hello-nostr&#x2F;nos2x.png&quot; alt=&quot;nos2x&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;However, to keep things a bit more simple and single-task focused, I&#x27;ll recommend trying out the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;fiatjaf&#x2F;nos2x&quot;&gt;nos2x extension&lt;&#x2F;a&gt; first. It&#x27;s not pretty, but handles the signer piece very well. Install the extension, enter the &lt;code&gt;nsec&lt;&#x2F;code&gt; you got from YokiHonne, click save, and you&#x27;re good to go. If you go to another Nostr client, like &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nostrudel.ninja&quot;&gt;noStrudel&lt;&#x2F;a&gt;, you should be able to &quot;sign in with extension.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;You may also notice that there&#x27;s any entry area for &quot;preferred relays.&quot; We&#x27;ll discuss relays next. Feel free to come back to this step and add those relays. (And, after you&#x27;ve done that, you can also use a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;snowcait.github.io&#x2F;nostr-json-generator&quot;&gt;nostr.json generator&lt;&#x2F;a&gt; to help you self-host your NIP-05 address if you&#x27;re so inclined.)&lt;&#x2F;p&gt;
&lt;p&gt;Final note: once you&#x27;ve done the initial setup, it&#x27;s not clear how to get back to the nos2x settings page. Right-click the extension, click manage extension, and then choose &quot;extension options.&quot; At least those were the steps in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;brave.com&#x2F;&quot;&gt;Brave&lt;&#x2F;a&gt;; it may be slightly different in other browsers.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;relays&quot;&gt;Relays&lt;&#x2F;h3&gt;
&lt;p&gt;This has been my biggest pain point with Nostr so far. Everything you do with Nostr needs to be sent to relays or received from relays. You want to have a consistent and relatively broad set of relays to make sure your view of the world is consistent. If you don&#x27;t, you&#x27;ll likely end up with things like mismatched profiles across relays, messages that seem to disappear, and more. This was probably my biggest stumbling block when first working with Nostr.&lt;&#x2F;p&gt;
&lt;p&gt;There seem to be three common ways to set the list of relays:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Manually entering the relays in the client&#x27;s settings.&lt;&#x2F;li&gt;
&lt;li&gt;Getting the list of relays from the signer extension (covered by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nostr-protocol&#x2F;nips&#x2F;blob&#x2F;master&#x2F;07.md&quot;&gt;NIP-07&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;Getting the list of relays from your NIP-05 file.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Unfortunately, it looks like most clients don&#x27;t support the latter two methods. So unfortunately, any time you start using a new client, you should check the relay list and manually sync it up with a list of relays you maintain.&lt;&#x2F;p&gt;
&lt;p&gt;You can look at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.snoyman.com&#x2F;.well-known&#x2F;nostr.json&quot;&gt;my nostr.json file&lt;&#x2F;a&gt; for my own list of relays. One relay in particular I was recommended to use is &lt;code&gt;wss:&#x2F;&#x2F;hist.nostr.land&lt;&#x2F;code&gt;. This relay will keep track of your profile and follow list updates. As I mentioned, it&#x27;s easy to accidentally partially-override your profile information through inconsistent relay lists, and apparently lots of new users (myself included) end up doing this. If you go to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;hist.nostr.land&#x2F;&quot;&gt;hist.nostr.land&lt;&#x2F;a&gt; you can sign in, find your historical updates, and restore old versions.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;mobile&quot;&gt;Mobile&lt;&#x2F;h3&gt;
&lt;p&gt;You&#x27;re now set up on your web experience. For mobile, download any mobile app and set it up similarly to what I described for web. The major difference will be that you&#x27;ll likely be entering your &lt;code&gt;nsec&lt;&#x2F;code&gt; directly into the mobile app.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve used both &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;damus.io&#x2F;&quot;&gt;Damus&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;yakihonne.com&#x2F;yakihonne-mobile-app&quot;&gt;YakiHonne&lt;&#x2F;a&gt;. I had better luck with YakiHonne for getting zaps working reliably, but that may simply be because I&#x27;d tried Damus before I&#x27;d gotten set up with coinos before. I&#x27;ll probably try out Damus some more soon.&lt;&#x2F;p&gt;
&lt;p&gt;Note on Damus: I had trouble initially with sending Zaps on Damus, but apparently that&#x27;s because of &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;njump.me&#x2F;nevent1qgsr9cvzwc652r4m83d86ykplrnm9dg5gwdvzzn8ameanlvut35wy3gqyp6m8dphmzjfpynmvzsr88mkkulmq2npm92eewr0h5p92jzujn0lvz79rnt&quot;&gt;Apple rules&lt;&#x2F;a&gt;. You can enable Zaps by visiting this site on your device: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;zap.army&#x2F;&quot;&gt;https:&#x2F;&#x2F;zap.army&#x2F;&lt;&#x2F;a&gt;. Thanks &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;njump.me&#x2F;jb55.com&quot;&gt;William Cassarin&lt;&#x2F;a&gt; for the guidance and the great app.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;introductions&quot;&gt;Introductions&lt;&#x2F;h2&gt;
&lt;p&gt;You should now be fully set up to start interacting on Nostr! As a final step, I recommend you start off by sending an introduction note. This is a short note telling the world a bit about yourself, with the &lt;code&gt;#introductions&lt;&#x2F;code&gt; hashtag. For comparison, here&#x27;s &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;yakihonne.com&#x2F;notes&#x2F;nevent1qgsw8wj7rgrwz8yxqqmtt30x3qqjhc4ggas2hsrx4s62px2ntepnxegqyrnqq2ljscepjmr3spkrwcequhqkl7vtgps292e8uxac9qr5dkljul7t767&quot;&gt;my introduction note&lt;&#x2F;a&gt; (or a &lt;a href=&quot;nostr:nevent1qgsw8wj7rgrwz8yxqqmtt30x3qqjhc4ggas2hsrx4s62px2ntepnxegqyrnqq2ljscepjmr3spkrwcequhqkl7vtgps292e8uxac9qr5dkljul7t767&quot;&gt;Nostr-native URL&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;And in addition, feel free to &lt;code&gt;@&lt;&#x2F;code&gt; me in a note as well, I&#x27;d love to meet other people on Nostr who joined up after reading this post. My identifier is &lt;code&gt;michael@snoyman.com&lt;&#x2F;code&gt;. You can also check out my &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;njump.me&#x2F;michael@snoyman.com&quot;&gt;profile page on njump&lt;&#x2F;a&gt;, which is a great service to become acquainted with.&lt;&#x2F;p&gt;
&lt;p&gt;And now that you&#x27;re on Nostr, let me share my experiences with the platform so far.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;my-experience&quot;&gt;My experience&lt;&#x2F;h2&gt;
&lt;p&gt;I&#x27;m definitely planning to continue using Nostr. The community has a different feel to my other major social media hub, X, which isn&#x27;t surprising. There&#x27;s a lot more discussion of Bitcoin and economics, which I love. There&#x27;s also, at least subjectively, more of a sense of having fun versus X. I described it as joyscrolling versus doomscrolling.&lt;&#x2F;p&gt;
&lt;p&gt;Nostr is a free speech haven. It&#x27;s quite literally impossible to fully silence someone. People can theoretically be banned from specific relays, but a banned user could always just use other relays are continue to create new keys. There&#x27;s no KYC process to stop them. I&#x27;ve only found one truly vile account so far, and it was easy enough to just ignore. This fits very well with my own personal ethos. I&#x27;d rather people have a public forum to express &lt;em&gt;any&lt;&#x2F;em&gt; opinion, especially the opinions I most strongly disagree with, including calls to violence. I believe the world is better for allowing these opinions to be shared, debated, and (hopefully) exposed as vapid.&lt;&#x2F;p&gt;
&lt;p&gt;The process of zapping is surprisingly engaging. The amount of money people send around isn&#x27;t much. The most common zap amount is 21 satoshis, which at the current price of Bitcoin is just about 2 US cents. Unless you become massively popular, you&#x27;re not going to retire on zaps. But it&#x27;s far more meaningful to receive a zap than a like; it means someone parted with something of actual value because you made their day just a little bit better. And likewise, zapping someone else has the same feeling. It&#x27;s also possible to tip providers of clients and other tools, which is a fundamental shift from the advertiser-driven web of today.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;d love to hear from others about their own experiences! Please reach out with your own findings. Hopefully we&#x27;ll all be able to push social media into a more open, healthy, and fun direction.&lt;&#x2F;p&gt;
</description>
        </item>
        <item>
            <title>Steelmanning Tariffs</title>
            <pubDate>Mon, 25 Nov 2024 00:00:00 +0000</pubDate>
            <link>https://www.snoyman.com/blog/2024/11/steelmanning-tariffs/</link>
            <guid>https://www.snoyman.com/blog/2024/11/steelmanning-tariffs/</guid>
            <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;&#x2F;strong&gt; A few days after posting this article, I saw a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;x.com&#x2F;RallyWithGalli&#x2F;status&#x2F;1861354664773722140&quot;&gt;video on X&lt;&#x2F;a&gt; that gives (IMO) a better argument in favor of tariffs than I came up with here. If you&#x27;re interested in the topic, I&#x27;d recommend giving it a watch, it&#x27;s only about 11 minutes.&lt;&#x2F;p&gt;
&lt;p&gt;I’m a believer in the idea of free markets. The principle is simple: with less regulation and freedom of individuals to engage in trade and their own price discovery, we’ll end up with optimal price points and maximizing production, making everyone’s life better.&lt;&#x2F;p&gt;
&lt;p&gt;Tariffs fly in the face of this by introducing unnecessary and artificial barriers to trade. A classic example is sugar. The US has an import tariff on sugar, which makes it artificially more expensive to use sugar in products. Corn syrup, on the other hand, is produced from domestically grown corn and faces no such penalty. It is therefore artificially cheaper than sugar, and ends up being used in products. The results:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;More corn is produced than is actually needed, preventing agriculture from focusing on higher value production for society&lt;&#x2F;li&gt;
&lt;li&gt;Consumers receive inferior products made out of corn syrup instead of sugar&lt;&#x2F;li&gt;
&lt;li&gt;Consumers pay more for these goods than they would without the tariff&lt;&#x2F;li&gt;
&lt;li&gt;Sugar producers outside the US make smaller profits&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;There’s an even worse aspect to tariffs though: they can kick off devastating battles between countries. Tariffs are essentially economic warfare, harming citizens of another country to help your own citizens. Once one country starts tariffs, it can snowball into a crippling domino effect that impedes all global trade.&lt;&#x2F;p&gt;
&lt;p&gt;Donald Trump has said he’s going to use tariffs, because we’re “losing on trade” by having a trade deficit. But that statement is bonkers. A trade deficit means a country receives more goods than it sends out. In other words, citizens do &lt;em&gt;better&lt;&#x2F;em&gt; with a trade deficit.&lt;&#x2F;p&gt;
&lt;p&gt;Based on all this, it seems pretty straightforward that economists would oppose Trump’s tariff plan, and would balk at his explanations. In this post, I want to steelman the position: give the best argument in favor of Trump’s plan that I can think of. (I won’t bother trying to defend the “losing on trade” comment though, it’s factually wrong, but seems like a good rallying cry for a policy from a political standpoint.)&lt;&#x2F;p&gt;
&lt;p&gt;To set the stage, we’re going to start by discussing two ideas, and then bringing them together: negative externalities and granularity of competition.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;negative-externalities&quot;&gt;Negative externalities&lt;&#x2F;h2&gt;
&lt;p&gt;In economics, a negative externality is when some activity has a negative impact on others. This essentially transfers some of the costs of an activity to others, while keeping all the benefits for the actor. A great example is pollution. A factory can either spend a million dollars a year cleaning up its waste, or it could dump its pollution into the lake. The business gets no benefit from an unpolluted lake, but normal people will lose the ability to use the lake. The business has &lt;em&gt;externalized&lt;&#x2F;em&gt; a cost onto society.&lt;&#x2F;p&gt;
&lt;p&gt;Programmers may already be familiar with another term for this concept: the tragedy of the commons.&lt;&#x2F;p&gt;
&lt;p&gt;One method to address externalities like this is through regulation: make it illegal for companies to pollute in the lake. But economics offers another approach to this as well: assign ownership rights on the lake. An owner can decide whether or not to allow pollution based on any criteria they want. Being a rational actor (one of the largest assumptions in economics, often violated), the new owner is incentivized to set up an auction for usage rights to the lake. The polluting business can compete against companies offering leisure activities on the lake. Then the free market can determine if the million dollars of cost savings is more valuable than the benefits people can take from a clean lake.&lt;&#x2F;p&gt;
&lt;p&gt;Instead of assigning the property rights to the lake to a private entity, the government can engage in this activity through open auction as well. This results in increased tax revenue, which will decrease the overall tax burden for everyone, flipping the tragedy of the commons into a benefit for all.&lt;&#x2F;p&gt;
&lt;p&gt;You may not like this solution, because you believe that the free market can’t properly price in the true value of a non-polluted lake, or because you don’t believe people will act rationally, or any other reason. That’s not terribly relevant for this discussion. The point is the definition of a negative externality, and the fact that the government can extract money from economic actors while increasing public good.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;granularity-of-competition&quot;&gt;Granularity of competition&lt;&#x2F;h2&gt;
&lt;p&gt;All of economics is a story of competition over scarce goods. Generally, we talk about the competition of individuals or private entities. In other words: people and businesses competing with each other. Note that the competition isn’t between buyers and sellers, as is often believed. Instead, buyers are competing with other buyers, pushing prices up, while sellers are competing with other sellers, pushing prices down.&lt;&#x2F;p&gt;
&lt;p&gt;One of the underlying assumptions of capitalism is that there’s a fair playing field. All actors should be treated equally. In practice, this fails fairly often. For example, in crony capitalism, select businesses receive special handouts from the government. Monopolies are another arguable example, where a company can leverage its overwhelming market share in one industry to subsidize the destruction of competitors in another industry.&lt;&#x2F;p&gt;
&lt;p&gt;As mentioned above, tariffs hurt people by creating an uneven playing field between individuals. But viewed at the national level, tariffs are a method of competition between different governments. In other words, leveraging tariffs may end up hurting competition at the granular level, but might end up serving the interests of a government policy which is at odds with “make all goods cheaper through more competition.”&lt;&#x2F;p&gt;
&lt;h3 id=&quot;protecting-workers&quot;&gt;Protecting workers&lt;&#x2F;h3&gt;
&lt;p&gt;In this sense, tariffs are not at all unique. Differences in regulations between countries, laws about fair labor practices, environment impact, local tax structures, and manipulation of currency exchange rates are all part of the competition between different nations. As a simple example, suppose country A has strict labor laws, demanding safe working conditions and demanding health coverage for all workers, while country B does not. Country B will be able to outcompete country A for new businesses, because it’s relatively cheaper to produce in country B.&lt;&#x2F;p&gt;
&lt;p&gt;Tariffs in such a scenario can be a method for country A to make production in country B less attractive. If country A imposes a 20% tariff on country B imports due to human rights violations, it is in essence making production in country A more competitive again. Without this kind of change, countries seeking to attract investment and new businesses may be incentivized to pass laws that hurt their citizens just to bring down production costs.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;national-security&quot;&gt;National security&lt;&#x2F;h3&gt;
&lt;p&gt;Another topic is national security. Let’s take countries C and D, who are not on the best of terms. Both countries are stocking up on weapons in case war breaks out. Both countries locally source weapons production, ordering lots of tanks from domestic producers.&lt;&#x2F;p&gt;
&lt;p&gt;Firstly, why domestic? Because it would be crazy to put your national defense in the hands of a potential enemy!&lt;&#x2F;p&gt;
&lt;p&gt;But suppose there’s completely free international trade, with no embargos and no tariffs. Country C is a major steel exporter, obviously an import input to tank production. Country C can engage in some economic warfare of its own against country D:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Subsidize local production of steel&lt;&#x2F;li&gt;
&lt;li&gt;Cheaper steel exports prevent domestic production of steel from ramping up in country D
&lt;ul&gt;
&lt;li&gt;Under normal circumstances, this is great! It’s what we would term specialization, allowing citizens in country D to focus on what they’re relatively better at.&lt;&#x2F;li&gt;
&lt;li&gt;In the long run, the strategy would be unprofitable for country C’s government, and it will eventually either go bankrupt or have to halt the policy.&lt;&#x2F;li&gt;
&lt;li&gt;However, since we’re discussing national security…&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;When war breaks out, country C can simply block all steel exports&lt;&#x2F;li&gt;
&lt;li&gt;Country D will face a supply chain crisis. Its domestic steel production is low, it hasn’t invested in better tools and technology for steel production, and it will have to quickly and inefficiently produce enough steel to keep up with the war effort.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;tying-it-together&quot;&gt;Tying it together&lt;&#x2F;h2&gt;
&lt;p&gt;The best argument I can pull together from these points is that tariffs can be used to place the United States in a stronger position for future competition with geopolitical competitors. Instead of allowing poor labor practices in other countries to drag down the standard of living for Americans, tariffs will artificially inflate the price of incoming goods. Instead of rewarding other countries that pollute, tariffs will extract a penalty from those countries, properly allocating the costs of the negative externalities to those polluting nations. And finally, by incentivizing an increase in domestic production across the board, the US is set up for more autonomy in the case of escalation (through either embargos or full-on warfare), protecting its interests.&lt;&#x2F;p&gt;
&lt;p&gt;It’s the best argument &lt;em&gt;I&lt;&#x2F;em&gt; can make. Others can probably critique my points as well as provide better justifications than I have. I’d love to see those in the comments. The real question is: do the arguments in favor of these tariffs justify the costs many of us anticipate seeing: higher product costs, trade wars, decreased international trade, and isolationism of the US.&lt;&#x2F;p&gt;
&lt;p&gt;Personally, I don’t think the arguments add up. I’m mostly on the side of the mainstream for once. I wouldn’t have proposed tariffs in the current world environment, I wouldn’t vote in favor of them, and I wouldn’t speak out in support of them. And especially given that the proposal seems to be a flat tariff on most countries (with a higher tariff on China), it doesn’t seem to address the “negative externalities” bit at all, which would do better from targeted tariffs attempting to incentivize specific changes (like carbon emission reduction or improvement to labor laws).&lt;&#x2F;p&gt;
&lt;p&gt;Which leaves me with only one final argument in favor of the tariffs: they could be a great bluff. I think many people in the world believe that Trump would be willing to pull the trigger and enact such a policy. That gives him a really great negotiating position for whatever trade deals and other foreign policy objectives he has.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;my-prediction&quot;&gt;My prediction&lt;&#x2F;h2&gt;
&lt;p&gt;I’m a software developer who watches politics and studies economics. My prediction on topics like this isn’t particularly informed, and is likely to be completely wrong. But I may as well put my thoughts in writing so everyone can remind me how wrong I was in the future!&lt;&#x2F;p&gt;
&lt;p&gt;I think Trump will continue to talk about tariffs in his new administration. He’ll spend more time discussing them with the press and foreign leaders than with the Republicans in Congress. There will always be a convenient reason why the tariffs aren’t proposed. And eventually, Trump will get some concessions from other nations, and will eventually “fail” to pass tariffs. The media will have a field day with it, and Trump will accuse someone somewhere of being the reason why “the greatest tax plan of all time” failed.&lt;&#x2F;p&gt;
&lt;p&gt;And maybe it’s my prediction just because I’m hoping it’s what becomes reality. Other outcomes I can foresee are much less rosy.&lt;&#x2F;p&gt;
</description>
        </item>
    </channel>
</rss>
