<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Joel Shetler</title>
    <subtitle>Things Joel Shetler has made and written in Olympia, Washington.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://www.joelshetler.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://www.joelshetler.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-10-08T00:00:00+00:00</updated>
    <id>https://www.joelshetler.com/atom.xml</id>
    <entry xml:lang="en">
        <title>Bible Search</title>
        <published>2026-10-08T00:00:00+00:00</published>
        <updated>2026-10-08T00:00:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/tools/bible-search/about/"/>
        <id>https://www.joelshetler.com/tools/bible-search/about/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/tools/bible-search/about/">&lt;p&gt;&lt;a href=&quot;/tools/bible-search/&quot;&gt;Bible Search&lt;/a&gt; finds a verse from the words you half remember. “eagles not getting tired” finds Isaiah 40:31. “plans to prosper you and not to harm you” finds Jeremiah 29:11, where the King James says “thoughts of peace, and not of evil”.&lt;/p&gt;
&lt;p&gt;Each word you type is widened into its other forms, the Hebrew or Greek word behind it, and its synonyms, so a modern phrasing reaches 1769 English. Verses that hold every word in your order rank higher.&lt;/p&gt;
&lt;p&gt;The whole Bible is drawn as one map of 31,102 verse tiles that zooms down to readable text. A reader shows chapter after chapter with your search still underlined, and it can read aloud in your device’s own voice.&lt;/p&gt;
&lt;p&gt;The search engine is Rust compiled to WebAssembly, and it runs in your browser. After the first visit the app works offline.&lt;/p&gt;
&lt;p&gt;The text is the King James Version, 1769, with Strong’s numbers. A reader who adds their own key from api.esv.org can also read the ESV, alone or beside the King James.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>mist</title>
        <published>2026-10-07T00:00:00+00:00</published>
        <updated>2026-10-07T00:00:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/tools/mist/about/"/>
        <id>https://www.joelshetler.com/tools/mist/about/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/tools/mist/about/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>typebeat</title>
        <published>2026-10-07T00:00:00+00:00</published>
        <updated>2026-10-07T00:00:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/tools/typebeat/about/"/>
        <id>https://www.joelshetler.com/tools/typebeat/about/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/tools/typebeat/about/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Strunkifying Whitener</title>
        <published>2026-09-29T00:00:00+00:00</published>
        <updated>2026-09-29T00:00:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/tools/strunkifying-whitener/about/"/>
        <id>https://www.joelshetler.com/tools/strunkifying-whitener/about/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/tools/strunkifying-whitener/about/">&lt;p&gt;Strunkifying Whitener marks your Markdown drafts with rule numbers from the 1918 private printing of &lt;em&gt;The Elements of Style&lt;/em&gt;, the way Strunk marked his students’ manuscripts. A red &lt;code&gt;13&lt;/code&gt; in the margin means “omit needless words” probably applies to that line. It never rewrites your prose, never suggests a replacement, and never gives you a score.&lt;/p&gt;
&lt;p&gt;You keep writing in your own editor. In Chrome or Edge, it follows the file and re-marks it every time you save, and the paragraph you just changed becomes the current one.&lt;/p&gt;
&lt;h2 id=&quot;one-tier-at-a-time&quot;&gt;One tier at a time&lt;/h2&gt;
&lt;p&gt;The rules come in tiers, in the book’s order: usage first (rules 1 to 5 and the commonly misused words), then composition, then the rules that need judgment. A paragraph with a comma splice shows only that. Once you fix it or dismiss it, the next tier’s marks appear. Paragraphs move through the tiers independently, so a stray comma in the first paragraph doesn’t hide anything in the fifth.&lt;/p&gt;
&lt;p&gt;The judgment rules, like “use definite, specific, concrete language,” don’t get marks. They become question cards, on request, for the current paragraph: Strunk’s full text for the rule, your own notes on it, and the questions a careful writer would ask.&lt;/p&gt;
&lt;p&gt;Any mark can be dismissed. Strunk allowed that good writers break rules when the sentence gains something in return. A dismissal shows as “stet” in the margin and lasts until you edit that sentence.&lt;/p&gt;
&lt;h2 id=&quot;the-look&quot;&gt;The look&lt;/h2&gt;
&lt;p&gt;The marks are drawn as fountain-pen ink in red and blue, with proofreader’s carets for missing commas and rule numbers in a handwriting face. A print view double-spaces the draft with the margin marks, for revising at the typewriter.&lt;/p&gt;
&lt;p&gt;The whole thing is one HTML file with no build step and no libraries. Your text stays in your browser unless you ask a model of your own choosing for a second opinion.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Comnav, a radio console on a Raspberry Pi</title>
        <published>2026-08-14T00:00:00+00:00</published>
        <updated>2026-08-14T00:00:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/made/comnav/"/>
        <id>https://www.joelshetler.com/made/comnav/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/made/comnav/">&lt;p&gt;Comnav is a portable communication and navigation console. It’s a Raspberry Pi 4 with the official 7-inch touchscreen, an HQ camera, and an RTL-SDR Blog V4 dongle that receives from 500 kHz to 1.7 GHz. It boots straight into a fullscreen console with no desktop, no login and no keyboard. Position comes from an old Moto G7 broadcasting its GPS over Wi-Fi.&lt;/p&gt;
&lt;p&gt;It plots aircraft from ADS-B over a vector coastline, verified against real traffic past 20 nautical miles. It shows a spectrum waterfall, decodes AIS from ships, reads tire-pressure sensors off passing cars (a Toyota at 32.75 PSI inside thirty seconds), and has a scanner that searches the band, listens to what it finds, and decides whether each signal is voice, data, Morse or a dead carrier.&lt;/p&gt;
&lt;h2 id=&quot;what-the-air-taught-it&quot;&gt;What the air taught it&lt;/h2&gt;
&lt;p&gt;The scanner passed every bench test before it met an antenna. These are the things only real signals showed, mostly Olympia’s NOAA weather transmitter on 162.475 MHz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Real speech doesn’t look like the model of speech.&lt;/strong&gt; The classifier was built against band-limited noise and called NOAA a carrier. Off the air, narrowband FM voice puts only a third of its energy between 300 Hz and 3 kHz. What survives is the envelope: speech varies by 0.6 to 0.7 of its own mean, block after block, where open squelch varies by 0.1 and data by 0.01.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A vote must not count silence.&lt;/strong&gt; Speech has gaps, the gaps read as carrier, and a plain majority called half of every real conversation dead air. Voice is a positive identification and carrier is the absence of one, so a second that’s 30% voice is voice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One wrong answer must not be permanent.&lt;/strong&gt; Before those fixes, the scanner auto-blocked NOAA after twenty seconds of reading it as a carrier. That was the feature working correctly on a wrong input. Blocking now takes three separate strikes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SIGKILL wedges the dongle.&lt;/strong&gt; Killing the radio process outright leaves the USB device streaming into nothing. After eight restarts it opened fine, reported no error, and delivered no samples, and the scanner sat in a pipe read forever. Readers get SIGTERM now, and a block that doesn’t arrive in five seconds counts as a dead radio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The classifier shows its work.&lt;/strong&gt; Every reception carries the numbers its label came from, which turned “it says DATA and I don’t know why” into a five-minute diagnosis.&lt;/p&gt;
&lt;h2 id=&quot;where-it-stands&quot;&gt;Where it stands&lt;/h2&gt;
&lt;p&gt;The aircraft plot, AIS decoding, the waterfall, sensor decoding, GPS and the scanner are verified on the Pi against live signals. AIS decodes correctly when tested with injected signals, but no real ship has shown up. Budd Inlet is a dead end and the shipping lanes are well north. AM airband search, Morse on the air and anything on HF are still untested.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>A tide watch for Budd Inlet</title>
        <published>2026-08-13T00:00:00+00:00</published>
        <updated>2026-08-13T00:00:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/made/tide-watch/"/>
        <id>https://www.joelshetler.com/made/tide-watch/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/made/tide-watch/">&lt;p&gt;The Watchy is an open-hardware e-paper watch built around an ESP32. Mine runs a face called TideFace: the time, sunrise and sunset, today’s highs and lows, and a 24-hour tide curve for Budd Inlet with the next high or low called out. The curve runs three hours behind now and twenty-one ahead, with a dotted line at the present.&lt;/p&gt;
