<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Prairie Grade Systems</title><link>https://prairiegrade.com/</link><description>Recent content on Prairie Grade Systems</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 12 Apr 2026 08:35:20 -0500</lastBuildDate><atom:link href="https://prairiegrade.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Finklestein Revisited</title><link>https://prairiegrade.com/posts/finklestein-revisited/</link><pubDate>Sun, 12 Apr 2026 08:35:20 -0500</pubDate><guid>https://prairiegrade.com/posts/finklestein-revisited/</guid><description>&lt;p>It&amp;rsquo;s been several months since I posted about &lt;a href="posts/immaturity-model/">Finkelstein&amp;rsquo;s Immaturity Model&lt;/a> and I think it&amp;rsquo;s worth revisiting some of the generalizations I made at the time regarding the model&amp;rsquo;s take on &amp;ldquo;autoprogramming&amp;rdquo;.&amp;quot;&lt;/p>
&lt;p>What is true as of Spring 2026:&lt;/p>
&lt;ul>
&lt;li>Bad product decisions lead to bad products&lt;/li>
&lt;li>LLMs optimize local maxima&lt;/li>
&lt;li>LLMs revert to the mean&lt;/li>
&lt;/ul>
&lt;p>What has changed since August 2025:&lt;/p>
&lt;ul>
&lt;li>The bad products are especially beautiful and well-designed&lt;/li>
&lt;li>I spend more time scrutinizing apps and systems and WAY less time scrutinizing code&lt;/li>
&lt;/ul>
&lt;p>I probably didn&amp;rsquo;t to scrutinize code in mid-2025, either, but to do so felt genuinely negligent, given the volume of very public bad outcomes being reported at the time.&lt;/p></description></item><item><title/><link>https://prairiegrade.com/posts/jan-2026-devlog/</link><pubDate>Sun, 18 Jan 2026 11:33:38 -0600</pubDate><guid>https://prairiegrade.com/posts/jan-2026-devlog/</guid><description>&lt;h2 class="heading" id="wed-jan-21">
 Wed Jan 21
 &lt;a class="anchor" href="#wed-jan-21">#&lt;/a>
&lt;/h2>
&lt;h3 class="heading" id="loss-functions-vs-confidence">
 Loss Functions vs Confidence
 &lt;a class="anchor" href="#loss-functions-vs-confidence">#&lt;/a>
&lt;/h3>
&lt;p>We&amp;rsquo;ve been running into issues trying to assess &amp;ldquo;accuracy&amp;rdquo; with things in the
form of a confidence score. The issue is that the numbers wind up not making
sense as a scalar.&lt;/p>
&lt;p>For example:&lt;/p>
&lt;p>We do OCR in a 2-phase process. We extract text from an image; this tends to
accurately capture all of the text chunks. A low confidence here means we&amp;rsquo;re
basically toast. The second step is just an LLM prompt to find certain pieces
of data like item numbers. In one case, a particular type of barcode image was
getting picked up as an item number, despite being a completely different type
of identifier, often reporting high confidence.&lt;/p></description></item><item><title>Finkelstein's Immaturity Model</title><link>https://prairiegrade.com/posts/immaturity-model/</link><pubDate>Wed, 20 Aug 2025 21:10:09 -0500</pubDate><guid>https://prairiegrade.com/posts/immaturity-model/</guid><description>&lt;blockquote>
&lt;p>Only by a miracle can a Level -2 organisation produce any useable software.
As Level -2 organisations rarely get beyond specification they pin their
hopes on automatically generating a program from that specification.&lt;/p>
&lt;ul>
&lt;li>Anthony Finkelstein, &lt;a href="http://www0.cs.ucl.ac.uk/staff/A.Finkelstein/papers/immaturity.pdf">Software Process Immaturity
Model&lt;/a>&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;p>











&lt;figure class="">
 &lt;div class="img-container" style="--w: 16; --h: 9;">
 &lt;img loading="lazy" alt="finkelstein&amp;rsquo;s software immaturity model" src="https://prairiegrade.com/immaturity-model.png" style="width: 100%; height: auto;">
 &lt;/div>
 &lt;div class="caption-container">
 &lt;figcaption> Finkelstein&amp;rsquo;s Immaturity Model &lt;/figcaption>
 &lt;/div>
 
