<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Yawning Chasm</title>
    <subtitle>Irreverent takes on, well, all the things.  Work, humanity, stuff I like or don&#x27;t like, society, externalized monologue, and probably parenthood (since all parents seem to do that... like, a lot... sorry).</subtitle>
    <link rel="self" type="application/atom+xml" href="https://yawningchasm.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://yawningchasm.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2025-10-31T00:00:00+00:00</updated>
    <id>https://yawningchasm.com/atom.xml</id>
    <entry xml:lang="en">
        <title>KPop Demon Hunters and Other Memetic Things</title>
        <published>2025-10-31T00:00:00+00:00</published>
        <updated>2025-10-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://yawningchasm.com/kpop-demon-hunters-and-other-memetic-things/"/>
        <id>https://yawningchasm.com/kpop-demon-hunters-and-other-memetic-things/</id>
        
        <content type="html" xml:base="https://yawningchasm.com/kpop-demon-hunters-and-other-memetic-things/">&lt;p&gt;I&#x27;ve convinced myself that &lt;em&gt;KPDH&lt;&#x2F;em&gt; succeeds because it blends many styles effortlessly.  I haven&#x27;t seen it yet (I will tomorrow at the &lt;em&gt;Sing Along&lt;&#x2F;em&gt; though o_O), but I&#x27;ve heard the music a lot.&lt;&#x2F;p&gt;
&lt;p&gt;Like A LOT a lot.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s good, but it&#x27;s good because they&#x27;ve tricked you.  Yes, even &lt;em&gt;you&lt;&#x2F;em&gt; were tricked, savviest reader.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;your-brain-on-the-classics&quot;&gt;Your Brain On &quot;The Classics&quot;&lt;&#x2F;h2&gt;
&lt;p&gt;That whistling in &lt;em&gt;Soda Pop&lt;&#x2F;em&gt;?  Yes, it&#x27;s probably &lt;em&gt;meant&lt;&#x2F;em&gt; to evoke that dancing old guy from the theme park commercial.  You liked &lt;em&gt;that&lt;&#x2F;em&gt;, so we command you to like &lt;em&gt;this&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;There are loads of these little &quot;almost but not quite&quot; similarities sprinkled throughout.  There&#x27;s also &quot;pop sentimentality&quot; to which almost everyone has susceptibility.&lt;&#x2F;p&gt;
&lt;p&gt;That harmonious hit in &lt;em&gt;This is What it Sounds Like&lt;&#x2F;em&gt; is &lt;em&gt;calibrated&lt;&#x2F;em&gt;.  I&#x27;m convinced of it.  They did warn us right there in the title.  We were all too distracted by the lovely animation to notice.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;lighting-in-a-bottle&quot;&gt;Lighting In A Bottle&lt;&#x2F;h2&gt;
&lt;p&gt;I don&#x27;t know that anyone will hit this combination of things ever again, but they probably won&#x27;t be able to play the trick twice.  We&#x27;ll see, I guess.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ll be there for it, though.  They got one thing right for certain:  that is, indeed, &lt;em&gt;How It&#x27;s Done&lt;&#x2F;em&gt; (done done).&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>The Myth of Clean Code</title>
        <published>2025-10-26T00:00:00+00:00</published>
        <updated>2025-10-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://yawningchasm.com/the-myth-of-clean-code/"/>
        <id>https://yawningchasm.com/the-myth-of-clean-code/</id>
        
        <content type="html" xml:base="https://yawningchasm.com/the-myth-of-clean-code/">&lt;p&gt;I have written some truly awful code.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve committed every sin I&#x27;m about to tell you not to commit. I&#x27;ve written 800-line functions that do fourteen different things and also check the weather. I&#x27;ve named variables &lt;code&gt;temp&lt;&#x2F;code&gt;, &lt;code&gt;temp2&lt;&#x2F;code&gt;, and &lt;code&gt;temp_final&lt;&#x2F;code&gt; in the same function. I&#x27;ve abstracted the absolute hell out of addition because I read somewhere that &quot;composition over inheritance&quot; was important and I&#x27;d just learned what interfaces were.&lt;&#x2F;p&gt;