&lt;p&gt;Tides come from NOAA’s station 9446969 and temperatures from the National Weather Service, both free and keyless. Sun times are computed on the watch from the NOAA solar equations, so they work with the radio off and never fail. They agree with published tables to within a minute.&lt;/p&gt;
&lt;h2 id=&quot;the-radio-only-runs-on-the-charger&quot;&gt;The radio only runs on the charger&lt;/h2&gt;
&lt;p&gt;The watch only uses Wi-Fi when the battery reads above 4.05 V, which means it’s charging, and when the cached tides are over six hours old. This board has no pin that says USB is plugged in, so voltage is the only clue. The obvious threshold for a full pack, 4.15 V, turned out to be reached only at the tail of a charge and missed most of them. Each sync pulls two weeks of tides, so two weeks off the charger still draws a correct curve.&lt;/p&gt;
&lt;h2 id=&quot;where-the-battery-goes&quot;&gt;Where the battery goes&lt;/h2&gt;
&lt;p&gt;About 85% of the energy goes to waking up. A wake costs about 20 mAs, most of it the ESP32 boot path before my code even runs, so the lever that matters is waking less often. The face redraws every minute normally, every fifteen minutes at night or after ten minutes without movement, and backs off further as the battery drops. Below 3.50 V it goes to hourly wakes with no motor and no radio.&lt;/p&gt;
&lt;p&gt;The library also left the accelerometer running at 100 Hz forever, near 150 µA against a deep-sleep floor near 20 µA. It now runs in Bosch’s low-power step-counter mode, which keeps the step count and drops the tilt and double-tap features nothing here used.&lt;/p&gt;
&lt;h2 id=&quot;traps-worth-knowing-if-you-write-watchy-firmware&quot;&gt;Traps worth knowing if you write Watchy firmware&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;WiFi.disconnect(true)&lt;/code&gt; doesn’t erase saved credentials, however often that’s repeated online. The first argument is &lt;code&gt;wifioff&lt;/code&gt;. &lt;code&gt;WiFi.STA.disconnect(true)&lt;/code&gt; is the one that erases.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WiFi.SSID()&lt;/code&gt; returns the network you’re connected to, not the one configured, so checking it right after &lt;code&gt;WiFi.begin()&lt;/code&gt; always reads empty.&lt;/li&gt;
&lt;li&gt;At −82 dBm my router returns &lt;code&gt;AUTH_FAIL&lt;/code&gt; with the correct password, so an auth failure doesn’t prove a wrong key.&lt;/li&gt;
&lt;li&gt;The library’s Setup WiFi wipes the stored network before asking for a new one and gives you 60 seconds for the whole captive portal. TideFace replaces it with a five-minute version that doesn’t wipe anything first.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The menu also has a countdown timer, the tide predictions as a list, a power screen, and a reader for Psalms, Proverbs and the four Gospels stored in flash.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>A Python UI framework that AI models learn from the README alone</title>
        <published>2026-07-18T00:00:00+00:00</published>
        <updated>2026-07-18T00:00:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/tools/python-ui/about/"/>
        <id>https://www.joelshetler.com/tools/python-ui/about/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/tools/python-ui/about/">&lt;p&gt;&lt;code&gt;ui&lt;/code&gt; is a tiny Streamlit-style framework for personal tools. You write a page top to bottom in Python, every &lt;code&gt;ui.*&lt;/code&gt; call renders HTML in place, and every interaction re-runs the whole page while htmx swaps only what changed. State is a file, cache is a file, and every route is a file. It’s standard library only, with no build step and no &lt;code&gt;node_modules&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;import&lt;/span&gt;&lt;span&gt; ui&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;# Tip splitter&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;bill&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;   =&lt;/span&gt;&lt;span&gt; ui&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;number&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;bill&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; value&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;40&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;people&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;/span&gt;&lt;span&gt; ui&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;slider&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;people&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 12&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; value&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;2&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;ui&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;stat&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;{&lt;/span&gt;&lt;span&gt;bill&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; /&lt;/span&gt;&lt;span&gt; people&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;:.2f&lt;/span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;each&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That’s a whole app. There are no callbacks to wire and no state to declare. Drag the slider and the number updates.&lt;/p&gt;
&lt;h2 id=&quot;letting-a-small-model-find-the-gaps&quot;&gt;Letting a small model find the gaps&lt;/h2&gt;
&lt;p&gt;The README is written for AI models as much as for people, so it has to be good enough for a model to write correct code from it with nothing else. I tested that directly:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Give Claude Haiku the README as its only system prompt, with zero tools and an empty working folder, so it can’t read the framework’s source even by accident.&lt;/li&gt;
&lt;li&gt;Ask it to build an app from a short brief.&lt;/li&gt;
&lt;li&gt;Grade the app in a real browser with flow tests written from the brief’s requirements, not from what the code happens to do. A smoke test passes while a Delete button silently does nothing.&lt;/li&gt;
&lt;li&gt;Ask “why” five times about each failure, then make one minimal fix to the README or the engine.&lt;/li&gt;
&lt;li&gt;Repeat until three good apps in a row.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It ran twice, first with Gemma for thirteen rounds, then with Haiku, which converged on rounds eight through ten. The failures come in two layers. First come gaps in the docs, where the model guesses an unwritten rule and loses. Once the docs are good, engine bugs show up, where the model writes code that’s correct by the docs and the framework breaks it.&lt;/p&gt;
&lt;h2 id=&quot;tournaments&quot;&gt;Tournaments&lt;/h2&gt;
&lt;p&gt;To find out what the framework is good at, I ran elimination tournaments. For a theme like computer vision, geography maps, small LLM apps or one-player games, eight agents each build an app, a three-judge panel scores them, and the field narrows from eight to four to two to one. Survivors rebuild each round with the judges’ critique in hand. Besides quality, the judges scored how well each entry used the framework’s built-ins, which shows which primitives carry their weight.&lt;/p&gt;
&lt;p&gt;This version exists to find out whether the syntax feels right. A Rust engine comes later, with the same page code.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>How to write workflow diagrams in markdown using mermaid.js and hugo shortcodes</title>
        <published>2020-05-25T17:10:23-05:00</published>
        <updated>2020-05-25T17:10:23-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/computer-reference/mermaid/"/>
        <id>https://www.joelshetler.com/computer-reference/mermaid/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/computer-reference/mermaid/">&lt;p&gt;Mermaid.js is a code based diagram tool that is very easy to setup and use and can be embedded in a website or blog.