&lt;/figure>
&lt;/p>
&lt;p>LLM&amp;rsquo;s are doing an impressive job of getting us from conversations to
requirements to specifications to code, but when I look at that diagram, I have
a visceral sense of what 2025&amp;rsquo;s Level -2 is.&lt;/p></description></item><item><title>Password Of The Day</title><link>https://prairiegrade.com/posts/pwod/</link><pubDate>Mon, 18 Aug 2025 10:11:17 -0500</pubDate><guid>https://prairiegrade.com/posts/pwod/</guid><description>&lt;blockquote>
&lt;p>So you&amp;rsquo;re telling me you wrote an unsalted, date-seeded, unsigned,
deterministic password generator?&lt;/p>
&lt;/blockquote>
&lt;p>In the initial interview, the client expressed a desire to modernize their
security. They wanted someone with multiple iterations of implementing other
types of authentication. MFA, passwordless device flows, SSO. I told them I was
pretty well versed in SAML and OIDC, and had some hard-earned experience doing
multi-generational technology leaps, and thought I might be well suited for the
task. I even worried that I had insulted the manager&amp;rsquo;s competence by claiming
Basic Auth is (still) a useful stepping stone in some scenarios.&lt;/p></description></item><item><title>People CMM is a Management Consulting Wet Dream</title><link>https://prairiegrade.com/posts/people-cmm/</link><pubDate>Sun, 17 Aug 2025 09:53:23 -0500</pubDate><guid>https://prairiegrade.com/posts/people-cmm/</guid><description>&lt;p>When I first heard that the SEI had a lesser-known counterpart to its
Capability Maturity Model (CMM) called People CMM (P-CMM), I had to &lt;a href="http://duckduckgo.com/?q=people-cmmi">DuckDuckGo
if it was a joke&lt;/a>.&lt;/p>
&lt;p>It isn&amp;rsquo;t, except in the same sense that CMM-I is a kind of cruel joke.&lt;/p>
&lt;p>P-CMM uses the same 5 levels as the SEI CMM to &amp;ldquo;systematically transform
chaotic workforce practices into strategic capability development&amp;rdquo; across 22
process area. Without any sense of irony, the process professes to &amp;ldquo;address
critical people issues in your organization&amp;rdquo;, then immediately dropping the
word &amp;ldquo;people&amp;rdquo; in favor of the terms &amp;ldquo;workforce&amp;rdquo; and &amp;ldquo;resource.&amp;rdquo;&lt;/p>
&lt;p>&lt;a href="https://prairiegrade.com/p-mmi-llm.mmd.svg">











&lt;figure class="">
 &lt;div class="img-container" style="--w: 16; --h: 9;">
 &lt;img loading="lazy" alt="p-cmm chart but spicy" src="https://prairiegrade.com/p-mmi-llm.mmd.svg" style="width: 100%; height: auto;">
 &lt;/div>
&lt;/figure>
&lt;/a>&lt;/p></description></item><item><title>Type 1 and Type 2 Consulting</title><link>https://prairiegrade.com/posts/two-types-of-consulting-engagements/</link><pubDate>Sat, 16 Aug 2025 07:29:44 -0500</pubDate><guid>https://prairiegrade.com/posts/two-types-of-consulting-engagements/</guid><description>&lt;p>I sat down to lambaste what I view as the outsourcing of thought by management
teams, but then I got to thinking about NIHS (&lt;a href="https://en.wikipedia.org/wiki/Not_invented_here">Not Invented Here
Syndrome&lt;/a>) in some
organizations, and the (often concurrent) complete outsourcing of thought to
consultants and hype mongers.&lt;/p>
&lt;p>Where is the balance of internal capability and external expertise?&lt;/p>
&lt;p>I think the scales get tipped one way or another by motivation. I&amp;rsquo;ve been
brought onboard for two broad categories of needs. I don&amp;rsquo;t have names for these
two groups, other than to say there are two of them.&lt;/p>
&lt;h2 class="heading" id="type-1">
 Type 1
 &lt;a class="anchor" href="#type-1">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>Temporarily fill capability gaps (development, security, infrastructure)&lt;/li>