&lt;p&gt;I have been, in short, an absolute nightmare to work with at times.&lt;&#x2F;p&gt;
&lt;p&gt;But here&#x27;s the thing - and I really need you to understand this - &lt;strong&gt;you&lt;&#x2F;strong&gt; are going to do all of these things too. You&#x27;re going to read this, nod sagely, and then immediately go write a function called &lt;code&gt;doStuff()&lt;&#x2F;code&gt; that does seven unrelated things because you&#x27;re tired and the deadline is tomorrow and your brain is made of cheese.&lt;&#x2F;p&gt;
&lt;p&gt;We are all terrible. Let me tell you about it.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-myth-i-believed&quot;&gt;The Myth I Believed&lt;&#x2F;h2&gt;
&lt;p&gt;When I first read &quot;Clean Code,&quot; I had a revelation. I was going to write perfect, beautiful, artisanal code. Every function would be a haiku. Every class would sing.&lt;&#x2F;p&gt;
&lt;p&gt;I spent three weeks refactoring a working system because the variable names weren&#x27;t descriptive enough.&lt;&#x2F;p&gt;
&lt;p&gt;The system broke. I introduced five new bugs. My coworker asked me what the hell I was doing.&lt;&#x2F;p&gt;
&lt;p&gt;I had no good answer.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-sins-i-ve-committed-and-you-will-too&quot;&gt;The Sins I&#x27;ve Committed (And You Will Too)&lt;&#x2F;h2&gt;
&lt;p&gt;Let me catalogue my failures so you can at least see them coming:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;sin-1-over-abstraction-my-personal-favorite&quot;&gt;Sin #1: Over-Abstraction (My Personal Favorite)&lt;&#x2F;h3&gt;
&lt;p&gt;I once wrote three interfaces and four classes to handle logging messages to a file. It was beautiful. It was flexible. It was completely unnecessary.&lt;&#x2F;p&gt;
&lt;p&gt;The system already had logging. I just didn&#x27;t like how it worked.&lt;&#x2F;p&gt;
&lt;p&gt;I spent two days building my perfect logging framework. It would have taken me twenty minutes to just use what was there.&lt;&#x2F;p&gt;
&lt;p&gt;You will do this. You will convince yourself that &lt;em&gt;this time&lt;&#x2F;em&gt; the abstraction is justified. It won&#x27;t be.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;sin-2-premature-optimization&quot;&gt;Sin #2: Premature Optimization&lt;&#x2F;h3&gt;
&lt;p&gt;I rewrote a database query because I was convinced it would be slow at scale.&lt;&#x2F;p&gt;
&lt;p&gt;We had 47 users.&lt;&#x2F;p&gt;
&lt;p&gt;The query ran in 3 milliseconds.&lt;&#x2F;p&gt;
&lt;p&gt;I spent four hours on it.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;sin-3-bikeshedding-myself-into-madness&quot;&gt;Sin #3: Bikeshedding Myself Into Madness&lt;&#x2F;h3&gt;
&lt;p&gt;I once spent an entire afternoon debating with myself whether a function should be called &lt;code&gt;getUserData()&lt;&#x2F;code&gt; or &lt;code&gt;fetchUserInformation()&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The function was six lines long and called by exactly one other function.&lt;&#x2F;p&gt;
&lt;p&gt;No one cared. Not even me, really. But I couldn&#x27;t ship until it was &quot;right.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;It still bothers me that I picked &lt;code&gt;getUserData()&lt;&#x2F;code&gt; instead of &lt;code&gt;queryUserTable()&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Balls. &amp;gt;_&amp;lt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;sin-4-not-shipping&quot;&gt;Sin #4: Not Shipping&lt;&#x2F;h3&gt;
&lt;p&gt;I&#x27;ve killed more features by refactoring than by inadvertently introducing bugs.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;Just a bit cleaner,&quot; I&#x27;d say. &quot;Just needs better separation of concerns.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Meanwhile, users were waiting for the feature. My boss was waiting for the feature. The business was waiting for the feature.&lt;&#x2F;p&gt;
&lt;p&gt;But the code wasn&#x27;t &lt;em&gt;clean enough&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s what over-abstraction looks like in practice:&lt;&#x2F;p&gt;
&lt;div class=&quot;code-tabs my-8&quot; x-data=&quot;{ activeTab: &#x27;ruby&#x27; }&quot;&gt;
    &lt;!-- Tab Headers --&gt;
    &lt;div class=&quot;flex border-b border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 rounded-t-lg overflow-hidden&quot;&gt;
        &lt;button @click=&quot;activeTab = &#x27;ruby&#x27;&quot; :class=&quot;{ &#x27;bg-white dark:bg-gray-900 border-b-2 border-primary&#x27;: activeTab === &#x27;ruby&#x27; }&quot; class=&quot;px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 hover:text-primary transition-colors&quot;&gt;Ruby&lt;&#x2F;button&gt;
        &lt;button @click=&quot;activeTab = &#x27;python&#x27;&quot; :class=&quot;{ &#x27;bg-white dark:bg-gray-900 border-b-2 border-primary&#x27;: activeTab === &#x27;python&#x27; }&quot; class=&quot;px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 hover:text-primary transition-colors&quot;&gt;Python&lt;&#x2F;button&gt;
        &lt;button @click=&quot;activeTab = &#x27;csharp&#x27;&quot; :class=&quot;{ &#x27;bg-white dark:bg-gray-900 border-b-2 border-primary&#x27;: activeTab === &#x27;csharp&#x27; }&quot; class=&quot;px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 hover:text-primary transition-colors&quot;&gt;Csharp&lt;&#x2F;button&gt;
        &lt;button @click=&quot;activeTab = &#x27;javascript&#x27;&quot; :class=&quot;{ &#x27;bg-white dark:bg-gray-900 border-b-2 border-primary&#x27;: activeTab === &#x27;javascript&#x27; }&quot; class=&quot;px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 hover:text-primary transition-colors&quot;&gt;Javascript&lt;&#x2F;button&gt;
    &lt;&#x2F;div&gt;

    &lt;!-- Tab Content --&gt;
    &lt;div class=&quot;border border-t-0 border-gray-200 dark:border-gray-700 rounded-b-lg&quot;&gt;
        &lt;div x-show=&quot;activeTab === &#x27;ruby&#x27;&quot; class=&quot;p-0&quot;&gt;
            &lt;pre class=&quot;!mt-0 !mb-0 !rounded-t-none&quot;&gt;&lt;code class=&quot;language-ruby&quot;&gt;# The &amp;quot;clean code&amp;quot; version
class NumberAdder
  def initialize(calculator)
    @calculator = calculator
  end

  def add(a, b)
    @calculator.perform_addition(a, b)
  end
end

# Just do this instead:
def add(a, b)
  a + b
end&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
        &lt;&#x2F;div&gt;
        &lt;div x-show=&quot;activeTab === &#x27;python&#x27;&quot; class=&quot;p-0&quot; style=&quot;display: none;&quot;&gt;
            &lt;pre class=&quot;!mt-0 !mb-0 !rounded-t-none&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;# The &amp;quot;clean code&amp;quot; version
class ICalculator:
    def perform_addition(self, a: int, b: int) -&amp;gt; int:
        pass

class NumberAdder:
    def __init__(self, calculator: ICalculator):
        self.calculator = calculator

    def add(self, a: int, b: int) -&amp;gt; int:
        return self.calculator.perform_addition(a, b)

# Just do this instead:
def add(a: int, b: int) -&amp;gt; int:
    return a + b&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
        &lt;&#x2F;div&gt;
        &lt;div x-show=&quot;activeTab === &#x27;csharp&#x27;&quot; class=&quot;p-0&quot; style=&quot;display: none;&quot;&gt;
            &lt;pre class=&quot;!mt-0 !mb-0 !rounded-t-none&quot;&gt;&lt;code class=&quot;language-csharp&quot;&gt;&amp;#x2F;&amp;#x2F; The &amp;quot;clean code&amp;quot; version
public interface ICalculator {
    int PerformAddition(int a, int b);
}

public class NumberAdder {
    private readonly ICalculator _calculator;

    public NumberAdder(ICalculator calculator) {
        _calculator = calculator;
    }

    public int Add(int a, int b) {
        return _calculator.PerformAddition(a, b);
    }
}

&amp;#x2F;&amp;#x2F; Just do this instead:
public static int Add(int a, int b) {
    return a + b;
}&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
        &lt;&#x2F;div&gt;
        &lt;div x-show=&quot;activeTab === &#x27;javascript&#x27;&quot; class=&quot;p-0&quot; style=&quot;display: none;&quot;&gt;
            &lt;pre class=&quot;!mt-0 !mb-0 !rounded-t-none&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&amp;#x2F;&amp;#x2F; The &amp;quot;clean code&amp;quot; version
class NumberAdder {
  constructor(calculator) {
    this.calculator = calculator;
  }

  add(a, b) {
    return this.calculator.performAddition(a, b);
  }
}

&amp;#x2F;&amp;#x2F; Just do this instead:
const add = (a, b) =&amp;gt; a + b;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
        &lt;&#x2F;div&gt;
    &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;h2 id=&quot;what-i-should-have-done-and-you-should-try-even-though-you-won-t&quot;&gt;What I Should Have Done (And You Should Try, Even Though You Won&#x27;t)&lt;&#x2F;h2&gt;
&lt;p&gt;Here&#x27;s the uncomfortable truth: context matters more than principles.&lt;&#x2F;p&gt;
&lt;p&gt;You know this. I know this. We all know this.&lt;&#x2F;p&gt;
&lt;p&gt;And yet I&#x27;ve watched developers (me, I&#x27;m talking about me) refactor a throwaway script like they&#x27;re building the Mars rover&#x27;s navigation system.&lt;&#x2F;p&gt;
&lt;p&gt;A startup MVP doesn&#x27;t need the same architecture as a banking system. A script you&#x27;ll run once doesn&#x27;t need the same rigor as a library used by millions. A proof-of-concept doesn&#x27;t need perfect test coverage.&lt;&#x2F;p&gt;
&lt;p&gt;But you&#x27;ll do it anyway. Because it feels good to write &quot;proper&quot; code. Because someone might see it. Because you read that blog post about SOLID principles and now you have opinions about the Liskov Substitution Principle.&lt;&#x2F;p&gt;
&lt;p&gt;Stop it. Ship the thing.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-actually-matters-when-you-can-be-bothered&quot;&gt;What Actually Matters (When You Can Be Bothered)&lt;&#x2F;h2&gt;
&lt;p&gt;Look, if you&#x27;re actually going to try - and I admire your optimism - here&#x27;s what to focus on:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;does-it-work&quot;&gt;Does It Work?&lt;&#x2F;h3&gt;
&lt;p&gt;This seems obvious. It isn&#x27;t.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve reviewed pull requests where the code was beautifully architected, perfectly formatted, and completely wrong.&lt;&#x2F;p&gt;
&lt;p&gt;Functional first. Always. You can&#x27;t refactor broken.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;can-someone-else-understand-it&quot;&gt;Can Someone Else Understand It?&lt;&#x2F;h3&gt;
&lt;p&gt;And by &quot;someone else&quot; I mean you, six months from now, at 2 AM, when the pager goes off.&lt;&#x2F;p&gt;
&lt;p&gt;That clever bit with the triple-nested ternary operator? Future you will hate current you.  Future me already hates me plenty, but maybe you can catch a break if you just nest those three conditions.&lt;&#x2F;p&gt;
&lt;p&gt;Comments aren&#x27;t admitting defeat. They&#x27;re leaving breadcrumbs for the poor bastard who has to fix your code. Which, again, will probably be you.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;is-it-maintainable&quot;&gt;Is It Maintainable?&lt;&#x2F;h3&gt;
&lt;p&gt;Can you add a feature without rewriting the entire module?&lt;&#x2F;p&gt;
&lt;p&gt;Can you fix a bug without a PhD in your own code?&lt;&#x2F;p&gt;
&lt;p&gt;Can someone new join the team and contribute in less than six months?&lt;&#x2F;p&gt;
&lt;p&gt;If not, your &quot;clean&quot; code is actually quite dirty.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;does-it-serve-the-business-need&quot;&gt;Does It Serve the Business Need?&lt;&#x2F;h3&gt;
&lt;p&gt;Here&#x27;s the bit that matters most: pretty code that doesn&#x27;t solve problems is useless.&lt;&#x2F;p&gt;
&lt;p&gt;I don&#x27;t care how elegant your solution is if it doesn&#x27;t do what users need.&lt;&#x2F;p&gt;
&lt;p&gt;Ship working software. Make it pretty later if there&#x27;s time.&lt;&#x2F;p&gt;
&lt;p&gt;Narrator: There&#x27;s never time.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-i-m-trying-to-do-now-with-mixed-results&quot;&gt;What I&#x27;m Trying to Do Now (With Mixed Results)&lt;&#x2F;h2&gt;
&lt;p&gt;I&#x27;m trying to write code for humans first, computers second.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m trying to make intentional trade-offs instead of following rules blindly.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m trying to know when to optimize and when to ship.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m trying to leave things better than I found them, but not perfect. Perfect is the enemy of done, and done is what pays the bills.&lt;&#x2F;p&gt;
&lt;p&gt;Am I succeeding? Not really. I still bike-shed. I still over-engineer. I still refactor things that don&#x27;t need refactoring.&lt;&#x2F;p&gt;
&lt;p&gt;But I ship more than I used to. And the code works more often than it used to. And my coworkers seem slightly less annoyed with me.&lt;&#x2F;p&gt;
&lt;p&gt;Progress.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-point-if-there-is-one&quot;&gt;The Point (If There Is One)&lt;&#x2F;h2&gt;
&lt;p&gt;Read &quot;Clean Code.&quot; It&#x27;s a good book. Learn from it.&lt;&#x2F;p&gt;
&lt;p&gt;Then use your actual human brain to apply it contextually.&lt;&#x2F;p&gt;
&lt;p&gt;The best code is code that ships, works, and doesn&#x27;t make your coworkers want to &lt;del&gt;seriously consider the ramifications of homicide&lt;&#x2F;del&gt; quit.&lt;&#x2F;p&gt;
&lt;p&gt;Everything else is just us making ourselves feel better about the fact that we&#x27;re writing instructions for rocks we&#x27;ve flattened and - by virtue of magical electrocution - tricked into a simulation of thinking. [citation needed - @daisyowl says the internet, but we don&#x27;t trust the internet, so...]&lt;&#x2F;p&gt;
&lt;p&gt;You&#x27;re going to commit all my sins anyway. At least now you&#x27;ll feel appropriately guilty about it.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Parenting in the Apocalypse (Or: Tuesday)</title>
        <published>2025-10-25T00:00:00+00:00</published>
        <updated>2025-10-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://yawningchasm.com/parenting-in-the-apocalypse/"/>
        <id>https://yawningchasm.com/parenting-in-the-apocalypse/</id>
        
        <content type="html" xml:base="https://yawningchasm.com/parenting-in-the-apocalypse/">&lt;p&gt;My kid asked me if the world is ending.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;Eventually,&quot; I said. &quot;Heat death of the universe&quot; and all that. &quot;But not today. Today we have dinosaur nuggets and this video of goats falling over set to Yakkity Sax.  It was on a show.  The Benny Hill show.  No, it&#x27;s not on anymore.  Yes, it&#x27;s kinda sad, but I&#x27;m pretty sure all of those people are dead now anyway.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;He seemed satisfied with this answer. I have no idea if that&#x27;s good parenting or not.  It was probably too long.  It hardly touched on the Apocalypse, but it was there.  Lurking in the background like yesterday&#x27;s carry out pizza aroma in the car.&lt;&#x2F;p&gt;
&lt;p&gt;Welcome to Tuesday?&lt;&#x2F;p&gt;
&lt;h2 id=&quot;everything-is-fine-it-s-absolutely-not-fine&quot;&gt;Everything Is Fine (It&#x27;s Absolutely Not Fine)&lt;&#x2F;h2&gt;
&lt;p&gt;One thing about being a parent in what increasingly feels like the End Times: you&#x27;re expected to maintain the appearance of calm competence while internally screaming at the absolute state of things.&lt;&#x2F;p&gt;
&lt;p&gt;Climate change is real and we&#x27;re all just going to work anyway. The economy makes no sense and we&#x27;re explaining to small children why they can&#x27;t have the $3 toy. Social media is rotting everyone&#x27;s brains. I have work to do, and I&#x27;m sitting here writing a macro to remove &lt;code&gt;draft = true&lt;&#x2F;code&gt; from my posts to publish them.&lt;&#x2F;p&gt;
&lt;p&gt;And also: homework needs to be done. Teeth need to be brushed. Someone needs to find the other shoe.  The dog-bucket needs cleaned so we can scoop more shit into it (but with a bloody bag this time, please and thank you).&lt;&#x2F;p&gt;
&lt;p&gt;The apocalypse can wait until after bedtime I guess.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-balancing-act-or-juggling-while-the-building-burns&quot;&gt;The Balancing Act (Or: Juggling While The Building Burns)&lt;&#x2F;h2&gt;
&lt;p&gt;Every single day is a tightrope walk between competing absolutes:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Honesty vs. Hope&lt;&#x2F;strong&gt;: &quot;Yes, sweetheart, things are complicated. No, we probably can&#x27;t fix it all. Yes, we&#x27;re going to try anyway because what else are we going to do?  This is why your parents are always so tired.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Protection vs. Preparation&lt;&#x2F;strong&gt;: &quot;You&#x27;re safe. The house is safe. The world is... look, it&#x27;s complicated, but here&#x27;s how to think critically about everything anyone ever tells you, including me.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Screen Time vs. My Own Sanity&lt;&#x2F;strong&gt;: &quot;No more tablet time! I said no. That&#x27;s final. We have limits for a reason.  Okay, twenty more minutes, but only because I need to finish this thing and also maybe stare at the wall for a bit.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;There&#x27;s no manual for this. There&#x27;s just a bunch of exhausted people trying not to completely screw it up.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-i-m-learning-probably-badly&quot;&gt;What I&#x27;m Learning (Probably Badly)&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;kids-are-resilient-thank-cthulhu-for-that&quot;&gt;Kids Are Resilient (Thank Cthulhu For That)&lt;&#x2F;h3&gt;
&lt;p&gt;They process things differently than we do. What feels apocalyptic to us is just... Tuesday to them.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;re all worried about trauma and therapy and making sure we don&#x27;t mess them up. And yes, sure, don&#x27;t be a rotten bastard to your kids. But they&#x27;re also remarkably good at just getting on with it.&lt;&#x2F;p&gt;
&lt;p&gt;My daughter once asked about death, processed the entire concept in about ninety seconds, and then asked if she could have candy. I&#x27;m working (hopefully VERY gradually) through my own mortality. She&#x27;s moved on to more important matters like &quot;sleeve of PEZ or a Dum-Dum?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;They&#x27;re adaptable little weirdos. It&#x27;s actually quite reassuring.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;presence-matters-more-than-perfection-and-thank-some-elder-god-for-that-too&quot;&gt;Presence Matters More Than Perfection (And Thank Some Elder God For That Too)&lt;&#x2F;h3&gt;
&lt;p&gt;I used to stress about providing the &quot;perfect&quot; childhood.  I still do, but I used to as well (obligatory).  The right activities. The right experiences. The right balance of structure and freedom.&lt;&#x2F;p&gt;
&lt;p&gt;Meh.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m just trying to be there. To listen when they talk (very hard sometimes), show up when they need me (easier), put the phone&#x2F;book&#x2F;deck down and actually pay attention to the sometimes complete bonkers nonsense but often deeply insightful things they have to say.&lt;&#x2F;p&gt;
&lt;p&gt;Turns out that matters infinitely more than whether their birthday party had a coordinated theme or whether they&#x27;ll remember the vacation to that one place I never get right in my own memory.&lt;&#x2F;p&gt;
&lt;p&gt;Nobody remembers the themed parties. They remember whether you were there hanging up the decorations and mushing cake into their hair.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;model-don-t-preach-harder-than-it-sounds&quot;&gt;Model, Don&#x27;t Preach (Harder Than It Sounds)&lt;&#x2F;h3&gt;
&lt;p&gt;Kids learn from what we do, not what we say. This is inconvenient.&lt;&#x2F;p&gt;
&lt;p&gt;Want them to be kind? Better be kind, even to that numpty who cut you off in traffic.  Note:  numpty was not the last word I used in this situation.&lt;&#x2F;p&gt;
&lt;p&gt;Want them to think critically? Better demonstrate critical thinking instead of just saying &quot;because I said so.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;Want them to manage their emotions? Well...huh.  We&#x27;re all pretty constantly working on that one, aren&#x27;t we?&lt;&#x2F;p&gt;
&lt;p&gt;Be better so they can be better. It&#x27;s sure as hell a good enough reason to try.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;it-s-okay-to-not-have-all-the-answers-truly-it-s-fine&quot;&gt;It&#x27;s Okay to Not Have All the Answers (Truly, It&#x27;s Fine)&lt;&#x2F;h3&gt;
&lt;p&gt;&quot;I don&#x27;t know&quot; is a valid answer.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;That&#x27;s complicated, let&#x27;s figure it out together&quot; is often better.&lt;&#x2F;p&gt;
&lt;p&gt;&quot;I messed that up, I&#x27;m sorry&quot; is perhaps the most important one of all.  I&#x27;m terrible at this because I&#x27;m perfect.  ...ly flawed.  At adverbs.&lt;&#x2F;p&gt;
&lt;p&gt;You don&#x27;t need to be perfect. You don&#x27;t need to know everything. You just need to be honest and keep trying.&lt;&#x2F;p&gt;
&lt;p&gt;Even when you know everything like I do.&lt;&#x2F;p&gt;
&lt;p&gt;They&#x27;ll forgive you for not knowing. They won&#x27;t forgive you for pretending.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-point-if-there-is-one-i-can-t-be-certain-anymore&quot;&gt;The Point (If There Is One - I Can&#x27;t Be Certain Anymore)&lt;&#x2F;h2&gt;
&lt;p&gt;There&#x27;s no perfect way to parent in an imperfect world.&lt;&#x2F;p&gt;
&lt;p&gt;You just show up.  Try.  You apologize when you inevitably screw it up or shout like some stupid entitled asshole. You hug them. You feed them. You teach them to be kind even when the world isn&#x27;t. Especially then.&lt;&#x2F;p&gt;
&lt;p&gt;And you keep hoping all that love and showing up are enough in the end.&lt;&#x2F;p&gt;
&lt;p&gt;Also, dinosaur nuggets really do solve a surprising number of problems. I don&#x27;t know why. They just do.  Especially with thai chili sauce.  Except when you laugh it out of your nose.  That part is gross and painful.  Ew... there&#x27;s some on the screen.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;closing-thoughts-from-one-exhausted-parent-to-another&quot;&gt;Closing Thoughts (From One Exhausted Parent to Another)&lt;&#x2F;h2&gt;
&lt;p&gt;The world has always been complicated. The world will (probably) always be complicated.  Every generation of parents has thought they&#x27;re living through uniquely difficult times.&lt;&#x2F;p&gt;
&lt;p&gt;Maybe we are. Maybe we&#x27;re not. Whatever.  Doesn&#x27;t matter.&lt;&#x2F;p&gt;
&lt;p&gt;One day at a time. One dinosaur nugget at a time. One &quot;I don&#x27;t know, sweet child, but we&#x27;ll figure it out together.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s not perfect. But it&#x27;s real. And real is the root of what they need.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Welcome to the Void</title>
        <published>2025-10-20T00:00:00+00:00</published>
        <updated>2025-10-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://yawningchasm.com/about/"/>
        <id>https://yawningchasm.com/about/</id>
        
        <content type="html" xml:base="https://yawningchasm.com/about/">&lt;p&gt;This is a space for my thoughts that don&#x27;t quite fit anywhere else.  Another manifestation of the nonsense in my notes app typed into my phone at 0230h.  A collection of observations about building stuff, life, parenting, and whatever else demanded attention instead of the more blissful void of sleep.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-start-yet-another-stupid-blog&quot;&gt;Why Start Yet Another Stupid Blog?&lt;&#x2F;h2&gt;
&lt;p&gt;Because the void called and I wanted to finally answer (about twenty years late to the party)?  Also, I have opinions, and the internet has apparently fully committed to &quot;having opinions&quot; as sufficient qualifications to publish whatever.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-to-expect-lowered-expectations&quot;&gt;&lt;del&gt;What To Expect&lt;&#x2F;del&gt; Lowered Expectations&lt;&#x2F;h2&gt;
&lt;p&gt;Expect irregular posts about:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Software Engineering&lt;&#x2F;strong&gt;: Technical crap, architecture crap, and why that refactor you&#x27;re planning probably isn&#x27;t worth it (but you&#x27;ll do it anyway, just like I probably would in your shoes)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Society &amp;amp; Humanity&lt;&#x2F;strong&gt;: Hot takes cooled by age and experience (A.K.A.:  barely-tempered ragebait?)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fatherhood&lt;&#x2F;strong&gt;: Parenting while trying to remain a functional human being&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Whatever Else&lt;&#x2F;strong&gt;: The beauty of having your own corner of the internet is that there are no rules... SHUT UP, YOU&#x27;RE NOT MY DAD!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;the-format&quot;&gt;The Format&lt;&#x2F;h2&gt;
&lt;p&gt;Posts will vary in length and depth.  Some will be quick observations.  Others will be longer essays.  All will be written with the assumption that you, dear reader, are intelligent enough to think for yourself.  Or that you&#x27;re not, and you&#x27;ll find me the most entertainingly condescending internet goblin you&#x27;ve read (since breakfast).&lt;&#x2F;p&gt;
&lt;p&gt;No clickbait.  No growth hacking.  No &quot;10 Ways to Optimize Your Morning Routine With Poutine.&quot;  Just thoughts, (hopefully) reasonably well-articulated.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;let-s-begin&quot;&gt;Let&#x27;s Begin&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Song_of_Myself#%22Self%22&quot;&gt;You are large, You contain multitudes&lt;&#x2F;a&gt;.  Let&#x27;s fill you up with something interesting for a minute before we all disappear into the (dun dun dun) Yawning Chasm forever.&lt;&#x2F;p&gt;
&lt;p&gt;Welcome.  Now go away.  Daddy&#x27;s writing.&lt;&#x2F;p&gt;
&lt;p&gt;I should&#x27;ve said &quot;please.&quot;  Please go away.  Sorry, child.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
