<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>This Ain&#39;t No Content</title>
  <link href="https://noctilucent.org/blog/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="https://noctilucent.org/blog/" rel="alternate" type="text/html"/>
  <updated>2026-01-19T00:00:00Z</updated>
  <id>https://noctilucent.org/blog/</id>
  <subtitle>A resuscitated blog.</subtitle>
  <author>
    <name>Christian</name>
  </author>
  <generator uri="https://gohugo.io/" version="0.160.1">Hugo</generator>
  <entry>
    <title>Expertise and History</title>
    <link href="https://noctilucent.org/blog/posts/expertise-and-history/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/expertise-and-history/</id>
    <published>2026-01-19T00:00:00Z</published>
    <updated>2026-01-19T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;It&amp;rsquo;s odd: I&amp;rsquo;m not a startup founder or indeed any kind of manager, but I
enjoy the Common Cog blog. Recently, they posted an article that should
have retained its original title, which I believe was &lt;a href=&#34;https://commoncog.com/stop-worrying-about-survivorship-bias/&#34;&gt;Stop Worrying
About Survivorship Bias&lt;/a&gt;.
(They ruined it by appending &amp;ldquo;With This One Weird Trick&amp;rdquo; at the
end.) The context is reading histories and biographies about business
and famous business operators. I think it&amp;rsquo;s worth reading in full,
even though it&amp;rsquo;s long—or at least I think so.&lt;/p&gt;
&lt;p&gt;Histories and biographies relating to business deal almost
exclusively with successes or with unusual failures. But many—maybe
most—businesses fail for boring reasons and are never written about. The
writing therefore suffers from &amp;ldquo;survivorship bias.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The main body of the article discusses expertise and how its study
evolved starting in the 1980s. I had been aware of the work up to that
point, beginning with de Groot&amp;rsquo;s study of master chess players in the
1940s. I was aware of Ericsson&amp;rsquo;s concept of deliberate practice. I
was not aware of the idea of ill-structured domains, which this article
introduced me to. It claims (plausibly) that business is such a domain,
which helps justify reading history and biographies even though they do
not reflect the field of business at large. (That, and the fact that
as practitioners we don’t want an all-encompassing theory of the
domain—only enough to be successful in it.)&lt;/p&gt;
&lt;p&gt;Medicine is called out as another ill-structured domain, but I think there
are many others, including the one I am most interested in professionally:
software development. If true, this explains a lot. For one thing, we’ve
had any number of attempts to impose paradigms (to name a few: Structured
Programming, Object-Oriented Programming, Functional Programming, Agile
Development, DevOps), each initially embraced as the Next Big Thing that
would make everything better, only to be discovered later to be, at best,
a way of avoiding some of the mistakes made before. In an ill-structured
domain, there are no universal truths—or at least few really interesting
universal truths—only things that sometimes work, depending on context.&lt;/p&gt;
&lt;p&gt;To develop expertise in an ill-structured domain, you need to be able to
adapt to novel situations by recognizing patterns you’ve seen before and
understanding how to fit them together in new ways. Personally, I think
of this as training our own neural network, and similar considerations
apply. Fortunately, the human neural network is able to learn from far
fewer examples than the artificial sort.&lt;/p&gt;
&lt;p&gt;This doesn&amp;rsquo;t mean I&amp;rsquo;m going to start reading business
biographies. Most are closer to hagiography. Instead, it means I&amp;rsquo;m going
to read widely &amp;ndash; about business as well as other subjects. The idea is
that valuable expertise in the future will be less about nuts-and-bolts
knowledge of particular technologies, techniques, or frameworks (to the
extent that it ever was) and more about understanding overall context,
and when and how to apply those tools.&lt;/p&gt;
&lt;p&gt;One last supposition: most areas where people will still have jobs in
the future &amp;ndash; other than ones where our bodies are useful in ways that
robots generally are not &amp;ndash; will be ill-defined domains. It&amp;rsquo;s been
true for a long time, maybe even 60 years, that &amp;ldquo;routine&amp;rdquo; jobs have
been automated away. That same trend is going to affect jobs requiring
specialist knowledge, especially where &amp;ldquo;specialist&amp;rdquo; still amounts
to something like book learning, even if the books are too advanced for
most humans.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Books Read in 2025</title>
    <link href="https://noctilucent.org/blog/posts/books-read-in-2025/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/books-read-in-2025/</id>
    <published>2025-12-26T00:00:00Z</published>
    <updated>2025-12-26T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;This was the year I resumed reading in earnest, mostly ebooks borrowed via