&lt;li>Provide an unbiased opinion (is our approach viable?)&lt;/li>
&lt;li>Boost horsepower (new products and markets)&lt;/li>
&lt;li>Train and mentor&lt;/li>
&lt;li>App Rationalization (we have all these systems, they overlap in some places
but fail to integrate in others)&lt;/li>
&lt;/ul>
&lt;h2 class="heading" id="type-2">
 Type 2
 &lt;a class="anchor" href="#type-2">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>Provide plausible deniability (the consultants told us to do this thing we
were probably going to do anyways)&lt;/li>
&lt;li>Win arguments (appeals to authority)&lt;/li>
&lt;li>Compliance or regulatory requirements (ISO 9001, SOC 2 Type 2, privacy laws, HIPAA)&lt;/li>
&lt;li>Boost horsepower (tech debt logjams)&lt;/li>
&lt;li>Keep the ship afloat (SRE, SysOps, Duct Tape)&lt;/li>
&lt;li>Implement a hyped technology for marketing or shareholders (crypto, AI)&lt;/li>
&lt;li>Fix outsourcing disasters (we found a company that would provide us
developers for $40/hour, but communication has been bad and the system is
faulty)&lt;/li>
&lt;/ul></description></item><item><title>Protect Others' Self Esteem</title><link>https://prairiegrade.com/posts/protect-client-self-esteem/</link><pubDate>Fri, 15 Aug 2025 13:48:25 -0500</pubDate><guid>https://prairiegrade.com/posts/protect-client-self-esteem/</guid><description>&lt;blockquote>
&lt;p>Nobody ever calls me because things are going well.&lt;/p>
&lt;/blockquote>
&lt;p>When the Outsiders arrive (consultant, contractor, new guy, whatever), they
will be full of &amp;ldquo;best practices&amp;rdquo; and experiences codged from other, more
fanciful clients. They look around, horrified, because they have a keen eye for
the dysfunctional. I&amp;rsquo;ll be the first to admit, I see bad security,
architecture, process, design, whatever it is - and my first reaction is an
emotional one. Usually angry, usually self-righteous.&lt;/p></description></item><item><title>Solution Late</title><link>https://prairiegrade.com/posts/solution-late/</link><pubDate>Thu, 14 Aug 2025 20:31:44 -0500</pubDate><guid>https://prairiegrade.com/posts/solution-late/</guid><description>&lt;blockquote>
&lt;p>There is nothing quite so useless as doing with great efficiency something
that should not be done at all
— Peter Drucker&lt;/p>
&lt;/blockquote>
&lt;p>Despite what the godfather of management says, what the engineers want to talk
about is:&lt;/p>
&lt;ul>
&lt;li>Programming languages&lt;/li>
&lt;li>AI&lt;/li>
&lt;li>Cloud providers&lt;/li>
&lt;li>UI Libraries&lt;/li>
&lt;li>APIs&lt;/li>
&lt;li>DevOps&lt;/li>
&lt;li>Architecture patterns&lt;/li>
&lt;li>Databases&lt;/li>
&lt;/ul>
&lt;p>











&lt;figure class="">
 &lt;div class="img-container" style="--w: 16; --h: 9;">
 &lt;img loading="lazy" alt="I&amp;rsquo;m a people person damnit" src="https://prairiegrade.com/people-person.jpg" style="width: 100%; height: auto;">
 &lt;/div>
