<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xls"?>
<rss version="2.0"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Open source software and nice hardware</title>
<link>http://box.matto.nl/</link>
<atom:link href="http://box.matto.nl/index.xml" rel="self" type="application/rss+xml"/>
<description>Open source software and nice hardware</description>
<generator>A Common Lisp thingy</generator>
<pubDate>Mon, 12 Oct 2026 11:30:01 +0200</pubDate>
<item>
<title>Readeck is a great tool</title>
<link>https://box.matto.nl/readeck-is-a-great-tool.html</link>
<guid isPermaLink="false">https://box.matto.nl/readeck-is-a-great-tool.html</guid>
<pubDate>Mon, 12 Oct 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-10-12T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="readeck_is_a_great_tool">Readeck is a great tool</h1>

<p><a href="https://readeck.org/en/" >Readeck</a> is a self-hosted open source read-it-later webapplication.</p>

<p>Readeck calls itself &quot;Your Own Content Hub&quot;.</p>

<h2 id="save_the_story,_cut_the_clutter">Save the story, cut the clutter</h2>

<blockquote>
<p>Readeck helps you keep all that web content you’ll want to revisit in an hour, tomorrow, or in 20 years.</p>
</blockquote>

<p>Readeck uses the slogan &quot;Save the story, cut the clutter&quot;.</p>

<p>Which is totally true.</p>

<p>When you save an URL in Readeck, it is cleared of bloat. When you
open a saved URL you get to see it like in the reader-mode of your
browser.</p>

<p>As the original URL is also stored, you can always open the original page.</p>

<h2 id="easy_to_read">Easy to read</h2>

<p>Using Readeck have changed the way I read longer web pages like essays
or information dense wep pages.
I read those either in
<a href="/eww-survival-guide.html" >eww</a> (the web browser built in Emacs) or in Readeck.
Saving pages in Readeck is very convenient.</p>

<p>Readeck shows every saved page in the same kind of markup, the same font
and so on. This makes web pages much easier to read.</p>

<p>Sometimes web pages are hard to read because of a
fancy color scheme, font, font size and so on. When I run into
such a web page --and still want to read its contents-- I save
the page in Readeck, read it there, and decide to keep it in Readeck
or delete it again.</p>

<h2 id="no_ads_and_other_bloat">No ads and other bloat</h2>

<p>Readeck removes all the clutter, including menu's and ads,
and gives you a no nonsense version of the original web page.</p>

<h2 id="tags">Tags</h2>

<p>You can add as much tags as you want to every saved page.</p>

<p>The main menu allows you to list the pages with a certain tag.</p>

<p>This is a very helpful when doing research. Just tag all the
relevant pages over time when you save them, and later go through
them in one go.</p>

<h2 id="highlighting_and_annotation">Highlighting and annotation</h2>

<p>Highlight certain parts of a saved web page, optionally add
a comment.</p>

<p>There are a number of colors to choose, so you can create your
own organization. Yellow highlights for this, magenta highlights
for that, and so on.</p>

<p>Open all your highlights including the comments, ordered by
date.</p>

<h2 id="full_text_search">Full text search</h2>

<p>Searching in Readeck is full text search. It searches in the content
of the saved web pages, as well as in your annotations.</p>

<p>This is very valuable option.</p>

<h2 id="export_to_epub">Export to epub</h2>

<p>You can export a single page or a collection of pages to epub.</p>

<p>Great to read f.e., when traveling using public transportation, or
reading outside in garden.</p>

<h2 id="workflow">Workflow</h2>

<p>Many web pages use Javascript and don't open in eww, and saving
pages in Readeck is very convenient. Saving pages Readeck has taken
over my previous workflow.</p>

<p>When I read a web page in eww and want to save it, I hit <code>&amp;</code>
(shift-F7) to open it in Librewolf, and from there save it in
Readeck.</p>

<p>From previous experiences with bookmarking tools I have learned
not to overwhelm myself with a large number of bookmarks.</p>

<p>When I do research I search for relevant web pages, do a quick
triage and save the promising pages. After having collected
a number of pages, I go through them, highlighting and annotating
in Readeck and making notes in my note taking system.</p>

<p>When I have consumed all the information, I remove the pages
from Readeck.</p>

<p>Currently I have about 60 pages in my Reaceck.</p>

<h2 id="easy_to_install">Easy to install</h2>

<p>Readeck is available for FreeBSD, Linux, MacOS and even, if you
must, for windows.</p>

<p>It is easy to install. I use it with NGINX as reverse proxy.</p>

<h2 id="quickly_becomes_a__favorite_tool">Quickly becomes a  favorite tool</h2>

<p>I started using Readeck about 3 months ago, and it has become
one of my favorite tools.</p>

<p>Give it a try!</p>
]]></description>
</item>
<item>
<title>Books and some interesting stuff I read in September 2026</title>
<link>https://box.matto.nl/books-and-some-interesting-stuff-i-read-in-september-2026.html</link>
<guid isPermaLink="false">https://box.matto.nl/books-and-some-interesting-stuff-i-read-in-september-2026.html</guid>
<pubDate>Fri, 02 Oct 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-10-02T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="books_and_some_interesting_stuff_i_read_in_september_2026">Books and some interesting stuff I read in September 2026</h1>

<h2 id="non-fiction">Non-fiction</h2>

<h3 id="the_dawn_of_everything_by_david_graeber_and_david_wengrow_(2021)">The Dawn of Everything by David Graeber and David Wengrow (2021)</h3>

<ul>
<li>704 pages</li>
<li>5 stars</li>
</ul>

<p>There is no doubt that something has gone terribly wrong with the
world. A very small percentage of its population do control the
fates of almost everyone else, and they are doing it in an
increasingly disastrous fashion.</p>

<p>How did we find ourselves stuck in just one form of social
reality, and how did relations based ultimately on violence and
domination come to be normalized within it?</p>

<p>In search for the origins of social inequality, the authors take
us on a journey through human history. Based on modern insights
and new evidence, they shatter many beliefs about past human
societies on the different continents.</p>

<p>The book is around 700 pages. Every chapter ends with a list
of references, and the book ends in a 63-page biography.</p>

<h3 id="montaigne_by_stefan_zweig_(1941)">Montaigne by Stefan Zweig (1941)</h3>

<ul>
<li>128 pages -
5 stars</li>
</ul>

<p>Zweig wrote this biography before his death. According
to the introduction, it was not finished. F.e., some chapters
don't have a title. </p>

<p>Zweig emphasizes in this short book Montaigne's fight to stay free,
to live life as he wanted, not how others thought one should live.</p>

<p>Short but good.</p>

<h2 id="fiction">Fiction</h2>

<h3 id="momo_by_michael_ende_(1974)">Momo by Michael Ende (1974)</h3>

<ul>
<li>240 pages</li>
<li>5 stars</li>
</ul>

<p>Momo is a little child with a gift for listening.
Men in gray infiltrate the city and sell the idea of
time saving to the inhabitants. They are told that their
saved time is deposited at the Timesavings Bank and will
be returned with interest. This has a very bad effect and
Momo tries to to stop them.</p>

<p>A charming and marvelous book and absolute a must-read.</p>

<h2 id="short_stories">Short stories</h2>

<h3 id="asleep_in_armageddon_by_rad_bradbury_(1948)">Asleep in Armageddon by Rad Bradbury (1948)</h3>

<p>Short story about a spaceman marooned on a planetoid.</p>

<p><a href="https://www.libraryofshortstories.com/onlinereader/asleep-in-armageddon" >https://www.libraryofshortstories.com/onlinereader/asleep-in-armageddon</a></p>

<h2 id="interesting_internet_reads">Interesting internet reads</h2>

<p>Some noteworthy internet reads:</p>

<h3 id="the_joy_of_maintenance">The joy of maintenance</h3>

<p>In this essay, But she's a girl... writes about the joy of running
your own blog and doing the maintenance work actually by your self.
Not being puppeteered by some LLM, but solving the problems on your
own.</p>

<p>A wonderful must-read, even if you don't run your own blog.</p>

<p><a href="https://www.rousette.org.uk/archives/the-joy-of-maintenance/" >https://www.rousette.org.uk/archives/the-joy-of-maintenance/</a></p>

<h3 id="&quot;i'm_not_dead_yet!&quot;_reverse_polish_notation_calculators_you_can_still_buy">&quot;I'm Not Dead Yet!&quot; Reverse Polish Notation Calculators You Can Still Buy</h3>

<p>Mainly mention this page here for the photo's :)</p>

<p>It brings back many memories.</p>

<p>At the time I really would be helped with a Reverse Polish Notation
Calculator (around 1976), I didn't have the money, and bought a Texas
Instruments SR-50A instead.</p>

<p>Many years later, I finally bought a HP-10C, and got my first RPN
calculator.  The HP-10C has the same style as the HP- 12C shown in this
webpage. It was more for still wanting a RPN calculator than really
needing one.</p>