the city library. Books that stick with me tend to be psychologically
realistic and, if they include fantasy elements, they do not require the
reader to disentangle a brand-new society from scratch. Fiction keeps
giving me small insights into how other people think and feel.&lt;/p&gt;
&lt;p&gt;Here are some of the books I enjoyed.&lt;/p&gt;
&lt;h3 id=&#34;long-bright-river--liz-moore&#34;&gt;Long Bright River — Liz Moore&lt;/h3&gt;
&lt;p&gt;This is one of those where I was shaking my head. It is a police procedural
set in a gritty part of Philadelphia, where things are rarely fair. I found
the characters appealing (the main character, a beat cop with plenty of
experience but low self esteem) or appalling (most others in the book). We
get a lot of background on the main character to explain how she became who
she is.&lt;/p&gt;
&lt;h3 id=&#34;the-memory-police--yoko-ogawa&#34;&gt;The Memory Police — Yoko Ogawa&lt;/h3&gt;
&lt;p&gt;A whimsical, melancholy book that seems like it should have a political or
social message, but the point is unclear. The police of the title are real
here, and they do take people away to uncertain fates for thought crimes,
but we are never told why. Throughout, things disappear at random and are
forgotten. There is a novel inside the novel about a woman who becomes her
typing tutor&amp;rsquo;s lover. The writer of the novel inside the novel seems to be
in the same relationship to her character as we are to her: slightly
confused and concerned. It is not even clear which of the two novels is an
allegory for the other and what in our world might be represented.&lt;/p&gt;
&lt;h3 id=&#34;babel--r-f-kuang&#34;&gt;Babel — R. F. Kuang&lt;/h3&gt;
&lt;p&gt;An unfair summary: take Harry Potter, set it in the 19th century, and make
the main characters children taken from places that suffered under European
colonialism. It is, at heart, a campus novel set in Oxford University, just
like the Harry Potter books are boarding school novels. Language and
translation have been turned into magical powers activated with silver. The
allegory is not subtle, but I was won over by the characters, especially the
main character, a Chinese boy forced to masquerade, somewhat, as an
Englishman.&lt;/p&gt;
&lt;h3 id=&#34;the-ministry-of-time--kaliane-bradley&#34;&gt;The Ministry of Time — Kaliane Bradley&lt;/h3&gt;
&lt;p&gt;Above average for the genre of time travel novels. In a near-future Britain,
a time machine is discovered and used to retrieve some individuals from the
past, for purposes that are not fully clear. The main character is a woman
with Cambodian parents, assigned to be a minder of sorts of one of the time
travellers. Twists and turns, a dash of romance, a bit of sex and violence,
and a surprise or two.&lt;/p&gt;
&lt;h3 id=&#34;chemistry--weike-wang&#34;&gt;Chemistry — Weike Wang&lt;/h3&gt;
&lt;p&gt;What happens when you fail to complete your PhD and (it seems) lose your
boyfriend because he completed his? What if your parents are Chinese and
therefore have certain expectations that you hate not living up to?
Surprisingly funny, given the sad premise. We also get to see the main
character dig her way out of the mess.&lt;/p&gt;
&lt;h3 id=&#34;nuclear-war-a-scenario--annie-jacobsen&#34;&gt;Nuclear War: A Scenario — Annie Jacobsen&lt;/h3&gt;
&lt;p&gt;A book that does not shy away from showing bad things that could happen.
Really, the idea that we should have all of these weapons and never use them
seems bonkers, but then to use them is even more bonkers, for reasons that
are explored in detail.&lt;/p&gt;
&lt;h3 id=&#34;the-winner--teddy-wayne&#34;&gt;The Winner — Teddy Wayne&lt;/h3&gt;
&lt;p&gt;A routine thriller, but it worked for me. It is as much about social class
as crime. Our humble-born, social climbing hero is a recent law school
graduate hired to a tennis pro in a gated community. His employers are
upper class Northeastern WASPs, accustomed to getting their way and not
too concerned about what happens to the hired help. He, on the other
hand, has to make what he can of the opportunities presented, and not
get dragged into anything that could risk his reputation.&lt;/p&gt;
&lt;h3 id=&#34;havoc--christopher-bollen&#34;&gt;Havoc — Christopher Bollen&lt;/h3&gt;
&lt;p&gt;One of the most unappealing main characters you could imagine, an older
woman holed up during the Pandemic in a hotel in Egypt, where Covid
restrictions are notably lax. She has a habit of interfering with
relationships, &amp;ldquo;liberating&amp;rdquo; younger women from their husbands by creating
forged evidence of infidelity. This time, circumstances lead her further
down the path than she wanted.&lt;/p&gt;
&lt;h3 id=&#34;circe--madeline-miller&#34;&gt;Circe — Madeline Miller&lt;/h3&gt;
&lt;p&gt;A re-imagination of Greek myth through the life of one of the minor
goddesses. The deities in general are an arrogant lot, but the male gods
are mostly insufferable. Cameos by some of the big names, but mostly we see
Circe in her exile. Of course, we are on her side all the way.&lt;/p&gt;
&lt;h3 id=&#34;the-demon-of-unrest--erik-larson&#34;&gt;The Demon of Unrest — Erik Larson&lt;/h3&gt;
&lt;p&gt;Another Civil War book, but it is not a genre I have read much of. The
Southern rebels are not spared, but the Northerners also make mistakes.
There is maybe no way the war could have been avoided, but the North,
meaning the federal government, certainly underestimated the problem and
failed to prepare.&lt;/p&gt;
&lt;h3 id=&#34;the-last-samurai--helen-dewitt&#34;&gt;The Last Samurai — Helen DeWitt&lt;/h3&gt;
&lt;p&gt;Probably the most challenging read of the year, but also one of the most
rewarding. Funny in a biting, sarcastic way. The author is not at all shy
about showing off her own learning. That&amp;rsquo;s risky, but it worked for me.
None of it has to do with samurai, or even Japan, except indirectly.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a couple of books I want to mention that I did not enjoy. In
fact I didn&amp;rsquo;t finish either of them.&lt;/p&gt;
&lt;h3 id=&#34;on-the-calculation-of-volume-book-i--solvej-balle&#34;&gt;On the Calculation of Volume (Book I) — Solvej Balle&lt;/h3&gt;
&lt;p&gt;Think of &amp;ldquo;Groundhog Day&amp;rdquo; as a book, but with a female protagonist and a
setting in France. In her case, some things are not restored at the start
of each day, specifically the things she herself consumes. Otherwise, it
is the same, but this character is a lot more earnest and good hearted than
the one in &amp;ldquo;Groundhog&amp;rdquo;. In my case, I found it too dry, with not enough
to sustain my interest over hundreds of pages. (Also, the idea that this
was just the first book of a series opened up an awful vista of tedium.)&lt;/p&gt;
&lt;h3 id=&#34;the-sportswriter--richard-ford&#34;&gt;The Sportswriter — Richard Ford&lt;/h3&gt;
&lt;p&gt;Very much a book of its time, which was the eighties. The sportswriter
of the title is possibly overeducated and underemployed and semi-detached
from his girlfriend. Not enough happening for me to keep going.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Experiences With Analyzing My Chess Games</title>
    <link href="https://noctilucent.org/blog/posts/experiences-with-analysis/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/experiences-with-analysis/</id>
    <published>2025-12-19T00:00:00Z</published>
    <updated>2025-12-19T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;From time to time, I play games on Chessiverse, a site that features bots that play like humans. I like to play without a clock. I also like to analyze the games I play, like &lt;a href=&#34;cpm-vs-alpine-2025-12-18.pgn&#34;&gt;this one&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I can load it into scid, a nice tool that works on Linux, and has an option to analyze with Stockfish. This produces a output like the following.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://noctilucent.org/blog/posts/experiences-with-analysis/alpine-analysis.png&#34; alt=&#34;example SCID analysis&#34;&gt;&lt;/p&gt;
