<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Christoph Frick - ofnir.net - Open Source Consultant, Software Developer and System Administrator (Posts about Advent of code)</title><link>https://ofnir.net/</link><description></description><atom:link href="https://ofnir.net/categories/advent-of-code.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:cf@ofnir.net"&gt;Christoph Frick - ofnir.net&lt;/a&gt; </copyright><lastBuildDate>Tue, 21 Apr 2026 11:44:46 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Advent of code 2020</title><link>https://ofnir.net/posts/advent-of-code-2020/</link><dc:creator>Christoph Frick - ofnir.net</dc:creator><description>&lt;p&gt;This year I am doing my first &lt;a class="reference external" href="https://adventofcode.com/"&gt;Advent of code&lt;/a&gt; ever using in Clojure.  Advent of code
gives daily code challenges, consisting of two parts building on each
other.&lt;/p&gt;
&lt;p&gt;I used this to try out &lt;a class="reference external" href="https://github.com/liquidz/vim-iced"&gt;vim-iced&lt;/a&gt;
to replace &lt;a class="reference external" href="https://github.com/tpope/vim-fireplace"&gt;vim-fireplace&lt;/a&gt; and
tried out &lt;a class="reference external" href="https://github.com/lambdaisland/kaocha"&gt;Kaocha&lt;/a&gt;.&lt;/p&gt;
&lt;section id="iced"&gt;
&lt;h2&gt;Iced&lt;/h2&gt;
&lt;p&gt;Pros:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Starts its own REPL, so no need to fiddle with cider plugins etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Good integration into NeoVim.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code evaluation is shown inline&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Macro-expand into buffer&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cons:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;The CLI tool needs a local installation of &lt;code class="docutils literal"&gt;node&lt;/code&gt; to run
&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;shadow-cljs&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code navigation only works when reloading a name-space.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multiple crashes of NeoVim over the course of the month.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="kaocha-1"&gt;
&lt;h2&gt;Kaocha&lt;/h2&gt;
&lt;p&gt;I replaced &lt;a class="reference external" href="https://github.com/jakemcc/lein-test-refresh"&gt;lein-test-refresh&lt;/a&gt; with Kaocha as my
watching test runner.  I really like the workflow of having my test run
automatically every time I save a file.&lt;/p&gt;
&lt;p&gt;Pros:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Ability to focus tests with meta annotations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Colored, pretty printed output on test failure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seamless integration with &lt;code class="docutils literal"&gt;clojure.test&lt;/code&gt; and Leiningen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Many plugins and helpers (e.g. notify on test failure/success with a
configured tool).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cons:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Found no way to stop an long running test other than &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;Ctrl-C&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The diffed output can be so overwhelming, I re-run tests sometimes
with &lt;code class="docutils literal"&gt;lein test&lt;/code&gt; just to get the plain data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output is captured and only prints once the test is finished; so
"debug-println" is delayed and might never print in case of infinite
loops.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;While I am not convinced that I will stick with Iced, I really liked
Kaocha.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/christoph-frick/aoc-clj-2020"&gt;The code is on GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;</description><category>Advent of code</category><category>Clojure</category><category>Kaocha</category><category>Vim-Fireplace</category><category>Vim-Iced</category><guid>https://ofnir.net/posts/advent-of-code-2020/</guid><pubDate>Sun, 27 Dec 2020 23:00:00 GMT</pubDate></item></channel></rss>