welcome guest
login or register

Melting snow

It is almost 8 weeks since I posted about starting to work with Ancient Savo AI to run non-player families. Since then it has been slow but steady progress, and the process has been pretty much like I anticipated it is going to unfold. In the beginning the AI as a whole felt like too big to wrap my mind around, so I started working with smaller manageable pieces, then finding ways to put those pieces together, and as I gained a more detailed picture of the pieces involved I could rework some of the basics so that they make better building blocks. At the moment of writing this is I'm at the testing phase, occasionally spotting cases which don't work and then diving into them to figure out the problem and how to fix it.

Let's take a simple case as an example. The AI is planning a task which requires timber as a raw material. To get timber one needs to process felled trees. And to get felled trees one simply needs to cut down any wooded tile. It always works the same; apply task CUT at a forest tile and you get a tile of felled trees. The logic is always the same, no matter if there is snow or not. I started by making this kind of simple cases to work, so that the AI can determine a sequence of tasks to produce the desired item. While going through the planned sequence of task the AI also checks what tools and raw materials are needed for each node in the sequence - if a tool is missing, the AI takes a look into that, spawning a new branch in the tree of plans.

Well, but it quickly gets a bit more complicated, especially with metal tools. To make iron one needs to start with gathering limonite, which is currently found only in lake bottoms. (For some future version I probably need to add bog iron, and maybe also limonite in bottoms of small brooks and streams). But, to get limonite simply any water tile won't do. First, the water needs to be shallow enough. Second, the lake bottom must be of certain type for the limonite to accumulate there. And lastly, once a tile is harvested for limonite it will yield only a minimal amount if harvested again - but over the years it slowly accumulates again, until eventually the lake bottom is again covered with a layer of flakes of limonite. This means that the AI needs to be able to observe all of these conditions when seeking for a suitable tile to produce limonite. Yes, if things were hard-coded all of this would be an extra function with a bunch of lines, nothing too difficult. But I want the AI to be able to parse arbitrary definitions from the XML files, so that once the generic parser is written, all the future items and recipes added will be automatically understood by the AI without me needing to write a custom function for each new case.

As I have the working code for simple cases to lean on, solving a more complex case becomes easier; a single problem at hand feels small enough to hold in my mind with full detail, can be broken to smaller sub-problems, and then solving each of them one by one.

On another level there is this question of maintaining balance between indie coding and other aspects of life. I have noticed that I have this tendency to get fully focused on one thing at a time, and sometimes it feels difficult to split a day between different activities. Like, if I have an interesting coding task active in my mind, I'd love to spend all the day just working with the task. The scale tells me that I have gained weight, measuring at 94 kg or so. In itself I think that being fat is certainly not a problem; we people come in different shapes and that's about it. But, the way it feels to be in my own body, I notice some sort of foggy and blurred feeling. As a metaphor, let's imagine that a human organism is powered by a fire burning at the lower stomach. In my body it feels like that fire is a small heap of embers with no proper flames. In so many ways my life in general feels like driving a car with the hand-brake being stuck; I have a feeling that a simple thing should be a rather simple to get done, yet it feels to consume disproportionally lot of my inner energy. Surely sitting at the computer coding all day is not going to help with improving my physical health...

Today was a bright sunny day, which always feels very special at this time of the year, when the days are starting to grow longer and it feels like there have been already a few months with very little of light. So, after my morning coding I was planning to go outdoors. At first I felt like I'd need to do something useful, something which helps to get a thing crossed out on my mental to-do list. Like, sawing a few more plans so that eventually all the logs will be processed. I reminded myself that "take better care of your health" is also on my to-do list, although it feels a bit different since it is a never-ending kind of a task. Maybe sawing a plank gives the brain a lot faster sense of reward, a feeling of "good, this thing is now done!". But doing some physical exercise seldom gives me a similar kind of immediate sense of reward. It feels more like a struggle against my inner lack of energy. That I need to push myself to do a bit more than my body feels comfortable with. I wonder if I just keep doing it for long enough it would eventually feel different.

I decided to go walking on the lake ice, to have a fire on an island, to heat up food and eat there, then walk back. For a moment my mind tried to offer an easier alternative; what if I just have a fire at my own yard, and enjoy the food outdoors, then resume the coding. It would be faster and easier!