I had it up and running in just a few minutes.&lt;/p&gt;
&lt;h2 id=&quot;how-to-setup-mermaid-js-using-a-hugo-shortcode&quot;&gt;How to setup mermaid.js using a hugo shortcode&lt;/h2&gt;
&lt;h3 id=&quot;step-1-create-a-shortcode-for-the-mermaid-js-html-wrapper&quot;&gt;Step 1: create a shortcode for the mermaid.js html wrapper&lt;/h3&gt;
&lt;p&gt;A hugo snippet makes it quick and easy to add mermaid.js diagrams directly to markdown files, without typing html.
Create a file in layouts/shortcodes named mermaid.html, then add this to it:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;html&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; class&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;mermaid&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{ .Inner }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;step-2-configure-layout-to-load-mermaid-js-script-where-applicable&quot;&gt;Step 2: configure layout to load mermaid.js script where applicable&lt;/h3&gt;
&lt;p&gt;Add this to the head.html partial, or whichever template or layout is generating your document head if you have it configured differently:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;html&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{ if .Params.useMermaid }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;    &amp;lt;!--&lt;/span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; Load mermaid.js when &amp;quot;useMermaid = true&amp;quot; set in content front matter &lt;/span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; src&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;https://unpkg.com/mermaid@8.4.4/dist/mermaid.min.js&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;script&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{ end }}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will check if the useMermaid parameter in the markdown file front matter is set to true before loading the mermaid.js script. You can set the default of useMermaid to true or false, depending on your use case.&lt;/p&gt;
&lt;p&gt;I went with false, so it will only load when explicitly requested.&lt;/p&gt;
&lt;h3 id=&quot;step-3-add-a-usemermaid-parameter-to-the-appropriate-archetype&quot;&gt;Step 3: add a useMermaid parameter to the appropriate archetype&lt;/h3&gt;
&lt;p&gt;Archetypes are what automatically add front matter to content when you type ‘hugo new post/my-new-post.md’. Adding the useMermaid parameter to the archetype adds visibility. Setting it to false by default prevents bloat.&lt;/p&gt;
&lt;p&gt;Add this to the appropriate archetype (in my case themes/my-theme-name/archetypes/default.md):&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;html&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; Set as true for content with mermaid.js diagrams &lt;/span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;useMermaid: false&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;step-4-make-sure-everything-is-configured-correctly&quot;&gt;Step 4: make sure everything is configured correctly&lt;/h3&gt;
&lt;p&gt;Create a new file using hugo on the command line, for me it looks something like this:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;C:\repos&amp;gt;hugo new notes/mermaidtest.md&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open the file and change the front matter parameter useMermaid to true:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;itle&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;How to use mermaid.js for diagrams in hugo&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;d&lt;/span&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;ate&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 2020-05-25T17:10:23-05:00&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;u&lt;/span&gt;&lt;span style=&quot;color: light-dark(#22863A, #85E89D);&quot;&gt;seMermaid&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(Front matter simplified for clarity, actual front matter contains close to a dozen parameters.)&lt;/p&gt;
&lt;p&gt;Then insert the mermaid.html shortcode somewhere in the main content:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;html&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; Remove the /* and */ from each tag &lt;/span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{/*&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#B31D28, #FDAEB7);font-style: italic;&quot;&gt;mermaid&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;*/}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    graph TD;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  A--&amp;gt;B;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  A--&amp;gt;C;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  B--&amp;gt;D;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  C--&amp;gt;D;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{/*/&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#B31D28, #FDAEB7);font-style: italic;&quot;&gt;mermaid&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note: remove the /* and */ from each tag. Those are there to get the markdown renderer to display the shortcode tags on this webpage.&lt;/p&gt;
&lt;p&gt;Now start the hugo server:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;C:\repos&amp;gt;hugo server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open up the test page in a browser and see if this is there:&lt;/p&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
graph TD;
  A--&gt;B;
  A--&gt;C;
  B--&gt;D;
  C--&gt;D;
&lt;/pre&gt;
&lt;p&gt;If you see that it worked.&lt;/p&gt;
&lt;p&gt;Otherwise, good luck!&lt;/p&gt;
&lt;h2 id=&quot;how-to-use-mermaid-js-with-hugo-multiple-examples&quot;&gt;How to use mermaid.js with hugo, multiple examples&lt;/h2&gt;
&lt;h3 id=&quot;create-a-flowchart-diagram-with-different-lines-and-nodes&quot;&gt;Create a flowchart diagram with different lines and nodes&lt;/h3&gt;
&lt;p&gt;Type this inside a mermaid shortcode:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;mermaid&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;graph&lt;/span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; TD&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;  A&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Start here&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; --&amp;gt;&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;add &lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;text&lt;/span&gt;&lt;span&gt;? | &lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Rounded&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;  A &lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;-.-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; C&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Choose?&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;  A &lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;==&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; D&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;This one&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;  A &lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;---&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; E&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Circle&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;  C &lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;-.-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; F&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;The end&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;  C &lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; G&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Keep going&lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;  F &lt;/span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; G&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Get this:&lt;/p&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
graph TD;
  A(Start here) --&gt; | add text? | B(Rounded)
  A -.-&gt; C{Choose?}
  A ==&gt; D[This one]
  A --- E((Circle))
  C -.-&gt; F(The end)
  C --&gt; G[Keep going]
  F --&gt; G
&lt;/pre&gt;
&lt;p&gt;Looking for more? Here’s a link to the &lt;a rel=&quot;external&quot; href=&quot;https://mermaid-js.github.io/mermaid/#/flowchart&quot;&gt;flowchart page of the mermaid.js docs&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;how-to-display-a-basic-gantt-chart-using-mermaid-js-in-a-hugo-blog&quot;&gt;How to display a basic GANTT chart using mermaid.js in a hugo blog&lt;/h3&gt;
&lt;p&gt;Type this inside the mermaid shortcode tags:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;mermaid&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;gantt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;dateFormat&lt;/span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; YYYY-MM-DD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; Mermaid GANTT chart diagram&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;excludes weekdays 2020-05-25&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;section&lt;/span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; A section&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Completed task :done, des1, 2020-05-20, 2020-05-30&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Active task: active, des2, 2020-05-29, 7d&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Future task:         des3, after des2, 5d&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Future task2:        des4, after des3, 3d&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Get this:&lt;/p&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
gantt
dateFormat YYYY-MM-DD
title Mermaid GANTT chart diagram
excludes weekdays 2020-05-25

section A section
Completed task :done, des1, 2020-05-20, 2020-05-30
Active task: active, des2, 2020-05-29, 7d
Future task:         des3, after des2, 5d
Future task2:        des4, after des3, 3d
&lt;/pre&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Bad expectations, for starters</title>
        <published>2020-05-04T12:18:00+00:00</published>
        <updated>2020-05-04T12:18:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/bad-expectations-for-starters/"/>
        <id>https://www.joelshetler.com/essays/bad-expectations-for-starters/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/bad-expectations-for-starters/">&lt;p&gt;My goal this week is to simultaneously lower expectations of outcomes and raise standards of inputs.&lt;/p&gt;
&lt;p&gt;Think of inputs and outputs as a 2x2 grid, like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/15886003483987730811484107499374.jpg&quot; alt=&quot;Blank 2 by 2 grid of inputs and outputs&quot; title=&quot;Blank 2 by 2 grid of inputs and outputs&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Inputs can be high or low, and outputs can be high or low.&lt;/p&gt;
&lt;p&gt;Inputs could be time and effort working out, outputs could be an improved mood and a reduced waistline.&lt;/p&gt;
&lt;p&gt;Or inputs could be tasks completed and outputs could be fewer tasks waiting.&lt;/p&gt;
&lt;p&gt;Or inputs could be social or fictitious media consumption and outputs could be apathy, loneliness, and anxiety.&lt;/p&gt;
&lt;p&gt;Or inputs could be blog posts published and outputs could be people who wish I published more blog posts.&lt;/p&gt;
&lt;p&gt;Hopefully you get the idea. No matter the subject, it’s all just diet (inputs) and exercise (outputs).&lt;/p&gt;
&lt;p&gt;Now, a smart person would look for activities that fall in the bottom right square. Lowest effort, highest benefit. Maximum leverage, right?&lt;/p&gt;
&lt;p&gt;It rarely works though.&lt;/p&gt;
&lt;p&gt;Something a smart person would quickly realize and seek to understand.&lt;/p&gt;
&lt;p&gt;For the rest of us, we have to think our way through the problem.&lt;/p&gt;
&lt;p&gt;Here’s what I’ve got so far.&lt;/p&gt;
&lt;p&gt;When seeking high leverage activities, my inputs become variables to minimize. (Hopefully I’m the only one.)&lt;/p&gt;
&lt;p&gt;And then outputs become results to maximize. (Dream big!)&lt;/p&gt;
&lt;p&gt;Dopamine hits, motivation spikes, FOMO, peer pressure, job continuity, maybe a combo.&lt;/p&gt;
&lt;p&gt;Anyway, the result is that now I’m thinking about getting the most from doing the least, which is obviously wrong and super problematic.&lt;/p&gt;
&lt;p&gt;(Advertisers and salespeople are partly to blame. The entire industry is about maximizing perceptions of benefit and minimizing awareness of costs. Big topic, different subject. Maybe I should get out of marketing.)&lt;/p&gt;
&lt;p&gt;Is doing the most work for the least fruit better! No. Pretty sure that’s a no. As with politics, the best path is probably somewhere between the extremes, and both sides are probably big distortions of small truths.&lt;/p&gt;
&lt;p&gt;Alright, so it’s bad have low standards and high expectations (aka “acting entitled”), but it’s also bad to have high standards with low expectations (poverty mentality, not to be confused with actual poverty).&lt;/p&gt;
&lt;p&gt;In the words of Miles McPherson, there’s a third option.&lt;/p&gt;
&lt;p&gt;Learn.&lt;/p&gt;
&lt;p&gt;Instead of thinking do less get more or do more get less or do more get more, just look for ways to improve.&lt;/p&gt;
&lt;p&gt;Do better because you want to learn and grow. Expect better as a sign of learning and growing, and nothing more. Sometimes learning looks like falling. Sometimes learning looks like failure. Not cool if you’re focusing on performance.&lt;/p&gt;
&lt;p&gt;Also, unlike for performance, reflection is mandatory for improvement. Teaching reflection may be the best aspect of learning.&lt;/p&gt;
&lt;p&gt;Reflection is the only way to look for patterns and see the improvement (and dips). It also highlights moments for gratitude, repentance, and forgiveness. Which is partly why reflection goes so well with prayer.&lt;/p&gt;
&lt;p&gt;It’s like a trail of lanterns lighting a path through the complexity of interconnected commerce and distributed electronic cities.&lt;/p&gt;
&lt;p&gt;Doing, reflecting, learning, seeing growth.&lt;/p&gt;
&lt;p&gt;Like little dots on an orange sticky note:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/15886023163578155170219513094919.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So that’s my goal for this week.&lt;/p&gt;
&lt;p&gt;Just learn.&lt;/p&gt;
&lt;p&gt;What’s yours?&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Things that look easy to fix are usually just symptoms</title>
        <published>2020-02-16T05:26:00+00:00</published>
        <updated>2020-02-16T05:26:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/things-that-look-easy-to-fix-are-usually-just-symptoms/"/>
        <id>https://www.joelshetler.com/essays/things-that-look-easy-to-fix-are-usually-just-symptoms/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/things-that-look-easy-to-fix-are-usually-just-symptoms/">&lt;h2 id=&quot;it-often-begins-with-a-lie&quot;&gt;It often begins with a lie&lt;/h2&gt;
&lt;p&gt;An avalanche of ignorance in my youth* was started by a speck of a lie. A lie disguised as truth and promoted to the rank of belief that left in it’s wake emotional destruction and chaos.&lt;/p&gt;
&lt;p&gt;Bad beliefs are dangerous. They’re sneaky double agents engineered to hide. Dressed up like truths, they do their damage when nobody’s watching, serving their true masters with an enviably unwavering persistence.&lt;/p&gt;
&lt;p&gt;Our beliefs are the core programs that run our lives. Too often, they go unchallenged. Ignored even.&lt;/p&gt;
&lt;p&gt;Habits aren’t as scary. We like those. We can even talk about behaviors when the mood is right. Routines are fun too. We love faux optimizing routines.&lt;/p&gt;
&lt;p&gt;Why don’t beliefs get the same affection? They do all the heavy lifting in our lives. Or maybe that’s why. Maybe we understand that beliefs are both of utmost importance and a choice.&lt;/p&gt;
&lt;p&gt;So, what was this corrosive belief of my youth?&lt;/p&gt;
&lt;p&gt;It’s almost embarrassing to write, that’s how obviously wrong I was. And yet I believed it for decades.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I believed that people would change, if only they knew what I knew.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In effect, I thought I could fix people and their problems. When challenged, the lie crumbles. Simply reverse it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I would change, if only I knew what they knew.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When people told me what they knew, I didn’t change. Not really.&lt;/p&gt;
&lt;p&gt;I didn’t change because it felt like they didn’t “get” me. They didn’t understand what was really going on. They only knew what they could see, not the real me. They only thought they knew me. (In retrospect, that part was actually true.)&lt;/p&gt;
&lt;p&gt;If you can relate to that, you already know the outcome of people trying to change people by sharing what they think they know.&lt;/p&gt;
&lt;h2 id=&quot;stalemate&quot;&gt;Stalemate&lt;/h2&gt;
&lt;p&gt;I wouldn’t change because their advice didn’t apply. They were just looking at the problems they thought they could fix.&lt;/p&gt;
&lt;p&gt;Isn’t it ironic that I was doing the same thing?&lt;/p&gt;
&lt;p&gt;I was wrong.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I didn’t know what was really going on.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What I knew was as worthless as the cheap diagnosis I relied on to get me to my conclusions on time.&lt;/p&gt;
&lt;p&gt;I thought I knew what the problems were. (I didn’t. Probably because diagnosing problems is hard work, designing solutions is a lot of fun, and sounding smart to myself was the easiest thing to do.)&lt;/p&gt;
&lt;p&gt;The deeper issue is important. Most people don’t &lt;em&gt;want&lt;/em&gt; our help with the thing that looks easy to fix. They’re right.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The&lt;/strong&gt; &lt;strong&gt;things that look like fixable problems are usually just symptoms.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are deeper issues that we don’t understand. Issues based on identity-grade beliefs. The type of beliefs we don’t like to talk about or admit that we have. Issues requiring work to relate. So we just come up with a quick fix to the easy to spot symptom that we diagnosed instead. Then congratulate ourselves for being above average. No results necessary.&lt;/p&gt;
&lt;p&gt;Let’s look at obesity and opioids.&lt;/p&gt;
&lt;p&gt;Obesity is an easy problem to “fix”. (1) Diagnosis: too many fat cells. (2) Solution: drink plenty of water, eat fewer calories than burned, and get some rest.&lt;/p&gt;
&lt;p&gt;Sounds easy enough, right? The problem is that “too many fat cells” is a lousy diagnosis. That’s a symptom. So the proposed solution is worthless. (The actual problems are complex and look bad on social media.)&lt;/p&gt;
&lt;p&gt;What about opioids? That’s even easier, right? (1) Diagnosis: taking pills. (2) Solution: stop taking pills. Doesn’t that diagnosis sound pretty foolish? There’s obviously something deeper going on. But &lt;strong&gt;how many times are we just diagnosing the symptom?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Maybe some more examples of bad diagnoses will help:&lt;/p&gt;
&lt;p&gt;(1) Diagnosis: sales are down. (2) Solution: keep doing the same thing, but more of it faster.&lt;/p&gt;
&lt;p&gt;(1) Diagnosis: people who voted for the other party are fools. (2) Solution: tell them they’re fools.&lt;/p&gt;
&lt;p&gt;I hope you get the idea. &lt;strong&gt;What we’re dealing with is a failure to effectively diagnose.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I know I’m probably wrong.&lt;/p&gt;
&lt;p&gt;I often am, and I’m ok with that.&lt;/p&gt;
&lt;p&gt;However, I believe accurately diagnosed problems skew towards being solvable. And &lt;strong&gt;I believe we can better diagnose problems by combining perspectives, especially the perspectives of the people we think we’re helping.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So I’m going to work on gathering perspectives before making diagnoses.&lt;/p&gt;
&lt;p&gt;Which means I’m also going to be diagnosing fewer problems.&lt;/p&gt;
&lt;p&gt;That seems important.&lt;/p&gt;
&lt;p&gt;*By youth I mean past me. I can’t speak for future me.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Indirect reflections</title>
        <published>2020-01-12T01:45:00+00:00</published>
        <updated>2020-01-12T01:45:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/indirect-reflections/"/>
        <id>https://www.joelshetler.com/essays/indirect-reflections/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/indirect-reflections/">&lt;p&gt;What people think or say about you is not a direct reflection of who you are.&lt;/p&gt;
&lt;p&gt;What they’re telling you is not a direct reflection of what you’ve done.&lt;/p&gt;
&lt;p&gt;The results you’re getting, good or bad, are not a direct reflection of your actions.&lt;/p&gt;
&lt;p&gt;What you see might be an indirect reflection, maybe a wild distortion.&lt;/p&gt;
&lt;p&gt;Don’t ignore feedback. Instead, recognize it’s incompleteness. Seek understanding. Synthesize.&lt;/p&gt;
&lt;p&gt;Remember when _____ said you were too _____ or not _____ enough? They couldn’t see you clearly. They didn’t truly know you. What they said did not reflect you directly because they could not view you impartially.&lt;/p&gt;
&lt;p&gt;It was an incomplete view of you altered by who they were. For better or not.&lt;/p&gt;
&lt;p&gt;Opinions often say as much about the speaker as the subject matter.&lt;/p&gt;
&lt;p&gt;Even the mirror can only reflect what it sees. And it’s not the mirror’s fault. It can’t see inside of you.&lt;/p&gt;
&lt;p&gt;There’s no such thing as a direct reflection of a human being.&lt;/p&gt;
&lt;p&gt;So what?&lt;/p&gt;
&lt;p&gt;What if we thought of our reflections like abstract art?&lt;/p&gt;
&lt;p&gt;Trying to understand the story behind the artwork. Seeing the core, ignoring the artifacts. Looking for patterns and similarities in an artist’s collection to better understand both.&lt;/p&gt;
&lt;p&gt;How would that change us?&lt;/p&gt;
&lt;p&gt;We would want more feedback from better sources before we made big decisions.&lt;/p&gt;
&lt;p&gt;We would react less to criticism and respond more to counsel.&lt;/p&gt;
&lt;p&gt;We would seek insight. Not agreement. Not approval.&lt;/p&gt;
&lt;p&gt;Reflect on that for a moment.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Looking for a breakthrough?</title>
        <published>2019-11-25T11:50:00+00:00</published>
        <updated>2019-11-25T11:50:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/when-you-do-what-you-ve-been-avoiding/"/>
        <id>https://www.joelshetler.com/essays/when-you-do-what-you-ve-been-avoiding/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/when-you-do-what-you-ve-been-avoiding/">&lt;p&gt;Check behind that thing you’ve been avoiding. Breakthroughs like to hide there. And can you blame them? It’s the last place we think to look.&lt;/p&gt;
&lt;p&gt;It’s likely a simple thing to do. The thing you’re avoiding, I mean. The tricky bit is deciding to do it.&lt;/p&gt;
&lt;p&gt;I don’t mean writing it on a to-do list or telling people your plans.&lt;/p&gt;
&lt;p&gt;I mean &lt;em&gt;actually deciding&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The resolute, creativity summoning, grit filled kind of decision.&lt;/p&gt;
&lt;p&gt;Fill a blank piece of paper with all the stuff your subconscious averts it’s attention from.&lt;/p&gt;
&lt;p&gt;Tedious, terrifying, mundane, obscure, off the beaten path kind of stuff. If it pops up, put it down.&lt;/p&gt;
&lt;p&gt;Do that now.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Negative addition: why less really is more</title>
        <published>2019-11-23T13:57:00+00:00</published>
        <updated>2019-11-23T13:57:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/negative-addition-why-less-really-is-more/"/>
        <id>https://www.joelshetler.com/essays/negative-addition-why-less-really-is-more/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/negative-addition-why-less-really-is-more/">&lt;p&gt;Adding low value dilutes average value.&lt;/p&gt;
&lt;p&gt;If your life is the sum of your experiences…&lt;/p&gt;
&lt;p&gt;If the law of averages applies to personal values…&lt;/p&gt;
&lt;p&gt;If some &lt;del&gt;choices&lt;/del&gt; actions are higher or lower value than others…&lt;/p&gt;
&lt;p&gt;If you can’t save time for later…&lt;/p&gt;
&lt;p&gt;Then adding a low value activity to your life displaces a potentially higher value activity and is a net negative that creates worse outcomes both for you and everyone and everything else you come in contact with that could have benefitted in some way from you living a higher average value life.&lt;/p&gt;
&lt;p&gt;But replacing any activity with a higher value activity?&lt;/p&gt;
&lt;p&gt;That changes everything.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>7 obvious things that make change hard</title>
        <published>2019-11-17T01:58:00+00:00</published>
        <updated>2019-11-17T01:58:00+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/why-change-happens-slower-than-you-expected/"/>
        <id>https://www.joelshetler.com/essays/why-change-happens-slower-than-you-expected/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/why-change-happens-slower-than-you-expected/">&lt;h2 id=&quot;obvious-thing-1&quot;&gt;&lt;strong&gt;Obvious thing #1&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Things happen the way they do and are the way they are for a reason.&lt;/p&gt;
&lt;p&gt;Few people look for that reason.&lt;/p&gt;
&lt;p&gt;Which makes change hard.&lt;/p&gt;
&lt;h2 id=&quot;obvious-thing-2&quot;&gt;Obvious thing #2&lt;/h2&gt;
&lt;p&gt;The people and systems most resistant to change usually have the most power.&lt;/p&gt;
&lt;p&gt;That’s why they don’t want change.&lt;/p&gt;
&lt;p&gt;And why they have the power to make change hard.&lt;/p&gt;
&lt;h2 id=&quot;obvious-thing-3&quot;&gt;Obvious thing #3&lt;/h2&gt;
&lt;p&gt;Change is a 4 step process. Most people stop at the second step.&lt;/p&gt;
&lt;p&gt;Not following the steps makes change hard.&lt;/p&gt;
&lt;p&gt;Here are the steps:&lt;/p&gt;
&lt;p&gt;Step 1) find something to change.&lt;/p&gt;
&lt;p&gt;Step 2) figure out what to change it to.&lt;/p&gt;
&lt;p&gt;Step 3) come up with a plan that will cause the change to happen.&lt;/p&gt;
&lt;p&gt;Step 4) actually do it.&lt;/p&gt;
&lt;h2 id=&quot;obvious-thing-4&quot;&gt;Obvious thing #4&lt;/h2&gt;
&lt;p&gt;People overestimate their own ability to change and create change.&lt;/p&gt;
&lt;p&gt;When I said that most people stop at the second step, did you say to yourself, “not me”?&lt;/p&gt;
&lt;p&gt;Did you ask yourself for proof or simply accept the (over)estimation of your change making ability?&lt;/p&gt;
&lt;p&gt;Ignoring reality makes change hard.&lt;/p&gt;
&lt;h2 id=&quot;obvious-thing-5&quot;&gt;Obvious thing #5&lt;/h2&gt;
&lt;p&gt;Warehouses, websites, and widgets require resources. Those resources must come from somewhere.&lt;/p&gt;
&lt;p&gt;If you haven’t found the resources to cause the change you want to see, you haven’t finished step 3.&lt;/p&gt;
&lt;p&gt;Not having the right resources makes change hard.&lt;/p&gt;
&lt;h2 id=&quot;obvious-thing-6&quot;&gt;Obvious thing #6&lt;/h2&gt;
&lt;p&gt;Opportunity costs.&lt;/p&gt;
&lt;h2 id=&quot;obvious-thing-7&quot;&gt;Obvious thing #7&lt;/h2&gt;
&lt;p&gt;We humans are the most valued creation. And it often goes to our heads. We believe the world revolves around us.&lt;/p&gt;
&lt;p&gt;But we also know that it doesn’t.&lt;/p&gt;
&lt;p&gt;So we imagine a different world.&lt;/p&gt;
&lt;p&gt;One that revolves around us.&lt;/p&gt;
&lt;p&gt;And we spend the majority of our time living in that world.&lt;/p&gt;
&lt;p&gt;The change you want may be obviously perfect in the world you’ve created in your head.&lt;/p&gt;
&lt;p&gt;That same change may be obviously flawed in the world I’ve created in my head.&lt;/p&gt;
&lt;p&gt;Until we test the change in the much harsher, much more pragmatic, and yet much more rewarding world known as reality, we haven’t done step 4. Or step 1.&lt;/p&gt;
&lt;p&gt;And that’s the catch.&lt;/p&gt;
&lt;h2 id=&quot;here-s-the-catch&quot;&gt;Here’s the catch&lt;/h2&gt;
&lt;p&gt;I said most people stop at the second step.&lt;/p&gt;
&lt;p&gt;Most people also start at the second step.&lt;/p&gt;
&lt;p&gt;The thing you found to change is probably an outcome, right?&lt;/p&gt;
&lt;p&gt;Not the underlying process, thought, behavior, or habit that produced the outcome?&lt;/p&gt;
&lt;p&gt;You want to be stronger, but you don’t want to change the process that keeps you weak.&lt;/p&gt;
&lt;p&gt;You want to be thinner, but you don’t want to change the process that makes you…less thinner.&lt;/p&gt;
&lt;p&gt;You want to be happier, but you don’t want to change the process that makes you depressed.&lt;/p&gt;
&lt;p&gt;You want to have more money, but you don’t want to change the processes of earning or spending money.&lt;/p&gt;
&lt;p&gt;You want to be a better husband, but you don’t want to change the process that makes you a lousy one.&lt;/p&gt;
&lt;p&gt;You want to be smarter but you don’t want to change your mind…&lt;/p&gt;
&lt;h2 id=&quot;the-thing-you-obviously-can-t-change&quot;&gt;The thing you obviously can’t change&lt;/h2&gt;
&lt;p&gt;But here’s the thing. We can’t change outcomes. Not past, present, or future.&lt;/p&gt;
&lt;p&gt;Focusing on outcomes makes change hard.&lt;/p&gt;
&lt;p&gt;Instead of trying to change the outcomes, focus on trying to change the processes that produced them.&lt;/p&gt;
&lt;p&gt;Next time you want to change something, starting at step 1 will make change easier.&lt;/p&gt;
&lt;p&gt;And when you do step 1, remember that you are finding the &lt;strong&gt;process currently creating the outcome you don’t want.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When you start there, I believe you’ll find that change can happen much faster than you previously thought possible.&lt;/p&gt;
&lt;p&gt;But only if you’re willing to live in reality.&lt;/p&gt;
&lt;h2 id=&quot;bonus-thing-8&quot;&gt;Bonus thing #8&lt;/h2&gt;
&lt;p&gt;If you’ve tried to change your own behavior in the past and failed, you’re human.&lt;/p&gt;
&lt;p&gt;And changing humans is extra hard.&lt;/p&gt;
&lt;p&gt;Why?&lt;/p&gt;
&lt;p&gt;Well, because our hearts and minds are the processes creating the outcomes.&lt;/p&gt;
&lt;p&gt;What you say. What you do. What you feel.&lt;/p&gt;
&lt;p&gt;Changing hearts and minds can be frustratingly difficult for people to do.&lt;/p&gt;
&lt;p&gt;But I have great news.&lt;/p&gt;
&lt;p&gt;What is impossibly difficult for humans is possible for God.&lt;/p&gt;
&lt;p&gt;God can change your heart. And your mind. And he wants to.&lt;/p&gt;
&lt;p&gt;But what if that change is hard for you to accept? Then what?&lt;/p&gt;
&lt;p&gt;It’s actually obvious.&lt;/p&gt;
&lt;p&gt;The person or thing most resistant to the change is the person or thing with the most power in your life right now.&lt;/p&gt;
&lt;p&gt;Is it you? Your idol? A romantic interest? Money? Coffee? Some other addiction?&lt;/p&gt;
&lt;p&gt;Find the power and get it back.&lt;/p&gt;
&lt;p&gt;Replace that person or thing with Jesus Christ, and everything  inside you begins to change.&lt;/p&gt;
&lt;p&gt;Literally.&lt;/p&gt;
&lt;p&gt;If you haven’t experienced what it feels like to have the core of who you are reset and every area of your life altered, your thoughts and emotions and physical responses and sleeping patterns and feelings towards others, if you haven’t experienced that I question whether you’ve surrendered your life to Christ?&lt;/p&gt;
&lt;p&gt;If you don’t like where you are in life…&lt;/p&gt;
&lt;p&gt;If you don’t like where things are headed…&lt;/p&gt;
&lt;p&gt;If you don’t like the sleepless nights, the tightness in your chest, or the uncontrollable and unwelcome thoughts racing in your head…&lt;/p&gt;
&lt;p&gt;Then take back the power in your life and surrender it to Christ.&lt;/p&gt;
&lt;p&gt;God is the only one you can trust with that power.&lt;/p&gt;
&lt;p&gt;All you have to do is ask.&lt;/p&gt;
&lt;p&gt;The answer is love God more.&lt;/p&gt;
&lt;p&gt;The question is, why don’t you?&lt;/p&gt;
&lt;p&gt;There’s freedom in facing and answering that question.&lt;/p&gt;
&lt;p&gt;Which belief is it that you cannot change?&lt;/p&gt;
&lt;p&gt;God can change that belief for you.&lt;/p&gt;
&lt;p&gt;All you have to do is ask.&lt;/p&gt;
&lt;p&gt;It’s the easiest change I’ve ever made. And the hardest, because surrendering means letting go of control.&lt;/p&gt;
&lt;p&gt;But you got you where you are by doing what you did. Are you happy with where you are? Is your life fulfilling? When you lay down to sleep at night, are you satisfied? Do you feel peaceful inside?&lt;/p&gt;
&lt;p&gt;No?&lt;/p&gt;
&lt;p&gt;Surrender.&lt;/p&gt;
&lt;p&gt;I did.&lt;/p&gt;
&lt;p&gt;And it’s had a bigger impact on my life and the lives of the people around me than every other change I’ve made or failed to make combined.&lt;/p&gt;
&lt;p&gt;No relationship, no habit, no job, no income level, no friend count, no knowledge, no skill, no meal, no experience, nothing else compares to the change of taking back the power in my life and willingly and joyfully giving it to Christ.&lt;/p&gt;
&lt;p&gt;And every. Single. Thing. In. That. List. Got better as a result of that one single decision.&lt;/p&gt;
&lt;p&gt;All you have to do is ask.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Reduce friction</title>
        <published>2019-08-07T07:14:10-05:00</published>
        <updated>2019-08-07T07:14:10-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/reduce-friction/"/>
        <id>https://www.joelshetler.com/essays/reduce-friction/</id>
        
        <summary type="html">&lt;p&gt;Doing less more often is nice.&lt;br /&gt;