&lt;p&gt;Counting, I see one blunder, two mistakes and two inaccuracies by me
and a &lt;em&gt;lot&lt;/em&gt; of noise. The lines calculated seem to go nine moves deep,
the &amp;ldquo;+/-&amp;rdquo; notation means something diferent from &amp;ldquo;-+&amp;rdquo;, but I&amp;rsquo;m not 100%
sure.  It&amp;rsquo;s too much.&lt;/p&gt;
&lt;p&gt;The analysis tools on the top chess web sites are friendlier, but also
include a lot of distractions.  For myself, I just want to find the places
where making the right move could have changed the result of the game. I&amp;rsquo;m
not a newbie, but also not a strong player, so I usually have at least one
bad blunder that I should try to learn from.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/cpmurphy/learner&#34;&gt;review tool I wrote&lt;/a&gt; requires
a bit of setup, but once it&amp;rsquo;s running, I can paste the PGN and get a
minimal analysis.  In the case of this game, that means I went through
the moves (or fast forward using the &amp;ldquo;Next mistake&amp;rdquo; button) until I got
to this position, where it&amp;rsquo;s move 16 with White to move.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://noctilucent.org/blog/posts/experiences-with-analysis/position-at-move-16.png&#34; alt=&#34;chess position&#34;&gt;&lt;/p&gt;
&lt;p&gt;The tool told me:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;16.Rd3 played. Try a better move for white.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It took me a few guesses to find a good move and even longer to figure out why I
was going wrong. It turns out to be a frequent blind spot of mine: I will often
neglect to think through what my opponent is trying to do. Here, my opponent has
just moved their king out of check in response to my move of my knight from c3 to
b5. I moved that knight because my opponent chased it away with b4. I should have
thought &amp;ldquo;why is my opponent forcing my knight away?&amp;rdquo;, the answer to which is
obvious in retrospect. That knight was guarding the e2 square and my opponent wants
to play Ne2+ next, forking my king and rook.  I don&amp;rsquo;t want to trade away my
opponent&amp;rsquo;s knight for any of my pieces that could take it (knight, bishop or
rook), because they&amp;rsquo;re all valuable. Moving the dark square bishop brings it
to a safe square where it guards the critical e2 square. I can afford to drop the
f3 pawn. ( 16.Bc4 Nxf3+ 17.Kg2 Nd4 18.c3 bxc3 19.bxc3 Nxb5 20.axb5 would be fine,
even winning.)&lt;/p&gt;
&lt;p&gt;&lt;abbr title=&#34;edited to add&#34;&gt;ETA&lt;/abbr&gt; The main advantage of the tool is that is shows fewer errors so that you can
hopefully concentrate on the most significant ones. As this is based on the
engine evaluation, it&amp;rsquo;s not going to find anything subtle. If you get ground
down in a positional slugfest, this tool most likely will have little to offer.&lt;/p&gt;
&lt;p&gt;I will say that in the ideal case, I should first go through the game myself,
without any assistance, highlighting what I consider the highlights or (when I
lose) the lowlights. Also, I should try to re-create what I was thinking about,
what threats I was worried about, what attack I was hoping to build up to, etc.
The idea is definitely, once the top mistakes are surfaced, to understand better
how they happened and come up with ideas for preventing the same thing happening
again. So I would say it is good to deploy the tool as the &lt;em&gt;second&lt;/em&gt; phase of
analysis.&lt;/p&gt;
&lt;p&gt;By the way, I want to give a shoutout to &lt;a href=&#34;https://github.com/andyruwruw/chess-image-generator&#34;&gt;chess-image-generator&lt;/a&gt;, which proved the easiest way to generate the image used above. I needed to install some dependencies before installing it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ChessImageGenerator&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;require&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;chess-image-generator&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;imageGenerator&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ChessImageGenerator&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;fen&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;r4b1r/p3nBpp/1k3p2/1Np1p3/Pp1nP3/4BP2/1PP2P1P/2RR2K1 w - - 2 16&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;imageGenerator&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;loadFEN&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;fen&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;imageGenerator&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;generatePNG&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;position-at-move-16.png&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Being Human</title>
    <link href="https://noctilucent.org/blog/posts/being-human/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/being-human/</id>
    <published>2025-05-16T00:00:00Z</published>
    <updated>2025-05-16T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;This is prompted by another blog post, &lt;a href=&#34;https://dcurt.is/thinking&#34;&gt;Thoughts on thinking&lt;/a&gt;,
