<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Daniel Moch's Web Home</title><link>https://www.danielmoch.com/</link><description>Recent content on Daniel Moch's Web Home</description><generator>Hugo (gohugo.io)</generator><language>en-us</language><managingEditor>daniel@danielmoch.com (Daniel Moch)</managingEditor><webMaster>daniel@danielmoch.com (Daniel Moch)</webMaster><copyright>© 2017-2026 Daniel Moch</copyright><lastBuildDate>Sat, 03 Jan 2026 07:21:54 -0600</lastBuildDate><atom:link href="https://www.danielmoch.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>Science Not Scientism</title><link>https://www.danielmoch.com/posts/2026/01/science-not-scientism/</link><pubDate>Sat, 03 Jan 2026 07:21:54 -0600</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2026/01/science-not-scientism/</guid><description>It is possible to embrace science while rejecting scientism</description><content:encoded><![CDATA[<p>Having received a variety of thoughtful books as Christmas gifts
this year I am surprised that the one I keep picking up is one I
bought myself after the holiday: Paul Kingsnorth&rsquo;s <em>Against The
Machine</em>.
The book is putting words to things I have struggled with for some
time, things like the often unacknowledged limits of science.
What resonates most with me though is the attempt to name what it
is about modern society that seems so inhumane.
My reason for writing to day, however, is not to discuss the
inhumanity of modern society.
Depending on your point of view that would be either misguided or
banal.
I simply cannot do it justice in less than a thousand words.
Instead I would like to suggest (not prove, or even attempt to fully
describe) an aspect of Kingsnorth&rsquo;s book that feels to me a bit
under-cooked: the notion that science is a religion that should be
more or less rejected.</p>
<p>I almost hope the previous sentence exaggerates Kingsnorth&rsquo;s view.
And yet as I thumb through Chapter VII of <em>Against The Machine</em> I
can find no suggestion that science might actually offer something
useful.
While I can understand the temptation to go so far, I think without
some additional nuance there is a pretty large baby getting thrown
out with the dirty bathwater.
I can&rsquo;t really follow Kingsnorth here, and in fact do not even agree
that it is science that should be rejected so much as <em>scientism</em>.
Even Chapter VII of Kingsnorth&rsquo;s book seem to me really to be taking
aim at scientism, so perhaps I am being pedantic.
But the language is important, and I am not sure I understand what
he is really taking aim at here.
If he means to reject scientism, then I have no problem; if science,
then what of the medical advances on the last two centuries?</p>
<p>There are a lot of applications of science I could accept doing
without.
The Internet, computers, automobiles, central heating and air
conditioning are all things I think I could learn to live happily
without.
Even highly processed foods seem worth giving up, as much as I
occasionally enjoy them.
But when I pull on the thread of modern medicine I find a lot of
things I would be happier to keep.
Anesthesia, antibiotics, triptans and all the other more mundane
developments that modern medicine offers really do seem to have
improved our lives.
And they are largely, perhaps entirely built upon the foundation
of science: biology, chemistry, and germ theory.
I have heard Kingsnorth talk elsewhere of &ldquo;raw&rdquo; and &ldquo;cooked&rdquo; varieties
of nonconformists.
If the raw, radical version of his proposal requires an outright
rejection of science, then I suppose that puts me in the cooked
camp.</p>
<p>But I do not think a thorough nonconformism should require a rejection
of science because that would misidentify the source of our ills,
which is better stated as applied scientism.
It is (as Kingsnorth states) the reduction of our world, our society,
our very selves, to machines.
Science asks how mechanical systems work in order to leverage them
to serve humanity.
Scientism seeks to turn humanity and everything else into machines
so they can all be leveraged to whatever ends the powerful have in
mind.
This is, I think, the larger point Kingsnorth is making, and I fear
he is essentially correct.</p>
]]></content:encoded></item><item><title>Hiking Bluff Trail</title><link>https://www.danielmoch.com/posts/2025/12/bluff-trail/</link><pubDate>Fri, 26 Dec 2025 16:40:03 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/12/bluff-trail/</guid><description>What Lookout Mountain looks like on this very mild December day.</description><content:encoded><![CDATA[<p>Happy second day of Christmas!
I just got back from a short hike (around 3.5 miles) of Lookout
Mountain&rsquo;s Bluff Trail with my son, nephew, and brother-in-law.
We ended our walk at Sunset Rock, where we had hot chocolate before
heading up to the trailhead.</p>
<p>The trail is part of the <a href="https://www.nps.gov/chch/index.htm">Chickamauga &amp; Chattanooga National Military
Park</a>.
I took the pictures below on Sunset Rock, looking out over Tennessee.
You can see the outskirts of the city of Chattanooga in the distance
toward the right side of the top picture.</p>
<p><img src="sunset-rock.png" alt="Sunset Rock">
<img src="sunset-rock-selfie.png" alt="Sunset Rock Selfie"></p>
]]></content:encoded></item><item><title>Christmas 2025</title><link>https://www.danielmoch.com/posts/2025/12/christmas/</link><pubDate>Thu, 25 Dec 2025 05:52:13 -0600</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/12/christmas/</guid><description>Reflecting on Luke 2:25-35</description><content:encoded><![CDATA[

