<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Some Random Thoughts on Clstrfsck</title><link>https://clstrfsck.github.io/</link><description>Recent content in Some Random Thoughts on Clstrfsck</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 27 Dec 2025 17:00:00 +0000</lastBuildDate><atom:link href="https://clstrfsck.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Advent of Code 2025 Day 10 Redux— Kotlin</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-10-redux/</link><pubDate>Sat, 27 Dec 2025 17:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-10-redux/</guid><description>&lt;p&gt;Please see the original &lt;a href="../aoc-2025-day-10/"&gt;day 10&lt;/a&gt; post for the Rust and
&lt;code&gt;good_lp&lt;/code&gt; solution I initially coded up. For other Kotlin solutions see
the cheesy &lt;a href="../aoc-2025-day-12/"&gt;day 12&lt;/a&gt; post.&lt;/p&gt;
&lt;h2 id="the-code"&gt;The Code&lt;/h2&gt;
&lt;p&gt;This is an implementation of the ideas
&lt;a href="https://www.reddit.com/r/adventofcode/comments/1pk87hl/2025_day_10_part_2_bifurcate_your_way_to_victory/"&gt;in a post&lt;/a&gt;
by &lt;a href="https://www.reddit.com/user/tenthmascot/"&gt;u/tenthmascot&lt;/a&gt; on Reddit.&lt;/p&gt;
&lt;p&gt;The Reddit post linked above has a good description of the algorithm. I won&amp;rsquo;t
repeat it here as it&amp;rsquo;s not my work, but the post&amp;rsquo;s title &amp;ldquo;&lt;em&gt;Bifurcate your way to
victory!&lt;/em&gt;&amp;rdquo; sums it up quite well.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 12— Kotlin</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-12/</link><pubDate>Fri, 12 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-12/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Kotlin&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Concise. Multiplatform. Fun.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://kotlinlang.org/"&gt;kotlinlang.org&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Kotlin is a great language. It&amp;rsquo;s the language of choice for Android
development, and for folks working in the JVM space, it has access to all of the
vast array of Java frameworks and libraries. The standard library is large and
well thought out.&lt;/p&gt;
&lt;p&gt;Visual Studio Code support is meh. Most folks use IntelliJ IDEA.&lt;/p&gt;
&lt;h2 id="the-code"&gt;The Code&lt;/h2&gt;
&lt;p&gt;I first &amp;ldquo;solved&amp;rdquo; this using a spreadsheet. I figured there would be a bunch of
cases that could be trivially excluded, and a bunch of cases that could be
trivially included, and I would just have to work out how to address what was
left over. It turns out that the &amp;ldquo;difficult&amp;rdquo; problem set was quite small&amp;hellip;&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 11— Haskell</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-11/</link><pubDate>Thu, 11 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-11/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Why Haskell?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;A new paradigm&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Composition and predictability&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Declarative&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Performance&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Abstraction&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Excellent tooling&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://www.haskell.org/"&gt;haskell.org&lt;/a&gt; (abridged)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I started with Swift, but I couldn&amp;rsquo;t resist rewriting the solution in Haskell.
This problem is practically tailor-made to showcase the benefits of non-strict
evaluation.&lt;/p&gt;
&lt;p&gt;Visual Studio Code support for Haskell is excellent.&lt;/p&gt;
&lt;h2 id="the-code"&gt;The Code&lt;/h2&gt;
&lt;p&gt;We define a map &lt;code&gt;memo&lt;/code&gt;, populated with all possible nodes and flag values. The
values in &lt;code&gt;memo&lt;/code&gt; are unevaluated calls to &lt;code&gt;count&lt;/code&gt;. &lt;code&gt;count&lt;/code&gt; is then defined to
look up the values it needs in &lt;code&gt;memo&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 10— Rust</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-10/</link><pubDate>Wed, 10 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-10/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Rust&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A language empowering everyone to build reliable and efficient software.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://rust-lang.org/"&gt;rust-lang.org&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A somewhat understated soundbite briefly covering Rust&amp;rsquo;s impact on the software
industry.&lt;/p&gt;
&lt;p&gt;Rust is currently a highly favored systems programming language, a position it
has earned to a significant degree. In my view, its significant popularity can
sometimes lead to its selection in scenarios where other languages might be a
more productive choice. Perhaps similar but orthogonal to the position that
Python enjoys.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 9— Python</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-09/</link><pubDate>Tue, 09 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-09/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Python is a programming language that lets you work quickly and integrate
systems more effectively.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://python.org/"&gt;python.org&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I estimate that 97.23% of all Advent of Code solutions are written in Python.
It is a super legible, super productive language with enormous libraries that
everyone uses. You&amp;rsquo;ve probably used it yourself. It&amp;rsquo;s pretty much the standard
scripting language in use today. It&amp;rsquo;s really easy to get stuff done. The
downside is that in most cases, that stuff will run more slowly than in a
compiled language.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 8— Go</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-08/</link><pubDate>Mon, 08 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-08/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build simple, secure, scalable systems with Go&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;An open-source programming language supported by Google&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Easy to learn and great for teams&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Built-in concurrency and a robust standard library&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Large ecosystem of partners, communities, and tools&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://go.dev/"&gt;go.dev&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In my view, Go (aka Golang if you want to google something), is a great language
for folks that value getting stuff done. The language designers have made a
language that has deliberately kept the core set of functionality and keywords
small and opinionated. For example, there are no &lt;code&gt;public&lt;/code&gt; or &lt;code&gt;private&lt;/code&gt; or even
&lt;code&gt;protected&lt;/code&gt; keywords in Go. Public declarations start with a capital letter (eg
&lt;code&gt;PublicFunction()&lt;/code&gt;), and non-public declarations do not (eg
&lt;code&gt;nonPublicFunction()&lt;/code&gt;).&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 7— Common Lisp</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-07/</link><pubDate>Sun, 07 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-07/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Common Lisp is intended to meet these goals:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Commonality&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Portability&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Consistency&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Expressiveness&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Compatibility&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Efficiency&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Power&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Stability&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;— Common Lisp The Language 2e, Guy L. Steele Jr. (abridged)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve included the list of design goals from the introduction of &lt;em&gt;Common Lisp The
Language, Second Edition&lt;/em&gt;. There is a greater explanation of each point in the
introduction, spanning several pages which I did not want to reproduce here.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 6— C++</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-06/</link><pubDate>Sat, 06 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-06/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;C++ was designed with systems programming and embedded, resource-constrained
software and large systems in mind, with performance, efficiency, and
flexibility of use as its design highlights. C++ has also been found useful
in many other contexts, with key strengths being software infrastructure and
resource-constrained applications, including desktop applications, video
games, servers (e.g., e-commerce, web search, or databases), and
performance-critical applications (e.g., telephone switches or space probes).&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 5— Crystal</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-05/</link><pubDate>Fri, 05 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-05/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Crystal is a general-purpose, object-oriented programming language. With
syntax inspired by Ruby, it’s a compiled language with static type-checking.
Types are resolved by an advanced type inference algorithm.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://crystal-lang.org/"&gt;crystal-lang.org&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Crystal uses LLVM to compile to native code, without the verbose syntax usually
associated with systems languages.&lt;/p&gt;
&lt;p&gt;Visual Studio Code support for Crystal is available, but not as complete as some
other languages. I understand from googling around that LSP support is more
complex because of the syntactic flexibility.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 4— Racket</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-04/</link><pubDate>Thu, 04 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-04/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Mature:&lt;/strong&gt;&lt;/em&gt; &lt;em&gt;Racket is a mature and stable product. From the beginning, it
has supported cross-platform graphical programming (Windows, macOS, Linux).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Practical:&lt;/strong&gt;&lt;/em&gt; &lt;em&gt;Racket includes a rich set of libraries, covering the full
range from web server apps to mathematics and scientific simulation software.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Extensible:&lt;/strong&gt;&lt;/em&gt; &lt;em&gt;In Racket, programmers define their own loops with powerful
macros. Indeed, these macros are so powerful that programmers make entire
domain-specific languages as libraries. No tools, no Makefiles required.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 3— D</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-03/</link><pubDate>Wed, 03 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-03/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;D is a general-purpose programming language with static typing, systems-level
access, and C-like syntax. With the D Programming Language, write fast, read
fast, and run fast.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://dlang.org/"&gt;dlang.org&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unfortunately most of the systems programming languages I&amp;rsquo;ve used in AoC 2025
appear to have lost the systems-programming race to Rust and maybe Go. That&amp;rsquo;s
something of a shame, as D seems like a worthy modern alternative to C and C++.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 2— Julia</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-02/</link><pubDate>Tue, 02 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-02/</guid><description>&lt;p&gt;The Julia Github repo has this to say about the language:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Julia is a high-level, high-performance dynamic language for technical&lt;/em&gt;
&lt;em&gt;computing.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://github.com/JuliaLang/julia"&gt;github.com/JuliaLang/julia&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Like many languages focussed on numerical computing, Julia has 1-based array
indexing. I don&amp;rsquo;t think this is a major issue, but I imagine it would be
something that would occasionaly trip up folks coming from 0-based languages
while they adjust.&lt;/p&gt;
&lt;p&gt;Visual Studio Code support for Julia is excellent.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 Day 1— Nim</title><link>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-01/</link><pubDate>Mon, 01 Dec 2025 05:00:00 +0000</pubDate><guid>https://clstrfsck.github.io/aoc-2025/aoc-2025-day-01/</guid><description>&lt;h2 id="marketing-pitch-and-impressions"&gt;Marketing Pitch and Impressions&lt;/h2&gt;
&lt;p&gt;The Nim website describes the language like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Nim is a statically typed compiled systems programming language. It&lt;/em&gt;
&lt;em&gt;combines successful concepts from mature languages like Python, Ada&lt;/em&gt; &lt;em&gt;and
Modula.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— &lt;a href="https://nim-lang.org/"&gt;nim-lang.org&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are a few additional interesting points worth noting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compiles to C, C++, or JavaScript, presumably making targeting new
architectures easier.&lt;/li&gt;
&lt;li&gt;Automatic memory management via ARC or ORC, where ORC is ARC with cycles.&lt;/li&gt;
&lt;li&gt;Compile-time Function Execution (CTFE), which permits compile-time computation
and AST manipulation.&lt;/li&gt;
&lt;li&gt;Syntax is similar to Python, using indentation for code blocks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I quite like the ideas behind Nim. It has a decent library, automatic memory
management, modern tooling and compiles to native code. The syntax is easy to
read and pleasant to work with.&lt;/p&gt;</description></item></channel></rss>