which surprised me. It&amp;rsquo;s short, so you should read it rather than trust my
summary. But basically, he thinks that LLMs write better than him and,
because he uses writing to think, he feels his ability to think rigorously
is atrophying. That &lt;em&gt;is&lt;/em&gt; a scary thought.&lt;/p&gt;
&lt;p&gt;Why am I surprised? Because he says he&amp;rsquo;s being using LLMs to explore new
thoughts and ideas for the last couple of &lt;em&gt;years&lt;/em&gt;. It doesn&amp;rsquo;t match how
I&amp;rsquo;ve beeing using them. To me, the single biggest use of LLMs outside
coding (and that is 95% on home projects) is helping out when I can&amp;rsquo;t quite
remember enough to help my son with his high school maths. It&amp;rsquo;s great for
that. Of course, you have to use it judiciously, as if it were a particularly
kind and patient tutor, because the risk is that it will just do your homework
for you and you learn nothing.&lt;/p&gt;
&lt;p&gt;This is similar to the risks the fine blog post talks to, except that he&amp;rsquo;s
talking about his own thinking. I&amp;rsquo;ll have to be honest and say it never
occurred to me to use an LLM that way. But, in any case, I can see the
danger by analogy.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s also an analogy I remember from my own highschool days. I
once did a mock &lt;a href=&#34;https://w.wiki/EAMp&#34;&gt;Leaving Cert exam&lt;/a&gt; in maths
and got an A-. The mock used real exam questions from previous years
and I had studied them. In a phenomenon I have since seen described as
&lt;a href=&#34;https://en.wikipedia.org/wiki/Overfitting&#34;&gt;overfitting&lt;/a&gt;, I trained myself
too specifically on those questions and not enough on the surrounding
context. I got a C in the real exam a few months later.&lt;/p&gt;
&lt;p&gt;I want to quote the last paragraph:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;And I’m still stuck. But at least I’m here, writing this, and conveying my raw thoughts directly into your brain. And that means something, I think, even though an AI could probably have written this post far more quickly, eloquently, and concisely. It’s horrifying.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes, the AI would have written it far more quickly. I really doubt it
would have written more eloquently. LLMs are good mimics, but they &lt;em&gt;are&lt;/em&gt;
&lt;em&gt;not&lt;/em&gt; &lt;em&gt;human&lt;/em&gt;. I&amp;rsquo;ll admit, I haven&amp;rsquo;t tried to get an LLM to write an
essay for me, but I haven&amp;rsquo;t been too impressed with samples that I&amp;rsquo;ve
seen other people publish. It&amp;rsquo;s much more obvious with AI artwork that
some people use to illustrate their articles. It is superficially better
quality than what they could have done before, yes, but not as good as
a real artist would have produced. (I suspect that a real artist could
produce AI work that would be indistinguishable from the non-AI version,
but that&amp;rsquo;s not what we&amp;rsquo;re talking about.)&lt;/p&gt;
&lt;p&gt;In a way, I&amp;rsquo;m not disagreeing with him at all. I do think that personal
voices matter. It&amp;rsquo;s why I have a blog and I think more people should. (I
do see the irony of this every time I look at who reads my work &amp;ndash; it
is almost all bots, many of them bots that feed LLMs.)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Finishing Off a Game</title>
    <link href="https://noctilucent.org/blog/posts/finishing-off-a-game/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/finishing-off-a-game/</id>
    <published>2025-03-18T00:00:00Z</published>
    <updated>2025-03-18T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;I like playing through games and I&amp;rsquo;ve discovered something surprising,
at least to me.  It often happens that, if I start with end position from
a master game, where one player resigned, I cannot win that winning
position against an engine.  (Maybe it&amp;rsquo;s not that surprising &amp;ndash; Stockfish
is famous for being able to wriggle out of tight spots.)&lt;/p&gt;
&lt;p&gt;From this observation comes a form of practice that uses an engine to
good effect &amp;ndash; start at the end of the game and beat the engine.  Here&amp;rsquo;s
a way that works for me.  It assumes you have &lt;a href=&#34;https://sourceforge.net/projects/lucaschessr/&#34;&gt;LucasChess&lt;/a&gt;,
an old-fashioned but useful chess learning tool.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Choose a game.  I like older games, typically from the 19th century.
There are lots and lots of places online that have them, for example
chessgames.com.&lt;/li&gt;
&lt;li&gt;Skip to the end of the game and copy the FEN.&lt;/li&gt;
&lt;li&gt;Start LucasChess&lt;/li&gt;
&lt;li&gt;Choose &amp;ldquo;Play against an engine&amp;rdquo;  &lt;img src=&#34;https://noctilucent.org/blog/posts/finishing-off-a-game/play-against-an-engine.png&#34; alt=&#34;play against an engine&#34;&gt;&lt;/li&gt;
&lt;li&gt;Choose which side to play with.&lt;/li&gt;
&lt;li&gt;Choose an engine.  Usually you want the strongest external engine you can get.  &lt;img src=&#34;https://noctilucent.org/blog/posts/finishing-off-a-game/choose-an-engine.png&#34; alt=&#34;choose an engine&#34;&gt;&lt;/li&gt;
&lt;li&gt;Change the start position. (This is where you paste in the FEN.) &lt;img src=&#34;https://noctilucent.org/blog/posts/finishing-off-a-game/change-start-position.png&#34; alt=&#34;change the start position&#34;&gt;&lt;/li&gt;
&lt;li&gt;Click the big &amp;ldquo;Accept&amp;rdquo; button to start playing.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;During the game if you make a mistake you will be prompted by the tutor
and you can either try again or, if you really don&amp;rsquo;t get it, you can
choose the engine move.  Usually you want to avoid peaking.  Hint: if you
find you made a mistake, it may be worth spending some time trying to
analyze &lt;em&gt;why&lt;/em&gt; you made that mistake.&lt;/p&gt;
&lt;p&gt;I have a pet theory that lots of beginning and intermediate players
don&amp;rsquo;t spend a lot of time on this part of the game because they assume
the position is winning.  Actually proving it, though, is a good test
of skill and a reminder that there is still much to learn.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Post-Constitutional</title>
    <link href="https://noctilucent.org/blog/posts/post-constitutional/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/post-constitutional/</id>
    <published>2025-03-04T00:00:00Z</published>
    <updated>2025-03-04T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve been thinking on and off about politics, because how can one avoid