It exposes friction.&lt;br /&gt;
Reducing friction is good.&lt;br /&gt;
You can do more with less friction.&lt;br /&gt;
A lot more.&lt;/p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Strong baselines</title>
        <published>2019-08-06T07:59:30-05:00</published>
        <updated>2019-08-06T07:59:30-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/strong-baselines/"/>
        <id>https://www.joelshetler.com/essays/strong-baselines/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/strong-baselines/">&lt;p&gt;&lt;em&gt;Update: this works really well for me, my health and relationships improved&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update: this has been improved further using sessions&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;These are some things I’m working on right now. Creative and work habits, spiritual intimacy, relationships, regular exercise, and a healthy diet.
You know, the basics. So I’m experimenting with baselines. Minimum default answers and actions.&lt;/p&gt;
&lt;p&gt;Instead of setting goals like these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write 750 words each day,&lt;/li&gt;
&lt;li&gt;do devotions,&lt;/li&gt;
&lt;li&gt;?,&lt;/li&gt;
&lt;li&gt;do workout x,&lt;/li&gt;
&lt;li&gt;and don’t eat these things,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’m trying this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy or write a sentence today _or better,&lt;/li&gt;
&lt;li&gt;read a verse and timestamp a journal entry today &lt;em&gt;or better&lt;/em&gt;,&lt;/li&gt;
&lt;li&gt;encourage someone else today &lt;em&gt;or better&lt;/em&gt;,&lt;/li&gt;
&lt;li&gt;walk for 30 minutes today &lt;em&gt;or better&lt;/em&gt;,&lt;/li&gt;
&lt;li&gt;eat this basic diet today &lt;em&gt;or better&lt;/em&gt;,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and I’m already fascinated by the difference.&lt;/p&gt;
&lt;h3 id=&quot;the-flawed-nuance-of-good-goals&quot;&gt;The flawed nuance of “good” goals&lt;/h3&gt;
&lt;p&gt;The first set of goals are optimized for the best days. They assume too many of the variables are fixed.
But on the best days…I already do those things.
What about the worst days? What happens if I get writers block and run out of time?
Or if I’m too sick to complete my regular workout?
And then I forgot to prep breakfast, so I’ll have to just skip or grab something on the way…&lt;/p&gt;
&lt;p&gt;My philosophy is that &lt;strong&gt;there are no special days&lt;/strong&gt;, so that isn’t going to work.&lt;/p&gt;
&lt;p&gt;What if we optimized for the worst days instead of the best days?
The days when something else comes up or we don’t feel like it.
How would that change perspective?
What would that do?&lt;/p&gt;
&lt;p&gt;The second set of baseline actions are just that, minimums.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the words aren’t flowing, copy someone else.&lt;/li&gt;
&lt;li&gt;If the “feeling” to connect with God isn’t there, start with a defined path.&lt;/li&gt;
&lt;li&gt;If nothing much is happening, reach out and encourage three people.&lt;/li&gt;
&lt;li&gt;If a workout isn’t in the cards, walk for 30 minutes.&lt;/li&gt;
&lt;li&gt;And finally, if there’s not a meal planned, eat this.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No more need for excuses.&lt;br /&gt;
Start with the minimum and see if you can do better.
On the good days you’ll grow.
On the bad days you’ll maintain.&lt;/p&gt;
&lt;p&gt;Would that work better than your current strategy?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When the baseline becomes easy, raise your standard.&lt;/strong&gt;&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>The familiarity effect</title>
        <published>2019-08-05T12:47:45+00:00</published>
        <updated>2019-08-05T12:47:45+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/the-familiarity-effect/"/>
        <id>https://www.joelshetler.com/essays/the-familiarity-effect/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/the-familiarity-effect/">&lt;p&gt;“Daddy, why is it hard to start building something [Legos] when you haven’t been doing it much? I want to build something but I don’t feel like it.”&lt;/p&gt;