<p>I still have the HP calculator laying around in a drawer, with the
batteries removed, to prevent damage by leakage. But nowadays I just
use `<code>dc</code> on my FreeBSD laptop, which is a command line RPN
calculator.</p>

<p><a href="https://hackaday.com/2026/09/02/im-not-dead-yet-reverse-polish-notation-calculators-you-can-still-buy/" >https://hackaday.com/2026/09/02/im-not-dead-yet-reverse-polish-notation-calculators-you-can-still-buy/</a></p>

<h3 id="why_you_should_try_living_without_free_will_for_two_weeks">Why you should try living without free will for two weeks</h3>

<p>A great essay by Tara-Lyn Camilleri, an evolutionary biologist. </p>

<p>Many people assume we have a free will. There could be fear behind
this assumption: without free will, what is the point? Yet scientists
see that our behavior emerges from factors like genetics,
development, stress, trauma, resources, norms and history.</p>

<p>Looking at events from the perspective that people have full free
will, or from the perspective that people don't, completely changes
your judgment. It changes the kind of questions you ask.</p>

<p>This essay proposes to live without free will for two weeks, and
see how and what changes.</p>

<p><a href="https://psyche.co/ideas/why-you-should-try-living-without-free-will-for-two-weeks" >https://psyche.co/ideas/why-you-should-try-living-without-free-will-for-two-weeks</a></p>

<h3 id="my_last_six_months_at_evernote,_after_bending_spoons_took_over">My last six months at Evernote, after Bending Spoons took over</h3>

<p>Testimony of how enshittification destroyed a once popular product.</p>

<p>A wonderful recap by Alex.</p>

<p><a href="https://alexkras.com/my-last-six-months-at-evernote-after-bending-spoons-took-over/" >https://alexkras.com/my-last-six-months-at-evernote-after-bending-spoons-took-over/</a></p>

<h3 id="from_git_to_fossil">From Git to Fossil</h3>

<p>Lucio describes how to migrate from Git to Fossil.</p>

<p>Lucio states that the motivation comes from the fact that Git wants to
make Rust mandatory. The blog post gives several reasons why that is not
a positive development.</p>

<p>Some stuff to think about, and a helpful description how to migrate.</p>

<p><a href="https://lucio.albenga.es/web-en/posts/2025/from-git-to-fossil.html" >https://lucio.albenga.es/web-en/posts/2025/from-git-to-fossil.html</a></p>

<h3 id="jabber/xmpp:_how_do_we_gain_traction?">Jabber/XMPP: How Do We Gain Traction?</h3>

<blockquote>
<p>Communication should not be controlled by a single company.</p>
</blockquote>

<p>In this post, Daniel Gultsch describes that when it comes to instant
messages, there are only two features people actually care about:
reliable message delivery and the ability to reach their friends.</p>

<p>It is the latter part constitutes the problem: the so-called
network-effect. When all your friends are on Signal, and you are
on a different platform, you're basically out of the group.</p>

<p>The best thing we can do to beat the network effect, is increasing
the visibility.</p>

<p>One of the things Daniel proposes, is to put a &quot;share via XMPP&quot; link
on your blog posts. Just look below :)</p>

<p><a href="https://gultsch.de/posts/how-do-we-gain-traction/" >https://gultsch.de/posts/how-do-we-gain-traction/</a></p>

<h3 id="the_ai_extinction_narrative_is_winning_out">The AI extinction narrative is winning out</h3>

<p>In this essay, Brian Merchant explains how the AI extinction narrative 
strategy is aimed at maximizing profits and a path-way to self-regulation.</p>

<blockquote>
<p>“I invented the term artificial intelligence,” the Stanford computer scientist John McCarthy said in 1973, “and I invented it because we had to do something when we were trying to get money for a summer study in 1956.”</p>
</blockquote>

<p>The narrative helps the companies to be seen as a significant investor
value. The timing is no coincidence, the companies are on the brink of
holding IPOs that will make their executives unfathomably rich.</p>

<p>The narrative also helps to let the industry write their own
regulations, audits, safety standards, and so on. This way they
can set their own terms and raise a barrier to new entries into
this market.</p>

<p>By slowing the pace, they can stop racing against each other and 
milk more money out of the current products.</p>

<p>It's all about the money.</p>

<p>Also Brain explains how workers can beat the tech oligarch.</p>

<p><a href="https://www.bloodinthemachine.com/p/how-the-stories-about-all-powerful" >https://www.bloodinthemachine.com/p/how-the-stories-about-all-powerful</a></p>

<h3 id="your_body_of_work_thinks_back_at_you">Your Body Of Work Thinks Back At You</h3>

<p>This blogpost from cedric with some lovely photographs is interesting from several viewpoints.</p>

<ul>
<li>The first is, how people can have different hobbies.</li>
<li>The second is, that doing something long enough, and it gives unexpected insights.</li>
<li>The third is, how our world is getting more hostile.</li>
</ul>

<p><a href="https://photoni.st/index.php/2026/09/25/your-body-of-work-thinks-back-at-you/" >https://photoni.st/index.php/2026/09/25/your-body-of-work-thinks-back-at-you/</a></p>
]]></description>
</item>
<item>
<title>Destroy a range of ZFS snapshots with a single command</title>
<link>https://box.matto.nl/destroy-a-range-of-zfs-snapshots-with-a-single-command.html</link>
<guid isPermaLink="false">https://box.matto.nl/destroy-a-range-of-zfs-snapshots-with-a-single-command.html</guid>
<pubDate>Tue, 08 Sep 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-09-08T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="destroy_a_range_of_zfs_snapshots_with_a_single_command">Destroy a range of ZFS snapshots with a single command</h1>

<p>When you have a number of old ZFS snapshots to destroy, it can be useful to
see if you can delete a complete range.</p>

<p>A range of snapshots can be destroyed with a single command.</p>

<p>This is what the <a href="https://openzfs.github.io/openzfs-docs/man/master/8/zfs-destroy.8.html" >man page</a> says:</p>

<blockquote>
<p>An inclusive range of snapshots may be specified by separating the
first and last snapshots with a percent sign. The first and/or last
snapshots may be left blank, in which case the filesystem's oldest
or newest snapshot will be implied.</p>
</blockquote>

<p>This requires some careful reading.</p>

<p>When omitting the begin or end of the range, it comes down to this:</p>

<ul>
<li>zfs destroy <code>zroot/path/to/set@%snap</code> will destroy all snapshots from the oldest to and including <code>zroot/path/to/set@snap</code></li>
<li>zfs destroy <code>zroot/path/to/set@snap%</code> will destroy all snapshots starting from <code>zroot/path/to/set@snap</code> to and including the newest</li>
</ul>

<h2 id="destroy_old_snapshosts">Destroy old snapshosts</h2>

<p>When you want to destroy all older snapshots of a data set and only keep the newer ones, just
pick the newest snapshot you don't want to keep,<br/>
say <code>zroot/path/to/set@2026-09-01</code>.</p>

<p>Now add a percent sign <strong>before</strong> the snapname (the part after the <code>@</code>): <code>zroot/path/to/set@%2026-09-01</code></p>

<p>This will destroy all the snapshots older than this one and also this one.</p>

<h2 id="check_before_destroying">Check before destroying</h2>

<p>Be careful, and first check that your command does indeed what you want.</p>

<p>For this, use the <code>-n</code> and <code>-v</code> flags:</p>

<pre><code>zfs destroy -nv zroot/path/to/set@%2026-09-01
</code></pre>

<p>zfs will report what snapshots will be destroyed if you omit the <code>-n</code> flag.</p>

<p>Better safe than sorry!</p>
]]></description>
</item>
<item>
<title>Books and some interesting stuff I read in August 2026</title>
<link>https://box.matto.nl/books-and-some-interesting-stuff-i-read-in-august-2026.html</link>
<guid isPermaLink="false">https://box.matto.nl/books-and-some-interesting-stuff-i-read-in-august-2026.html</guid>
<pubDate>Tue, 01 Sep 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-09-01T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="books_and_some_interesting_stuff_i_read_in_august_2026">Books and some interesting stuff I read in August 2026</h1>

<h2 id="fiction">Fiction</h2>

<h3 id="ready_player_one_by__ernest_cline_(2011)">Ready Player One by  Ernest Cline (2011)</h3>

<ul>
<li>374 pages</li>
<li>5 stars</li>
</ul>

<p>Dystopian science fiction story about a virtual reality
world, called OASIS. In his will, the creator has left the
ownership of OASIS as well as his fortune to the winner of a conquest.
This power and this amount of money leads to a fight between
good and evil.</p>

<p>After reading the book I discovered it was also turned into
a movie, and watched the trailer. If you haven't seen the movie
and the trailer, better first read the book. From the trailer I
expect that the book is much better. Even watching the trailer
takes a way your change to build your own vision of the
main characters.</p>

<h2 id="short_stories">Short stories</h2>

<h3 id="there_will_come_soft_rains_by_ray_bradbury_(1950)">There Will Come Soft Rains by Ray Bradbury (1950)</h3>

<p>Short story about a house that stands intact in an area that
has otherwise been obliterated by a nuclear bomb.</p>

<p>The title was from a poem from 1918 during World War I.</p>

<p><a href="https://www.libraryofshortstories.com/storiespdf/there-will-come-soft-rains.pdf" >https://www.libraryofshortstories.com/storiespdf/there-will-come-soft-rains.pdf</a></p>

<h3 id="the_nothing_equation_by_tom_godwin_(1957)">The Nothing Equation by Tom Godwin (1957)</h3>

<p>Scary short story about lonlyless in space.</p>

<p><a href="https://www.libraryofshortstories.com/onlinereader/the-nothing-equation" >https://www.libraryofshortstories.com/onlinereader/the-nothing-equation</a></p>

<h2 id="interesting_internet_reads">Interesting internet reads</h2>

<p>Some noteworthy internet reads:</p>

<h3 id="re-noted:_3_lessons_on_writing_from_joan_didion's_notes">Re-Noted: 3 Lessons on Writing from Joan Didion's Notes</h3>

<p>A wonderful piece by Jillian Hess.</p>

<p>Jillian takes us on a tour discovering the workflow of Joan Didion.</p>

<p><a href="https://jillianhess.substack.com/p/re-noted-3-lessons-on-writing-from" >https://jillianhess.substack.com/p/re-noted-3-lessons-on-writing-from</a></p>

<h3 id="taste_is_all_that's_left">Taste Is All That's Left</h3>

<p>A must-read essay by raf about the damage AI does and its impact.</p>

<p><a href="https://notashelf.dev/posts/taste-is-all-thats-left" >https://notashelf.dev/posts/taste-is-all-thats-left</a></p>

<h3 id="climate:_two_hypotheses,_two_futures">Climate: Two Hypotheses, Two Futures</h3>

<p>An easy to read explanation of the effects of the emission of
greenhouse gases.</p>

<p>No speculations, just physics and chemistry. Highly recommended must-read.</p>

<p><a href="https://www.dailykos.com/stories/2026/8/29/800091113/community/climate-two-hypotheses-two-futures/" >https://www.dailykos.com/stories/2026/8/29/800091113/community/climate-two-hypotheses-two-futures/</a></p>

<h3 id="the_last_collapse">The Last Collapse</h3>

<p>A very thorough essay by Sarah about why after the collapse a reset
to even a bronze age or iron age kind of life is not an option.</p>

<blockquote>
<p>What the end actually looks like, and why humanity can never rebuild.</p>
</blockquote>

<p>Depressing indeed, but we can't hide from the facts.
Another highly recommended must-read.</p>

<p><a href="https://www.collapse2050.com/the-last-collapse/" >https://www.collapse2050.com/the-last-collapse/</a></p>

<h3 id="what_to_do_with_a_retro_computer">what to do with a retro computer</h3>

<p>In this great blog post, mavica explains the problems that rise
from the lack of availability of older software.</p>

<p>Very recognizable.</p>

<p><a href="https://maple.pet/blog/what-to-do-with-a-retro-computer" >https://maple.pet/blog/what-to-do-with-a-retro-computer</a></p>

<h3 id="jabber/xmpp:_25_years_of_digital_independence">Jabber/XMPP: 25 Years of Digital Independence</h3>

<blockquote>
<p>There is something fascinating about the fact that XMPP has developers
in its community who are younger than the protocol itself.</p>
</blockquote>

<p>Treating digital communication as true infrastructure can only be
achieved by adopting and mandating open standards.</p>

<p>A changing geopolitical situation and the realization that Big Tech
holds too much power lead us to seek out and develop alternatives. But
what if the alternative has been right under our noses for over 25
years?</p>

<p><a href="https://gultsch.de/posts/25-years-of-digital-independence/" >https://gultsch.de/posts/25-years-of-digital-independence/</a></p>

<h3 id="two_providers,_a_stubborn_plateau_and_a_very_long_tail:_email_in_the_tranco_top-1m">Two Providers, a Stubborn Plateau and a Very Long Tail: Email in the Tranco Top-1M</h3>

<p>The internet society reports on research done on MX-records</p>

<p>Some outcomes:</p>

<ul>
<li>Google and Microsoft now process 38% of all email.</li>
<li>Self-hosting is in decline, currently at 22%</li>
<li>Only 47% of domains with DMARC, enforces it</li>
</ul>

<p>Or, in other words, Google (22%) and Microsoft (17%) process a big chunk of
the world's email traffic. This chunk is only growing.</p>

<p>Many domains have adopted DMARC, but less than half actually enforces it.
The promise of DMARC is to end email-spoofing. It is really bad that the
enforcing level is so low.</p>

<p>Email is the most important step in the journey towards digital sovereignty.
Not only are most email messages unencrypted and therefor spilling all your
secrets, but when your email is in the walled garden of either Google or
Microsoft, it is impossible to escape their walled gardens.</p>

<p>There are many smaller email hosting companies in Europe, there is no need
to put your communication in the hands in these two evil and unethical
US empires.</p>

<p><a href="https://pulse.internetsociety.org/en/blog/2026/08/two-providers-a-stubborn-plateau-and-a-very-long-tail-email-in-the-tranco-top-1m/" >https://pulse.internetsociety.org/en/blog/2026/08/two-providers-a-stubborn-plateau-and-a-very-long-tail-email-in-the-tranco-top-1m/</a></p>

<h3 id="stanislaw_lem_foretold_the_current_llm_mania_in_1964">Stanislaw Lem foretold the current LLM mania in 1964</h3>

<p>This blogpost from Nibble Stew about the novel &quot;The Cyberiad&quot; written by
Stanislaw Lem in 1964. This novel contains a story that is remarkable
close to the current LLM-events.</p>

<p><a href="https://nibblestew.blogspot.com/2026/08/stanisaw-lem-foretold-current-llm-mania.html" >https://nibblestew.blogspot.com/2026/08/stanisaw-lem-foretold-current-llm-mania.html</a></p>

<h3 id="cores_in_space:_the_core_memory_module_from_a_1980_spacelab_computer">Cores in space: The core memory module from a 1980 Spacelab computer</h3>

<p>Nice post about the core memory in the 1980 Spacelab computer.
With photos.</p>

<p>Cores in space: The core memory module from a 1980 Spacelab computer</p>

<p><a href="https://www.righto.com/2026/08/spacelab-core-memory.html" >https://www.righto.com/2026/08/spacelab-core-memory.html</a></p>

<h3 id="is_this_really_a_good_reason_to_triple_datacentre_capacity_in_europe?">Is this <em>really</em> a good reason to triple datacentre capacity in Europe?</h3>

<p>Capitalism at its best.</p>

<p>The European strategy to regain its perceived competitiveness seems to be based
on a  a blog post from a commercial real estate firm. The more people invest in
data centers real estate, the more money they make.</p>

<p><a href="https://rtl.chrisadams.me.uk/2026/07/is-this-really-a-good-reason-to-triple-datacentre-capacity-in-europe/" >https://rtl.chrisadams.me.uk/2026/07/is-this-really-a-good-reason-to-triple-datacentre-capacity-in-europe/</a></p>
]]></description>
</item>
<item>
<title>Jugulans is now developed on Chicken Scheme 6</title>
<link>https://box.matto.nl/jugulans-is-now-developed-on-chicken-scheme-6.html</link>
<guid isPermaLink="false">https://box.matto.nl/jugulans-is-now-developed-on-chicken-scheme-6.html</guid>
<pubDate>Thu, 27 Aug 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-08-27T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="jugulans_is_now_developed_on_chicken_scheme_6">Jugulans is now developed on Chicken Scheme 6</h1>

<p>After upgrading from Chicken Scheme 5 to Chicken Scheme 6
I am now developing 
<a href="https://codeberg.org/mattof/jugulans" ><code>jugulans</code></a> on Chicken Scheme 6.</p>

<p>This required only a minor change.</p>

<p><code>jugulans</code> is a text mode mind map application. With it you can build
mind maps in the terminal.</p>

<pre><code>                                              /- new child
                                              |
                 /- creating nodes -----------|- new sibling
                 |                            |
                 |                            \- new parent
                 |
                 |
                 |
                 |                            /- up
                 |                            |
                 |                            |- down
                 |- moving nodes -------------|
                 |                            |- left
                 |                            |
                 |                            \- right
                 |
                 |
jugulans   ------|
                 |                            /- delete a node
                 |- deleting nodes -----------|
                 |                            \- delete a subtree
                 |
                 |
                 |
                 |                            /- up
                 |                            |
                 |                            |- down
                 |- navigation ---------------|
                 |                            |- left
                 |                            |
                 |                            \- right
                 |
                 |
                 \- Hide and show subtree ---- and more
</code></pre>

<p>See also the <a href="https://box.matto.nl/jugulans-a-text-mode-mind-map-application.html" >first post</a> about
<code>jugulans</code>.</p>
]]></description>
</item>
<item>
<title>Git branches and Emacs built-in VC</title>
<link>https://box.matto.nl/git-branches-and-emacs-builtin-vc.html</link>
<guid isPermaLink="false">https://box.matto.nl/git-branches-and-emacs-builtin-vc.html</guid>
<pubDate>Sun, 09 Aug 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-08-09T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="git_branches_and_emacs_built-in_vc">Git branches and Emacs built-in VC</h1>

<h2 id="emacs_vc">Emacs VC</h2>

<p><a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Version-Control.html" >Emacs VC</a> 
is the built-in Emacs version control interface.</p>

<p>It is very capable, and its use is intuitive. </p>

<p>Emacs VC can be used with practically all version control systems.
I have used it frequently with RCS and CVS.</p>

<h2 id="no_need_for_magit">No need for Magit</h2>

<p>For my typical use of Git, VC offers all I need, and I have 
stopped installing and using Magit.</p>

<p>The default key bindings of VC all start with <code>C-x v</code></p>

<p>For example, to commit changes, use <code>C-x v v</code>, and
push them with <code>C-x v P</code>. </p>

<h2 id="vc_and_git_branches">VC and Git branches</h2>

<h3 id="creating_a_git_branch_with_vc">Creating a Git branch with VC</h3>

<p>To create a new branch, use <code>C-x v b c</code></p>

<p>This will prompt for the name of the new branch
and ask for the start-point of the branch.</p>

<h3 id="switching_between_branches">Switching between branches</h3>

<p>To switch to a different branch, use <code>C-x v b s</code>.</p>

<p>This will prompt for the name of the branch, you can use completion
to select a branch.</p>

<h3 id="merge">Merge</h3>

<p>To merge merge changes from another branch in the current, use <code>C-x v m</code>.</p>

<p>This will prompt for the name of the branch, you can use completion
to select a branch.</p>

<h3 id="push_and_pull">Push and pull</h3>

<p>To push to the upstream branch, use  <code>C-x v P</code></p>

<p>To pull from the upstream branch, use <code>C-x v +</code>.</p>

<h3 id="change_log_of_another_branch">Change log of another branch</h3>

<p>To view the change log of another branch, use <code>C-x v b l</code>.</p>

<p>This gives a Git blame like overview of changes of the current fileset.</p>

<h2 id="overview_and_commit_changes">Overview and commit changes</h2>

<p>Display the VC directory byffer with <code>C-x v d</code>.</p>

<p>This is a very useful buffer, and offers convenience like Magit. </p>

<p>It shows the Git status of the current directory and gives a menu to:</p>

<ul>
<li>View diffs</li>
<li>Revert, delete, ignore and commit changes</li>
<li>Mark and unmark</li>
<li>Push marked</li>
</ul>

<h2 id="try_these_also">Try these also</h2>

<p><code>C-x v h</code> (vc-region-history) to view the changes made in the active region.</p>

<p><code>C-x v O</code> (vc-log-outgoing) to view the changes to be pushed to upstream.</p>

<p><code>C-x v I</code> (vc-log-incoming) to view the changed to be pulled from upstream.</p>

<h2 id="there_is_more">There is more</h2>

<p>All above is of course very well documented in the 
<a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Branches.html" >excellent documentation</a>.</p>

<p>Just try it your self! </p>

<p>VC is built-in, no need to install anything, and worthwhile to explore.</p>
]]></description>
</item>
<item>
<title>jugulans a text mode mind map application</title>
<link>https://box.matto.nl/jugulans-a-text-mode-mind-map-application.html</link>
<guid isPermaLink="false">https://box.matto.nl/jugulans-a-text-mode-mind-map-application.html</guid>
<pubDate>Tue, 04 Aug 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-08-04T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="jugulans_a_text_mode_mind_map_application">jugulans a text mode mind map application</h1>

<p><a href="https://codeberg.org/mattof/jugulans" >Jugulans</a> is a
<a href="https://en.wikipedia.org/wiki/Text_mode" >text mode</a>
<a href="https://en.wikipedia.org/wiki/Mind_map" >mind map</a> application.</p>

<p>It lets the user build a mind map using just the keyboard, and save
it in org-mode format.</p>

<pre><code>                                              /- new child
                                              |
                 /- creating nodes -----------|- new sibling
                 |                            |
                 |                            \- new parent
                 |
                 |
                 |
                 |                            /- up
                 |                            |
                 |                            |- down
                 |- moving nodes -------------|
                 |                            |- left
                 |                            |
                 |                            \- right
                 |
                 |
jugulans   ------|
                 |                            /- delete a node
                 |- deleting nodes -----------|
                 |                            \- delete a subtree
                 |
                 |
                 |
                 |                            /- up
                 |                            |
                 |                            |- down
                 |- navigation ---------------|
                 |                            |- left
                 |                            |
                 |                            \- right
                 |
                 |
                 \- Hide and show subtree ---- and more
</code></pre>

<p>Maps can also be build and/or shown in tree-mode:</p>

<pre><code>jugulans
|--creating nodes
|   |--new child
|   |--new sibling
|   `--new parent
|--moving nodes
|   |--up
|   |--down
|   |--left
|   `--right
|--deleting nodes
|   |--delete a node
|   `--delete a subtree
|--navigation
|   |--up
|   |--down
|   |--left
|   `--right
`--Hide and show subtree
    `--and more
</code></pre>

<h3 id="minimalistic">Minimalistic</h3>

<p>jugulans has a minimalist design.</p>

<ul>
<li><a href="https://en.wikipedia.org/wiki/Text-based_user_interface" >TUI</a>: Jugulans is a text mode application.</li>
<li>Single-key key bindings: no mouse, just the keyboard.</li>
<li>Limited feature set</li>
</ul>

<p>For people accustomed to HJKL-keybindings, the user interface is intuitive.</p>

<h3 id="designed_to_disturb_your_flow_as_less_as_possible.">Designed to disturb your flow as less as possible.</h3>

<p>Mind maps are, in my opinion, a tool to support your thinking, and
not so much a tool for communication. They should hinder you a less
as possible. A minimalistic approach is therefor the best, with only
a small set of features, and using just single-key commands.</p>

<h2 id="saves_in_org-mode_format">Saves in org-mode format</h2>

<p>jugulans saves the mind map in org-mode format.</p>

<p>This way you can use the application to develop the outline for
f.e., an article or essay.</p>

<h2 id="features">Features</h2>

<ul>
<li><strong>Create nodes</strong>: create a child node, create a sibling node, create a new parent node.</li>
<li><strong>Move nodes</strong>: move nodes up and down in the list of siblings, move a node left or right to promote or demote a node.</li>
<li><strong>Freely move nodes</strong>: mark a node, navigate through the mind map and move the marked node (including its childnodes) to the desired location.</li>
<li><strong>Delete nodes</strong>: delete a single node, or delete a complete subtree</li>
<li><strong>Hide or show</strong>: a single key press toggles between collapse/uncollapse, to hide or show the subtree.</li>
<li><strong>Rename</strong>: rename a node; to rename the mind map simply rename the root-node.</li>
<li><strong>Create or open existing</strong>: create a new mind map, or open an earlier saved mind map.</li>
<li><strong>Navigate</strong> Move around from node to node, or jump from any node to the root-node, and back.</li>
<li><strong>Search</strong> Use search to quickly jump to any node.</li>
<li><strong>Map mode</strong>: Toggle between mindmap-mode and tree-mode.</li>
</ul>

<h3 id="jump">Jump</h3>

<p>Jump to the root-node with the <code>a</code> key. The node from where the
jump takes place is stored. Jump back to this node with the <code>A</code>
key.</p>

<p>This node is remembered until the next jump to the root-node. So you
can jump any time back to that node with <code>A</code>, until you jump
from another node to the root-node.</p>

<h3 id="search">Search</h3>

<p>Jump to any node. Use the <code>/</code> key to enter search mode.</p>

<p>Enter a string of a few characters (minimal 2). <code>jugulans</code> will
find the nodes with the string in their label, and jump to the
first.</p>

<p>Jump to the other matching labels with <code>n</code> and <code>N</code>.</p>

<p>The list of matching records will be remembered until the next search command.</p>

<h3 id="scroll_and_pan">Scroll and pan</h3>

<p>The user can scroll up or down, and pan left or right. The system
automatically scrolls and pans to keep the active node visible.</p>

<h3 id="redraw">Redraw</h3>

<p>The user can any time request a redraw of the screen. When the system
performs this action, it also updates its notion of the terminal size.
Use this if you have resized your terminal window.</p>

<h2 id="mapname">Mapname</h2>

<p>Enter the name of the map you want to make or edit after the command:</p>

<p><code>jugulans &lt;mymap&gt;</code></p>

<p>This also works to edit a previous saved mind map.</p>

<p>In that case you can also enter the full file name:</p>

<p><code>jugulans &lt;mymap.tmm&gt;</code></p>

<p>To <strong>rename</strong> the map, rename the root node. </p>

<p>The quickest way is to jump to the rood node with <code>a</code> and
change its label with <code>r</code>.</p>

<p>After this, save the map with <code>s</code>. It will be saved to a file
matching the new map name.</p>

<h2 id="key_bindings">Key bindings</h2>

<p>An overview of the key bindings can be called up at any time
with <code>?</code>. Press <code>q</code> to close the overview and return to the
map.</p>

<h2 id="fun_to_develop">Fun to develop</h2>

<p>jugulans is developed by a human, coded using GNU Emacs on a laptop
running FreeBSD without any use of AI.</p>

<p>Building jugulans was my first project in Chicken Scheme. I learned a lot
and had a lot of fun.</p>

<h2 id="ready_to_run_executable">Ready to run executable</h2>

<p>Chicken Scheme supports compiling to stand alone executables, which can
be run on systems without Chicken Scheme.</p>

<p>The stand alone executables can be downloaded from the
<a href="https://codeberg.org/mattof/jugulans/releases" >release page on Codeberg.org</a></p>

<p>Have fun mind mapping!</p>

<h2 id="updates">Updates</h2>

<h3 id="2026-08-27:">2026-08-27:</h3>

<p>This web page is updated to match with 
<a href="https://codeberg.org/mattof/jugulans/releases/tag/v1.0.3" >version 1.0.3</a>.</p>
]]></description>
</item>
<item>
<title>Books and some interesting stuff I read in July 2026</title>
<link>https://box.matto.nl/books-and-some-interesting-stuff-i-read-in-july-2026.html</link>
<guid isPermaLink="false">https://box.matto.nl/books-and-some-interesting-stuff-i-read-in-july-2026.html</guid>
<pubDate>Sun, 02 Aug 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-08-02T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="books_and_some_interesting_stuff_i_read_in_july_2026">Books and some interesting stuff I read in July 2026</h1>

<p>This month I read some though provoking books, a nice science
fiction book, and had a lot of fun reading several essays and short
stories.</p>

<p>The authors of both the books &quot;A Darwinian Survival Guide&quot; and &quot;To
Have or to Be?&quot; work from the viewpoint that human life as we know
it is seriously threatened, and advocate a societal change as the
only solution. They understand that this change can only be brought
bottom up, from the grassroots level.</p>

<p>Sometimes the mind works in mysterious ways. My mind associated a
piece I read on the internet with the wonderful essay &quot;Street
Haunting&quot; by Virginia Woolf, about buying a pencil. I don't know
what triggered this association. Anyway,I re-read this essay again,
came into the mood, and started reading more essays.</p>

<h2 id="non-fiction_books">Non-fiction books</h2>

<h3 id="a_darwinian_survival_guide,_hope_for_the_twenty-first_century_by_daniel_r._brooks_and_salvatore_j._agosta_(2024)">A Darwinian Survival Guide, Hope for the Twenty-First Century by Daniel R. Brooks and Salvatore J. Agosta (2024)</h3>

<ul>
<li>360 pages</li>
<li>5 stars</li>
</ul>

<p>Climate change is altering human surroundings forever.
It threatens the survival of technological humans.
The biosphere will not collapse, but society will.</p>

<p>This book looks at options to regain a certain level of
technological achievements as quickly as possible after
the collapse, with lessons learned from studying evolutionary
principles.</p>

<h3 id="to_have_or_to_be?_by_erich_fromm_(1976)">To Have or to Be? by Erich Fromm (1976)</h3>

<ul>
<li>216 pages</li>
<li>5 stars</li>
</ul>

<p>In this book the author introduces the terms &quot;having mode&quot;
and &quot;being mode' and shows that Western society is mostly based
on &quot;having mode&quot;, resulting in egotism, selfishness, and greed.</p>

<p>A society based on having mode generates leaders who value personal
success more highly than social responsibility. It is no longer
shocking when political leaders and business executives make
decisions that seem to be to their personal advantage, but at the
same time are harmful and dangerous to the community.</p>

<p>The author recognizes threats to the survival of human life
as we know it, because of the arms race of nuciear and biological
weapans and the need of endless growth.</p>

<p>Being aware of these threats and the fact that living in being mode
is the way towards personal happyness, the author proposes societal
changes.</p>

<p>This book contains a ton of statements worth quoting. I can't show
them all, so I picked one:</p>

<blockquote>
<p>Each political party exploits the voters by persuading them that it
represents the true values of humanism. Yet behind all political
parties are only two camps: those who care and those who don't care.</p>
</blockquote>

<h2 id="fiction">Fiction</h2>

<h3 id="the_midwich_cuckoos_by_john_wyndham_(1957)">The Midwich Cuckoos by John Wyndham (1957)</h3>

<ul>
<li>220 pages</li>
<li>4 stars</li>
</ul>

<p>In a typical small English village the quiet piece is disturbed
  by an extraordinary event. Nice story, a little less exciting than
  I remember the well-known book from this author, &quot;The Day of the
  Triffids&quot;. Good read non the less.</p>

<h2 id="essays">Essays</h2>

<h3 id="&quot;street_haunting:_a_london_adventure&quot;_by_virginia_woolf_(1927)">&quot;Street Haunting: a London Adventure&quot; by Virginia Woolf (1927)</h3>

<ul>
<li>8 pages</li>
<li>5 stars</li>
</ul>

<p>Virginia Woolf has written a number of lovely essays.
Street Haunting is my favorite, and the one I keep coming back to.</p>

<p>In this essay, Virginia uses the need to buy a pencil to let us
experience the world through as she did.</p>

<p>I re-read it again this month, and enjoyed it as much as ever.
This really is a comfort read to me.</p>

<p>You can find it on <a href="https://gutenberg.net.au/ebooks02/0200771h.html#ch9" >Project Gutenberg Australia</a></p>

<h3 id="&quot;the_fourth_state_of_matter&quot;_by_jo_ann_beard_(1996)">&quot;The Fourth State of Matter&quot; by Jo Ann Beard (1996)</h3>

<ul>
<li>13 pages</li>
<li>5 stars</li>
</ul>

<p>This essay is what is called &quot;creative non-fiction&quot;. Which means
that it is non-fiction disguised as a fictional story. Don't worry
about it, just read it.</p>

<p>Is is sad and heartbreaking, and a very well done masterpiece.</p>

<p>It is published by the New Yorker. Open with a Javacript-free browser
to read it without an account.</p>

<p><a href="https://www.newyorker.com/magazine/1996/06/24/the-fourth-state-of-matter" >https://www.newyorker.com/magazine/1996/06/24/the-fourth-state-of-matter</a></p>

<h3 id="&quot;total_eclipse&quot;_by_annie_dillard_(1982)">&quot;Total Eclipse&quot; by Annie Dillard (1982)</h3>

<ul>
<li>8 pages</li>
<li>5 stars</li>
</ul>

<p>In 1979 Annie and her husband drove five hours to see the
total eclipse of the sun. It was an overwhelming experience,
bringing up primal emotions.</p>

<p>A great essay.</p>

<p>This essay is published in the book &quot;Teaching a Stone to Talk&quot;,
a bundle of essays by Annie Dillard</p>

<p>You can find the essay here:</p>

<p><a href="https://faculty.etsu.edu/odonnell/readings/dillard_eclipse.pdf" >https://faculty.etsu.edu/odonnell/readings/dillard_eclipse.pdf</a></p>

<h3 id="on_self-respect_by_joan_didion_(1961)">On Self-Respect by Joan Didion (1961)</h3>

<ul>
<li>3 pages</li>
<li>5 stars</li>
</ul>

<p>This essay from Joan Didion is best read slowly. Like most of Didion's essays
it is an excellent read with a wonderful depth.</p>

<p><a href="https://www.vogue.com/article/joan-didion-self-respect-essay-1961" >https://www.vogue.com/article/joan-didion-self-respect-essay-1961</a></p>

<h2 id="short_stories">Short stories</h2>

<h3 id="the_feeling_of_power_by_isaac_asimov_(1958)">The Feeling Of Power by Isaac Asimov (1958)</h3>

<ul>
<li>6 pages</li>
<li>4 stars</li>
</ul>

<p>Short story about the dependency on computers.</p>

<h2 id="interesting_internet_reads">Interesting internet reads</h2>

<p>Some noteworthy internet reads:</p>

<h3 id="a_century_of_brilliant_books">A century of brilliant books</h3>

<p>The blog &quot;Stuck in a Book&quot; made a list of book recommendations.
The list contains a book for every year of the 20th century.</p>

<p>There are many book lists, of course. This one is on an
indepent blog, is an awesome piece of work, with many
surprising entries that are are new to me.  Also there are
only a few books in the list that I have already read.</p>

<p><a href="https://www.stuckinabook.com/a-century-of-brilliant-books/" >https://www.stuckinabook.com/a-century-of-brilliant-books/</a></p>

<h3 id="the_last_people_who_know_how_it_works">The Last People Who Know How It Works</h3>

<p><em>You only ever know the things you can lose to.</em></p>

<p>Wonderful blogpost by Cyrus Lopez about the dying acquaintance with
tech. We are the last people who knew a machine the only
way a machine was ever really known: by having it be difficult. And
we are also the last people who will know that anything is gone.</p>

<p><a href="https://unix.foo/posts/last-people-who-know-how-it-works/" >https://unix.foo/posts/last-people-who-know-how-it-works/</a></p>

<h3 id="juneau_something?_emacs_teaches_you_how_to_fish!">Juneau Something? Emacs Teaches You How to Fish!</h3>

<p>The June 2025 edition of the <a href="https://rossabaker.com/blog/underappreciated-emacs-built-ins/" >Emacs
Carnaval</a>
had many wonderful entries! I picked this one to mention here.</p>

<p>In his entry, Charlie Holland shows the autodiscovery powers of
Emacs. Most Emacs users will know at least a part of the commands
Charlie showcases here, but there are always more to learn.</p>

<p><a href="https://www.chiply.dev/post-june-emacs-carnival" >https://www.chiply.dev/post-june-emacs-carnival</a></p>

<h3 id="i_bought_a_sony_walkman">I bought a Sony Walkman</h3>

<p>82MHz wrote a lovely essay about buying a Sony Walkman.</p>

<p>And also a tape!</p>

<p><a href="https://82mhz.net/posts/2026/07/i-bought-a-sony-walkman/" >https://82mhz.net/posts/2026/07/i-bought-a-sony-walkman/</a></p>

<h3 id="the_cloud-city_logistics_hub:_why_our_future_starts_on_venus,_not_mars">The Cloud-City Logistics Hub: Why Our Future Starts on Venus, Not Mars</h3>

<p>Strangely enough, Venus is easier to mine than Mars.</p>

<p>This post goes into why Venus is a good candidate, and how mining
could affect the economy. And of course about the international
tensions that comes with that.</p>

<p>It reads like a good news post, and maybe it is.
I only wonder if this will keep the &quot;unlimited growth&quot; doctrine
alive, something that we should get rid of as soon as possible, IMHO.</p>

<p><a href="https://archives.virebent.art/en/the-cloud-city-logistics-hub-why-our-future-starts-on-venus-not-mars/" >https://archives.virebent.art/en/the-cloud-city-logistics-hub-why-our-future-starts-on-venus-not-mars/</a></p>

<h3 id="hate_&quot;the_algorithm?&quot;_rss_is_one_of_the_tools_youve_been_looking_for">Hate &quot;The Algorithm?&quot; RSS Is One of the Tools You’ve Been Looking For</h3>

<p>Great essay by Thorin Klosowski published by the EFF.</p>

<p>“The algorithm” is shorthand for the ways the tech giants
control what we see and when we see it.</p>

<p>In the age of enshittification, there is a push to reclaim our
feeds and networks.</p>

<p>The good news is that RSS can help you take back control.</p>

<p><a href="https://www.eff.org/deeplinks/2026/06/hate-algorithm-rss-one-tools-youve-been-looking" >https://www.eff.org/deeplinks/2026/06/hate-algorithm-rss-one-tools-youve-been-looking</a></p>

<h3 id="open_bookcases">Open Bookcases</h3>

<p>An short essay by Robert Benchley written in 1920.</p>

<p>This essay shows the first signs of enshittification of the market
of bookcases.</p>

<p>Read it here:</p>

<p><a href="https://hex.ooo/library/open_bookcases.html" >https://hex.ooo/library/open_bookcases.html</a></p>

<h3 id="the_zilog_z80_has_turned_50">The Zilog Z80 has turned 50</h3>

<p>The Z80 was a major player in its hayday. </p>

<p>I have worked on a Nixdorf Quattro powered by Z80's, using a
terminal that was also powered by Z80's, owned a ZX81 on which I
learned programming in assembler, and probably have used systems
not knowing they were powered by the Z80.</p>

<p><a href="https://goliath32.com/blog/z80.html" >https://goliath32.com/blog/z80.html</a></p>

<h3 id="fix_your_analog_life_first">Fix Your Analog Life First</h3>

<p>An essay by Katherine Martinko about a more balanced relationship
with our devices.</p>

<p>It is import to reduce screen time and get off one’s phone &mdash; but
first think about what is supposed to replace it.</p>

<p>We need more practice and less consumption in our lives. But
reducing consumption does not automatically lead to practice; it
must be actively sought, and that requires conscious choice,
persistence, and stubborn adherence to routine.</p>

<p>Unfortunately, not a smol-web post, but a substack publication,
but worth reading.</p>

<p><a href="https://katherinemartinko.substack.com/p/fix-your-analog-life-first" >https://katherinemartinko.substack.com/p/fix-your-analog-life-first</a></p>
]]></description>
</item>
<item>
<title>Having fun with Chicken Scheme</title>
<link>https://box.matto.nl/having-fun-with-chicken-scheme.html</link>
<guid isPermaLink="false">https://box.matto.nl/having-fun-with-chicken-scheme.html</guid>
<pubDate>Sat, 01 Aug 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-08-01T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="having_fun_with_chicken_scheme">Having fun with Chicken Scheme</h1>

<h2 id="switch_from_guile_scheme_to_chicken_scheme">Switch from Guile Scheme to Chicken Scheme</h2>

<p>Lately have been dabbling in Guile Scheme. Guile Scheme is very fast
and since is it the main development environment for Guix, its
popularity is rising.</p>

<p>I tried Chicken Scheme because it can create a stand-alone
executable. This means that once compiled, it can run on systems
where Chicken Scheme is not installed. Maybe this can be done too
with Guile Scheme, but I haven't discovered a way to do that.</p>

<p>Chicken Scheme compiles your code into an executable, no need to
jump though hoops to do that.</p>

<h2 id="chicken_scheme_is_fun">Chicken Scheme is fun</h2>

<p>Although my experience with Chicken Scheme is limited and I have
been working with it for only a few weeks now, I have come to like
it very much.</p>

<p>Chicken Scheme is Scheme, and Scheme, like Lisp, is a wonderful
language to work in.</p>

<p>Because Chicken compiles to an executable, even during prototyping you
immediately try out things on the command line.</p>

<p>It is easy to create small personal applications. Whatever you
build, you can run it on all your machines. I have a mixed
environment, mostly FreeBSD and some Linux virtual machines. So for
the Linux VM's I have installed Chicken on one of them, and
recompile the application there, and it can be deployed on the other
Linux VM's by just scp-ing it.</p>

<p><a href="https://wiki.call-cc.org/eggref/5/csm" ><code>csm</code></a> makes it very
easy to split up your project into multiple files. No hassle, just
make each file a module and import the module in the other files
where needed.</p>

<p>Once you have build a nice application, it is easy to distribute,
just share the stand alone executable.</p>

<h2 id="not_fast">Not fast</h2>

<p>When I did some work with Guile Scheme, I was impressed by how
fast it is. Guile Scheme as far as I know uses threading.</p>

<p>Compared to Guile, I think Chicken Scheme is not that fast, but
I haven't done any benchmarks and because I am not a Scheme
expert or a programming expert, this is just an opinion and
you should take this with a grain of salt.</p>
]]></description>
</item>
<item>
<title>Books and some interesting pages I read in June 2026</title>
<link>https://box.matto.nl/books-and-some-interesting-pages-i-read-in-june-2026.html</link>
<guid isPermaLink="false">https://box.matto.nl/books-and-some-interesting-pages-i-read-in-june-2026.html</guid>
<pubDate>Wed, 01 Jul 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-07-01T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="books_and_some_interesting_pages_i_read_in_june_2026">Books and some interesting pages I read in June 2026</h1>

<p>This month I decided to not finish a book after reading the first 100 pages,
so I just finished a single book.</p>

<p>The warm weather and outdoor activities resulted in less screen time, but
still ran into some fine web pages!</p>

<h2 id="fiction">Fiction</h2>

<h3 id="train_dreams_by_denis_johnson_(2002)">Train Dreams by Denis Johnson (2002)</h3>

<ul>
<li>116 pages</li>
<li>4 stars</li>
</ul>

<p>A novella telling the story of the lonely life of Robert Grainer,
who was born at the end of the nineteenth century.</p>

<p>Good but sad story, short, fine writing.</p>

<h2 id="interesting_internet_reads">Interesting internet reads</h2>

<p>Some noteworthy internet reads:</p>

<h3 id="contentful_and_the_limits_of_&quot;buy_european&quot;">Contentful and the limits of &quot;Buy European&quot;</h3>

<p>Contentful is a German company, Contentful GmbH, registered in
Berlin.</p>

<p>For over a decade it has been a flagship European software company.
If the acquisition closes, it becomes part of Salesforce, an US
corporation, subject to US law.</p>

<p>This exposes a hard truth: even when a vendor is European today, there
is no guarantee it will still be European tomorrow.</p>

<p>Only open source software can garantue digital sovereignty!</p>

<p><a href="http://dri.es/contentful-and-the-limits-of-buy-european" >http://dri.es/contentful-and-the-limits-of-buy-european</a></p>

<h3 id="ascii_art_tutorial">ASCII Art Tutorial</h3>

<p>Some people can work magic with ASCII Art!</p>

<p>A wonderful tutorial, and very recommended, even if you won't ever 
create ASCII art.</p>

<p><a href="https://arielmartinperez.com/pages/2026asciiarttutorial.html" >https://arielmartinperez.com/pages/2026asciiarttutorial.html</a></p>

<h3 id="the_last_quiet_thing">The Last Quiet Thing</h3>

<p>The things we use in our daily lives have quietly changed.
After the purchase, they constantly require your attention. The
meaning of owning has changed.</p>

<p>We started living in an acosystem of objects that never stop
asking.</p>

<p>A great piece that opens a new perspective. A must-read!</p>

<p><a href="https://www.terrygodier.com/the-last-quiet-thing" >https://www.terrygodier.com/the-last-quiet-thing</a></p>
]]></description>
</item>
<item>
<title>Start Guile shell script that listens on a port for REPL client</title>
<link>https://box.matto.nl/start-guile-shell-script-that-listens-on-a-port-for-repl-client.html</link>
<guid isPermaLink="false">https://box.matto.nl/start-guile-shell-script-that-listens-on-a-port-for-repl-client.html</guid>
<pubDate>Tue, 16 Jun 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-06-16T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="start_guile_shell_script_that_listens_on_a_port_for_repl_client">Start Guile shell script that listens on a port for REPL client</h1>

<p>Guile, while running a program, can listen to a port for a REPL
client, like a Swank server on SBCL. </p>

<p>Here's how to connect from Geiser to a running Guile script.</p>

<h2 id="start_the_guile_shell-script">Start the Guile shell-script</h2>

<p>This is how to start a Guile script:</p>

<pre><code>#!/usr/local/bin/guile3 \
-e main --listen -s
!#
(use-modules (...))
...
</code></pre>

<p>Note the the first line starts with <code>#!</code> and third starts with <code>!#</code>.</p>

<p>The first line contains the name of the Guile executable
and the path to it. This example is from FreeBSD.</p>

<p>Guile listens default to port 37146.</p>

<h2 id="connect_geiser_to_the_port">Connect Geiser to the port</h2>

<p>In Emacs, run:</p>

<pre><code>M-x geiser-connect
</code></pre>

<p>This will prompt of a host, with <code>localhost</code> as default, and a
port with <code>37146</code> as default.</p>

<p>This gives a REPL in the running Guile script.</p>

<p>Have fun!</p>
]]></description>
</item>
<item>
<title>Enhanced Motif Window Manager on FreeBSD</title>
<link>https://box.matto.nl/enhanced-motif-window-manager-on-freebsd.html</link>
<guid isPermaLink="false">https://box.matto.nl/enhanced-motif-window-manager-on-freebsd.html</guid>
<pubDate>Thu, 11 Jun 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-06-11T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="enhanced_motif_window_manager_on_freebsd">Enhanced Motif Window Manager on FreeBSD</h1>

<p>The <a href="https://fastestcode.org/emwm.html" >Enhanced Motif Window Manager</a> 
(EMWM) is a fork of the Motif Window Manager with fixes and enhancements.
This brings the wonderful look of Motif to the X11 desktop.</p>

<h2 id="virtual_workspaces">Virtual workspaces</h2>

<p>EMWM version 2.0 offers virtual workspaces. The FreeBSD packages
contain EMWM version 1.3. To get virtual workspaces it is better
not to install the FreeBSD package, and to compile EMWM from
source from (fastestcode.org]https://fastestcode.org/emwm.html).</p>

<p>Compilation of EMWM on FreeBSD is quick and easy. Just download 
the tarball, and run make.</p>

<h2 id="stow">Stow</h2>

<p>I prefer to install self compiled software with GNU stow.</p>

<p>In the <code>Makefile.FreeBSD</code> change the PREFIX to 
<code>/usr/local/stow/emwm</code>, and create this directory and
including the sub-directory <code>bin</code>:</p>

<pre><code>mkdir -p /usr/local/stow/emwm/bin
</code></pre>

<p>Then run <code>make</code> and <code>make install</code>.</p>

<p>Do this for both <code>emwm-src-2.0.tar.xz</code> and <code>emwm-utils-src-2.0.tar.xz</code>.</p>

<p>Next, go to <code>/usr/local/stow</code> and issue the command:</p>

<pre><code>stow emwm
</code></pre>

<p>(If you want to, you could make a different sub-directory for each tarball,
like  <code>/usr/local/stow/emwm</code> and <code>/usr/local/stow/emwm-utils</code>.)</p>

<p><img src="i/emwm.png" alt="Screenshot from EMWM window manager" /></p>

<h2 id="edit_.xinitrc">Edit <code>.xinitrc</code></h2>

<p>Comment out any window managers in the <code>~/.xinitrc</code> file (or <code>~/.xsession</code> file)
and add the following line as last line:</p>

<pre><code>exec xmsession
</code></pre>

<p>Now, when you run <code>startx</code> from the command line. EMWM will start, with 
<code>xmtoolbox</code>, a nice utility-toolbox in the upper left hand corner.</p>

<h2 id="multiple_workspaces">Multiple workspaces</h2>

<p>EMWM defaults to four workspaces. If you want a different number, add 
a line to your <code>~/.Xresources</code>:</p>

<pre><code>Emwm*workspaceCount: 6
</code></pre>

<p>The mxtoolbox window will show a button for each workspace.</p>

<h2 id="mxtoolbox_configuration">mxtoolbox configuration</h2>

<p>To configure the mxtoolbox:</p>

<p>Copy the file <code>toolboxrc</code> from the emwm-utils-src-tarball to
<code>~/.toolboxrc</code> and edit this file.</p>
]]></description>
</item>
<item>
<title>Books and some interesting pages I read in May 2026</title>
<link>https://box.matto.nl/books-and-some-interesting-pages-i-read-in-may-2026.html</link>
<guid isPermaLink="false">https://box.matto.nl/books-and-some-interesting-pages-i-read-in-may-2026.html</guid>
<pubDate>Mon, 01 Jun 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-06-01T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="books_and_some_interesting_pages_i_read_in_may_2026">Books and some interesting pages I read in May 2026</h1>

<h2 id="non-fiction">Non-fiction</h2>

<h3 id="the_end_of_everything_by_katie_mack_(2020)">The End of Everything by Katie Mack (2020)</h3>

<ul>
<li>226 pages</li>
<li>5 stars</li>
</ul>

<p>We know that the universe started with the Big Bang, and that it
currently is expanding. But will this go on forever, or is the
universe destined to end, and if so, will there be a new Big Bang?</p>

<p>The writer, a theoretical cosmologist, gives an easy to read overview
of the current scientific understanding on the future of the universe.</p>

<p>During this tour we encounter subjects like dark matter and dark energy,
the Cosmic Microwave Background, measuring the expansion rate,
get an explanation about the equilibrium of forces that keep the
stars together, the Highs field, and much more. We learn about
the different models for the end, like the Big Cruch, Heat Death,
the Big Rip, and the Vacuum Decay.</p>

<p>Interesting read, never boring, highly recommended!</p>

<h2 id="fiction">Fiction</h2>

<ul>
<li><p>The Two Towers by J.R.R. Tolkien (1954)</p></li>
<li><p>352 pages</p></li>
<li><p>5 stars</p></li>
</ul>

<p>This is a re-read, I have read the book several times, first time
in the early seventies, the last time at least a decade ago.</p>

<p>During this re-read I discovered that my memory of it is distorted by
the movie directed by Peter Jackson, which I have seen a few times.</p>

<p>It was good to re-read the book again.</p>

<h2 id="short_story">Short story</h2>

<h3 id="the_last_martian_by_raymond_van_houten_(1942)">The Last Martian by Raymond Van Houten (1942)</h3>

<ul>
<li>24 pages</li>
<li>4 stars</li>
</ul>

<p>A short science fiction story about an unexpected visitor arriving
  at an outpost. Nice read.</p>

<p><a href="https://www.gutenberg.org/ebooks/62097" >Gutenberg book 62097</a></p>

<h2 id="interesting_internet_reads">Interesting internet reads</h2>

<p>Some noteworthy internet reads:</p>

<h3 id="a_splash_of_courage">A Splash of Courage</h3>

<p>A lovely blog post from Brian the Goldfish, the Third.</p>

<p>It is a quick read, just above 300 words. Enjoy it!</p>

<p><a href="https://brianthegoldfish.blog/a-splash-of-courage/" >https://brianthegoldfish.blog/a-splash-of-courage/</a></p>

<h3 id="3_ways_to_think_and_talk_like_a_philosopher">3 ways to think and talk like a philosopher</h3>

<p>A &quot;Big Think&quot; publication written by by Jonny Thomson.</p>

<p>Jonny shows in this essay three ways to think like a philosopher.</p>

<p><a href="https://bigthink.com/mini-philosophy/3-ways-to-think-and-talk-like-a-philosopher/" >https://bigthink.com/mini-philosophy/3-ways-to-think-and-talk-like-a-philosopher/</a></p>

<h3 id="the_real_story_behind_&quot;zen_and_the_art_of_motorcycle_maintenance&quot;">The Real Story Behind &quot;Zen and the Art of Motorcycle Maintenance&quot;</h3>

<p>Ted Gioia talks in this essay about the history of the wonderful book
&quot;<a href="https://en.wikipedia.org/wiki/Zen_and_the_Art_of_Motorcycle_Maintenance" >Zen and the Art of Motorcycle Maintenance</a>&quot;
written by Robert Pirsig. The book was first published in 1974, but carries the atmosphere from the sixties.</p>

<p>&quot;Zen and the art ...&quot; is one of my favorite books, and Ted's essay brings it into a new perspective.</p>

<p><a href="https://www.honest-broker.com/p/the-real-story-behind-zen-and-the" >https://www.honest-broker.com/p/the-real-story-behind-zen-and-the</a></p>

<h3 id="the_old_world_of_tech_is_dying_and_the_new_cannot_be_born">The old world of tech is dying and the new cannot be born</h3>

<p>Baldur Bjarnason explains in this essay how the globalized tech
industry can only exist because of the protectionism and policy
uniformity imposed by the US on its techopolistic hegemony.</p>

<p>Because of Trump, the US no longer has the power or influence it once did,
with major implications for the US-controlled globalized market.</p>

<p><a href="https://www.baldurbjarnason.com/2026/the-old-world-of-tech-is-dying/" >https://www.baldurbjarnason.com/2026/the-old-world-of-tech-is-dying/</a></p>

<h3 id="beneath_the_linux_surface:_the_unix_legacy,_a_lively_ecology">Beneath the Linux surface: the UNIX legacy, a lively ecology</h3>

<p>A brilliant essay published on the Unix Social Club.</p>

<p>An inventory that shows that a Linux system bundles a lot of free software,
that developed on and originally for different operating systems.</p>

<p>FOSS is a ecosystem that keeps on thriving, innovating and evolving, but
only because of the people maintaining and developing it.</p>

<p>Informative, and also fun to read!</p>

<p><a href="https://club.unix.rocks/commentary/under-linux/" >https://club.unix.rocks/commentary/under-linux/</a></p>

<h3 id="gnutella_explanation_-_a_protocol_outliving_the_world_that_created_it">Gnutella Explanation - A Protocol Outliving the World That Created It</h3>

<p>A nicely written essay on Gnutella, the once very popular file sharing protocol.</p>

<p>This is a thorough piece of work, easy and fun to read.</p>

<p>Interesting quote:</p>

<blockquote>
<p>Managing disk space, directories, backups, and downloaded files was still a
palatable and acceptable activity for even casual computer users of the era.</p>
</blockquote>

<p><a href="https://rickcarlino.com/notes/p2p/gnutella-explanation.html" >https://rickcarlino.com/notes/p2p/gnutella-explanation.html</a></p>
]]></description>
</item>
<item>
<title>Awkiawki with slowcgi with NGINX on FreeBSD</title>
<link>https://box.matto.nl/awkiawki-with-slowcgi-with-nginx-on-freebsd.html</link>
<guid isPermaLink="false">https://box.matto.nl/awkiawki-with-slowcgi-with-nginx-on-freebsd.html</guid>
<pubDate>Tue, 26 May 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-05-26T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="awkiawki_with_slowcgi_with_nginx_on_freebsd">Awkiawki with slowcgi with NGINX on FreeBSD</h1>

<h2 id="how_to_run_awkiawki_using_slogcgi_and_ngninx">How to run awkiawki using slogcgi and NGNINX</h2>

<p>Awkiawki is a wiki written in awk.</p>

<p><a href="https://man.openbsd.org/slowcgi.8" >slowcgi</a> is a server which
implements the FastCGI Protocol to execute CGI scripts. slowcgi is a
simple server that translates FastCGI requests to the CGI protocol.
It executes the requested CGI script and translates its output back
to the FastCGI protocol.</p>

<p>slowcgi is on FreeBSD available as package.</p>

<p>I run this from <code>/home/www</code>.</p>

<h2 id="configuring_slowcgi">Configuring slowcgi</h2>

<p>Add the following lines to <code>/etc/rc.conf</code>:</p>

<pre><code>slowcgi_enable=&quot;YES&quot;
slowcgi_flags=&quot;-p /home/www -s /home/www/run/slowcgi.sock&quot;
</code></pre>

<p>Start slowcgi. It will open a socket in <code>/home/www/run/slowcgi.sock</code>.</p>

<h2 id="chroot">Chroot</h2>

<p>Slowcgi lets the scripts run in a chroot directory.
Make sure the needed executables (like <code>mawk</code> for awkiawki) are in a path
within the chroot directory, and that all the needed libraries are there too.</p>

<h2 id="configuring_nginx_to_use_slowcgi">Configuring NGINX to use slowcgi</h2>

<pre><code>server {
   listen 80;
   server_name wiki.example.com;

   root &quot;/home/www/&quot;;

   location /cgi-bin/ {
      index index.cgi;
      fastcgi_pass unix:/home/www/run/slowcgi.sock;
      fastcgi_index index.cgi;
      include fastcgi_params;
      fastcgi_param REQUEST_METHOD  $request_method;
      fastcgi_split_path_info ^(.+\.cgi)(/.+)$;
      fastcgi_param PATH_INFO       $fastcgi_path_info;
      fastcgi_param SCRIPT_NAME &quot;/cgi-bin/wiki/index.cgi&quot;;
      proxy_set_header Host $host;
   }
}
</code></pre>

<p>We set a fastcgi_pass to the socket.</p>

<p>The <code>fastcgi_split_path_info</code> fetches the <code>path_info</code> from the request URL.</p>

<h2 id="debugging">Debugging</h2>

<p>It helps to manually start slowcgi with the -v flag:</p>

<pre><code>slowcgi -d -v -p /home/www/ -s /home/www/run/slowcgi.sock
</code></pre>

<p>When everything is fine, start slowcgi normally.</p>
]]></description>
</item>
<item>
<title>Books and some pages I read in April 2026</title>
<link>https://box.matto.nl/books-and-some-pages-i-read-in-april-2026.html</link>
<guid isPermaLink="false">https://box.matto.nl/books-and-some-pages-i-read-in-april-2026.html</guid>
<pubDate>Sun, 03 May 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-05-03T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="books_and_some_pages_i_read_in_april_2026">Books and some pages I read in April 2026</h1>

<h2 id="non-fiction">Non-fiction</h2>

<h3 id="vintage_didion_by_joan_didion_(2004)">Vintage Didion by Joan Didion (2004)</h3>

<ul>
<li>200 pages</li>
<li>3 stars</li>
</ul>

<p>A collection of previously published essays focussed on US politics.
The essays date from different periods. There are also three chapters 
from her book &quot;Miami&quot; in it.</p>

<p>Usually I like to read Didion, but several parts of this collection were boring.</p>

<h2 id="short-stories">Short-stories</h2>

<h3 id="the_last_question_by_isaac_asimov_(1956)">The Last Question by Isaac Asimov (1956)</h3>

<ul>
<li>9 pages</li>
<li>5 stars</li>
</ul>

<p>A short story with a somewhat predictable end. Good read though.</p>

<h2 id="interesting_internet_reads">Interesting internet reads</h2>

<p>Some noteworthy internet reads:</p>

<h3 id="we_built_it_with_slide_rules._then_we_forgot_how.">We Built It With Slide Rules. Then We Forgot How.</h3>

<p>Our world is under threat of complexity. To understand a system it must fit into our heads.
When we delegate the complexity before understanding we loose something fundamental.</p>

<p>Start asking basic questions and make sure you can answer them.</p>

<p><a href="https://unmitigatedrisk.com/?p=1227" >https://unmitigatedrisk.com/?p=1227</a></p>

<h3 id="what_it's_like_to_be_a_worm">What It's Like To Be A Worm</h3>

<p>Does an insect possesses consciousness? Is an earth worm sentient?
When it comes to non-human animals, views about which creatures are sentient diverge.</p>

<p>An remarkable survey of current scientific research.</p>

<p><a href="https://www.asimov.press/p/sentience" >https://www.asimov.press/p/sentience</a></p>

<h3 id="social_media_is_the_opposite_of_social_life">Social Media is the Opposite of Social Life</h3>

<p>Social media was meant to facilitate social life, but social media
doesn’t really allow you to interact with people.</p>

<p><a href="https://www.raptitude.com/2026/04/social-media-is-the-opposite-of-social-life/" >https://www.raptitude.com/2026/04/social-media-is-the-opposite-of-social-life/</a></p>

<h3 id="the_six_second_hug">The six second hug</h3>

<p>We have fallen prey to the curse of instrumentalisation.</p>

<p>What makes life worth living? We have to go back to the basic question of why anything has value.</p>

<p><a href="https://aeon.co/essays/instrumentalisation-is-making-everything-a-means-to-an-end" >https://aeon.co/essays/instrumentalisation-is-making-everything-a-means-to-an-end</a></p>

<h3 id="the_indieweb_is_wonderfully_dionysian">The IndieWeb is Wonderfully Dionysian</h3>

<p>A writing in praise of the human web. We need more personal websites and blogs. </p>

<p><a href="https://brennan.day/the-indieweb-is-wonderfully-dionysian/" >https://brennan.day/the-indieweb-is-wonderfully-dionysian/</a></p>
]]></description>
</item>
<item>
<title>Explore the smol web with Bubbles</title>
<link>https://box.matto.nl/explore-the-smol-web-with-bubbles.html</link>
<guid isPermaLink="false">https://box.matto.nl/explore-the-smol-web-with-bubbles.html</guid>
<pubDate>Sun, 19 Apr 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-04-19T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="explore_the_smol_web_with_bubbles">Explore the smol web with Bubbles</h1>

<blockquote>
<p>All Aggregators Are Equal but Some Aggregators Are More Equal Than Others</p>
</blockquote>

<p><a href="https://bubbles.town/" >Bubbles</a> is a new, brilliant, blog aggregator.</p>

<p>Bubbles combines the power of RSS feeds with the power of voting. Of course
there is <a href="https://lobste.rs/" >lobste.rs</a>, but that has a focus on
technical publications.</p>

<h2 id="non-tech_blogs">Non-tech blogs</h2>

<p>Hacker News and <a href="https://lobste.rs/" >Lobste.rs</a> have community
voting figured out, but non-tech content gets drowned by the tech
majority.</p>

<p>Bubbles aims to (also) promote non-tech content.</p>

<h2 id="rss_and_voting">RSS and voting</h2>

<p>Bubbles monitors thousands of independent, personal blogs via RSS.
Every post starts equal. Peoples votes decide what rises.</p>

<p>Everybody can vote, but you need some Fediverse account for that.</p>

<p>As a result, truly interesting posts bubble up.</p>

<h2 id="categories">Categories</h2>

<p>Bubbles offers about a dozen of categories to choose from.</p>

<p>Select the categories of your interest to get a more focused
list of smol web publications.</p>

<h2 id="explore_the_smol_web">Explore the smol web</h2>

<p>There are tons of great independently made personal websites out there.
Blogs, digital gardens, and what not.</p>

<p>The enshitification of the search engines makes these website
undiscoverable. There is no money in it, so they will only show you
AI-slop and other SEO-infested garbage.</p>

<p>Ignore their search results, take back the web, and start exploring the smol web!</p>

<h2 id="reach_out">Reach out</h2>

<p>I discovered Bubbles through the <a href="https://82mhz.net/posts/2026/04/linkdump-no-103/" >LinkDump on 82Mhz.net</a>.</p>

<p>When you have a website, consider doing something similar. Set up a Blogroll, 
create a links page, or be creative and create something new.</p>

<p>Whatever you do to let other smol websites be discovered helps!
Only together we can keep the smol web alive.</p>

<h2 id="use_an_rss_feed_reader">Use an RSS feed reader</h2>

<p>Don’t let a billionaire’s algorithm control what you read.
No matter how you explore the smol web, when you have discovered an
interesting blog, personal website or other kind of smol web instance,
add it to your RSS feed reader!</p>

<h2 id="show_your_appreciation">Show your appreciation</h2>

<p>Whenever you read a piece on a smol web website, give the creator
some feed-back. Just a simple email showing your appreciation
can make a big difference!</p>
]]></description>
</item>
<item>
<title>Install minimal Recoll on FreeBSD 15</title>
<link>https://box.matto.nl/install-minimal-recoll-on-freebsd-15.html</link>
<guid isPermaLink="false">https://box.matto.nl/install-minimal-recoll-on-freebsd-15.html</guid>
<pubDate>Thu, 02 Apr 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-04-02T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="install_minimal_recoll_on_freebsd_15">Install minimal Recoll on FreeBSD 15</h1>

<p><a href="https://www.recoll.org/index.html" >Recoll</a> is a full text search application.
Recoll is based on the very capable Xapian search engine library.</p>

<p>The FreeBSD package comes with a ton of dependencies, which is great for 
use on your desktop, but can be a bit of overkill for non-graphical systems.</p>

<h2 id="minimal_install">Minimal install</h2>

<p>The idea is to install with as minimal dependencies as possible and
start working with that. Later we can always add more.</p>

<h2 id="install_dependencies">Install dependencies</h2>

<p>Although we install Recoll from source, we install the dependencies
as FreeBSD package.</p>

<p>To make it easy to copy the install to other systems, we make use of 
GNU stow, so we install that too.</p>

<pre><code>pkg install libX11 libxslt pkgconf stow xapian-core
</code></pre>

<h2 id="prepare_installation_directory">Prepare installation directory</h2>

<pre><code>mkdir -p /usr/local/stow/recoll
</code></pre>

<h2 id="download_source_files">Download source files</h2>

<p>Version 1.37.5 is unfortunately the last version with autotools build, so we fetch that:</p>

<pre><code>fetch https://www.recoll.org/recoll-1.37.5.tar.gz
</code></pre>

<h2 id="configure_and_build">Configure and build</h2>

<pre><code>./configure \
    --enable-idxthreads \
    --disable-qtgui \
    --enable-recollq \
    --disable-python-module \
    --without-aspell \
    --disable-python-aspell \
    --disable-python-chm  \
    --prefix=/usr/local/stow/recoll

make
make install
</code></pre>

<h2 id="install">Install</h2>

<pre><code>cd /usr/local/stow
stow recoll
</code></pre>

<h2 id="configuration_files">Configuration files</h2>

<p>To test our install, we create a simple configuration file <code>~/.recoll/recoll.conf</code>:</p>

<pre><code>followLinks = 1

topdirs = /usr/local/share/man \
  /usr/local/share/info
</code></pre>

<p>This configuration file aims to index the system documentation files.</p>

<p>For this, we also need a mimemap file <code>~/.recoll/mimemap</code>:</p>

<pre><code>.0p = text/x-man
.1 = text/x-man
.3 = text/x-man
.7 = text/x-man
.8 = text/x-man
</code></pre>

<p>This is for the standard man pages, if you have more directories under <code>/usr/local/share/man/</code>
add those extensions too.</p>

<h2 id="install_helper_applications">Install helper applications</h2>

<p>In order to make sense of the files, Xapian needs some helper programs.</p>

<p>Our system documentation consists of man pages and info files, so we need the
helper applications for those two:</p>

<pre><code>pkg install groff texinfo
</code></pre>

<p>For some reason, we need to make the indexer understand that &quot;python3&quot; is in fact
pyhton3.11.</p>

<p>We can create an alias (depending on your shell), or otherwise create a symlink:</p>

<pre><code>ln -s /usr/local/bin/python3.11 /usr/local/bin/python3
</code></pre>

<h2 id="create_index">Create index</h2>

<p>Next, create or update the index:</p>

<pre><code>recollindex
</code></pre>

<h2 id="start_searching">Start searching</h2>

<p>After our man pages are indexed, we can search for text:</p>

<pre><code>recollq -q 'expansion'

recollq -A 'expansion escape sequences textdomain'
</code></pre>

<p>Of course, we don't get the nicely formatted output as with the graphical Recoll desktop application.</p>

<h2 id="kudos">Kudos</h2>

<p>Thanks to <a href="http://www.stargrave.org/" >Sergey  Matveev</a> for help with the configuration!</p>
]]></description>
</item>
<item>
<title>Books of March 2026</title>
<link>https://box.matto.nl/books-of-march-2026.html</link>
<guid isPermaLink="false">https://box.matto.nl/books-of-march-2026.html</guid>
<pubDate>Wed, 01 Apr 2026 02:00:00 +0200</pubDate>
<dcterms:modified>2026-04-01T02:00:00.000000+02:00</dcterms:modified>
<description> <![CDATA[
<h1 id="books_of_march_2026">Books of March 2026</h1>

<p>Below are the two books I finished reading this month.</p>

<h2 id="fiction">Fiction</h2>

<h3 id="the_fellowship_of_the_ring_by_j.r.r._tolkien_(1954)">The Fellowship of the Ring by J.R.R. Tolkien (1954)</h3>

<ul>
<li>423 pages</li>
<li>5 stars</li>
</ul>

<p>This is a re-read, I have read the book several times, first time in
the early seventies, the last time at least a decade ago.</p>

<p>I also have seen the movie directed by Peter Jackson several times.</p>

<p>During reading the book I discovered that my memory of it is tainted by
watching the movie. I wasn't aware of much deviation of it, but the
movie does indeed differ. The movie is more spectacular.</p>

<p>It was good to re-read the book again, and have planned to also re-read
the other two books from the trilogy this year.</p>

<h2 id="short_stories">Short stories</h2>

<h3 id="short_fiction_by_andre_norton_(1953)">Short Fiction by Andre Norton (1953)</h3>

<ul>
<li>61 pages</li>
<li>4 stars</li>
</ul>

<p>This bundles contains 3 short stories:</p>

<ul>
<li>People of the Crater&quot; (1947)</li>
<li>The Gifts of Asti (1948)</li>
<li>All Cats Are Gray&quot; (1953)</li>
</ul>

<p>The stories are somewhere between science fiction and fantasy, and a nice read.</p>

<p>I read the <a href="https://standardebooks.org/ebooks/andre-norton/short-fiction" >Standard Ebooks version</a></p>

<h2 id="interesting_internet_reads">Interesting internet reads</h2>

<p>Some noteworthy internet reads:</p>

<h3 id="nobody_gets_promoted_for_simplicity">Nobody gets promoted for simplicity</h3>

<p>It is easier to get appreciation for creating a complex
solution than for creating a simple solution. This causes
a lot of problems.</p>

<p><a href="https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/" >https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/</a></p>

<h3 id="the_view_from_rss">The View From RSS</h3>

<p>What the web looks like when you subscribe to 2,000 RSS feeds.</p>

<p><a href="https://www.carolinecrampton.com/the-view-from-rss/" >https://www.carolinecrampton.com/the-view-from-rss/</a></p>

<h3 id="consciousness_without_counterpart:_identity_beyond_representation">Consciousness without counterpart: Identity beyond representation</h3>

<p>An interesting essay about thoughts, consciousness and identity.</p>

<p>https<a href="https://www.essentiafoundation.org/consciousness-without-counterpart-identity-beyond-representation/reading/" >://www.essentiafoundation.org/consciousness-without-counterpart-identity-beyond-representation/reading/</a></p>

<h3 id="&quot;this_is_not_the_computer_for_you&quot;">&quot;This Is Not The Computer For You&quot;</h3>

<p>Another example of how restrictions promote creativity and ingenuity.</p>

<p><a href="https://samhenri.gold/blog/20260312-this-is-not-the-computer-for-you/" >https://samhenri.gold/blog/20260312-this-is-not-the-computer-for-you/</a></p>

<h3 id="see_the_computers_that_powered_the_voyager_space_program">See The Computers That Powered The Voyager Space Program</h3>

<p>Not so much something to read, but something to watch:
a wonderful video tour of the NASA JPL building 230, that was made in the '80s.</p>

<p><a href="https://hackaday.com/2026/03/30/see-the-computers-that-powered-the-voyager-space-program/" >https://hackaday.com/2026/03/30/see-the-computers-that-powered-the-voyager-space-program/</a></p>
]]></description>
</item>
<item>
<title>My Emacs misconceptions</title>
<link>https://box.matto.nl/my-emacs-misconceptions.html</link>
<guid isPermaLink="false">https://box.matto.nl/my-emacs-misconceptions.html</guid>
<pubDate>Tue, 17 Mar 2026 01:00:00 +0100</pubDate>
<dcterms:modified>2026-03-17T01:00:00.000000+01:00</dcterms:modified>
<description> <![CDATA[
<h1 id="my_emacs_misconceptions">My Emacs misconceptions</h1>

<h2 id="emacs_carnival_mistakes_and_misconceptions">Emacs Carnival Mistakes and Misconceptions</h2>

<p><a href="https://sdf.org/~pkal/" >Philip Kaludercic</a> has started the Emacs carnival
on the subject <a href="https://sdf.org/~pkal/blog/emacs/mistakes.html" >Mistakes and Misconceptions</a>.
Here's my contribution.</p>

<h2 id="vim_to_emacs">Vim to Emacs</h2>

<p>In 2021 I switched to Emacs after using Vim for more than 20 years.</p>

<p>I was thinking about learning Lisp and Forth, and somehow I had the
notion that programming in these languages is better supported in
Emacs. Also, I had discovered that extensions like rec-mode and ledger-mode
offer much more than the Vim plugins for the 
<a href="https://www.gnu.org/software/recutils/" >GNU recutils</a>
and 
<a href="https://ledger-cli.org/" >ledger-cli</a>.</p>

<p>And than there is the lure of org-mode.</p>

<p>In the past I had tried Viper-mode a few times, but never was happy
with it. So I toke the plunge and started trying to learn using
Emacs with the default keybindings.</p>

<h2 id="misconception:_vanilla_keys_are_impossible_to_learn">Misconception: Vanilla keys are impossible to learn</h2>

<p>For many years, the O'Reilly book &quot;Learning GNU Emacs&quot; from 1996 sat
on my bookshelves, and each time I opened it up, I was completely
overwhelmed by the Emacs keybindings.</p>

<p>My misconceptions:</p>

<ul>
<li>I had the impression that typing the keychords would result in
  your fingers getting tangled.</li>
<li>There are so many keybindings, and unlike Vi, they are all
  combinations of several keys, so I assumed I'd never master them.</li>
</ul>

<p>The man-page of <a href="https://man.openbsd.org/mg" >mg</a>, the micro-emacs
that comes with the OpenBSD installer, has a nice compact list of
the keybindings. Guessing the priority, I sorted this list by what I
expected to be their relative importance, and dedicated a full
weekend practicing the first few keybindings. In the week following
this weekend, I transferred my task list that was in
<a href="https://taskwarrior.org/" >Taskwarrior</a> to org-mode, and started
using Emacs during my day-time job, gradually learning more
keybindings.</p>

<p>In hindsight, my ideas were wrong. In the beginning the keychords
are weird, but I have never had my fingers in a knot :) And giving
it some effort and time, the muscle memory rapidly adopts the
keychords.</p>

<p>My <code>~/.xinitrc</code> maps the CapsLock key as Control key, and I have never
experienced the so-called Emacs-pinky.</p>

<h2 id="misconception:_dired_can_be_ignored">Misconception: Dired can be ignored</h2>

<p>I prefer working on the command line and on Linux and BSD have never
used a file manager. With one exception: in the nineties I used
Midnight Commander to upload complete directory-trees over FTP.</p>

<p>Just like Midnight Commander,
<a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html" >Dired</a>,
the Emacs file manager, can be used with the keyboard, no need to
use the mouse.</p>

<p>In the beginning I didn't look into Dired. Only after using Emacs
for some time, I discovered that Dired is very useful and now I am
gradually incorporating it in my workflow.</p>

<p>I still have to dive deeper in it. Of course it can be used just
like any file manager, like renaming files and moving files from one
directory to another. The real power of Dired is, based on my
limited knowledge and experience, in the integration with the rest
of Emacs.</p>

<h2 id="misconception:_underestimating_the_impact_of_using_emacs">Misconception: Underestimating the impact of using Emacs</h2>

<p>Moving from Vim to Emacs, I had the notion of replacing one
editor with another. I couldn't be more wrong.</p>

<p>Stealthy--like a ninja in the night--Emacs creeps into your
life and gradually takes over everything. The integration of
so many functionality make Emacs a wonderful desktop environment.</p>

<p>The advantages of this is that it makes everything much easier,
everything has the same user interface, and it all works the same on
any platform. From window manager to IDE, Emacs can do it all.</p>

<p>This is a small anthology of my use of Emacs:</p>

<ul>
<li>Email: <a href="https://www.gnu.org/software/emacs/manual/html_mono/gnus.html" >Emacs Gnus</a></li>
<li>Usenet reader: Gnus</li>
<li>RSS feed reader: <a href="https://github.com/skeeto/elfeed" >Elfeed</a> (next to following feeds with the brilliant <a href="https://github.com/skeeto/elfeed" >Gwene.org</a> RSS to NNTP gateway)</li>
<li>IRC: <a href="https://www.gnu.org/software/emacs/manual/html_mono/rcirc.html" >Emacs rcirc</a> IRC-client</li>
<li>Reading webpages: <a href="https://www.gnu.org/software/emacs/manual/html_mono/eww.html" >Emacs eww</a></li>
<li>Reading Gopher and Gemini pages: <a href="https://github.com/emacsmirror/elpher" >Elpher</a></li>
<li>Note taking system: <a href="https://protesilaos.com/emacs/denote" >Denote</a></li>
<li>Common Lisp REPL: <a href="https://slime.common-lisp.dev/" >SLIME: The Superior Lisp Interaction Mode for Emacs</a></li>
<li>Scheme REPL: <a href="https://elpa.nongnu.org/nongnu/doc/geiser.html" >Geiser</a></li>
<li>PDF viewer: Emacs works fine as a PDF-viewer, and bookmark pages with the standard Emacs bookmarking functionality</li>
<li>Shell: Most of the time the build-in shell <a href="https://www.masteringemacs.org/article/complete-guide-mastering-eshell" >Eshell</a> is fine for me.</li>
</ul>

<p>This is not a complete list. F.e, I write magazine articles in
org-mode, and when ready, using the org-mode export functionality,
export the article to ODT-format. And before my retirement, I wrote
reports and policies in org-mode and exported these to LaTeX.</p>

<p>0rg-mode supports simple calculations in tables. The calculations to
fill out my three-monthly VAT tax return from are in org-mode,
automatically extracting the numbers from the ledger-journal using
ledger-cli. My yearly financial statements are also compiled in a
few org-mode tables.</p>

<p>I have used the <a href="https://github.com/emacs-exwm/exwm" >Emacs X Window Manager</a>
but after a while went back to the old faithful <a href="https://www.nongnu.org/ratpoison/" >ratpoison window manager</a>. I think this is faster than EXWM, 
but have never done any real measuring. </p>

<h2 id="misconception:_emacs_lisp_is_not_a_general_language">Misconception: Emacs Lisp is not a general language</h2>

<p>While learning Emacs and starting to use Emacs Lisp (also called Elisp) 
I discovered that Emacs Lisp is a very capable language.</p>

<p>The many different packages that are available for Emacs proof this.</p>

<p>I have build a static website generator in Elisp, and an application
to generate my invoices and the ledger entries, and much more.</p>

<h2 id="my_mistake">My mistake</h2>

<p>In the post &quot;Emacs Carnival Mistakes and Misconceptions&quot;, Philip asks us to
mention our mistakes. Of course I have made many, f.e., in the beginning
is setting up your configuration not easy.</p>

<p>My biggest mistake however, is not making the switch much sooner.</p>

<h2 id="emacs_is_a_powerful_environment">Emacs is a powerful environment</h2>

<p>The development of Emacs began in 1984. Using Lisp for its
development was a brilliant choice. Emacs Lisp is very capable and
has a low threshold. This empowers its many different users.</p>

<p>Emacs has evolved over more than 40 years by endless user
contributions. Because these are daily users solving real problems,
the result is a very powerful and versatile environment that can be
used for a plethora of tasks. Nothing comes even close to it.</p>
]]></description>
</item>
<item>
<title>Deploy a Matrix server using Conduit and Cinny on FreeBSD in the homelab</title>
<link>https://box.matto.nl/deploy-a-matrix-server-using-conduit-and-cinny-on-freebsd-in-the-homelab.html</link>
<guid isPermaLink="false">https://box.matto.nl/deploy-a-matrix-server-using-conduit-and-cinny-on-freebsd-in-the-homelab.html</guid>
<pubDate>Wed, 11 Mar 2026 01:00:00 +0100</pubDate>
<dcterms:modified>2026-03-11T01:00:00.000000+01:00</dcterms:modified>
<description> <![CDATA[
<h1 id="deploy_a_matrix_server_using_conduit_and_cinny_on_freebsd_in_the_homelab">Deploy a Matrix server using Conduit and Cinny on FreeBSD in the homelab</h1>

<p>Here is a small post about deploying a Matrix server in the homelab.</p>

<p>The goal is a Matrix server running on a FreeBSD jail that can be
used from the web browser on your desktop.</p>

<p>It is a quick-and-dirty configuration, to get you started.</p>

<p>This setup is for testing purposes. The server will not be exposed
to the internet and it will not federate with the Matrix network.</p>

<p>The setup contains three parts:</p>

<ul>
<li>the Conduit Matrix server</li>
<li>the Cinny web Matrix client</li>
<li>NGINX as reverse proxy</li>
</ul>

<h2 id="domain_names">Domain names</h2>

<p>First, create in your local DNS server two subdomain names, one for
Conduit and one for Cinny, f.e., <code>matrix.example.com</code> and
<code>cinny.example.com</code>, both pointing to the ip-address of the jail.</p>

<h2 id="certificates">Certificates</h2>

<p>Create certificates for the two domains.</p>

<p>If you haven't setup a local CA, do that first, for example using
<a href="https://github.com/FiloSottile/mkcert" >mkcert</a>.</p>

<p>Place the certificate files in <code>/etc/ssl/certs/</code> in the jail.</p>

<h2 id="conduit">Conduit</h2>

<p><a href="https://conduit.rs/" >Conduit</a> advertises itself as a simple, fast and reliable matrix server.</p>

<p>It is available as a FreeBSD package.</p>

<p>Copy the file <code>/usr/local/etc/conduit.toml.sample</code> to <code>/usr/local/etc/conduit.toml</code>
and edit this file:</p>

<h4 id="servername">Servername</h4>

<p>This is the subdomain of your Conduitserver.</p>

<p><code>servername = &quot;matrix.example.com&quot;</code></p>

<h4 id="registration_token">Registration token</h4>

<p>New users can register with this token.</p>

<p><code>registration_token = &quot;very-secret&quot;</code></p>

<h4 id="allow_federation">Allow federation</h4>

<p>We won't expose our server to the internet. Federation will not be required and we will not allow it.</p>

<p><code>allow_federation = false</code></p>

<h2 id="cinny">Cinny</h2>

<p><a href="https://cinny.in/" >Cinny</a> is yet another Matrix client. It runs as a web application.
You access it with your web browser.</p>

<p>It is available as a FreeBSD package.</p>

<p>The package manager installs Cinny in <code>/usr/local/www/cinny</code>.</p>

<p>In this directory, copy the file <code>config.json.example</code> to <code>config.json</code> and edit it:</p>

<h4 id="homeserverlist">homeserverList</h4>

<p>Delete all entries in the homeserverList and insert the subdomain of your Conduit server.</p>

<pre><code>&quot;homeserverList&quot;: [
  &quot;matrix.example.com&quot;
],
</code></pre>

<h4 id="featuredcommunities">featuredCommunities</h4>

<p>Probably you can delete a lot here. I only cleaned the list &quot;servers&quot;:</p>

<pre><code>&quot;servers&quot;: [&quot;matrix.example.com&quot;]
</code></pre>

<h2 id="nginx">NGINX</h2>

<p><a href="https://nginx.org/en/" >NGINX</a> is a very great web server.</p>

<p>It is available as a FreeBSD package.</p>

<p>Here we use it as a reverse proxy.</p>

<p>In the file <code>/usr/local/etc/nginx/nginx.conf</code> add two blocks for the
virtual servers:</p>

<pre><code>server {
    listen *:443 ssl;
    server_name matrix.example.com;
    client_max_body_size 1G;
    ssl_certificate /etc/ssl/certs/matrix.example.com.crt;
    ssl_certificate_key /etc/ssl/certs/matrix.example.com.key;
    location / {
       proxy_pass http://127.0.0.1:6167;
    }
}

server {
    listen *:443 ssl;
    server_name cinny.example.com;
    client_max_body_size 1G;
    ssl_certificate /etc/ssl/certs/cindy.example.com.crt;
    ssl_certificate_key /etc/ssl/certs/cindy.example.com.key;
    location / {
       root /usr/local/www/cinny;
       index index.html;
    }
}
</code></pre>

<h2 id="allow_the_daemons_to_run">Allow the daemons to run</h2>

<p>In <code>/etc/rc.conf</code> add two lines to allow the daemons to run.</p>

<pre><code>conduit_enable=&quot;YES&quot;
nginx_enable=&quot;YES&quot;
</code></pre>

<p>Start or restart the Conduit and the NGINX daemons.</p>

<h2 id="create_a_few_accounts">Create a few accounts</h2>

<p>Open <code>cinny.example.com</code> in your web browser.</p>

<p>Register as new account. Choose your server (matrix.example.com),
and provide a user name and a password. Insert the registration
token from the Conduit configuration (above this is mentioned as
&quot;very-secret&quot;) in the field below the two password fields.</p>

<p>Repeat, to get a few accounts to play with.</p>

<p>Have fun playing with Matrix in you homelab!</p>
]]></description>
</item>
</channel>
</rss>