it?  The whole MAGA way of governing looks like a circus.  But surely
some of the people behind it must have some coherent ideas.  I tried to
read an article by Russ Vought, &lt;a href=&#34;https://americanmind.org/salvo/renewing-american-purpose/&#34;&gt;Statesmanship in a post-Constitutional
moment&lt;/a&gt;,
for some clues.&lt;/p&gt;
&lt;p&gt;I think a critical paragraph is this one:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;And in America, the scary part is that this regime is now increasingly
arrayed against the American people. It is both woke and weaponized. The
national security state, with organs like the FBI, NSA, and CIA, are
aligned against the American people, who are outraged by this revolution
they never assented to. The FBI is investigating concerned parents
attending open school board meetings as domestic terrorists. They
are putting political opponents in jail. The NSA is surveilling the
conversations of citizens.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In case it&amp;rsquo;s not clear, this is a reference to the situation a few
years ago.  It&amp;rsquo;s the entire justification for overturning the political
order and starting afresh.  But really?  I guess it&amp;rsquo;s really true that
Jan 6 rioters were jailed, but I would like to hear more about what the
NSA and the CIA were doing against the American people.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s grant, &lt;em&gt;arguendo&lt;/em&gt;, the national security state &lt;em&gt;was&lt;/em&gt; weaponized.
The Jan 6 participants got their pardons.  (Wait, did they &lt;em&gt;all&lt;/em&gt; deserve
pardons?)  Can we expect a pardon for Snowden?  Is there anything else
that he has in mind to prevent future weaponization of the national
security state?  We have to assume not every bad actor will be a minion
of Joe Biden.&lt;/p&gt;
&lt;p&gt;But maybe Mr. Vought&amp;rsquo;s bigger concern has to do with the powers of
the executive branch.  If I understand it, his thesis is that the
consitutional order of the country has curbed the power of the executive
too much for &lt;em&gt;over two hundred years&lt;/em&gt;, going all the way back to the
Madison v. Marbury case that first established that courts could nullify
laws and actions they deem unconstitutional.&lt;/p&gt;
&lt;p&gt;There is an aside that is hard to parse but has alarming implications.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The death of Queen Elizabeth II has given us a vivid picture of where the
Left is trying to go. An executive in a monarch with massive historic
grandeur and symbolism and no remaining authority. A parliament where
a Cabinet of MPs head the departments of state, staffed by career civil
servants with purported expertise. The Left in the U.S. doesn’t want an
energetic president with the power to bend the executive branch to the
will of the American people. They don’t want a vibrant Congress where
great questions are debated and decided in front of the American people
and the tradeoffs made there. They don’t want empowered members. They
want discouraged and bored back benchers. They want all-empowered career
“experts” like Tony Fauci to wield power behind the curtains.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What to make of this?  The British system is just radically different
from the American, not by coincidence.  It has its weaknesses, but an
inability to bend the executive branch to the will of the British people
does not seem to be among them.  (Does he think that Brexit was an idea
cookied up by career civil servants or scheming MPs?)  The fact that
the leader who matters is the Prime Minister, not the Queen or King,
shouldn&amp;rsquo;t matter unless you&amp;rsquo;re a royalist nostalgic about the days when
the power of a monarch was more absolute.&lt;/p&gt;
&lt;p&gt;I honestly don&amp;rsquo;t get the reference to
&lt;a href=&#34;https://en.wikipedia.org/wiki/Anthony_Fauci&#34;&gt;Fauci&lt;/a&gt; and “experts”.
He&amp;rsquo;s not British and what power did he have?  He was a spokesperson;
he ran the NIAID.  He was one of the people behind PEPFAR.  (He got a
Presidential Medal of Freedom for that.)  He edited a medical textbook.
Which is the thing is that made him &amp;ldquo;all-empowered&amp;rdquo;?  Seriously, why
is an immunologist with his kind of experience not someone good to
have around when you&amp;rsquo;re faced with a global pandemic?&lt;/p&gt;
&lt;p&gt;As far as I can tell, Mr. Vought would like a President to have the
powers of a monarch in the 18th century, hardly constrained by the
other branches of government, able to rule on a whim.  Constitutional
restraints that exist today are an encroachment that needs to be
turned back.  This, he says is how American statesmanship can be
defined.&lt;/p&gt;
&lt;p&gt;At the end, though, we never do get a clear explanation of how this
gets him what he wants.  I guess a president who has fewer constraints
can write more executive orders to make the government do what he
wants.  But to what end?  In the short term, yes, a lot of government
can be destroyed (as can allied countries like Ukraine).  In the long
term, though, the things that need to be done need to be done, whether
you employ people in this agency or that agency to do them.  Take for
example, the folks at &lt;a href=&#34;https://18f.org/&#34;&gt;18F&lt;/a&gt;.  They did a good job,
they got cut, but the government still needs to modernize its
technology.  That need didn&amp;rsquo;t go away.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Government Efficency</title>
    <link href="https://noctilucent.org/blog/posts/government-efficency/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/government-efficency/</id>
    <published>2025-02-08T00:00:00Z</published>
    <updated>2025-02-08T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;There is a lot of talk about cutting costs in government and it seems to