&lt;p&gt;My daughter, 7 at the time of writing this, asked me that question. It resonated. I had been struggling with the same question.&lt;/p&gt;
&lt;p&gt;And I think the answer lies in a term I’m now calling the “familiarity effect”.&lt;/p&gt;
&lt;p&gt;But let’s back up a bit before we get into the weeds. Or back up into the weeds. Whichever.&lt;/p&gt;
&lt;p&gt;Our family watched a documentary recently about a film crew trying to get footage of snow leopards for a documentary. (Very meta concept, right?)&lt;/p&gt;
&lt;p&gt;The lead guy on the team explained at one point that it was good for the snow leopards to be aware of their presence and for nothing bad to happen. Eventually, the snow leopards would stop seeing the film crew as a threat, allowing them to get better footage.&lt;/p&gt;
&lt;p&gt;Fast forward to reading, “Thinking, Fast and Slow” by Daniel Kahneman and learning a concept called the “mere exposure effect” which basically explains the snow leopard behavior by saying that the way their brains perceive danger is by inversely correlating it with familiarity.&lt;/p&gt;
&lt;p&gt;My words. His were better.&lt;/p&gt;
&lt;p&gt;The point is, the film crew didn’t have to do anything nice to the snow leopards. They didn’t order in fresh meat delivery. No feathers on a stick to chase around. No drones flying overhead shining laser pointers on the snow.&lt;/p&gt;
&lt;p&gt;No, merely being exposed to the video crew with nothing bad happening was enough for them to begin feeling safe.&lt;/p&gt;
&lt;h2 id=&quot;which-brings-us-to-the-familiarity-effect&quot;&gt;Which brings us to the familiarity effect&lt;/h2&gt;
&lt;p&gt;The more frequently you do something, the more familiar it becomes. Our brains equate familiar with good and right and true and even easy. So the more you do something, the easier your brain perceives it to be, and the more likely you are to “feel” like doing it.&lt;/p&gt;
&lt;p&gt;Although it’s not so much that you feel like doing it as it is you don’t feel like not doing it.
We fear the unknown, which just so happens to be the opposite of familiar.&lt;/p&gt;
&lt;p&gt;So one possible answer to our question, “why is it hard to start doing something when I haven’t been doing it much?” is this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Familiar &lt;del&gt;is&lt;/del&gt; feels safe. Unfamiliar &lt;del&gt;is&lt;/del&gt; feels unsafe. That’s why change is hard.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The more accurate takeaway that you’re unlikely to remember is this: Rephrase your wants to get beyond the feelings so you can do the unfamiliar long enough for it to feel safe.&lt;/p&gt;
&lt;p&gt;But that’s just a small part of what I think is going on with the original question.&lt;/p&gt;
&lt;h2 id=&quot;what-do-i-want-to-do-what-do-i-feel-like-doing&quot;&gt;What do I want to do != what do I feel like doing&lt;/h2&gt;
&lt;p&gt;If the answer to these questions is usually the same, you’re either getting terrible results and living an awful life or you’re absolutely crushing it (whatever your “it” is).&lt;/p&gt;
&lt;p&gt;Confusing? Let’s get specific.&lt;/p&gt;
&lt;p&gt;I want to get out of bed at 5:15 AM every morning.&lt;br /&gt;
But at 5:15 AM…I don’t feel like getting out of bed.&lt;/p&gt;
&lt;p&gt;Why did I think that I would, and why didn’t I? What exactly is going on here?&lt;/p&gt;
&lt;h2 id=&quot;lousy-questions-lousy-outcomes&quot;&gt;Lousy questions, lousy outcomes&lt;/h2&gt;
&lt;p&gt;I love bed. It’s warm and cozy. I can think there. Bed is my favorite.&lt;/p&gt;
&lt;p&gt;And so I almost never want to “get out of bed” at 5:15AM.&lt;/p&gt;
&lt;p&gt;When the alarm goes off and I ask the question “do I want to get out of bed right now”, I politely respond and inform myself that there has been an update to our plan and we no longer want to get out of bed at 5:15AM.&lt;/p&gt;
&lt;p&gt;We now want to get out of bed at 5:30AM. Sorry for the misunderstanding. I don’t know why we thought that we would want to get out of bed any earlier.&lt;/p&gt;
&lt;p&gt;You can perhaps guess what happens at 5:30AM…&lt;/p&gt;
&lt;h2 id=&quot;ask-better-questions&quot;&gt;Ask better questions&lt;/h2&gt;
&lt;p&gt;Let’s refine the conversation. What I really want is to “be out of bed and fully awake at 5:15AM so I can start my day strong”. So when the alarm goes off and I politely inform myself that I don’t want to get up yet, I remind myself that we never planned to want to get up at 5:15AM. What we wanted was to be up and fully awake so that we could start our day strong, and no, we won’t know what that feels like until we’ve actually done it.&lt;/p&gt;
&lt;p&gt;And so I get up and, sure enough, I’m glad I did and it is what I wanted all along.&lt;/p&gt;
&lt;p&gt;No more conflict.&lt;/p&gt;
&lt;p&gt;Ok, so that answers the morning routine issue, but what about everything else? What about the less routine tasks?&lt;/p&gt;
&lt;p&gt;What about when I want to write 750 words each day but then I don’t want to write 750 words on any given day? Wait, never mind, that’s the same issue. Let me refine that. I want to improve my ability to think and communicate effectively, so I will write 750 words each day. Perfect. Now it doesn’t matter if I feel like it at the time.&lt;/p&gt;
&lt;p&gt;At least in theory.&lt;/p&gt;
&lt;h2 id=&quot;the-takeaway&quot;&gt;The takeaway&lt;/h2&gt;
&lt;p&gt;Ask better questions and get familiar with the good stuff.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Do Work</title>
        <published>2019-07-08T20:37:10-05:00</published>
        <updated>2019-07-08T20:37:10-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/do-work/"/>
        <id>https://www.joelshetler.com/essays/do-work/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/do-work/">&lt;p&gt;I see the work, I do the work, the work is done.&lt;/p&gt;
