Housekeeping, Fire, and Python
Tue, 2 Jan 2024
Lifestyle, Technology
==============================

For the past week or so, I have had a quite delightful morning
routine. Well I say routine, there is one particular item which
starts my day, and that is building a fire. I am currently
staying in Northern Italy, which is by no means as cold as my
home town (at the time of writing, there is a 15 degree
temperature difference, and the weekend there will reach around
-20 Celsius compared to +8 here), but it is nevertheless cold
enough to warrant heating the house. And in this particular
house, this is done trough two wood stoves.

As such, every morning starts with cleaning out the ashes,
brushing the hearth and wiping the glass. Afterwards, I head out
into the back yard to gather some firewood from our stores. I
have to pick a mix of sizes and types of wood: flash tinder,
kindling, smaller sticks, branches, and logs. The fist to get the
fire going, and the latter to keep it going without intervention
every few minutes. At this point, I start constructing the fire,
open up the vents for strong airflow and wait for some small
flames to form. By the time the branches are on, coffee will be
ready and the living room will slowly start heating up.

If all of this sounds incredibly tedious to you, well... in a
sense you would be correct. Building a fire like this is rather
more time-consuming on a day-to-day basis than a central heading
system using radiators, or a heat-pump-system for that matter.
Keeping the fire going also requires getting more wood from the
stores and stacking it on every two hours or so. However, both
building and marinating the fire are delightfully simple tasks,
perfect to get my body moving in the morning and keep my brain
snoozing for a little while. After the cleaning, I rouse my brain
and start what is essentially a process of creative problem
solving.  Every day, the kindling is different, the airflow, heat
of the stove, humidity of the tinder; there are simply too many
variables to keep in mind. So: You just light your kindling and
see if you can get and ember to turn into a flame. If something
is not working: check the airflow, maybe the chimney, and more
likely: the wood. 

A central heating system (which heats my apartment in the
freezing North) does not require such creative problem solving.
But what if the system breaks? Well, at that point the complexity
of the problem is likely so high that I cannot fix it on my own.
Calling a mechanic is essentially my only refuge, and this
becomes a tedious task, rather than a menial but enjoyable one as
with building the fire and maintaining the stove.

After I realized this link between simple systems and the joy I
have in using them, I started seeing these matters all around the
house. The dishwasher? Tedious, especially when it breaks. There
is a certain method to stacking the plates and bowls to ensure
maximum cleaning, which is somewhat enjoyable at the best of
times, but on the average day, it is just annoyingly
time-consuming and inefficient on space. Washing dishes by hand
in comparison is a largely mindless endeavour, but one I find
myself enjoying more than loading-, unloading-, and maintaining-
the dishwasher.

Nothing frustrates me quite as mush as a cold shower (when I want
a warm one), or a clogged drain while I am already in the shower.
On the other hand, in those cases where I have had to wash myself
using a bucket of water, the process has been enjoyable in much
the same way. A sort of rustic monotony where all problems are
ones I can solve in the moment without any particular skills.
Even those times where my bucket was filled with ice-cold water,
placed outside, in -15 degree weather, the process was more
enjoyable than those times that my shower refused to go those two
degrees higher to where I wanted it.

-----------------------------------------------------------------

At this point, I want to draw this idea of rustic monotony to
another endeavour of mine, that being programming. I have been
taking part in Advent Of Code 2023. For the uninitiated: Advent
of Code is a typical advent calender for the month of December
where each day introduces a new programming challenge which you
can solve using whatever methods you please. I joined in midway
through December, and as such am just on day 17 right now, though
I do not think I will finish the entire calendar.

You see, the early challenges in this calendar were rather
simple. I solved them using my usual tools (mostly sed actually)
and it was an enjoyable 15-30 minute practice to give my brain
something to chew on during winter break. As the days continued
however, the problems became more complex. Fairly quickly, the
performance and instability of shell scripts on my machine got in
the way of the programming. These shortcomings of the dash port
on my iPad are not problems I can solve, only ones I can work
around. Alternatively I can call a mechanic (send a GitHub issue
about my problem) and wait probably several month for it to be
fixed (if at all). Instead I switched to Python. At this point, I
was no longer solving little problems, I was writing full
programs. The days continued, and now I am here implementing full
scale algorithms such as Dijkstra's, and troubleshooting each
program for up to a full hour. For some of the problems, if my
initial code did not work, I has literally no clue where to start
fixing the problem (or even diagnosing it for that matter).  It
usually involves writing a lot of code to get more verbose
output, slowing down that output to something manageable, and
then squinting and making minor adjustments for up to one hour.
What started as a 15-30 minute brain-teaser became a time sink
several hours deep. Most frustrating where there problems where I
got a working solution, only to be asked in part two, to run
those calculations 1 000 000 times, a task the efficiency of my
code was in no state to do.

I don't find fixing problems like this fun, it is a frustrating
and time-consuming task. The same goes for optimizing code.
Whereas those first few days were building a fire, adding simple
steps together one at the time, ended with me building a central
heating system, drawing blueprints, researching algorithms,
optimizing piping, and a lot of headaches.

-----------------------------------------------------------------

I will be trying to make a greater effort to include rustically
enjoyable things in my life, and I will be trying to replace as
many painfully complex systems with human-sized ones. This likely
won't be easy and even making such transitions will be
time-consuming and difficult (watch out for a future post titled
"Make and effort to make it effortless"), but I think such
transitions are worth it. Thinking back, this is the reason I
originally became interested in the command line interfaces, old
flip phones and feature phones.

This blog is in essence also a rustic-refuge. Writing post on
here is dreadfully simple. And while my site-builder script is
more complex than I would like (it was extended to deal with rss
and gopher aside from html, accounting for the extra size), the
writing of that script is now behind me. And I can focus on
writing in plaintext, wrapped to 65 columns and decorating it
with ASCII art and white space. Just what I need on an otherwise
uneventful evening where my only task is to keep the fire going
and the house heated.