be focussing on two things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;government employees&lt;/li&gt;
&lt;li&gt;foreign aid&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&amp;rsquo;m a software engineer, so I tend to look at efficiency in terms of
performance optimization &amp;ndash; if you have a system that doesn&amp;rsquo;t have the
performance (typically latency or throughput) you need, you look for
where you optimize it.  It&amp;rsquo;s a big topic for which people write entire
books, but the fundamentals are not necessarily difficult to understand.&lt;/p&gt;
&lt;p&gt;Typically, you will want to first measure so you understand the problem.
Then you will want to look for performance &amp;ldquo;hotspots&amp;rdquo;, where a lot of
the cost is incurred.  These are the places to optimize.&lt;/p&gt;
&lt;p&gt;I think the analogy to government spending is fairly obvious: instead
of optimizing latency, you are looking at optimizing monetary cost,
but the overall principles are similar: you want to look at where the
most money is being spent.&lt;/p&gt;
&lt;p&gt;Looking at the numbers, it&amp;rsquo;s important to keep the overall context in
mind.  The federal budget for fiscal year 2024 was &lt;a href=&#34;https://fiscaldata.treasury.gov/americas-finance-guide/federal-spending/&#34;&gt;around 9.7 trillion
dollars&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Average federal government pay is not bad, &lt;a href=&#34;https://www.pewresearch.org/short-reads/2025/01/07/what-the-data-says-about-federal-workers/&#34;&gt;a little over $106,000 per
year&lt;/a&gt;. &lt;sup&gt;1&lt;/sup&gt;
According to the same source, there are around 2.4 million such employees,
so the total salary cost is a little over 250 billion a year).  So salary
cost is around 2.6% of government spending.&lt;/p&gt;
&lt;p&gt;In FY 2024, the budget for the US Agency for
International Development was &lt;a href=&#34;https://www.usaspending.gov/explorer/agency&#34;&gt;a little under 24 billion
dollars&lt;/a&gt; or, alternatively,
a little over 0.25% of the total.&lt;/p&gt;
&lt;p&gt;If you want to make meaningful saving on government spending, these
are not places to invest much effort &amp;ndash; you&amp;rsquo;re only going to make
a tiny dent even if you zero them out &lt;sup&gt;2&lt;/sup&gt;. On the other hand, the
big ticket items are Medicare and Social Security (&lt;a href=&#34;https://www.usaspending.gov/explorer/budget_function&#34;&gt;each around
16%&lt;/a&gt;) and National
Defense (around 13% according to the same source).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.usaspending.gov/explorer/budget_function&#34;&gt;&lt;img src=&#34;https://noctilucent.org/blog/posts/government-efficency/budget-breakdown-by-function.png&#34; alt=&#34;a visual breakdown of the 2024 budget by function&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I understand, these
are politically awkward places to cut money.  You can go down the list,
but then you have to scale back your expected savings.&lt;/p&gt;
&lt;p&gt;The numbers here are deliberately rough, but even if they are not quite right,
they&amp;rsquo;re in the right ballpark.  The overall point still stands.&lt;/p&gt;
&lt;p&gt;(1) These are mostly white collar jobs. Lots of government employees
could be making more money in the private sector.&lt;/p&gt;
&lt;p&gt;(2) And nobody seems to be seriously arguing that there should be zero
foreign aid and zero government employees.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Bookmarking For Myself</title>
    <link href="https://noctilucent.org/blog/posts/bookmarks/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/bookmarks/</id>
    <published>2025-01-20T00:00:00Z</published>
    <updated>2025-01-20T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;Many years ago, I was one of the refugees who left delicious.com
(no link, because the site no longer exists) and went to
&lt;a href=&#34;https://pinboard.in&#34;&gt;Pinboard&lt;/a&gt;. This worked well for many years for my
bookmarking needs, which are roughly:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Save my bookmarks&lt;/li&gt;
&lt;li&gt;Work from any browser, anywhere&lt;/li&gt;
&lt;li&gt;Keep them for the long term&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For boring reasons I won&amp;rsquo;t go into, Pinboard stopped working on that
second score. This meant I had a small itch I wanted to scratch, which
made it a perfect time to build my own solution. Basically, I wanted
the same three requirements, plus a fourth: that it should be self-hosted.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m very happy with the result, which leans heavily on a Ruby framework
that everyone knows but I don&amp;rsquo;t want to name because it draws the wrong
kind of attention from recruiters. As usual for home projects these days,
I also leaned on AI, specifically Claude via Cursor. I think it&amp;rsquo;s worth
writing a few more words on that last subject.&lt;/p&gt;
&lt;p&gt;I think I have the same experience as many other people. When it&amp;rsquo;s
good, it can be astonishingly good. I don&amp;rsquo;t know much about Turbo or
Stimulus, but I was able to use them for features because Claude does
know them—or at least well enough to do the basics. With the Composer
mode, I got close to a one-shot solution for a use case that would have
taken me hours to do by hand, especially because I would have to come
up to speed on all of the APIs that are new to me.&lt;/p&gt;
&lt;p&gt;When it&amp;rsquo;s bad, it can be pretty bad.&lt;/p&gt;
&lt;p&gt;It will get what feels like an &lt;em&gt;idée fixe&lt;/em&gt;, where it will insist on
re-introducing something I rejected earlier. The advice to stage changes
and commit often is important, but you also have to keep a close eye on
diffs to make sure there isn&amp;rsquo;t something unwanted sneaking in.&lt;/p&gt;
&lt;p&gt;It can write terribly redundant code, especially when the app gets just
a little bigger and it &amp;ldquo;forgets&amp;rdquo; what it did earlier. Context in general
can be a challenge, especially over many days or weeks.&lt;/p&gt;
&lt;p&gt;Tests, and fairly thorough tests, are a must. The &amp;ldquo;tunnel vision&amp;rdquo; of the
AI means that it is apt to break things unintentionally, and testing by
hand takes too much time and, as well as being boring, it is cumbersome.&lt;/p&gt;
&lt;p&gt;That said, I&amp;rsquo;m still happy overall. I have a bookmarking app that
suits my needs and that I host myself. It took me a few hours but,
most importantly, it was fun, like the hacking I remember doing
when I was a kid. The result, which I&amp;rsquo;m not publicizing widely, is at
&lt;a href=&#34;https://github.com/cpmurphy/bookmarks&#34;&gt;Bookmarks&lt;/a&gt;, a name that is also
deliberately chosen to be boring. My motivation here is not to impress
people with my tech skills but, as I mentioned before, to scratch my
own itch.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Guesing Beyond the End of a Game</title>
    <link href="https://noctilucent.org/blog/posts/chess-guesser-now-go-past-end-of-game/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/chess-guesser-now-go-past-end-of-game/</id>
    <published>2024-12-29T00:00:00Z</published>
    <updated>2024-12-29T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve been plugging away at &lt;a href=&#34;https://github.com/cpmurphy/guesser&#34;&gt;Chess Guesser&lt;/a&gt;,