&lt;/figure>
&lt;/p>
&lt;p>What the customer doesn&amp;rsquo;t care about: (see above).&lt;/p>
&lt;p>The things in the list don&amp;rsquo;t even matter! They&amp;rsquo;re fungible. Given three
mainstream choices for programming language, AI, cloud, etc., literally any
combination of them is sufficient.&lt;/p></description></item><item><title>The NSO (No Sign On) Auth Scheme</title><link>https://prairiegrade.com/posts/no-sign-on/</link><pubDate>Wed, 13 Aug 2025 08:52:02 -0500</pubDate><guid>https://prairiegrade.com/posts/no-sign-on/</guid><description>&lt;blockquote>
&lt;p>In what is perhaps the most brilliant act of malicious compliance I have ever
witnessed&amp;hellip;&lt;/p>
&lt;/blockquote>
&lt;p>Early in my career I bullied my way into a de facto tech lead position on a
small software team in a pretty big organization.&lt;/p>
&lt;p>The most powerful and vocal of our users used our software passively as a kind
of combination dashboard and news aggregator. They had lots of passwords to
lots of systems, and they did not want another one for ours. They made this
very clear - not one more goddamned password.&lt;/p></description></item><item><title>Estimates, Targets, and Commitments</title><link>https://prairiegrade.com/posts/estimates-targets-commitments/</link><pubDate>Sun, 10 Aug 2025 15:05:13 -0500</pubDate><guid>https://prairiegrade.com/posts/estimates-targets-commitments/</guid><description>&lt;blockquote>
&lt;p>Businesses have important reasons to establish targets independent of
software estimates. But the fact that a target is desirable or even mandatory
does not necessarily mean that it is achievable.&lt;/p>
&lt;p>— &lt;a href="https://www.microsoftpressstore.com/articles/article.aspx?p=2191414">Steve McConnell, Software Estimation: Demystifying the Black
Art&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>We need precise language about what we &lt;em>want&lt;/em>, what we &lt;em>predict&lt;/em>, and what
we &lt;em>promise&lt;/em>.&lt;/p></description></item><item><title>Endless Yak Shave</title><link>https://prairiegrade.com/posts/ai-agent-yak-shaving/</link><pubDate>Sat, 09 Aug 2025 15:00:30 -0500</pubDate><guid>https://prairiegrade.com/posts/ai-agent-yak-shaving/</guid><description>&lt;p>Weekend plan: migrate authentication to OIDC. Four hours later I&amp;rsquo;m debugging if
I can symlink my way to success with Claude Code, Cursor, and Junie. GPT5 is
released, maybe that will just do this for me, time to re-enable my OpenAI
account and generate an API key. I learn each tool&amp;rsquo;s proprietary file formats
and locations, MCP configs, keyboard shortcuts, and licensing terms. Which one
has reasoning? What&amp;rsquo;s the TPS? Can I make it stop being such a goddamned
sycophant?&lt;/p></description></item><item><title>Syncretism</title><link>https://prairiegrade.com/posts/syncretism/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/syncretism/</guid><description>&lt;p>(noun) The combination of different beliefs, practices, or systems of thought
into a unified whole, often resulting in a hybrid approach that incorporates
elements from multiple sources.&lt;/p>
&lt;p>&lt;em>The team&amp;rsquo;s development methodology was pure syncretism, blending Agile sprints
with waterfall documentation requirements and lean startup experimentation.&lt;/em>&lt;/p></description></item><item><title>Attention Spans</title><link>https://prairiegrade.com/posts/attention-spans/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/attention-spans/</guid><description>&lt;blockquote>
&lt;p>&lt;em>Our nonscientific study suggests that, on average, business people can pay
attention for no more than thirty to sixty seconds without being distracted
by an unrelated thought.&lt;/em>&lt;/p>
&lt;p>— &lt;strong>The Trusted Advisor: 20th Anniversary Edition&lt;/strong> by David H. Maister,
Charles H. Green, et al.&lt;/p>
&lt;/blockquote></description></item><item><title>Duplication of Effort Principle</title><link>https://prairiegrade.com/posts/duplication-of-effort-principle/</link><pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/duplication-of-effort-principle/</guid><description>&lt;p>(noun) The theory that systems naturally evolve to perform the same function
through multiple independent mechanisms.&lt;/p>
&lt;p>&lt;em>The company maintained three separate customer databases across departments,
each serving identical purposes but requiring distinct maintenance procedures.&lt;/em>&lt;/p></description></item><item><title>Le Châtelier's Principle</title><link>https://prairiegrade.com/posts/le-chateliers-principle/</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/le-chateliers-principle/</guid><description>&lt;p>(noun) The tendency of systems to resist changes imposed upon them, returning to their original state when external pressure is removed.&lt;/p>
&lt;p>&lt;em>When the engineering team tried to implement daily standups, the organization gradually reverted to its previous informal communication patterns within a few months.&lt;/em>&lt;/p></description></item><item><title>Pleonasm</title><link>https://prairiegrade.com/posts/pleonasm/</link><pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/pleonasm/</guid><description>&lt;p>(noun) The use of more words than necessary to convey meaning; deliberate
redundancy in language&lt;/p>
&lt;p>&lt;em>Technically speaking, that expression is a pleonasm—a redundant
description—since all facts are, by definition, true.&lt;/em>&lt;/p></description></item><item><title>Spike Avoidance</title><link>https://prairiegrade.com/posts/spike-avoidance/</link><pubDate>Thu, 05 Jun 2025 12:36:00 -0500</pubDate><guid>https://prairiegrade.com/posts/spike-avoidance/</guid><description>&lt;p>A spike is a sudden, dramatic increase in demand, effort, or activity that far
exceeds normal operating levels. I consider spikes a threat to sustainability.&lt;/p>
&lt;blockquote>
&lt;p>Startup culture&amp;rsquo;s reliance on the veneer of coolness and a potential future
payoff as a way to fortify employees against these spikes will shape the
workforce, selecting for younger people who are more naive and risk tolerant.
The effects of this compound over time.&lt;/p>
&lt;/blockquote></description></item><item><title>Fail-Safe Theorem</title><link>https://prairiegrade.com/posts/fail-safe-theorem/</link><pubDate>Tue, 20 May 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/fail-safe-theorem/</guid><description>&lt;p>(noun) The theory that a system designed to fail safely will fail by failing to
fail safely.&lt;/p>
&lt;p>&lt;em>The payment system was timing out, so systems began to retry failed
transactions, compounding the original system overload.&lt;/em>&lt;/p></description></item><item><title>Smoothing Function</title><link>https://prairiegrade.com/posts/smoothing-functions/</link><pubDate>Wed, 23 Apr 2025 12:04:53 -0500</pubDate><guid>https://prairiegrade.com/posts/smoothing-functions/</guid><description>&lt;p>(noun) A mathematical function used to reduce noise, eliminate sharp
transitions, or approximate data with a continuous curve that follows the
general trend while reducing fluctuations.&lt;/p>
&lt;p>&lt;em>The machine learning model used smoothing functions to eliminate outliers from
the training data.&lt;/em>&lt;/p></description></item><item><title>Wadler's Law</title><link>https://prairiegrade.com/posts/wadlers-law/</link><pubDate>Sat, 12 Apr 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/wadlers-law/</guid><description>&lt;p>(noun) The principle that time spent discussing a language feature is inversely
proportional to its mathematical complexity.&lt;/p>
&lt;p>&lt;em>The committee spent three hours debating syntax highlighting colors but only
fifteen minutes on the type system&amp;rsquo;s soundness proof.&lt;/em>&lt;/p></description></item><item><title>Bikeshedding</title><link>https://prairiegrade.com/posts/bikeshedding/</link><pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/bikeshedding/</guid><description>&lt;p>(noun) The tendency to give disproportionate weight to trivial issues while
avoiding complex decisions that require expertise.&lt;/p>
&lt;p>&lt;em>The architecture review board spent forty minutes discussing button colors and
five minutes approving the database migration strategy.&lt;/em>&lt;/p></description></item><item><title>Comportment</title><link>https://prairiegrade.com/posts/comportment/</link><pubDate>Mon, 10 Mar 2025 11:15:45 -0500</pubDate><guid>https://prairiegrade.com/posts/comportment/</guid><description>&lt;p>(noun) The observable alignment of a system or actor with its stated promises,
constraints, and responsibilities.&lt;/p>
&lt;p>&lt;em>The team’s comportment during The Incident demonstrated candid communication
and accountability.&lt;/em>&lt;/p></description></item><item><title>Parkinson's Law of Triviality</title><link>https://prairiegrade.com/posts/parkinsons-law-of-triviality/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/parkinsons-law-of-triviality/</guid><description>&lt;p>(noun) The principle that members of an organization give disproportionate
weight to trivial issues compared to complex, consequential matters.&lt;/p>
&lt;p>&lt;em>The board spent two hours debating the color of the company newsletter header
while approving the merger proposal in twelve minutes.&lt;/em>&lt;/p></description></item><item><title>Lindy Effect</title><link>https://prairiegrade.com/posts/lindy-effect/</link><pubDate>Sat, 25 Jan 2025 13:38:43 -0600</pubDate><guid>https://prairiegrade.com/posts/lindy-effect/</guid><description>&lt;p>(noun) A theory that suggests the future life expectancy of certain
non-perishable things is proportional to their current age.&lt;/p>
&lt;p>&lt;em>Hate on &lt;a href="https://deprogrammaticaipsum.com/issue-83-php/">PHP&lt;/a> all you like,
the Lindy Effect tells me it&amp;rsquo;s not going away any time soon.&lt;/em>&lt;/p></description></item><item><title>Path Dependence</title><link>https://prairiegrade.com/posts/path-dependence/</link><pubDate>Wed, 11 Dec 2024 10:56:28 -0600</pubDate><guid>https://prairiegrade.com/posts/path-dependence/</guid><description>&lt;p>(noun) When the costs of reverting to a previous
state or switching to a different path become prohibitively high, even in the
face of better solutions.&lt;/p>
&lt;p>&lt;em>The company&amp;rsquo;s reliance on Progress 4GL illustrates path dependence—despite
newer technologies being available, decades of ABL development make switching
platforms economically unfeasible.&lt;/em>&lt;/p></description></item><item><title>Vestigial</title><link>https://prairiegrade.com/posts/vestigial/</link><pubDate>Mon, 28 Oct 2024 14:22:05 -0500</pubDate><guid>https://prairiegrade.com/posts/vestigial/</guid><description>&lt;p>(adj) Of, relating to, or constituting a vestige; remaining as a trace of
something that once existed but is no longer functional or necessary.&lt;/p>
&lt;p>&lt;em>The appendix is a vestigial organ in humans, serving no apparent purpose in
modern physiology.&lt;/em>&lt;/p></description></item><item><title>Chesterton's Fence</title><link>https://prairiegrade.com/posts/chestertons-fence/</link><pubDate>Sat, 14 Sep 2024 14:13:06 -0500</pubDate><guid>https://prairiegrade.com/posts/chestertons-fence/</guid><description>&lt;p>(noun) A principle that states one should not remove or change something (like
a fence, rule, or tradition) until they understand why it was put there in the
first place.&lt;/p>
&lt;p>&lt;em>Before the team decided to remove the legacy authentication system, they
invoked Chesterton&amp;rsquo;s fence and spent time understanding why it was originally
implemented that way.&lt;/em>&lt;/p></description></item><item><title>Yak Shaving</title><link>https://prairiegrade.com/posts/yak-shaving/</link><pubDate>Thu, 01 Aug 2024 14:55:46 -0500</pubDate><guid>https://prairiegrade.com/posts/yak-shaving/</guid><description>&lt;p>(noun) The seemingly endless series of prerequisite tasks that must be
completed before you can accomplish your original goal, often leading you far
away from what you initially set out to do.&lt;/p>
&lt;p>&lt;em>Sarah started by wanting to deploy a simple web app, but first she needed to
update her Docker configuration, which required upgrading her local
environment, which meant backing up her files, which led to organizing her
entire project structure—three hours later, she was still yak shaving instead
of deploying.&lt;/em>&lt;/p></description></item><item><title>Automated Commit Messages and Flow State</title><link>https://prairiegrade.com/posts/automated-commit-messages-and-flow-state/</link><pubDate>Tue, 18 Jun 2024 13:27:45 -0500</pubDate><guid>https://prairiegrade.com/posts/automated-commit-messages-and-flow-state/</guid><description>&lt;p>I recently came across &lt;a href="https://github.com/di-sukharev/opencommit">OpenCommit&lt;/a>, which claims to &amp;ldquo;generate commit messages with an LLM in 1 sec&amp;rdquo;. Here&amp;rsquo;s what&amp;rsquo;s good:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Helps maintain flow state&lt;/strong> - you can fire-and-forget and the messages are about as accurate as they&amp;rsquo;d be if a human wrote them&lt;/li>
&lt;li>Available on the command line, just &lt;code>oco&lt;/code>&lt;/li>
&lt;li>Works reasonably well with local models running via &lt;code>ollama serve&lt;/code>&lt;/li>
&lt;li>MIT Licensed&lt;/li>
&lt;/ul>
&lt;p>Regarding &amp;ldquo;flow&amp;rdquo;, pay attention the next time you write a commit message. Do you feel the context switch happening as you go from &amp;ldquo;doing&amp;rdquo; to &amp;ldquo;documenting&amp;rdquo;? I do, and I have aversion to that feeling.&lt;/p></description></item><item><title>Tmux Mouse Support</title><link>https://prairiegrade.com/posts/tmux-mouse-support/</link><pubDate>Sun, 05 May 2024 15:39:33 -0500</pubDate><guid>https://prairiegrade.com/posts/tmux-mouse-support/</guid><description>&lt;p>After over 2 decades using GNU Screen for multiplexing, often on machines where tmux wasn&amp;rsquo;t a sensible option, I&amp;rsquo;ve realized that I&amp;rsquo;ll probably never find myself telnetting (!) into a solaris box again.&lt;/p>
&lt;p>Still, tmux doesn&amp;rsquo;t &amp;ldquo;just work&amp;rdquo; the way I want with the Mac OS terminal. I am aware iterm2, wezterm, kitty and several others exist, but it&amp;rsquo;s 2025 and I&amp;rsquo;m just now migrating away from screen, so that&amp;rsquo;s the level of stodge I&amp;rsquo;m at. I still want to use the mouse to copy/paste text while I change my muscle memory from screen to tmux.&lt;/p></description></item><item><title>The Surprise/Delight Ratio</title><link>https://prairiegrade.com/posts/the-surprise-delight-ratio/</link><pubDate>Fri, 22 Mar 2024 13:45:00 -0500</pubDate><guid>https://prairiegrade.com/posts/the-surprise-delight-ratio/</guid><description>&lt;p>When things happen, I often find myself rating them with two vector quantities.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Surprise&lt;/strong> - is it &lt;em>surprising&lt;/em> or &lt;em>unsurprising&lt;/em>?&lt;/li>
&lt;li>&lt;strong>Delight&lt;/strong> - is it &lt;em>horrifying&lt;/em> or is it &lt;em>delightful&lt;/em>?&lt;/li>
&lt;/ol></description></item><item><title>Chinese Room</title><link>https://prairiegrade.com/posts/chinese-room/</link><pubDate>Fri, 15 Mar 2024 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/chinese-room/</guid><description>&lt;p>(noun) A thought experiment devised by philosopher John Searle in 1980 that
challenges the possibility of machine consciousness and understanding.&lt;/p>
&lt;p>&lt;em>The Chinese Room argument suggests that even sophisticated AI systems may
manipulate symbols without true comprehension.&lt;/em>&lt;/p></description></item><item><title>Great Leaders Connect With Customers</title><link>https://prairiegrade.com/posts/great-leaders-connect-with-customers/</link><pubDate>Thu, 08 Feb 2024 10:15:00 -0600</pubDate><guid>https://prairiegrade.com/posts/great-leaders-connect-with-customers/</guid><description>A Costco Case Study: Taking it back to the warehouse every time.</description></item><item><title>WebStorm and Chrome Profiles</title><link>https://prairiegrade.com/posts/webstorm-chrome-profile/</link><pubDate>Mon, 25 Dec 2023 16:20:00 -0600</pubDate><guid>https://prairiegrade.com/posts/webstorm-chrome-profile/</guid><description>&lt;p>I built a &lt;em>very special&lt;/em> Chrome profile for doing Next.JS Tutorials and I wanted WebStorm to launch it for me. It didn&amp;rsquo;t go well.&lt;/p></description></item><item><title>Just use {{my favorite tech}}...</title><link>https://prairiegrade.com/posts/beware-just/</link><pubDate>Sun, 12 Nov 2023 11:45:00 -0600</pubDate><guid>https://prairiegrade.com/posts/beware-just/</guid><description>&lt;p>Here&amp;rsquo;s some shit developers say to each other when the other person is stuck and we don&amp;rsquo;t actually have an answer to their problem.&lt;/p>
&lt;ul>
&lt;li>Just use &lt;del>PHP&lt;/del>, &lt;del>Django&lt;/del>, &lt;del>Rails&lt;/del>, fuck it just use PHP (Laravel, you know)&lt;/li>
&lt;li>Just use &lt;del>Emacs&lt;/del>, &lt;del>Sublime&lt;/del>, &lt;del>vim&lt;/del>, &lt;del>macvim&lt;/del>, &lt;del>neovim&lt;/del>, &lt;del>Intellij&lt;/del>, &lt;del>Cursor&lt;/del>, fuck it just use Notepad&lt;/li>
&lt;li>Just &lt;del>get a Mac&lt;/del>, &lt;del>use debian&lt;/del>, &lt;del>use ubuntu&lt;/del>, &lt;del>use centos&lt;/del> fuck it just use WSL&lt;/li>
&lt;/ul></description></item><item><title>Bullshit in Technology Marketing</title><link>https://prairiegrade.com/posts/your-business-is-your-business/</link><pubDate>Thu, 28 Sep 2023 14:30:00 -0500</pubDate><guid>https://prairiegrade.com/posts/your-business-is-your-business/</guid><description>Patently stupid marketing assertions and the reasons they appeal to us.</description></item><item><title>Two Types of Stability</title><link>https://prairiegrade.com/posts/types-of-stasis/</link><pubDate>Tue, 15 Aug 2023 09:15:00 -0500</pubDate><guid>https://prairiegrade.com/posts/types-of-stasis/</guid><description>&lt;p>In order to survive, the human body maintains stability in two ways.&lt;/p>
&lt;p>&lt;strong>Homeostasis&lt;/strong> — the process of maintaining internal stability by adhering to fixed points.&lt;/p>
&lt;p>&lt;em>Examples: maintaining optimal pH, liver enzymes, body temperature&lt;/em>&lt;/p>
&lt;p>&lt;strong>Allostasis&lt;/strong> — the process of obtaining stability by adapting to anticipated demands or environmental stressors.&lt;/p>
&lt;p>&lt;em>Examples: cortisol during fight or flight, inflammatory responses, shunting of blood&lt;/em>&lt;/p>
&lt;p>Both are necessary for survival. One is required to keep the organism alive over the long term, the other helps us respond to emergent or future scenarios.&lt;/p></description></item><item><title>Challenging the Supremacy of Flow State</title><link>https://prairiegrade.com/posts/challenging-the-supremacy-of-flow-state/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://prairiegrade.com/posts/challenging-the-supremacy-of-flow-state/</guid><description>&lt;p>I&amp;rsquo;ve long thought that the ability to maintain flow state for hours was the hallmark of a good programmer. I prided myself on being in such a deep state of flow that I would often fail to notice the passing of hours, the setting sun. I would often only reluctantly step away to pee. I would work late into the night, uninterrupted by the world.&lt;/p>
&lt;p>As the systems I&amp;rsquo;ve worked on have become more complex, technologically diverse, and frankly riddled with errors, I&amp;rsquo;ve realized that what I thought of as &amp;ldquo;flow&amp;rdquo; is actually just a state of chasing my own thoughts, trying to immediately fix whatever annoyances or weirdnesses I encounterd, and finishing my days not having completed my initial goals for the day.&lt;/p></description></item></channel></rss>