To negotiate that feeling I went back to a memory from the last Winter Solstice. There were friends visiting, and we had a big bonfire. For the Winter Solstice I have developed or adopted some simple rituals. It is the day when the cycle of the year turns towards light, from that on there will be less and less darkness, more and more light. A good time to get rid of old, dark, heavy no-more-needed energies (this can be habits, beliefs, emotional pain associated with this or that memory, whatever which once served a purpose but has now become an obsolete weight). The ritual is to take any item which feels like a symbol for those dark energies, and then toss it into the flames of the bonfire. I'm agnostic towards the metaphysics of these energies and rituals. I don't know but I have feeling that if I mention this kind of things, some people get the reaction "energies aren't real!", or otherwise getting stuck with the details of the idea of unseen emotional energies being embodied in random items. For me these questions aren't so interesting, I just take the phenomenon as a phenomenon. And, for the theory or explanation part, for me it is enough to think that by doing something I activate different regions and connections in my brain. I don't know if superstition and "unseen energies" are processed differently in the brain than abstract logical conceptual thought - most likely it isn't that simple. And, in any case I'd guess the insular cortext is involved in processing the meanings and urgency of various stimuli coming from different regions of the nervous system. Or, what I'm trying to say: Logical questions are best solved by the logical reasoning of the brain. But where logic ends, the logical part of the brain has no powers, and we need to activate other kinds of processes - even when those processes seem to be superstitious or illogical at their face value. Oh, so, where was I? Yes, last Winter Solstice I took a piece of paper, wrote a word on it, and tossed the paper into the flames. The word was "lamaannus", which is roughly equivalent to "freeze" in the sense of "fight / flight / freeze" reactions.

In so many ways it feels like large parts of my mind are chronically stuck in a freeze reaction. There was a time in my life when the freeze was a necessary coping method to get through threatening situations. But, by the all unseen powers, by now I certainly don't need the freeze as a long-term state. Yes yes, this is a theme I've been writing about for the whole time I've had this blog, and I started working with the freeze already years before starting the blog. And in so many ways it feels a lot like an upscaled version of the process of coding Ancient Savo AI. As a whole the question is too big to grasp at once. So the best thing to do is probably just take any tiny fraction of the problem and work with it. That way, over the years, many things have become a lot easier, and a number of sub-problems have been solved. And, also, despite the logical part of human brain thinking in linear fashion, many of the processes in nature seem to be more cyclical, or spiral-like. So, the ritual of burning the freeze energy in flames simply needs to be repeated, again and again.

So, today when I felt like "maybe not go for a walk, but do something easier" I invoked the memory of tossing a piece of paper into flames. Tossing a piece of paper is taking action; and no matter how long a journey is, it starts by taking the first step. The memory of tossing the paper helped me to connect with the feeling of taking action, doing something instead of merely dwelling in the numb of the freeze. Powered by that feeling I packed up some supplies and headed out to the lake ice. At first I thought to go to the islet where I usually visit. It is a nice place and I like it. And it is nearest to my home; the other uninhabited islands are bit farther away. I recognized that was the "let's take the easier alternative"-energy, so I offered it the sense of tossing a paper into the bonfire, and went on walking to the next island so that it would make about one hour of walking to get there. Enough to make it a meaningful physical exercise, and another small step in the journey of learning new habits, overcoming the freeze tendency by picking things which require more physical and emotional effort.

Another reason why I often choose the smaller islet is that there seldom are other people there. The next island is visited by more people, so there is a higher likelihood of social contact if going there. This time I ignored this aspect, and simply chose between a short or longer walk. It was a nice walk, and I was happy to notice that I had chosen a proper amount of clothes to stay comfortable in freezing temperature. As I got to the island I chose a nice spot facing west, to catch the last of sunlight. There were tracks of other people in the snow, but they had already left. They had left remains of fire in the fire pit, which felt very nice - this ancient wilderness solidarity towards unknown fellow wanderers. Starting a fire was so very easy, just adding some dry firewood which I was carrying in my backpack. I melted snow to make coffee, and heated up pre-made food for a hot meal. Melting snow feels like another metaphor for the long slow process of recovering from freeze. Even though it doesn't happen all at once, you simply need to keep on heating the snow to make it liquid, little by little.

Sitting by the fire I felt inner tranquil. On my way there my mind was still partially thinking about coding problems and possible solutions, but all of those thoughts faded away, and I felt more present in the moment. Enjoying the silence - the only sound was a lone woodpecker running a workshop at one of the trees in the island. The fresh air, the noticeable warmth of sunlight on skin. The very basics of life; fire, food, safety. In a way it also felt a bit like connecting with the other people who had been there earlier, and earlier, and earlier - for thousands of years people have been doing exactly this. Eating food by a campfire watching the sunset and feeling simply grateful to be alive in that moment. Maybe this is one of the rituals which just needs to repeated, again and again.

I headed back to home at the sunset. The Waxing Gibbous Moon kept climbing higher and higher, and I felt like the ritual working; a little bit more of the inner freeze had melted.

Walking on the ice
Walking on the ice
Melting snow
Melting snow
Before the sunset
Before the sunset
Coming home
Coming home
tags: 
depression
diary
philosophy
programming
spirituality
up
11 users have voted.

Add new comment

CAPTCHA
Please reply with a single word.
Fill in the blank.