based on what I&amp;rsquo;d want from a tool like this.  A lot of the changes are tweaks
and bug fixes that I won&amp;rsquo;t go into.&lt;/p&gt;
&lt;p&gt;One of the things I have found is that I can&amp;rsquo;t always beat an engine
starting from the end of one of the games I&amp;rsquo;m looking at.  I think
this is an important skill: even an utterly winning position can still
be thrown away.  Also, at lower levels, players will often make you
demonstrate you know how to win, even if they don&amp;rsquo;t have the patience,
never mind the skill, of an engine.&lt;/p&gt;
&lt;p&gt;The new functionality changes how the site behaves at the end of a game as recorded.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;unlike before, you can keep guessing, right until checkmate&lt;/li&gt;
&lt;li&gt;an &amp;ldquo;engine move&amp;rdquo; button is enabled, which plays the engine move&lt;/li&gt;
&lt;li&gt;you can change your mind about moves, backtrack and try alternatives&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I hope others find it as worthwhile as I do.  If you &lt;a href=&#34;https://guesser.noctilucent.org&#34;&gt;try it&lt;/a&gt;,
feel free to drop me a line &amp;ndash; contact info is available on the &amp;ldquo;about&amp;rdquo; page
of the site.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Making an Epson Scanner Work Under Ubuntu</title>
    <link href="https://noctilucent.org/blog/posts/making-an-epson-scanner-work-on-ubuntu/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/making-an-epson-scanner-work-on-ubuntu/</id>
    <published>2024-11-21T00:00:00Z</published>
    <updated>2024-11-21T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;We had a HP copier/scanner that we stopped buying ink for and used solely as a