&lt;p&gt;Make good enough decisions fast enough more often.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Love God more</title>
        <published>2019-06-25T07:13:29-05:00</published>
        <updated>2019-06-25T07:13:29-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/love-god-more/"/>
        <id>https://www.joelshetler.com/essays/love-god-more/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/love-god-more/">&lt;p&gt;The answer is love God more.&lt;br /&gt;
The question is why don’t you.&lt;br /&gt;
The reason is based on a lie.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Balls of praise</title>
        <published>2019-06-25T06:35:10-05:00</published>
        <updated>2019-06-25T06:35:10-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/balls-of-praise/"/>
        <id>https://www.joelshetler.com/essays/balls-of-praise/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/balls-of-praise/">&lt;p&gt;&lt;img src=&quot;/mario-bros-screenshot.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There’s a boss at the end of every level, trying to &lt;del&gt;keep you from finishing&lt;/del&gt; destroy you.&lt;br /&gt;
It’s the desire to accept praise.&lt;br /&gt;
The praise is not meant for you.&lt;/p&gt;
&lt;p&gt;Shield yourself by deflecting the praise upward.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;The crucible for silver and the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;	furnace for gold,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  but man is tested by the praise he receives.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;				- Proverbs 27:21&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Problem Solving Worksheet</title>
        <published>2019-06-12T08:10:13-05:00</published>
        <updated>2019-06-12T08:10:13-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/tools/problem-solving-worksheet/"/>
        <id>https://www.joelshetler.com/tools/problem-solving-worksheet/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/tools/problem-solving-worksheet/">&lt;p&gt;Use this tool when you want to think more clearly about a problem or situation.&lt;/p&gt;