<div class="alert alert-note">
  <p class="alert-heading">
    <i class="fa-solid fa-note-sticky"></i>
    Note
  </p>
  <p>What follows is a first attempt at something I would like to see
become a new tradition: a short reflection on a Christmas passage,
written and given to my kids on Christmas Day.
As that suggests, that means this is not the primary forum for this.
Still, I like being able to share them here as well, and I hope
they brighten someone&rsquo;s day.
Merry Christmas!</p>
</div>
<p>Eugene Peterson has a quote that makes me think of this passage.
In <em>Traveling Light</em> he says, &ldquo;God was not out to get sinners so
that he could make them good and sorry; he was out to get sinners
so that he could make them good and joyful.&rdquo;
It makes me think of Simeon, who was &ldquo;righteous and devout&rdquo; not
because of anything he did, but simply because he was &ldquo;waiting for
the consolation of Israel.&rdquo;
We say that Advent is a season of waiting, but waiting for what?
Hasn&rsquo;t Jesus already come?
So we spend the season of waiting, celebrating the Jesus who has
already come?</p>
<p>Of course that is not quite right.
Jesus has already come, yes, but we wait for Him to come again.
And this is what the Advent Season reminds us.
The season&rsquo;s darkness is <em>the world&rsquo;s</em> darkness.
We are still waiting for The Light to come.</p>
<p>And how will The Light find us?
We will be sorry or joyful at the end of days?
The answer depends on how we see ourselves in relationship to that
Light.
God is out to get us.
Is he out to make us good and sorry, or good and joyful?
Of course he wants to make us good and joyful!
And guess what.
That is the best reason for us to be joyful <em>now</em>.
Even as the world&rsquo;s darkness surrounds us like nighttime in deepest
winter we can still have joy that The Light is coming.</p>
<p>Our lives in this world give us more than enough reason to feel
down, scared and sorrowful.
Simeon had reason for that as well.
He lived in a time when Israel&rsquo;s identity hung by a thread, completely
dependent on Rome&rsquo;s permission to exist.
All it would take is one emperor&rsquo;s word to bring down Jerusalem&rsquo;s
Temple.
In fact, that is exactly what would happen less than 100 years after
Simeon met Jesus.
Yet even in the midst of that uncertainty, Simeon was able to say,
&ldquo;Lord, now you are letting your servant depart in peace.&rdquo;
The Light had come, and now there could be joy even in the midst
of the world&rsquo;s darkness.</p>
<p>And if Simeon had reason for joy, we have even more.
What he accepted by faith, we can read in the pages of history.
Jesus came, lived, died, rose again and ascended.
All we have to wait for is Him to come again; we have it all besides.
If our joy rests upon just a little faith, then it is completely
unbreakable.
So as we celebrate Christmas, let us remember that the reason for
our joy is not any gift underneath that tree, but the true Gift
that hung upon one.</p>
<p>Merry Christmas!</p>
]]></content:encoded></item><item><title>Moved to Texas</title><link>https://www.danielmoch.com/posts/2025/09/moved-to-texas/</link><pubDate>Mon, 01 Sep 2025 15:03:17 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/09/moved-to-texas/</guid><description>The Moch family has relocated</description><content:encoded><![CDATA[<p>This won&rsquo;t be news to anyone I have spoken to over the past few
weeks, but my family and I have relocated from Greater Orlando to
the Dallas-Fort Worth Metroplex.
It is a good career move for me, but what sealed the deal was my
family&rsquo;s excitement about moving to the area.
Orlando had treated us well, and we are leaving behind a lot of
close friends, but overall there is a lot of optimism that DFW will
feel like home before long.</p>
<p>If you&rsquo;re in the area, reach out and let me know.
It would be great to make some connections in the area!</p>
]]></content:encoded></item><item><title>Causation</title><link>https://www.danielmoch.com/posts/2025/06/causation/</link><pubDate>Thu, 05 Jun 2025 14:23:11 -0400</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/06/causation/</guid><description>Different words for different domains</description><content:encoded><![CDATA[<p>TIL that <em>proximal</em> cause is a term of art in philosophy, while
<em>proximate</em> causation is a legal concept.</p>
]]></content:encoded></item><item><title>Magnesium</title><link>https://www.danielmoch.com/posts/2025/05/magnesium/</link><pubDate>Thu, 29 May 2025 07:47:24 -0400</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/05/magnesium/</guid><description>A bad way to find out</description><content:encoded><![CDATA[<p>It&rsquo;s an &ldquo;n=1&rdquo; data set, but it appears that missing my evening
dose of magnesium can cut my sleep in half.</p>
<p>Just learned that the hard way.</p>
]]></content:encoded></item><item><title>Announcement: Co-Chair</title><link>https://www.danielmoch.com/posts/2025/03/cncf/</link><pubDate>Fri, 07 Mar 2025 07:10:38 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/03/cncf/</guid><description>Public Sector User Group</description><content:encoded>&lt;p>I’m happy to share that I was recently elected Co-Chair, Public
Sector User Group at the Cloud Native Computing Foundation (CNCF).
If you work in the public sector and are interested in learning
more about cloud technologies, I&amp;rsquo;d love to talk to you!&lt;/p>
</content:encoded></item><item><title>Clarity Through Writing</title><link>https://www.danielmoch.com/posts/2025/02/clarity-through-writing/</link><pubDate>Thu, 20 Feb 2025 08:31:12 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/02/clarity-through-writing/</guid><description>Writing helps me understand what I am thinking</description><content:encoded>&lt;p>It is noteworthy how often I will have a vague thought that I do
not fully understand it until I have written it out.
It is embarrassing how poorly I have recognized and understood this
dynamic.&lt;/p>
</content:encoded></item><item><title>OpenSSF Guest Post</title><link>https://www.danielmoch.com/posts/2025/02/openssf/</link><pubDate>Thu, 06 Feb 2025 12:19:23 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/02/openssf/</guid><description>Securing Public Sector Supply Chains is a Team Sport</description><content:encoded>&lt;p>I have written a &lt;a href="https://openssf.org/blog/2025/02/06/securing-public-sector-supply-chains-is-a-team-sport/">guest post&lt;/a> for the OpenSSF blog that has just gone
live.
Please check it out!&lt;/p>
</content:encoded></item><item><title>Goodreads</title><link>https://www.danielmoch.com/posts/2025/02/goodreads/</link><pubDate>Sun, 02 Feb 2025 09:54:10 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/02/goodreads/</guid><description>I am back on Goodreads</description><content:encoded><![CDATA[<p>After about a &hellip; <em>checks notes</em> &hellip; 13-year hiatus, I have started
maintaining my <a href="https://www.goodreads.com/djmoch">Goodreads profile</a> again.
If I have learned anything from the experience, it is that I have
started and subsequently <em>not</em> finished a lot of books.
Looking back this is almost always the result of a lack of discipline
on my part, and not due to the fact that I particularly did not
enjoy any of them, much less that I disliked them.
So I am going to start going through these books more intentionally.</p>
]]></content:encoded></item><item><title>Hope and Other Things</title><link>https://www.danielmoch.com/posts/2025/01/hope-and-other-things/</link><pubDate>Mon, 27 Jan 2025 06:32:59 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/01/hope-and-other-things/</guid><description>Reflecting on an emotional journey</description><content:encoded><![CDATA[