scanner for many years and this month it finally gave up the ghost.  The power
button no longer works and I don&amp;rsquo;t have the patience or the expertise to revive
it.  So I ordered a plausible looking scanner at an online retailer (you can
guess which) that offered to deliver it next day.&lt;/p&gt;
&lt;p&gt;The scanner was an Epson Perfection V39 II.  (I kid you not, this is the actual
model number.)  I figured it would be about as hard as the old scanner to use:
in that case, it worked out-of-the-box.  Not quite true for the Epson.  I tried
just connecting the USB and running Ubuntu&amp;rsquo;s default Document Scanner.  Nothing,
the software just didn&amp;rsquo;t see there was any scanner present.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s no Linux driver available on the site named in the printed instructions
(&lt;a href=&#34;https://epson.com/support)&#34;&gt;https://epson.com/support)&lt;/a&gt;, only Windows and macOS.  However, if I searched on
the site for &amp;ldquo;Linux&amp;rdquo;, I could find a page about &lt;a href=&#34;https://epson.com/Support/wa00821?utm_source=&amp;amp;utm_medium=van&amp;amp;utm_term=&amp;amp;utm_content=&amp;amp;utm_campaign=us-linux-us&#34;&gt;Linux Support for Epson Products&lt;/a&gt;, which links to another page where it&amp;rsquo;s possible to &lt;a href=&#34;https://download.ebz.epson.net/dsc/search/01/search/?OSC=LX&#34;&gt;search for drivers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I found the best match and downloaded, ending up with a file named &lt;code&gt;epsonscan2-bundle-6.7.70.0.x86_64.deb.tar.gz&lt;/code&gt;,
which I could unpack easily enough:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar zxvf epsonscan2-bundle-6.7.70.0.x86_64.deb.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# creates a directory named epsonscan2-bundle-6.7.70.0.x86_64.deb&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd epsonscan2-bundle-6.7.70.0.x86_64.deb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# here there is a file called install.sh -- run it&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./install.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# enter your password for sudo -- installing the driver software needs root privileges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This installs both the proprietary driver and a program called, naturally, &lt;code&gt;epsonscan2&lt;/code&gt;.
It did &lt;em&gt;not&lt;/em&gt; install all the dependencies I needed.  In particular, it didn&amp;rsquo;t
install some QT libraries, causing this error message:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;epsonscan2: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I installed it myself:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# first searching for what deb has the library&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-file search libQt5Widgets.so.5
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;libqt5widgets5t64: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;libqt5widgets5t64: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;libqt5widgets5t64: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.13
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# then installing it&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install libqt5widgets5t64
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Having done that, was able to run &lt;code&gt;epsonscan2&lt;/code&gt;.  I ran it from the command line,
in order to see any error messages more easily.&lt;/p&gt;
&lt;p&gt;I ran into some more error messages trying to run it:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;QSocketNotifier: Can only be used with threads started with QThread
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
qt.qpa.wayland: Wayland does not support QWindow::requestActivate() 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As it turned out, these didn&amp;rsquo;t prevent it from starting.  After some playing around,
&lt;em&gt;I connected the scanner while Epson&amp;rsquo;s program was running&lt;/em&gt;, it detected the scanner
and initialized the driver correctly.  I could hear the scanner make some mechanical
noises and see the blue LED light up on the front of it.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t use &lt;code&gt;epsonscan2&lt;/code&gt; for anything more than the first setup.  After that, the regular
Document Scanner now works, and it&amp;rsquo;s far more polished and easy to use.  Yes, I can confirm,
it works with Ubuntu 24.04.1 LTS (Noble Numbat).&lt;/p&gt;
&lt;p&gt;There is actually &lt;a href=&#34;https://download.ebz.epson.net/man/linux/epsonscan2_e.html&#34;&gt;online documentation for epsonscan2&lt;/a&gt;
that you can consult if you run into issues.  I found it too late to use it myself, but it
might be helpful to someone else.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Introducing Chess Guesser</title>
    <link href="https://noctilucent.org/blog/posts/introducing-chess-guesser/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/introducing-chess-guesser/</id>
    <published>2024-11-09T00:00:00Z</published>
    <updated>2024-11-09T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://guesser.noctilucent.org/&#34;&gt;Chess Guesser&lt;/a&gt; is a pretty simple application
that I wanted for a while and finally got around to implementing.  The aim is
to allow you to play through an arbitrary game, guessing the moves that you
want to guess, and going forward when you don&amp;rsquo;t want to guess.  There are other
sites out there that allow you to do something similar, notably
&lt;a href=&#34;https://www.chessgames.com/&#34;&gt;chessgames.com&lt;/a&gt;&amp;rsquo;s &amp;ldquo;Guess the Move&amp;rdquo; feature, but
I like mine better.&lt;/p&gt;
&lt;p&gt;Notable features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;if you guess a move better than the move in the game, you get credit&lt;/li&gt;
&lt;li&gt;it doesn&amp;rsquo;t keep score of which guesses you got right&lt;/li&gt;
&lt;li&gt;it allows you to skip to two possibly interesting parts of the game, taking
the role of the winning player&lt;/li&gt;
&lt;li&gt;it allows you to upload a PGN of your choice&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A few words about those &amp;ldquo;interesting parts&amp;rdquo;.  They&amp;rsquo;re labelled &amp;ldquo;First Mistake&amp;rdquo;
and &amp;ldquo;Critical Moment&amp;rdquo;.  In both cases, they are after the winning player has
got a significant advantage, as judged by an engine offline.  The &amp;ldquo;first mistake&amp;rdquo;
is short for &amp;ldquo;first serious mistake&amp;rdquo; &amp;ndash; it is when the losing player makes a
mistake that they never recover from.  The &amp;ldquo;critical moment&amp;rdquo; is short for
&amp;ldquo;last critical moment&amp;rdquo; &amp;ndash; it&amp;rsquo;s when the winning player makes a move which makes
the biggest evaluation jump.&lt;/p&gt;
&lt;p&gt;The source for the application is &lt;a href=&#34;https://github.com/cpmurphy/guesser&#34;&gt;on Github&lt;/a&gt;.
Like all my recent personal projects, it benefits from AI assistance, mainly
Claude as mediated through Cursor.  I have lots of opinions about the AI, but
it does get me over the hump of reluctance to take on things that aren&amp;rsquo;t as
much fun.  Fortunately or unfortunately, I am opinionated, so I revert if
things aren&amp;rsquo;t going in a good direction.  Still, you can find plenty of
false starts and mistakes if you look in the published git history.  What is
there is definitely not perfect.  I think the biggest misfeature right now is
how well it works on mobile devices, particularly Android.  However, it&amp;rsquo;s
beyond the &amp;ldquo;brown paper bag&amp;rdquo; phase, so I&amp;rsquo;m happy for anyone to take a look at
it if they&amp;rsquo;re interested.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>First Post</title>
    <link href="https://noctilucent.org/blog/posts/firstpost/" rel="alternate" type="text/html"/>
    <id>https://noctilucent.org/blog/posts/firstpost/</id>
    <published>2024-10-20T00:00:00Z</published>
    <updated>2024-10-20T00:00:00Z</updated>
    <author>
      <name>Christian</name>
    </author>
    <content type="html">&lt;p&gt;[ &lt;em&gt;tap&lt;/em&gt; &lt;em&gt;tap&lt;/em&gt; is this thing on? ]&lt;/p&gt;
&lt;p&gt;&amp;hellip;okay, not first post, but first in a long time.&lt;/p&gt;
&lt;p&gt;Really, doing this stuff has become so easy now that I almost feel it is my duty
to resurrect the blog.  Back in the early aughts, Movable Type was &lt;em&gt;the&lt;/em&gt; way
to put up a personal blog.  In some ways, it held up well.  If you look back at
the really old articles in the blog, I kept most of the HTML and the styling
unaltered.  That was before xyz-as-a-service was a big thing, so everyone who
did it had to either figure out how to get it working or they paid someone to
do it.&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s better now?  Everything.  Hosting has become stupid cheap, even a dream
(for me) setup of a Linux box with full root access by ssh.  TLS support is
both free and almost idiot proof, thanks to Let&amp;rsquo;s Encrypt.  There are any
number of static site generators.  Even the tedious stuff of editing dozens of
old html files (the old posts) is made much less painful because of LLMs.
(It might be tough to get help in a tool Cursor with challenging programming,
but it does boring tasks like scripts to rewrite links without complaint.)&lt;/p&gt;
&lt;p&gt;The aim is always to reduce the friction of publishing personal material
(not &amp;ldquo;content&amp;rdquo;, mind you, the title of the blog is old but the feelings
remain) to the point where I could do it every day if I wanted to.&lt;/p&gt;
&lt;p&gt;Okay, let&amp;rsquo;s see if we can publish.&lt;/p&gt;
</content>
  </entry>
</feed>