&lt;h3&gt;Brief description&lt;/h3&gt;
&lt;lined-paper&gt;&lt;textarea rows=&quot;5&quot; autofocus&gt;&lt;/textarea&gt;&lt;/lined-paper&gt;
&lt;h3&gt;Problem solving goal&lt;/h3&gt;
&lt;lined-paper&gt;&lt;textarea rows=&quot;5&quot;&gt;&lt;/textarea&gt;&lt;/lined-paper&gt;
&lt;h3&gt;Major obstacles&lt;/h3&gt;
&lt;lined-paper&gt;&lt;textarea rows=&quot;10&quot;&gt;&lt;/textarea&gt;&lt;/lined-paper&gt;
&lt;h3&gt;Alternate options&lt;/h3&gt;
&lt;lined-paper&gt;&lt;textarea rows=&quot;20&quot;&gt;&lt;/textarea&gt;&lt;/lined-paper&gt;
&lt;h3&gt;Chosen course of action&lt;/h3&gt;
&lt;lined-paper&gt;&lt;textarea rows=&quot;3&quot;&gt;&lt;/textarea&gt;&lt;/lined-paper&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Pad Kee Mao</title>
        <published>2019-06-08T14:54:31-05:00</published>
        <updated>2019-06-08T14:54:31-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/recipes/pad-kee-mao/"/>
        <id>https://www.joelshetler.com/recipes/pad-kee-mao/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/recipes/pad-kee-mao/">&lt;h2 id=&quot;ingredients&quot;&gt;Ingredients&lt;/h2&gt;