<div class="alert alert-note">
  <p class="alert-heading">
    <i class="fa-solid fa-note-sticky"></i>
    Note
  </p>
  <p>This post is pretty different for me, and a little scary.
I am posting this because it helped me to write it all down, and
because I hope someone out there will benefit from it.
I fully understand that might not be you.</p>
<p>I also realize that, despite the difficult things I discuss below,
my life comes with a lot of privilege.
Please do not think for a second anything below comes from a place
of self-pity.
In fact, as you will find below, I feel a lot of gratitude!</p>
</div>
<p>I was going through my journal from 2024 as part of a planning
activity for 2025, and I came across this one-line entry:</p>
<blockquote>
<p>My perfectionism stems from a borderline terror response to shame.</p></blockquote>
<p>It is true that I have struggled with perfectionism as far back as
I can remember.
What I find fascinating about this entry is how simply, even
beautifully it connects my perfectionism (which I have known about
for a long time) to something just a pervasive but which I have
only recently become aware: shame.</p>
<p>My experience of shame is as resistance to admitting uncomfortable
things about myself, <em>to</em> myself.
And given this reality, overcoming shame involves doing just that,
which is of course uncomfortable.
Discomfort, I have found, often comes from a sense of having fallen
short of some sort of expectation, having &ldquo;missed the mark.&rdquo;
It is interesting, then, that this is also a commonly cited meaning
of sin<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, and that sin is also often coupled to shame in the
Bible.
If we are talking about shame in terms of sin, perhaps we should
bring in the related concept of temptation as well.</p>
<h2 id="temptation-to-shame">Temptation To Shame</h2>
<p>My point in bringing sin and temptation into a discussion about
shame is to point out the reality that shame, in my experience, is
not something I am subjected to, but something I choose.
In other words, I am <em>tempted</em> to feel shame over something, and
subsequently <em>choose</em> or agree with it.
I have arrived at this conclusion after spending a lot of time—and
not a little money—in therapy dealing with depression and anger.
This process took as long as it did because, as the above journal
entry implies, I have mostly experienced subconsciously with the
result of driving me toward perfectionism.
Being subconscious, it was easy to distract myself from it.</p>
<p>But if shame is something that I am tempted to do, then I have the
opportunity to reject it, no?
Indeed, I believe I do.</p>
<h2 id="rejecting-temptation-to-shame">Rejecting Temptation To Shame</h2>
<p>When feeling tempted to shame, I have found it helps to first
identify what is triggering you in that situation.
For me the usual triggers are: feeling powerless, out-of-control,
or otherwise experiencing a sense of futility; feeling alone,
abandoned, or betrayed; or feeling an unusual level of stress.</p>
<p>After identifying the active trigger(s) in a given situation, I next respond
to the temptation by exploring it.
Part of what is important here is not suppressing or ignoring the
discomfort.
That path leads to anxiety.
I realize this might sound a bit squishy—even woo-woo—but the goal
here is very practical: self-understanding.
The exploration might bring to light healthy ways to meet an
underlying need, assuming the trigger says something true about
you.</p>
<p>Understand that the desired outcome of this activity is awareness,
not the elimination of the temptation.
It is the awareness that empowers you to reject shame.
It becomes almost as easy as saying no.</p>
<h2 id="conclusion">Conclusion</h2>
<p>This post has been a personal reflection on my journey from
perfectionism, depression and anger, through anxiety, to a place
of relative health.
The animating force of those negative emotions and experiences has
been shame.
I am thankful to say that today I can look back with gratitude on
the things I have experienced, even when they have been tremendously
painful.</p>
<p>If you have made it this far, then I would like to think something
above has resonated with you.
If it is because you also deal with depression and shame, then I
hope you will seek out the help you need.
We are social creatures, not meant to go through hard times alone.</p>
<p>May we all find ways to accept the things about ourselves we wish
were different.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>No biblical definition of sin would be complete without the
notion of violating God&rsquo;s moral law, but for our purposes today
we can set that aside.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>The Hobbit</title><link>https://www.danielmoch.com/posts/2025/01/the-hobbit/</link><pubDate>Mon, 20 Jan 2025 17:37:53 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/01/the-hobbit/</guid><description>On entering a new phase of parenting</description><content:encoded><![CDATA[<p>Last night I started reading <em>The Hobbit</em> to my children, and they
went to pieces as I read the following exchange:</p>
<blockquote>
<p>&ldquo;Good morning!&rdquo; said Bilbo, and he meant it.
The sun was shining, and the grass was very green.
But Gandalf looked at him from under long bushy eyebrows that
stuck out further than the brim of his shady hat.</p>
<p>&ldquo;What do you mean?&rdquo; he said.
&ldquo;Do you wish me a good morning, or mean that it is a good morning
whether I want it or not; or that you feel good this morning; or
that it is a morning to be good on?&rdquo;</p>
<p>&ldquo;All of them at once,&rdquo; said Bilbo.</p></blockquote>
<p>I also think it is a funny passage.
I am not really going anywhere with this.
I just think it is nice having kids old enough to appreciate some
of the same things you do.
I am here for this new phase of being a parent!</p>
]]></content:encoded></item><item><title>Acme: The Un-Terminal</title><link>https://www.danielmoch.com/posts/2025/01/acme/</link><pubDate>Mon, 20 Jan 2025 04:05:43 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/01/acme/</guid><description>Reasons to prefer an integrating development environment</description><content:encoded><![CDATA[<p>If you are not a software developer, you might be surprised to learn
that a large subset of that community loves terminal-based user
interfaces (TUIs).
These are applications that run, for instance, in Terminal.app on
MacOS or Windows PowerShell<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.
Developers who prefer TUIs will usually insist on using Emacs
or Vim to write their code.
They might also try to find TUIs to do <em>everything</em> in the terminal:
<a href="http://www.mutt.org">Mutt</a> for email, the <a href="https://vifm.info">Vifm</a> file manger.</p>
<p>I was one of those folks for a time.
Then I realized the magic wasn&rsquo;t the terminal <em>per se</em>, but rather
what is best described as a highly-regular, text-based user interface
with a clear interface to other utilities.
Modern GUIs tend to each be created from scratch and are designed
to operate hermetically.
But treating every application like its own blank slate and creating
every user interaction from scratch has the effect, in aggregate,
of making modern computers overwhelming to use.
The heavy use of iconography makes the uphill climb all that much
steeper.</p>
<p>Terminal-based programs don&rsquo;t suffer from this.
Their inability to display arbitrary bitmaps (pictures) essentially
narrows their bandwidth.
With text as the dominant mode of communication, behavioral patterns
have emerged across programs, making the second terminal program
easier to learn that the first and scaling from there.</p>
<h2 id="text-based-guis">Text-Based GUIs?</h2>
<p>So can we create GUI-based applications that rely only (or
significantly) on text and provide a standardized mode of interaction?
We can, and, in fact, it has already been done in the area of text
editors.
The editor I have in mind is Acme<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, originally released in the 1990&rsquo;s
as part of the Plan 9 operating system and brought to other Unix-like
systems by Russ Cox&rsquo;s <a href="https://9fans.github.io/plan9port/">plan9port</a> project.</p>
<p>The power of the Acme editor is twofold.
First is its seamless way of integrating the command-line tools
programmers are already familiar with into its environment.
Users can select any text and pipe<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> it a command.
The output of that command can in turn either populate a new window
within Acme, or it can replace the original, selected text.
Second is Acme&rsquo;s use of the <a href="https://en.wikipedia.org/wiki/9P_(protocol)">9P protocol</a> under the hood.
Without diving into the details of the protocol, this allows for a
variety of interactions, including the use of what would in other
programming environments be called plugins<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>.
What makes these so powerful is the free-form nature of the
interaction model.
The 9P communication is exposed on POSIX systems via <a href="https://en.wikipedia.org/wiki/Unix_domain_socket">Unix domain
sockets</a>, but the protocol&rsquo;s semantics are simple enough that
plan9port includes a general-purpose client, allowing for helper
programs to theoretically be written even as shell scripts.</p>
<p>This is all a bit unusual and hard to imagine, so I recommend viewing
this <a href="https://www.youtube.com/watch?v=dP1xVpMPn8M">brief(-ish) tour of Acme</a> by Russ Cox.</p>
<h2 id="acmes-un-strengths">Acme&rsquo;s Un-Strengths</h2>
<p>While I was taken with all of this when I first became acquainted
with it, there are a couple things to say about what Acme does <em>not</em>
do that have also contributed to its staying power for me.
To summarize, there is no configuration to speak of: no color themes,
no syntax highlighting, no attempt (save for an optional, primitive
auto-indent) to automatically format code<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup>.
Prior to Acme, I had spent far too much time concerned with how my
Vim setup <em>looked</em>, e.g. the color scheme.
Configuration files running into the hundreds of lines do not and
cannot exist in Acme.
Not everyone will want such a thing<sup id="fnref:6"><a href="#fn:6" class="footnote-ref" role="doc-noteref">6</a></sup>, but I cannot emphasize
enough what a breath of fresh air it was for me to enter an environment
with no knobs to tweak.</p>
<h2 id="an-integrating-development-environment">An Integrating Development Environment</h2>
<p>Acme is remarkable for what it represents: a class of application
that leverages a simple, text-based GUI to create a compelling model
of interacting with all of the tools available in the Unix (or Plan
9) environment.
Cox calls it an &ldquo;integrating development environment,&rdquo; distinguishing
it from the more hermetic &ldquo;integrated development environment&rdquo;
developers will be familiar with.
The simplicity of its interface is important.
It is what has allowed Acme to age gracefully over the past 30 or
so years, without the constant churn of adding support for new
languages, compilers, terminals, or color schemes.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Windows also has an antediluvian terminal called Command Prompt
if that&rsquo;s more your speed.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Visual Studio code might come close to achieving this ideal
as well.
If it succeeds, I think it is mainly because it integrates a
text-based terminal into a text-heavy GUI environment, something
Acme does by a different method.
As we shall see shortly, whereas VS Code allows you to open a
terminal window within the editor, Acme&rsquo;s integration goes
deeper, allowing the use of standard CLI-style commands in <em>any</em>
window.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>The word &ldquo;pipe&rdquo; here should be understood in the standard,
Unix sense.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Cox calls these &ldquo;helper programs&rdquo; in the video linked below.&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>There are examples of plugins that will format code on save,
similar to VS Code, and even a full-blown <a href="https://en.wikipedia.org/wiki/Language_Server_Protocol">Language Server
Protocol</a> client in <a href="https://github.com/9fans/acme-lsp">acme-lsp</a>.&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:6">
<p>The lack of syntax highlighting in particular is likely to
draw ire.
This is not something I wish to advocate for or against, so I
will limit myself to saying that, if you are like me, you will
not miss it once it is gone.
Instead, you will find that you have discarded a whole panel
of &ldquo;knobs&rdquo; with which you no longer need to concern yourself.
While I found there was almost no cost to giving up syntax
highlighting, the alternative—endlessly tweaking syntax
highlighting themes—was, for me, an extraordinary waste of time.&#160;<a href="#fnref:6" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Superscripts</title><link>https://www.danielmoch.com/posts/2025/01/superscripts/</link><pubDate>Sun, 19 Jan 2025 07:23:34 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/01/superscripts/</guid><description>Why can't this just happen?!</description><content:encoded>&lt;p>I have spent far too long this weekend trying to figure out how to
prevent superscripts from affecting line height on web pages.&lt;/p>
</content:encoded></item><item><title>Systems Programming</title><link>https://www.danielmoch.com/posts/2025/01/systems-programming/</link><pubDate>Mon, 13 Jan 2025 04:41:53 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2025/01/systems-programming/</guid><description>Keeping a kind of systems programming in mind can help leaders
organize teams and make hiring decisions.</description><content:encoded><![CDATA[<p>I&rsquo;m not sure what <em>systems programming</em> means.
It used to mean something like designing operating systems.
The creators of the Go programming language sought to redefine the
term (although they may not have seen it that way) to mean something
like designing networked systems, and particularly web servers.
This to say, the term&rsquo;s usefulness is debatable.</p>
<p>And yet I find myself attracted to it.
I even like to think of myself as a <em>systems programmer</em> of a sort.
I&rsquo;m not content to simply use the layers of abstraction provided
to me.
I always want to know what&rsquo;s going on above and especially below
the layer I am programming.
Over the course of my career I&rsquo;ve had the privilege of working on
everything from device drivers, to power-on self-test (POST), all
the way up the stack to large, web-based systems.</p>
<h2 id="an-actually-useful-definition-of-systems-programming">An Actually-Useful Definition of Systems Programming</h2>
<p>I think this approach to programming is about the best definition
of <em>systems programming</em> I can come up with.
Systems programmers want all of the layers in their software system
to cooperate.  They don&rsquo;t think abstraction should be used to hide
messes in lower layers.
Those messes should be cleaned up.
The whole system will be better for it.</p>
<p>This all came to mind as I read Fernando Hurtado Cardenas&rsquo;s blog
post &ldquo;<a href="https://fhur.me/posts/2024/thats-not-an-abstraction">That&rsquo;s Not an Abstraction, That&rsquo;s Just a Layer of Indirection</a>.&rdquo;
In noticing and commenting on the difference between abstraction
and indirection, Cardenas is behaving like a good <em>systems programmer</em>
(at least by my definition).
They recognize it is the whole system that needs to be optimized
and not just the topmost layer.</p>
<p>With my own experience and Cardenas&rsquo;s post in mind, maybe we can
start to sketch a useful definition of <em>systems programming</em> as
applying the same thoughtful approach to the entire stack that one
does to the software they are actually writing<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.
This mindset is not a given within the software community, and with
well-designed systems it does not need to be ubiquitous.
But I would argue it does need to be <em>present</em> in any large-scale
software team.</p>
<h2 id="how-is-this-useful-though">How Is This Useful Though?</h2>
<p>What does this mean for the makeup of software teams, particularly
in large organizations that embrace DevOps, Platform Engineering,
and the like?
I actually think this understanding of <em>systems programming</em> fits
quite naturally within these kinds of organizations.
The application developers tasked with writing the value-add business
logic are usefully abstracted away from the system as much as
possible.
The <em>systems programmers</em> are the architects, platform engineers,
and DevOps/SRE staff who concern themselves with the rest of the
stack (or, in the case of architects, the <em>whole</em> stack).
Indeed, this models comports quite well with the division of labor
advocated by the <em><a href="https://teamtopologies.com">Team Topologies</a></em> crowd.</p>
<p>At this point I imagine one might respond to all of this with, &ldquo;So
what?&rdquo;
I have basically invented a definition of <em>systems programming</em> out
of the blue that just confirms that <em>Team Topologies</em> got it right?
Yes. And &hellip;</p>
<p>I think this definition of <em>systems programming</em> sheds light on
something I have struggled with.
As someone who <em>wants</em> to understand and appreciate the entire
software stack, I am tempted to look down on folks who just want
to write their code and be done with it.
This whole thought experiment has brought to light the fact that
application programmers are necessary too.
Of course they are!
They are the ones writing the value-add business logic that will
make or break the business.
A <em>systems programmer</em>&rsquo;s job is to support an application programmer.
How can that happen if instead we look down our noses at them.
They are our customers!
So elitism within the Platform Engineering community should be
verboten.</p>
<p>This systems/application programmer model might also be a helpful
heuristic for hiring managers.
Ask questions that tease out whether a candidate wants to understand
the entire software stack, or if they would rather focus on writing
their business logic.
Doing so will give you an idea of where they will fit more naturally.</p>
<h2 id="conclusion">Conclusion</h2>
<p>For me this started as a thought experiment to understand why,
despite the lack of clarity, I still find myself attracted to the
term <em>systems programming</em>.
I then used my own experience and intuitions to induce a definition
for the term that put words to my gut-level intuitions about it.
I rather doubt that framing the term this way will take off.
The term has fallen out of regular use anyway.
Still, I think it is helpful to have a catchall term to distinguish
application programmers from all the other supporting disciplines,
and I am not aware of any other term doing that today.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>It is perhaps useful to identify an opposite of this kind
of <em>systems programming</em> in certain kinds of hacking.
Let me say that I have a lot of respect for the hacker ethos
(or perhaps <em>mythos</em>).
Still, I struggle to see its place in large scale software
<em>engineering</em>, where the technical requirements are always (at
least implicitly) complemented with non-technical requirements
around maintainability, technical debt and the like.
I want to be clear that it would be possible to push this too
far.
I genuinely think software engineers stand to learn a lot from
hackers.
I just think that software engineering and, more to the point,
<em>systems programming</em> are very different mindsets.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Formal Methods</title><link>https://www.danielmoch.com/posts/2024/12/formal-methods/</link><pubDate>Sat, 28 Dec 2024 09:46:56 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2024/12/formal-methods/</guid><description>Strategic use of formal methods lower total cost of software ownership</description><content:encoded><![CDATA[<p>A couple years back I was introduced to some of the folks at <a href="https://galois.com/">Galois</a>,
and they convinced me that formal methods can lower the cost of
software development.
Now I&rsquo;m reading <a href="https://brooker.co.za/blog/2024/04/17/formal">this post</a> from Marc Brooker where he adds a bit of
nuance that I think is helpful.
I&rsquo;ll summarize it this way: formal methods can lower the total cost
to develop and maintain system-level software, where the requirements
are stable and well-understood.
If you&rsquo;re designing a user-facing system and need to interactively
respond to customer feedback—in other words, if your requirements
are shifting and poorly understood—Agile remains the best choice.</p>
]]></content:encoded></item><item><title>Homa</title><link>https://www.danielmoch.com/posts/2024/12/homa/</link><pubDate>Fri, 27 Dec 2024 14:37:37 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2024/12/homa/</guid><description>What would the performance of Plan9 look like if 9p were implemented on top of Homa?</description><content:encoded><![CDATA[<p>I couldn&rsquo;t read about the advantages of <a href="https://doi.org/10.1145/3230543.3230564">Homa</a> in datacenters without
imagining one populated with servers communicating over 9p.
What would the performance of Plan9 look like if 9p were implemented
on top of Homa?</p>
]]></content:encoded></item><item><title>The Zombification of Pop Culture</title><link>https://www.danielmoch.com/posts/2024/12/the-zombification-of-pop-culture/</link><pubDate>Fri, 27 Dec 2024 08:51:01 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2024/12/the-zombification-of-pop-culture/</guid><description>Why we can't escape the slow-moving Hawk Tuah moment</description><content:encoded><![CDATA[<p>The image of zombies felt inescapable as I got up to speed on <a href="https://www.theatlantic.com/technology/archive/2024/12/hawk-tuah-rise-and-fall/681177/?gift=sqtncSbb-8WZ7rpn9YdnFHHEo75xWZOhDuYYSe4yJiE">Hawk
Tuah</a> girl Haliey Welch, a story and character so packed with minor
happenings that it could be its own cinematic universe.</p>
<p>Why zombies?
Look it what Welch has done since her debut.
There are podcasts, public appearances, and now an infamous meme
coin.
The last of these is clearly tied to her value as a meme, but the
others were enabled by her pop culture currency as well.
Her ability to do these things at all is a recycling of her first
moment, like that ouroborus, eating its own tail, recycling itself.
Or, if you like, it is an act of cannibalism, just like what zombies
are known for.</p>
<p>I do not mean to criticize Welch here.
She&rsquo;s getting hers.
Rather, in being taken in by this sort of thing, the finger points
back at us.</p>
]]></content:encoded></item><item><title>I Am Trying To Write More</title><link>https://www.danielmoch.com/posts/2024/12/i-am-trying-to-write-more/</link><pubDate>Thu, 26 Dec 2024 18:21:39 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2024/12/i-am-trying-to-write-more/</guid><description>An update on how I'll be using this site going forward</description><content:encoded><![CDATA[<p>Until about six months ago I had drawn a hard line on social media.
I am not proud of this since I prefer to take a thoughtful approach
to things.
Thoughfulness and absolutes make poor neighbors, and so with the
new year it seems like a good time to reflect, in writing, on how
I am using and plan to use this site in the next season of life.</p>
<h2 id="past">Past</h2>
<p>To review where I am coming from, apart from the occasional foray
into the <a href="https://en.wikipedia.org/wiki/Fediverse">Fediverse</a> I have not had an active social media presence
since maybe 2017.
LinkedIn is arguably an exception since I have largely maintained
an account there, but even this one was mostly dormant.</p>
<p>That began to change this past summer when I opened public accounts on
Mastodon and Bluesky.
This followed me <a href="/posts/2024/07/i-am-done-self-hosting/">shutting down my self-hosting presence</a>, and
looking back it seems fair to say the implicit logic was that, if
I was no longer self-hosting my code repositories and personal data,
then why not jump back into the mix and reconnect with old friends.
If it also gave me the chance to reconsider my aversion, so much
the better.</p>
<p>I did indeed reconnect with some old friends, which has been great.
But as so often happens, I ended up learning as much about myself
as anything else.
For starters, it seems clear now that I cannot have something like
social media available to me at all times without becoming like a
rat hitting a feeder bar.
Second, most of the conversation on microblogging sites in particular
is designed to be ephemeral—which is great!—but it doesn&rsquo;t really
work for me.
I can&rsquo;t help feeling like the sort of off-the-cuff post I might
make on Bluesky is a poor match for the permanence of the Internet.
I&rsquo;ve seen too many people get a <em>lot</em> of negative attention for
saying something thoughtless online, and I know that there but for the
grace of God go I.</p>
<h2 id="present">Present</h2>
<p>But anyway, that brings us up to today.
I have accounts on a handful of social media sites.
Some accounts I&rsquo;ve already deleted again, but most of them have
survived this experiment the past six months.
That said, it feels like time to re-orient my time online toward
writing more, and more often.</p>
<p>There are some <a href="https://indieweb.org">IndieWeb</a> principles that I intend to put into
practice to help make this happen.
The most relevant of these is <a href="https://indieweb.org/POSSE">POSSE</a> or &ldquo;Publish (on your) Own
Site, Syndicate Elsewhere.&rdquo;
In other words, everything that seems worth posting on social media
will first be posted to this site, and then (usually?) linked from
my other accounts.</p>
<p>The way I see this helping is by introducing some friction.
While it is entirely possible to automate the syndication process,
I still maintain a static website.
I considered adding a dynamic backend to automate the syndication,
and even had the beginnings of an architecture drawn up, but my
heart wasn&rsquo;t in it.
Then I realized this situation could work in my favor by forcing
me to slow down before I post.
So for now I&rsquo;m considering the manual effort involved in posting a
feature rather than a bug.</p>
<p>And the manual effort is not trivial either.
Posting is effectively a three-step process:</p>
<ol>
<li>Create and publish the post on this website</li>
<li>Syndicate to my social media accounts</li>
<li>Add social media links to the original post and re-publish</li>
</ol>
<p>If I get to a point where I haved tamed the pull social media has
on me then I might revisit adding a backend to support automated
syndication.
A middle ground option to automate would be to use a paid service
like <a href="https://micro.blog">Micro.blog</a>.</p>
<h2 id="future">Future</h2>
<p>As I&rsquo;ve said already, the point of this is to write more.
It seems necessary, in order to do that, for me to dial down my
dependence on social media.
I have made a few other changes to my life in the past several
months as well.
My primary aim has been to be more present with my family, but I
hope it will make me more so with myself as well.
If that happens I would like to use that headspace to read, think
and write more.
That writing will primarily occur here, and in an ideal world will
have more substance than the half-formed thoughts I&rsquo;ve contented
myself with occasionally publishing here to date.</p>
<p>None of these are promises.
I won&rsquo;t even call them resolutions.
Consider these things I am hoping for in the new year.</p>]]></content:encoded></item><item><title>Keypub</title><link>https://www.danielmoch.com/posts/2024/12/keypub/</link><pubDate>Thu, 26 Dec 2024 12:15:08 -0500</pubDate><author>daniel@danielmoch.com (Daniel Moch)</author><guid>https://www.danielmoch.com/posts/2024/12/keypub/</guid><description>This seems cool, but who is going to use it?</description><content:encoded><![CDATA[<p><a href="https://keypub.sh">Keypub</a> seems like the kind of thing that could
be really useful, and yet I find myself mildly pessimistic about
its prospects.
The biggest get would obviously be a forge provider like GitHub or
GitLab, but I don&rsquo;t see them adopting this anytime soon.</p>
<p>That said, it could perhaps be a nice signal for anyone looking to
build a reputation-based service for vetting open source contributors
and/or maintainers.
I haven&rsquo;t fully thought through how that might work, but having a
second source linking SSH public keys to email addresses seems like
it could be valuable.</p>
<p>At any rate, I&rsquo;ll be keeping my eye on this.</p>
]]></content:encoded></item></channel></rss>