<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jay Schmidt</title><link>https://jayschmidt.us/</link><description>Recent content on Jay Schmidt</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 28 Feb 2026 00:00:00 -0700</lastBuildDate><atom:link href="https://jayschmidt.us/index.xml" rel="self" type="application/rss+xml"/><item><title>Talks and Webinars</title><link>https://jayschmidt.us/projects/talks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jayschmidt.us/projects/talks/</guid><description>&lt;h2 id="nginx" class="anchor-link"&gt;&lt;a href="#nginx"&gt;NGINX&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=BHOmubHOrYE"&gt;What&amp;rsquo;s New with MARA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=QC1J30LJq9A"&gt;Why We Added OTEL to MARA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=s_IxeASM3dM"&gt;F5 DevCentral Interview on MARA&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="microservices-march-2023" class="anchor-link"&gt;&lt;a href="#microservices-march-2023"&gt;Microservices March 2023&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=n-T9MHD8Y78"&gt;Revisting the 12 Factors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="pulumi-and-mara" class="anchor-link"&gt;&lt;a href="#pulumi-and-mara"&gt;Pulumi and MARA&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=DPp4veSBUr0"&gt;From Zero to Production in Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="sumo-logic-and-mara" class="anchor-link"&gt;&lt;a href="#sumo-logic-and-mara"&gt;Sumo Logic and MARA&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=eYTc8Ictr7U"&gt;Meet MARA: The open source reference architecture&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="suse-and-mara" class="anchor-link"&gt;&lt;a href="#suse-and-mara"&gt;SUSE and MARA&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Q8kvWorCMnU"&gt;Introduction to MARA&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="conferences" class="anchor-link"&gt;&lt;a href="#conferences"&gt;Conferences&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=QtD7YSmD_BM"&gt;Gluecon 2022 Retrospective&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=t55YBafRw7I"&gt;OTEL Community Day 2022&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Articles</title><link>https://jayschmidt.us/projects/articles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jayschmidt.us/projects/articles/</guid><description>&lt;h3 id="docker" class="anchor-link"&gt;&lt;a href="#docker"&gt;Docker&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/blog/zero-trust-and-docker-desktop-an-introduction/"&gt;Zero Trust and Docker Desktop: An Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/blog/docker-best-practices-understanding-the-differences-between-add-and-copy-instructions-in-dockerfiles/"&gt;Docker Best Practices: Understanding the Difference Between ADD and COPY&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/blog/docker-best-practices-choosing-between-run-cmd-and-entrypoint/"&gt;Docker Best Practices: Choosing Between RUN, CMD, and ENTRYPOINT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/blog/understanding-the-docker-user-instruction/"&gt;Understanding the Docker USER Instruction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/blog/how-to-check-docker-version/"&gt;How to Check Your Docker Installation: Docker Desktop vs. Docker Engine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/blog/are-containers-only-for-microservices-myth-debunked/"&gt;Are Containers Only for Microservices?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="kubernetes" class="anchor-link"&gt;&lt;a href="#kubernetes"&gt;Kubernetes&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nginx.com/blog/enabling-self-service-dns-and-certificate-management-in-kubernetes/"&gt;Enabling Self Service DNS and Certs in Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nginx.com/blog/automating-certificate-management-in-a-kubernetes-environment/"&gt;Automating Certificate Management in Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="modern-app-reference-architecture" class="anchor-link"&gt;&lt;a href="#modern-app-reference-architecture"&gt;Modern App Reference Architecture&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nginx.com/blog/announcing-version-1-0-0-nginx-modern-apps-reference-architecture/"&gt;Announcing Version 1.0 of the Modern Application Reference Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nginx.com/blog/mara-now-running-on-workstation-near-you/"&gt;MARA: Now Running on a Workstation Near You&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nginx.com/blog/integrating-opentelemetry-modern-apps-reference-architecture-progress-report/"&gt;Integrating OTEL into the Modern Application Reference Architecture&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Education and Certs</title><link>https://jayschmidt.us/projects/education/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jayschmidt.us/projects/education/</guid><description>&lt;h4 id="education" class="anchor-link"&gt;&lt;a href="#education"&gt;Education&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;BA Business Administration (Honors), Kent State University&lt;/li&gt;
&lt;li&gt;MS in Organizational Leadership, Leading Innovation Focus, University of Colorado Boulder&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id="certifications-and-professional-memberships" class="anchor-link"&gt;&lt;a href="#certifications-and-professional-memberships"&gt;Certifications and Professional Memberships&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Project Management Professional (PMP #181429)&lt;/li&gt;
&lt;li&gt;Member, PMI Mile High Chapter&lt;/li&gt;
&lt;li&gt;Member, Association for Computing Machinery&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/captains/jay-schmidt/"&gt;Docker Captain&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>The Confidence Mask</title><link>https://jayschmidt.us/blog/imposter-syndrome/</link><pubDate>Sat, 28 Feb 2026 00:00:00 -0700</pubDate><guid>https://jayschmidt.us/blog/imposter-syndrome/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/imposter-syndrome/img.png"
 alt="An anxious tech worker at a desk with a confident mask pushed up on their forehead, while coworkers in the background all wear similar masks" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;The relationship between confidence and arrogance in the tech industry is bizarre. When a founder confidently states that their new app will &amp;ldquo;revolutionize society,&amp;rdquo; we applaud. Yet we&amp;rsquo;ve all sat in a meeting listening to an engineer confidently explain how their new framework solves every known tech problem, and we roll our eyes.&lt;/p&gt;</description></item><item><title>Weaponized Ignorance: When Not Knowing Becomes Strategy</title><link>https://jayschmidt.us/blog/weaponized-ignorance/</link><pubDate>Tue, 17 Feb 2026 10:00:00 -0600</pubDate><guid>https://jayschmidt.us/blog/weaponized-ignorance/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/weaponized-ignorance/TobaccoCEOs.jpg"
 alt="Seven tobacco company CEOs raising their right hands to be sworn in before Congress, 1994" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;We&amp;rsquo;ve talked about ignorance you drift into, and ignorance you design. Now let&amp;rsquo;s talk about ignorance you deploy.&lt;/p&gt;
&lt;p&gt;In 1994, seven tobacco company CEOs testified before Congress that they did not believe nicotine was addictive. This wasn&amp;rsquo;t designed ignorance or luxury ignorance. This was something else entirely. Internal documents later revealed that tobacco companies had known about nicotine&amp;rsquo;s addictive properties for decades. They had research. They had data. They had scientists telling them exactly what their products did.&lt;/p&gt;</description></item><item><title>Designed Ignorance: When Not Knowing Is the System Working</title><link>https://jayschmidt.us/blog/designed-ignorance/</link><pubDate>Fri, 06 Feb 2026 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/designed-ignorance/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/designed-ignorance/img.png"
 alt="Airline cockpit in flight, photo by John Christian Fjellestad (CC BY 2.0)" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;Early in my career, I was the DBA at a multinational distribution company. One night the entire APAC region went down and I was frantically paged at midnight. The database was decidedly unhappy, and as I investigated the problem it seemed tied to an application update that was deployed during the US day. The APAC executives were furious and wanted the problem resolved.&lt;/p&gt;</description></item><item><title>Same as it Ever Was: The Luxury of Ignorance</title><link>https://jayschmidt.us/blog/luxury-of-ignorance/</link><pubDate>Tue, 13 Jan 2026 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/luxury-of-ignorance/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/luxury-of-ignorance/img.png"
 alt="David Byrne from Talking Heads&amp;#39; &amp;#39;Once in a Lifetime&amp;#39; video" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;The Luxury of Ignorance: When We Choose Not to Know&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s late Friday afternoon and as I am finishing up for the day, a customer email comes in with some new information on a low priority bug we&amp;rsquo;ve been working on. I thank the customer, and then while the thought is still in my head I write up a quick note in slack asking a colleague to help validate my new understanding of the bug.&lt;/p&gt;</description></item><item><title>Building World-Class Support: Commandos, Not Armies or MPs</title><link>https://jayschmidt.us/blog/support/</link><pubDate>Fri, 14 Nov 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/support/</guid><description>&lt;p&gt;&lt;img src="https://jayschmidt.us/blog/support/img.png" alt="MP Army Commando"&gt;&lt;/p&gt;
&lt;p&gt;Late on a Friday afternoon, a customer&amp;rsquo;s authorization token expired. Their entire infrastructure started failing, one cluster at a time. They submitted a ticket. Support&amp;rsquo;s response: a canned macro and a closed ticket. The customer was still down. As far as support was concerned, they were done.&lt;/p&gt;
&lt;p&gt;This is when I learned the difference between support that follows procedures and support that solves problems.&lt;/p&gt;
&lt;p&gt;The customer relied on our product as a core component of their infrastructure. My company didn&amp;rsquo;t offer phone support, so they&amp;rsquo;d submitted a ticket via the ticketing system. The account executive had to push the support team to even &lt;em&gt;look&lt;/em&gt; at it. Support kept noting that their SLA was 24 hours and they had other things they were working on. When they finally got to it, they used a macro and closed the ticket without solving anything.&lt;/p&gt;</description></item><item><title>Drowning in Beeps</title><link>https://jayschmidt.us/blog/alert-fatigue/</link><pubDate>Sat, 11 Oct 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/alert-fatigue/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/alert-fatigue/img.png"
 alt="Alert Fatigue - Hospital Style - from proto.life" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;I’m writing this from the corner of a hospital ER, where I’ve been watching a wall-mounted monitor flash and beep on an endless cycle. IV pumps, telemetry monitors, access doors all have something to say, constantly. Harried nurses scurry through the ward, ignoring most of it, trying to stay ahead of whatever&amp;rsquo;s next. When I ask about the cacophony of alarms and beeps, they say: “Honestly, we just tune most of it out.”&lt;/p&gt;</description></item><item><title>The Metrics Game: When Toxic Leadership Comes Full Circle</title><link>https://jayschmidt.us/blog/toxic-leadership/</link><pubDate>Wed, 24 Sep 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/toxic-leadership/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/toxic-leadership/img.png"
 alt="Illustration of toxic leadership patterns in operations departments" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;There&amp;rsquo;s a particular breed of toxic leader that seems to thrive in operations departments. These leaders mistake authority for leadership and confuse control for competence. From the top down, they give the appearance of success because they control the narrative for their groups, supported by charts full of quantifiable data showing how great they&amp;rsquo;re doing.&lt;/p&gt;
&lt;p&gt;Operations groups are particularly susceptible to this type of leader because they encompass some of the most measurable aspects of IT: infrastructure operations, support functions, and data center buildouts. SLA adherence, mean time to resolution for support tickets, infrastructure capacity and performance, construction timelines, equipment deployment schedules—these numbers are readily accessible and seemingly objective. While other IT functions certainly have quantifiable metrics, they&amp;rsquo;re often more complex or require deeper context to interpret meaningfully. In my career, operations is where I&amp;rsquo;ve consistently encountered these metrics-obsessed leaders, though it&amp;rsquo;s only recently that I&amp;rsquo;ve started seeing similar dynamics creep into development teams with the rise of DORA metrics and other developer productivity measurements.&lt;/p&gt;</description></item><item><title>Marketing Fluff: What Tech People Really Mean (and How to Avoid It)</title><link>https://jayschmidt.us/blog/marketing-fluff/</link><pubDate>Tue, 02 Sep 2025 12:00:00 +0000</pubDate><guid>https://jayschmidt.us/blog/marketing-fluff/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/marketing-fluff/img.png"
 alt="Marketing fluff bingo card showing common buzzwords" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;In the tech world, few phrases are as dismissive—and as cutting—as &lt;em&gt;“marketing fluff.”&lt;/em&gt; This term is shorthand for a
particular kind of content that technical audiences often find frustrating and unhelpful. It&amp;rsquo;s a criticism that points
to a disconnect between marketing efforts and the expectations of a technically savvy audience.&lt;/p&gt;
&lt;p&gt;Is it always fair? No. But it’s a real challenge that needs to be understood and addressed, because once you produce
something that gets labeled as &lt;em&gt;fluff&lt;/em&gt;, it can be hard to regain credibility.&lt;/p&gt;</description></item><item><title>From Line Cook to Chef: Lessons for Presales Engineering</title><link>https://jayschmidt.us/blog/line-cook-presales/</link><pubDate>Thu, 28 Aug 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/line-cook-presales/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/line-cook-presales/img.png"
 alt="Chef in kitchen flanked by line cooks" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;A line cook can create perfect menu items by following recipes. A chef can create new dishes on the fly, improvise
when needed, and handle unexpected situations. The chef also usually gets to wear a cool hat.&lt;/p&gt;
&lt;p&gt;I recently noticed a pattern among some presales engineers (SEs) that reminded me of my early days in food service.
There are SEs who excel at delivering polished, rehearsed demos that they can execute flawlessly as long as the script
doesn&amp;rsquo;t change and nothing unexpected happens. These are very much like line cooks who follow recipes to the letter.&lt;/p&gt;</description></item><item><title>Leaders Who Fail Up: The LinkedIn Rebrand of Failure</title><link>https://jayschmidt.us/blog/leaders-who-fail-up/</link><pubDate>Sat, 02 Aug 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/leaders-who-fail-up/</guid><description>&lt;p&gt;By any meaningful metric, a former executive of mine was a failure. Revenue targets? Missed repeatedly. Team morale?
Cratered. Results? Nonexistent. He was eventually fired.&lt;/p&gt;
&lt;p&gt;But check his LinkedIn today, and you&amp;rsquo;d think he architected a unicorn IPO. Post after post paints strategic brilliance,
team-building mastery, and hard-won success. No mention of missed goals, chaos, or human cost. Just curated leadership
platitudes and sanitized takeaways.&lt;/p&gt;
&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/leaders-who-fail-up/img_1.png"
 alt="Screenshot of social media posts showing leaders rebranding their failures as successes" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;This isn&amp;rsquo;t rare. It&amp;rsquo;s become the playbook. A certain type of leader fails spectacularly, and instead of reckoning with
the wreckage, they quietly rebrand it as triumph.&lt;/p&gt;</description></item><item><title>Running Slurm and Flux on Oxide: Dual HPC Schedulers in Your Own Rack</title><link>https://jayschmidt.us/blog/oxide-slurm/</link><pubDate>Fri, 01 Aug 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/oxide-slurm/</guid><description>&lt;p&gt;If you work in high-performance computing (HPC), you already know &lt;a href="https://slurm.schedmd.com/documentation.html"&gt;SLURM&lt;/a&gt;. It&amp;rsquo;s the industry-standard job scheduler used at supercomputing centers and labs around the world. But what if you could bring that same workload orchestration to your own datacenter, in minutes, on your own hardware? And what if you could also deploy the next-generation &lt;a href="https://flux-framework.readthedocs.io/en/latest/guides/learning_guide.html"&gt;Flux&lt;/a&gt; scheduler alongside it?&lt;/p&gt;
&lt;p&gt;This post walks through how we built &lt;a href="https://github.com/qdzlug/oxide-slurm"&gt;&lt;code&gt;oxide-slurm&lt;/code&gt;&lt;/a&gt;, a complete Infrastructure as Code solution that deploys both SLURM and Flux clusters on an &lt;a href="https://oxide.computer"&gt;Oxide&lt;/a&gt; rack with full automation.&lt;/p&gt;</description></item><item><title>PXE Booting on Oxide</title><link>https://jayschmidt.us/blog/oxide-pxe/</link><pubDate>Tue, 15 Jul 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/oxide-pxe/</guid><description>&lt;p&gt;Depending on who you ask, PXE booting is either a legacy technology or a critical part of modern datacenter operations.
For many, it’s a way to boot systems over the network without needing local storage. For others, it’s a relic of the
past, replaced by cloud-native workflows and containerization. Why bother with PXE when you can create a custom image,
upload it, and boot directly?&lt;/p&gt;
&lt;p&gt;However, why not have both? There are still plenty of organizations that have existing PXE workflows and who wish to
continue using them, especially in hybrid environments where some workloads remain on-premises. Another good use case
is for recovery, debugging, and testing - where having a network boot option can save time and effort over creating
and uploading custom images for every scenario.&lt;/p&gt;</description></item><item><title>Printed on 24 lb. Paper</title><link>https://jayschmidt.us/blog/printed-on-24lb-paper/</link><pubDate>Thu, 12 Jun 2025 12:00:00 +0000</pubDate><guid>https://jayschmidt.us/blog/printed-on-24lb-paper/</guid><description>&lt;p&gt;&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/printed-on-24lb-paper/img.png"
 alt="24lb paper - just like they said" width="600"&gt;
&lt;/figure&gt;

When I enrolled in a Master’s program in Organizational Leadership, it wasn’t because I needed a credential, a promotion, or a salary bump. I already had a career and I was doing fine in terms of promotions and salary. I didn’t need a degree to prove my worth or my competence. What I wanted was something deeper than that, something that went beyond org charts and job titles. I wanted a framework for understanding leadership — a way to think about it that was more than just a set of skills or a checklist of traits.&lt;/p&gt;</description></item><item><title>Everything Is Political: Embrace It</title><link>https://jayschmidt.us/blog/politics/</link><pubDate>Tue, 10 Jun 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/politics/</guid><description>&lt;h3 id="the-illusion-of-neutrality" class="anchor-link"&gt;&lt;a href="#the-illusion-of-neutrality"&gt;The Illusion of Neutrality&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In many workplaces—especially in tech and business—you’ll hear:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“I don’t want to play politics—I just want to do the work.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It’s a comforting thought. Politics is often seen as a dirty word, conjuring up images of drama, power struggles, and intrigue. The solution seems simple: ignore the politics and focus on the goals. Unfortunately, this perspective is equal parts naive and dangerous, as it ignores the reality that everything is, to some extent, political.&lt;/p&gt;</description></item><item><title>'This Is Just How We Do Things Now': The Quiet Collapse of Standards</title><link>https://jayschmidt.us/blog/deviancy-normalization/</link><pubDate>Fri, 23 May 2025 12:13:45 -0600</pubDate><guid>https://jayschmidt.us/blog/deviancy-normalization/</guid><description>&lt;p&gt;Most cultural disasters don’t start with a bang. They start with a whisper.&lt;/p&gt;
&lt;p&gt;A company has a policy: all code must be reviewed before deployment. Anyone who works in tech knows this drill. Despite the grumbling about “slow processes,” it&amp;rsquo;s a good policy that helps reduce bugs, improve quality, and share knowledge.&lt;/p&gt;
&lt;p&gt;But one day, a team is under pressure to ship. They’re running late, and (as far as they are concerned) the code is solid. So they decide to skip the review, “just this once.”&lt;/p&gt;</description></item><item><title>Find a New Band</title><link>https://jayschmidt.us/blog/band/</link><pubDate>Tue, 13 May 2025 07:59:18 -0600</pubDate><guid>https://jayschmidt.us/blog/band/</guid><description>&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/band/img.png"
 alt="Sting as Feyd in Dune (1984) - by Universal Pictures" width="600"&gt;
&lt;/figure&gt;

&lt;p&gt;A former guitar teacher of mine once told me, &lt;em&gt;“If you’re the best player in the band, it’s time to find a new band.”&lt;/em&gt; His point was simple: growth requires friction. If no one around you is pushing you, challenging you, or showing you what’s possible beyond your current limits, it’s easy to fall into the trap of thinking you’ve made it.&lt;/p&gt;</description></item><item><title>The Fence We Keep Ignoring</title><link>https://jayschmidt.us/blog/chesterton/</link><pubDate>Fri, 21 Feb 2025 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/chesterton/</guid><description>&lt;p&gt;&lt;figure class="center"&gt;&lt;img src="https://jayschmidt.us/blog/chesterton/img.png"
 alt="Fence - leave it as you found it" width="600"&gt;
&lt;/figure&gt;

During my master’s program, I was introduced to the concept of &lt;em&gt;Chesterton&amp;rsquo;s Fence&lt;/em&gt;, first described by writer and philosopher G.K. Chesterton in 1929. The concept is simple yet profound:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Imagine you come across a fence built across a road. You don’t see any immediate purpose for it, so you propose to remove it. However, before doing so, you are challenged to first understand why it was put there in the first place. Only after you’ve understood its purpose can you make an informed decision about whether or not to remove it.&amp;rdquo;&lt;/p&gt;</description></item><item><title>The Parable of the Slow-Boiled Frog</title><link>https://jayschmidt.us/blog/frog/</link><pubDate>Mon, 23 Dec 2024 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/frog/</guid><description>&lt;p&gt;There’s a well-known parable about a frog placed in a pot of cool water. At first, the frog is comfortable, unaware as the heat is slowly turned up. By the time the water reaches a boil, the frog doesn’t realize the danger until it’s too late.&lt;/p&gt;
&lt;p&gt;In this context, we use this parable as a thought experiment, with no frogs being harmed in the process. Using it this way allows us to focus on the metaphorical lessons about gradual change and its unnoticed dangers, rather than the literal details, which might detract from its broader relevance.&lt;/p&gt;</description></item><item><title>Managing Kubernetes Contexts with kubectx</title><link>https://jayschmidt.us/blog/kubectx/</link><pubDate>Tue, 13 Aug 2024 13:20:01 -0600</pubDate><guid>https://jayschmidt.us/blog/kubectx/</guid><description>&lt;p&gt;I&amp;rsquo;m doing a bit more work in Kubernetes again, which means switching between a number of ephemeral clusters. I&amp;rsquo;ve tried a number of different ways to do this in the past, but I keep coming back to &lt;code&gt;kubectx&lt;/code&gt; and &lt;code&gt;fzf&lt;/code&gt; as the easiest way.&lt;/p&gt;
&lt;p&gt;To be clear, there are a great number of ways to go about this, of which this is but one very opinionated approach created by someone who is fine with &amp;ldquo;good enough&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Mirroring Github to Gitlab...Without Premium</title><link>https://jayschmidt.us/blog/github-gitlab/</link><pubDate>Thu, 18 Apr 2024 13:20:01 -0600</pubDate><guid>https://jayschmidt.us/blog/github-gitlab/</guid><description>&lt;h3 id="introduction" class="anchor-link"&gt;&lt;a href="#introduction"&gt;Introduction&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In the world of software development, synchronization and backup of code repositories across different platforms are vital for robust development practices. Many organizations use GitHub for source control while leveraging GitLab for CI/CD and project management. However, GitLab&amp;rsquo;s premium feature—repository mirroring—comes with a significant cost: $348 per year. This cost can be prohibitive for smaller teams, startups, or individual developers who require mirroring functionality for one-off tests or limited-time projects. This blog post outlines a practical solution that allows effective repository mirroring from GitHub to GitLab without the need for a premium subscription.&lt;/p&gt;</description></item><item><title>Of NGINX and Pianos</title><link>https://jayschmidt.us/blog/nginx-piano/</link><pubDate>Mon, 15 Apr 2024 13:20:01 -0600</pubDate><guid>https://jayschmidt.us/blog/nginx-piano/</guid><description>&lt;h3 id="introduction" class="anchor-link"&gt;&lt;a href="#introduction"&gt;Introduction&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve worked with NGINX for the bulk of my career, with my first use case being the replacement of Apache on a customer&amp;rsquo;s server to help improve their web throughput. Since then, I&amp;rsquo;ve installed, recommended, used, and configured more NGINX instances than I can remember. So logically, I wound up working for NGINX for a part of my career.&lt;/p&gt;
&lt;p&gt;With NGINX being a part of the wider F5 organization, it was necessary to explain the &lt;em&gt;what, how,&lt;/em&gt; and &lt;em&gt;why&lt;/em&gt; of NGINX to a wider audience. My initial drafts likened NGINX to a toilet, but reviewers noted that perhaps something less utilitarian would be more appropriate. So, I present to you &amp;lsquo;NGINX as a Piano&amp;rsquo;, with thanks to Elijah for both the inspiration and the numerous conversations revolving around this analogy.&lt;/p&gt;</description></item><item><title>Cleaner Dockerfiles with HEREDOC</title><link>https://jayschmidt.us/blog/heredoc/</link><pubDate>Wed, 07 Feb 2024 13:20:01 -0600</pubDate><guid>https://jayschmidt.us/blog/heredoc/</guid><description>&lt;p&gt;Today I want to talk about Dockerfiles. As a long time Docker user I&amp;rsquo;ve been
writing, maintaining, and debugging these files for a decade. One of the
downsides of being so familiar with Dockerfiles is that I often forget to
check on new features and enhancements that have been added.
Making the assumption that I&amp;rsquo;m not the only one who forgets,
today I want to talk about HEREDOC support in Docker and how it can help to
clean up your Dockerfiles. We&amp;rsquo;ll be looking at this via a common scenario -
building a custom base image.&lt;/p&gt;</description></item><item><title>Adding Trivy to Harbor</title><link>https://jayschmidt.us/blog/harbortrivy/</link><pubDate>Mon, 22 Jan 2024 13:20:01 -0600</pubDate><guid>https://jayschmidt.us/blog/harbortrivy/</guid><description>&lt;p&gt;In the &lt;a href="https://jayschmidt.us/blog/harbor"&gt;last post&lt;/a&gt;, we installed Harbor and
discussed some of the features that it provides. In this post, we will be
adding Trivy to Harbor to provide vulnerability scanning for our container
images.&lt;/p&gt;

&lt;h2 id="what-is-trivy" class="anchor-link"&gt;&lt;a href="#what-is-trivy"&gt;What is Trivy?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Trivy is an open-source tool for scanning vulnerabilities in container images, file systems, and Git repositories. It&amp;rsquo;s known for its simplicity and ease of use, and it&amp;rsquo;s widely used in the world of container security. Developed by Aqua Security, Trivy is designed to detect vulnerabilities in operating system packages (like Alpine, RHEL, Debian) and application dependencies (like RubyGems, npm, and Pipenv).&lt;/p&gt;</description></item><item><title>Setting up Harbor as a Local Docker Registry</title><link>https://jayschmidt.us/blog/harbor/</link><pubDate>Sun, 07 Jan 2024 13:20:01 -0600</pubDate><guid>https://jayschmidt.us/blog/harbor/</guid><description>&lt;h2 id="what-is-a-caching-registry" class="anchor-link"&gt;&lt;a href="#what-is-a-caching-registry"&gt;What is a Caching Registry?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A Caching, Proxy Cache, or Pull Through Cache is an application that runs inside your local network and exposes a OCI compliant endpoint for developers to issue image pull requests against. The Caching Registry checks to see if the requested image is stored locally, and if so it serves that image. However, if the image does not exist in the local store a call is made to the backend registry and the image is pulled first to the caching registry and then provided to the client.&lt;/p&gt;</description></item><item><title>Installing the Official NGINX OSS via Ansible Playbook</title><link>https://jayschmidt.us/blog/nginx-ansible/</link><pubDate>Sun, 10 Sep 2023 13:20:01 -0600</pubDate><guid>https://jayschmidt.us/blog/nginx-ansible/</guid><description>&lt;p&gt;In my &lt;a href="https://jayschmidt.us/blog/nginx-install/"&gt;last blog post&lt;/a&gt;, I discussed how you can install
the official NGINX OSS package via script. Today, we&amp;rsquo;re going to walk through the steps required
to leverage &lt;a href="https://www.ansible.com/"&gt;Ansible&lt;/a&gt; and the &lt;a href="https://github.com/nginxinc/ansible-collection-nginx"&gt;NGINX Ansible Collection&lt;/a&gt; to easily install, configure, upgrade, and remove NGINX.&lt;/p&gt;

&lt;h3 id="requirements--caveats" class="anchor-link"&gt;&lt;a href="#requirements--caveats"&gt;Requirements / Caveats&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This deployment uses Ubuntu and assumes that the user running all the commands is named &lt;code&gt;ubuntu&lt;/code&gt; and has full passwordless &lt;code&gt;sudo&lt;/code&gt; access. You can change this if you want, but that&amp;rsquo;s going to require some other bits being changed.&lt;/p&gt;</description></item><item><title>Installing the Official NGINX OSS Package via Script</title><link>https://jayschmidt.us/blog/nginx-install/</link><pubDate>Mon, 07 Aug 2023 13:20:01 -0600</pubDate><guid>https://jayschmidt.us/blog/nginx-install/</guid><description>&lt;p&gt;This blog post will explore the benefits of using the official NGINX OSS package and walk you through the installation
process. Additionally, I&amp;rsquo;ll share a script I created for installing and setting up NGINX, offering you a handy tool to
simplify the installation process for those who prefer using a script. Ansible aficionados will be happy to know that
I&amp;rsquo;ll be covering how to use the amazing &lt;a href="https://galaxy.ansible.com/nginxinc/nginx_core"&gt;Ansible Collection for NGINX&lt;/a&gt;
for NGINX installation, configuration, and upgrades in the next blog post.&lt;/p&gt;</description></item><item><title>Breaking Down Silos</title><link>https://jayschmidt.us/blog/crewresourcemgmt/</link><pubDate>Tue, 01 Aug 2023 10:32:41 -0600</pubDate><guid>https://jayschmidt.us/blog/crewresourcemgmt/</guid><description>&lt;blockquote&gt;
&lt;p&gt;“Communication is key.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We all say it. But how often do we actually mean it? And how often do we hide behind it?&lt;/p&gt;
&lt;p&gt;Communication is the platitude of choice when we either don&amp;rsquo;t know the real issue, or when we want to avoid confronting the real issues. It&amp;rsquo;s become the default diagnosis for failure, and one that unfortunately is often uncritically accepted.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s also an easy way to punch down. Most of us know that when we hear this term it&amp;rsquo;s code for: “someone lower on the org chart should have spoken up sooner.”&lt;/p&gt;</description></item><item><title>Proxmox LXC and Terraform</title><link>https://jayschmidt.us/blog/proxmoxctterraform/</link><pubDate>Fri, 14 Jul 2023 21:14:57 -0600</pubDate><guid>https://jayschmidt.us/blog/proxmoxctterraform/</guid><description>&lt;p&gt;In an &lt;a href="https://jayschmidt.us/blog/proxmoxterraform/"&gt;earlier post&lt;/a&gt;, I provided details on how I use terraform to
manage virtual machines in my Proxmox installation. This time, we&amp;rsquo;re going to deploy
&lt;a href="https://pve.proxmox.com/wiki/Linux_Container"&gt;Linux Containers&lt;/a&gt; to &lt;a href="https://proxmox.com"&gt;Proxmox&lt;/a&gt; via Terraform.&lt;/p&gt;
&lt;p&gt;Why LXC? For workloads that do not require a full virtual machine, LXC provides a lightweight virtualization technology
that uses the host&amp;rsquo;s kernel This makes LXC containers more resource efficient, faster to start, and more performant than
a virtual machine. Each container operates in its own namespace, offering application isolation with its own network
stack, process space, and mount points.&lt;/p&gt;</description></item><item><title>Setting Up Devboxen With Ansible</title><link>https://jayschmidt.us/blog/asdfansible/</link><pubDate>Thu, 13 Jul 2023 07:59:18 -0600</pubDate><guid>https://jayschmidt.us/blog/asdfansible/</guid><description>&lt;p&gt;If you&amp;rsquo;ve not used it,&lt;a href="https://asdf-vm.com/"&gt;ASDF&lt;/a&gt; is a tool version manager that helps ensure that you - and your teams -
are all using the same tool version. It is a simple and elegant solution to the problem that nearly all development
teams find themselves in, where different microservices (or different projects) all have differing versions of tooling
that they have been written with. ASDF cuts through that problem by allowing you to define a &lt;code&gt;.tool-versions&lt;/code&gt; file on
a per-directory basis to keep everyone on the same version.&lt;/p&gt;</description></item><item><title>Proxmox VMs and Terraform</title><link>https://jayschmidt.us/blog/proxmoxterraform/</link><pubDate>Wed, 05 Jul 2023 09:58:01 -0600</pubDate><guid>https://jayschmidt.us/blog/proxmoxterraform/</guid><description>&lt;p&gt;In the last &lt;a href="https://jayschmidt.us/blog/proxmoxtemplates/"&gt;post&lt;/a&gt; I provided a
bash script that can be used to build proxmox templates for all of the current
Ubuntu LTS releases. Today, I&amp;rsquo;m going to be using those templates as part of a
terraform workflow to deploy VMs onto my Proxmox infrastructure.&lt;/p&gt;
&lt;p&gt;There are a number of terraform providers for Proxmox, but for my purposes I
chose to use the &lt;a href="https://registry.terraform.io/providers/Telmate/proxmox/latest/docs"&gt;Telmate&lt;/a&gt;
Proxmox provider. I did not put a lot of research into this process, so there
is a good chance that there may be a better solution; I based my choice
primarily on the download stats.&lt;/p&gt;</description></item><item><title>Building Proxmox Templates via Script</title><link>https://jayschmidt.us/blog/proxmoxtemplates/</link><pubDate>Sun, 25 Jun 2023 15:47:08 -0600</pubDate><guid>https://jayschmidt.us/blog/proxmoxtemplates/</guid><description>&lt;p&gt;As someone who frequently spins up and tears down virtual machines for both professional and personal projects, I&amp;rsquo;ve tried my fair share of virtualization platforms. From Joyent &lt;a href="https://github.com/TritonDataCenter"&gt;Triton&lt;/a&gt; and &lt;a href="https://www.vmware.com"&gt;VMWare&lt;/a&gt; to Rancher &lt;a href="https://www.rancher.com/products/harvester"&gt;Harvester&lt;/a&gt; and &lt;a href="https://www.virtualbox.org/"&gt;Virtualbox&lt;/a&gt;, I&amp;rsquo;ve explored a variety of options. However, I keep coming back to &lt;a href="https://proxmox.com"&gt;Proxmox&lt;/a&gt; Why? Because it&amp;rsquo;s the simplest way for me to manage my VMs without having to be a full-time administrator.&lt;/p&gt;

&lt;h2 id="why-proxmox" class="anchor-link"&gt;&lt;a href="#why-proxmox"&gt;Why Proxmox?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Proxmox, coupled with its integrated &lt;a href="https://ceph.com"&gt;Ceph&lt;/a&gt; block storage allows me to focus on the tasks that need my attention rather than managing the underlying virtualization technology. It&amp;rsquo;s a powerful, open-source server virtualization management solution that allows you to virtualize both Linux and Windows application workloads.&lt;/p&gt;</description></item><item><title>Convergent and Divergent Thinking</title><link>https://jayschmidt.us/blog/thinkingmodes/</link><pubDate>Thu, 22 Jun 2023 15:47:08 -0600</pubDate><guid>https://jayschmidt.us/blog/thinkingmodes/</guid><description>&lt;p&gt;One of the main themes of my organizational leadership curriculum was the concept of design thinking; this is a way of problem solving that follows four key steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fully understand the problem.&lt;/li&gt;
&lt;li&gt;Explore a wide range of possible solutions.&lt;/li&gt;
&lt;li&gt;Iterate through prototyping and testing.&lt;/li&gt;
&lt;li&gt;Implement through your normal methodology.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A component of this dive into design thinking that I found interesting was the use of two modes of thinking - convergent thinking and divergent thinking - to work through those four steps. What follows is a post I wrote for our cohort discussions on the topic of these modes.&lt;/p&gt;</description></item><item><title>Systems and the Cobra Effect</title><link>https://jayschmidt.us/blog/cobra-effect/</link><pubDate>Wed, 14 Jun 2023 12:13:45 -0600</pubDate><guid>https://jayschmidt.us/blog/cobra-effect/</guid><description>&lt;p&gt;One thing that has been on my mind a lot recently is systems theory and how systems behave as change happens. This took me back to this post from one of my courses from my masters program; it generated a good deal of discussion including other examples from my classmates.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Early in my career, I found myself in the middle of a fascinating situation that gave me a real-life lesson on systems theory. I was working as a consultant, responsible for the technology supporting a cold-roll steel producer&amp;rsquo;s manufacturing control system. Now, putting together this system was a marathon, not a sprint, and involved a ton of back and forth between management and the union.&lt;/p&gt;</description></item><item><title>Umpires</title><link>https://jayschmidt.us/blog/umpires/</link><pubDate>Tue, 13 Jun 2023 03:32:59 -0600</pubDate><guid>https://jayschmidt.us/blog/umpires/</guid><description>&lt;p&gt;Back during my baseball coaching days I was asked to come up with a &amp;ldquo;cheat sheet&amp;rdquo; to give to the umpires that worked our organizations games. The umpires were mostly high school baseball players, and anyone who has ever been to a youth sporting event understands how difficult coaches and parents can be. My goal in writing this was to help provide them with a blueprint for how to interact with the coaches, the parents, and the players.&lt;/p&gt;</description></item><item><title>Situational Awareness</title><link>https://jayschmidt.us/blog/situational/</link><pubDate>Mon, 12 Jun 2023 11:51:23 -0600</pubDate><guid>https://jayschmidt.us/blog/situational/</guid><description>&lt;p&gt;While cleaning up some old files I found several documents that date
back to when I coached Alex&amp;rsquo;s baseball team. The two other coaches
were very good at the &amp;ldquo;how you hit/catch/throw&amp;rdquo; so I tried to work
on the mental side of the game - the &amp;ldquo;why&amp;rdquo;. As Yogi Berra famously said,
&amp;ldquo;Baseball is 90 per cent mental. The other half is physical.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Although this writeup is specific to baseball and written for 7th
graders, the theme of situational awareness transcends baseball. The
difficulty is in the practice. Baseball is a very structured game, which
enables one to say &amp;ldquo;if the current state is X, and Y happens, do Z&amp;rdquo;.
This is not the case in day to day life, and I&amp;rsquo;ll hold up my hand to
not being situationally aware at times (which my wife will wholeheartedly
confirm). That said, it is a good aspirational goal to have.&lt;/p&gt;</description></item><item><title>Back Online</title><link>https://jayschmidt.us/blog/backonline/</link><pubDate>Fri, 09 Jun 2023 11:48:48 -0600</pubDate><guid>https://jayschmidt.us/blog/backonline/</guid><description>&lt;p&gt;I&amp;rsquo;ve been pretty busy over the last five or so years&amp;hellip;meeting the woman of my dreams, having two more amazing children to join my son Alex, getting married, dealing with a pandemic, getting a masters&amp;hellip;it has been a lot.&lt;/p&gt;
&lt;p&gt;With the amount of work I&amp;rsquo;ve done the last two years to evangelize open source software and modern applications it seems like the time to step back, collect a list of the work I&amp;rsquo;ve done to date, and rework some of my lessons learned from notes into posts to (hopefully) help others not make the same mistakes I have.&lt;/p&gt;</description></item><item><title/><link>https://jayschmidt.us/blog/garden-path/cognitive-process-flowchart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jayschmidt.us/blog/garden-path/cognitive-process-flowchart/</guid><description>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
 &lt;meta charset="UTF-8"&gt;
 &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
 &lt;title&gt;Garden Path Thinking: Cognitive Process&lt;/title&gt;
 &lt;style&gt;
 body {
 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
 max-width: 1000px;
 margin: 40px auto;
 padding: 20px;
 background: #fff;
 color: #333;
 }
 h1 {
 border-bottom: 3px solid #333;
 padding-bottom: 10px;
 }
 .flowchart {
 margin: 40px 0;
 }
 .flow-step {
 margin: 20px 0;
 padding: 25px;
 border: 2px solid #333;
 position: relative;
 background: #fafafa;
 }
 .flow-step.decision {
 border-color: #1976d2;
 background: #e3f2fd;
 }
 .flow-step.trap {
 border-color: #d32f2f;
 background: #ffebee;
 }
 .flow-step.escape {
 border-color: #388e3c;
 background: #e8f5e9;
 }
 .step-number {
 position: absolute;
 top: -15px;
 left: 20px;
 background: white;
 padding: 0 10px;
 font-weight: bold;
 font-size: 14px;
 }
 .step-title {
 font-size: 18px;
 font-weight: bold;
 margin-bottom: 10px;
 }
 .step-desc {
 margin: 10px 0;
 }
 .example {
 font-style: italic;
 color: #666;
 margin-top: 10px;
 padding-left: 15px;
 border-left: 3px solid #ddd;
 }
 .arrow {
 text-align: center;
 font-size: 24px;
 margin: 10px 0;
 color: #666;
 }
 .branch-container {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 20px;
 margin: 20px 0;
 }
 .cognitive-traits {
 margin: 30px 0;
 padding: 20px;
 border: 2px solid #333;
 background: #f9f9f9;
 }
 .traits-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
 gap: 15px;
 margin-top: 15px;
 }
 .trait {
 padding: 15px;
 background: white;
 border: 1px solid #ddd;
 }
 .trait-title {
 font-weight: bold;
 margin-bottom: 5px;
 }
 .mitigation-box {
 margin: 30px 0;
 padding: 25px;
 background: #e8f5e9;
 border-left: 5px solid #388e3c;
 }
 .mitigation-box h3 {
 margin-top: 0;
 color: #2e7d32;
 }
 .mitigation-list {
 list-style-type: none;
 padding: 0;
 }
 .mitigation-list li {
 padding: 10px 0 10px 30px;
 position: relative;
 }
 .mitigation-list li::before {
 content: '✓';
 position: absolute;
 left: 0;
 font-weight: bold;
 color: #388e3c;
 font-size: 18px;
 }
 &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
 &lt;h1&gt;Garden Path Thinking: The Cognitive Process&lt;/h1&gt;
 &lt;p&gt;&lt;em&gt;How our brains lead us down reasonable paths to unreasonable conclusions&lt;/em&gt;&lt;/p&gt;</description></item><item><title/><link>https://jayschmidt.us/blog/garden-path/garden-path-sentence-diagram/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jayschmidt.us/blog/garden-path/garden-path-sentence-diagram/</guid><description>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
 &lt;meta charset="UTF-8"&gt;
 &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
 &lt;title&gt;Garden Path Sentence Breakdown&lt;/title&gt;
 &lt;style&gt;
 body {
 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
 max-width: 800px;
 margin: 40px auto;
 padding: 20px;
 background: #fff;
 color: #333;
 }
 .sentence-box {
 border: 2px solid #333;
 padding: 30px;
 margin: 20px 0;
 background: #fafafa;
 }
 .sentence {
 font-size: 24px;
 font-weight: bold;
 margin-bottom: 30px;
 text-align: center;
 }
 .interpretation {
 margin: 20px 0;
 padding: 20px;
 border-left: 4px solid #666;
 }
 .wrong {
 border-left-color: #d32f2f;
 background: #ffebee;
 }
 .right {
 border-left-color: #388e3c;
 background: #e8f5e9;
 }
 .label {
 font-size: 12px;
 text-transform: uppercase;
 letter-spacing: 1px;
 margin-bottom: 10px;
 font-weight: bold;
 }
 .parse {
 font-family: 'Courier New', monospace;
 margin: 10px 0;
 }
 .arrow {
 font-size: 24px;
 text-align: center;
 margin: 10px 0;
 }
 &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
 &lt;h1&gt;Garden Path Sentence: "The horse raced past the barn fell."&lt;/h1&gt;
 
 &lt;div class="sentence-box"&gt;
 &lt;div class="sentence"&gt;The horse raced past the barn fell.&lt;/div&gt;
 
 &lt;div class="interpretation wrong"&gt;
 &lt;div class="label"&gt;❌ Initial (Incorrect) Interpretation&lt;/div&gt;
 &lt;div class="parse"&gt;[The horse] = SUBJECT (noun phrase)&lt;/div&gt;
 &lt;div class="parse"&gt;[raced] = MAIN VERB (past tense)&lt;/div&gt;
 &lt;div class="parse"&gt;[past the barn] = PREPOSITIONAL PHRASE&lt;/div&gt;
 &lt;div class="parse"&gt;[fell] = ??? &lt;strong&gt;← CONFUSION&lt;/strong&gt;&lt;/div&gt;
 &lt;p style="margin-top: 15px; font-style: italic;"&gt;
 Brain expects: "The horse raced past the barn"&lt;br&gt;
 Gets: "...fell" — Does not compute!
 &lt;/p&gt;</description></item><item><title/><link>https://jayschmidt.us/blog/garden-path/garden-path-thinking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jayschmidt.us/blog/garden-path/garden-path-thinking/</guid><description>&lt;h1 id="garden-path-thinking-when-logic-leads-us-astray" class="anchor-link"&gt;&lt;a href="#garden-path-thinking-when-logic-leads-us-astray"&gt;Garden Path Thinking: When Logic Leads Us Astray&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;How our brains follow reasonable paths to unreasonable conclusions&lt;/em&gt;&lt;/p&gt;