&lt;h3 id=&quot;sauce&quot;&gt;Sauce&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;4 tablespoons oyster sauce&lt;/li&gt;
&lt;li&gt;4 tablespoons fish sauce&lt;/li&gt;
&lt;li&gt;4 tablespoons dark soy sauce&lt;/li&gt;
&lt;li&gt;2 tablespoons fresh squeezed lime juice&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;noodles&quot;&gt;Noodles&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1 tablespoon canola oil&lt;/li&gt;
&lt;li&gt;1/2 pack rice noodles, wide, dry or fresh&lt;/li&gt;
&lt;li&gt;1 pound chicken breast, cut in strips&lt;/li&gt;
&lt;li&gt;1 onion, cut in strips&lt;/li&gt;
&lt;li&gt;2-3 cloves garlic, finely chopped&lt;/li&gt;
&lt;li&gt;1-3 Thai bird chiles, finely chopped&lt;/li&gt;
&lt;li&gt;1 red or orange bell pepper, cut in strips&lt;/li&gt;
&lt;li&gt;1 cup fresh Thai basil&lt;/li&gt;
&lt;li&gt;2-4 lime wedges for garnish (optional)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;directions&quot;&gt;Directions&lt;/h2&gt;
&lt;h3 id=&quot;rehydrate-the-noodles-skip-if-using-fresh-noodles&quot;&gt;Rehydrate the noodles (skip if using fresh noodles)&lt;/h3&gt;
&lt;p&gt;Place dry noodles in skillet or wok&lt;br /&gt;
Fill with water until noodles are covered&lt;br /&gt;
Place over medium-high heat&lt;br /&gt;
Monitor until noodles are soft but chewy&lt;br /&gt;
Remove from heat&lt;br /&gt;
Pour into collander&lt;br /&gt;
Rinse with cold water until cooled&lt;/p&gt;
&lt;h3 id=&quot;prepare-the-ingredients&quot;&gt;Prepare the ingredients&lt;/h3&gt;
&lt;p&gt;Combine sauce in small bowl&lt;br /&gt;
Wash and prep vegetables&lt;br /&gt;
Slice chicken&lt;/p&gt;
&lt;h3 id=&quot;cook&quot;&gt;Cook&lt;/h3&gt;
&lt;p&gt;Place skillet or wok over medium-high heat&lt;br /&gt;
Add 1 tablespoon oil&lt;br /&gt;
When oil is hot, add onions and garlic&lt;br /&gt;
Stir for 1-2 minutes&lt;br /&gt;
Add chiles&lt;br /&gt;
Stir for 30 seconds&lt;br /&gt;
Add chicken&lt;br /&gt;
Pour half of the sauce over chicken&lt;br /&gt;
Stir until partially cooked (3-5 minutes)&lt;br /&gt;
Add bell pepper&lt;br /&gt;
Stir until beginning to soften (2-3 minutes)&lt;br /&gt;
Add noodles&lt;br /&gt;
Add sauce&lt;br /&gt;
Stir until noodles absorb remaining liquid&lt;br /&gt;
Remove from heat&lt;br /&gt;
Fold in the basil until wilted&lt;br /&gt;
Serve, garnished with lime wedges&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Panang Curry</title>
        <published>2019-06-08T14:54:15-05:00</published>
        <updated>2019-06-08T14:54:15-05:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/recipes/panang-curry/"/>
        <id>https://www.joelshetler.com/recipes/panang-curry/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/recipes/panang-curry/">&lt;h2 id=&quot;ingredients&quot;&gt;Ingredients&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1-1.5 lbs chicken breast, sliced or chopped&lt;/li&gt;
&lt;li&gt;1 onion, chopped&lt;/li&gt;
&lt;li&gt;1 bell pepper, chopped&lt;/li&gt;
&lt;li&gt;1-2 cups broccoli, chopped&lt;/li&gt;
&lt;li&gt;3-5 garlic cloves, chopped&lt;/li&gt;
&lt;li&gt;1 tablespoon canola or coconut oil&lt;/li&gt;
&lt;li&gt;1-2 tablespoons brown sugar&lt;/li&gt;
&lt;li&gt;65 grams Panang curry paste&lt;/li&gt;
&lt;li&gt;6-10 kaffir lime leaves, smashed to release oils&lt;/li&gt;
&lt;li&gt;1 tablespoon peanut butter (optional)&lt;/li&gt;
&lt;li&gt;1 can of coconut milk&lt;/li&gt;
&lt;li&gt;1-3 tablespoons of fish sauce&lt;/li&gt;
&lt;li&gt;1/4-1/2 cup of fresh Thai basil leaves&lt;/li&gt;
&lt;li&gt;1 cup of dry rice&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;directions&quot;&gt;Directions&lt;/h2&gt;
&lt;p&gt;Measure 1 cup dry rice into pot&lt;br /&gt;
Add 2 cups water&lt;br /&gt;
Place on high heat&lt;br /&gt;
When water boils, stir, set heat to low, and cover&lt;/p&gt;
&lt;p&gt;Wash and prep vegetables&lt;/p&gt;
&lt;p&gt;Prep chicken&lt;/p&gt;
&lt;p&gt;Place a skillet or wok over high heat&lt;br /&gt;
Add 1 tablespoon of oil&lt;br /&gt;
When oil is hot, add onions&lt;br /&gt;
Stir for 1-2 minutes&lt;br /&gt;
Add peppers and garlic&lt;br /&gt;
Stir for 1-2 minutes&lt;br /&gt;
Add curry paste&lt;br /&gt;
Add peanut butter (optional)&lt;br /&gt;
Stir for 1-2 minutes&lt;br /&gt;
Add first half can of coconut milk&lt;br /&gt;
Add chicken&lt;br /&gt;
Stir until curry paste is mixed&lt;br /&gt;
When chicken is half cooked, add remaining coconut milk&lt;br /&gt;
Add broccoli&lt;br /&gt;
Add fish sauce to taste&lt;br /&gt;
Add brown sugar to taste&lt;br /&gt;
Let simmer until thickened, broccoli softened, and chicken cooked through&lt;br /&gt;
Remove from heat&lt;br /&gt;
Stir in basil&lt;/p&gt;
&lt;p&gt;Serve with rice&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Be specific when you pray</title>
        <published>2019-03-06T13:41:16+00:00</published>
        <updated>2019-03-06T13:41:16+00:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/specificity/"/>
        <id>https://www.joelshetler.com/essays/specificity/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/specificity/">&lt;p&gt;Abraham and God had a conversation about destroying Sodom.&lt;br /&gt;
It was interesting.&lt;br /&gt;
You can read about it in Genesis 18:16-33.&lt;/p&gt;
&lt;p&gt;What if God answered all prayers as directly as Abraham’s?&lt;/p&gt;
&lt;p&gt;Talk to God.&lt;br /&gt;
If you think about it, pray about it.&lt;br /&gt;
And be specific.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Plant flags</title>
        <published>2019-02-21T08:22:40-06:00</published>
        <updated>2019-02-21T08:22:40-06:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/plant-flags/"/>
        <id>https://www.joelshetler.com/essays/plant-flags/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/plant-flags/">&lt;p&gt;Plant flags at the high points.&lt;br /&gt;
Remember them at the low points.&lt;br /&gt;
Rest often.&lt;br /&gt;
Keep moving.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/plant-flags.png&quot; alt=&quot;Remember these&quot; /&gt;&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Do it or nothing</title>
        <published>2019-02-03T15:13:15-06:00</published>
        <updated>2019-02-03T15:13:15-06:00</updated>
        
        <author>
          <name>Joel Shetler</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://www.joelshetler.com/essays/do-it-or-nothing/"/>
        <id>https://www.joelshetler.com/essays/do-it-or-nothing/</id>
        
        <content type="html" xml:base="https://www.joelshetler.com/essays/do-it-or-nothing/">&lt;p&gt;Is there work to be done?&lt;br /&gt;
Limit yourself to two choices.&lt;br /&gt;
Do it, or nothing.&lt;/p&gt;
&lt;p&gt;Choose one and accept your choice.&lt;/p&gt;
&lt;p&gt;If you choose to do it, good.&lt;br /&gt;
If you choose to do nothing, good.&lt;br /&gt;
Every other choice is failure.&lt;/p&gt;
</content>
        
    </entry>
</feed>