&lt;h2 id="the-trap-hidden-in-plain-sight" class="anchor-link"&gt;&lt;a href="#the-trap-hidden-in-plain-sight"&gt;The Trap Hidden in Plain Sight&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Read this sentence carefully: &lt;strong&gt;&amp;ldquo;The horse raced past the barn fell.&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Did you stumble? Most people do. Your brain confidently started down one path of interpretation—seeing &amp;ldquo;the horse&amp;rdquo; as the subject and &amp;ldquo;raced&amp;rdquo; as the main verb—only to crash into that final word &amp;ldquo;fell&amp;rdquo; like a ship hitting hidden rocks in the fog.&lt;/p&gt;</description></item><item><title/><link>https://jayschmidt.us/blog/garden-path/honda-point-timeline/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jayschmidt.us/blog/garden-path/honda-point-timeline/</guid><description>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
 &lt;meta charset="UTF-8"&gt;
 &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
 &lt;title&gt;Honda Point Disaster: Garden Path in Navigation&lt;/title&gt;
 &lt;style&gt;
 body {
 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
 max-width: 900px;
 margin: 40px auto;
 padding: 20px;
 background: #fff;
 color: #333;
 }
 h1 {
 border-bottom: 3px solid #333;
 padding-bottom: 10px;
 }
 .timeline {
 position: relative;
 margin: 40px 0;
 }
 .timeline-item {
 margin: 30px 0;
 padding-left: 50px;
 position: relative;
 }
 .timeline-item::before {
 content: '';
 position: absolute;
 left: 15px;
 top: 0;
 bottom: -30px;
 width: 2px;
 background: #ccc;
 }
 .timeline-item:last-child::before {
 display: none;
 }
 .timeline-dot {
 position: absolute;
 left: 8px;
 top: 5px;
 width: 16px;
 height: 16px;
 border-radius: 50%;
 background: #666;
 border: 3px solid #fff;
 box-shadow: 0 0 0 2px #666;
 }
 .disaster .timeline-dot {
 background: #d32f2f;
 box-shadow: 0 0 0 2px #d32f2f;
 }
 .time {
 font-family: 'Courier New', monospace;
 font-weight: bold;
 margin-bottom: 5px;
 }
 .logic-label {
 display: inline-block;
 background: #e0e0e0;
 padding: 2px 8px;
 font-size: 11px;
 border-radius: 3px;
 margin-left: 10px;
 text-transform: uppercase;
 letter-spacing: 0.5px;
 }
 .disaster .logic-label {
 background: #d32f2f;
 color: white;
 }
 .stats-box {
 border: 2px solid #333;
 padding: 20px;
 margin: 30px 0;
 background: #fafafa;
 }
 .stats-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
 gap: 20px;
 margin-top: 15px;
 }
 .stat {
 text-align: center;
 }
 .stat-number {
 font-size: 36px;
 font-weight: bold;
 color: #d32f2f;
 }
 .stat-label {
 font-size: 14px;
 text-transform: uppercase;
 letter-spacing: 1px;
 margin-top: 5px;
 }
 .parallel {
 margin: 30px 0;
 padding: 20px;
 border: 1px solid #ddd;
 background: #f9f9f9;
 }
 .parallel h3 {
 margin-top: 0;
 }
 .comparison {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 20px;
 margin-top: 15px;
 }
 .comparison-item {
 padding: 15px;
 background: white;
 border: 1px solid #ddd;
 }
 &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
 &lt;h1&gt;Honda Point Disaster: September 8, 1923&lt;/h1&gt;
 &lt;p&gt;&lt;em&gt;How logical navigation led to catastrophe&lt;/em&gt;&lt;/p&gt;</description></item><item><title/><link>https://jayschmidt.us/blog/garden-path/readme/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jayschmidt.us/blog/garden-path/readme/</guid><description>&lt;h1 id="garden-path-thinking-blog-post-package" class="anchor-link"&gt;&lt;a href="#garden-path-thinking-blog-post-package"&gt;Garden Path Thinking Blog Post Package&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This package contains a blog post about garden path thinking with supporting graphics.&lt;/p&gt;

&lt;h2 id="contents" class="anchor-link"&gt;&lt;a href="#contents"&gt;Contents&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;garden-path-thinking.md&lt;/strong&gt; - Main blog post in Markdown format&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;garden-path-sentence-diagram.html&lt;/strong&gt; - Interactive visual breakdown of garden path sentences&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;honda-point-timeline.html&lt;/strong&gt; - Timeline visualization of the 1923 naval disaster&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;cognitive-process-flowchart.html&lt;/strong&gt; - Flowchart showing how garden path thinking works&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;README.md&lt;/strong&gt; - This file&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="usage" class="anchor-link"&gt;&lt;a href="#usage"&gt;Usage&lt;/a&gt;&lt;/h2&gt;

&lt;h3 id="blog-post" class="anchor-link"&gt;&lt;a href="#blog-post"&gt;Blog Post&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The markdown file can be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Converted to HTML for your static site&lt;/li&gt;
&lt;li&gt;Imported into your CMS&lt;/li&gt;
&lt;li&gt;Edited in any markdown editor&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="graphics" class="anchor-link"&gt;&lt;a href="#graphics"&gt;Graphics&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The HTML files are standalone and can be:&lt;/p&gt;</description></item></channel></rss>