<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Sotolf&#39;s thoughts and oddities</title>
    <link>https://sotolf.codeberg.page/</link>
    <description>Recent content on Sotolf&#39;s thoughts and oddities</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>Sotolf (CC BY 4.0)</copyright>
    <lastBuildDate>Mon, 11 May 2026 08:02:07 +0200</lastBuildDate>
    <atom:link href="https://sotolf.codeberg.page/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>This Week 2026 19</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-19/</link>
      <pubDate>Mon, 11 May 2026 08:02:07 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-19/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been a nice week, I&amp;rsquo;ve been on call, which always is a bit restricting, but it wasn&amp;rsquo;t the worst one at least. Only kept me up twice in times I wanted to sleep. I had some nice walks over the weekend, A really quite long one on saturday, it was wonderful, but I really do regret that I didn&amp;rsquo;t take on the shorts, it was really a bit too warm to go with full jeans outside on that day, but it was nice.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It&rsquo;s been a nice week, I&rsquo;ve been on call, which always is a bit restricting, but it wasn&rsquo;t the worst one at least. Only kept me up twice in times I wanted to sleep. I had some nice walks over the weekend, A really quite long one on saturday, it was wonderful, but I really do regret that I didn&rsquo;t take on the shorts, it was really a bit too warm to go with full jeans outside on that day, but it was nice.</p>
<h1 id="books">Books</h1>
<p>I finished up <strong>Tanin&rsquo;s Treasure</strong> by Thalia Rhea, and it was a good, but kind of conflicting book for me, I really quite enjoyed the story and most of the characters, the whole relationship between the main characters though, didn&rsquo;t quite do it for me, it felt more wrong than right, but it might be that I&rsquo;m just not that into that whole domination thing, all in all the rest of the book made up for it, but I hope the next book in the series has some a bit more equal partners.</p>
<p>I got started with <strong>To Err is Azrin</strong> Another one in the black ocean series by J.S. Morin, And to start out it&rsquo;s really fun at least, this whole series so far has been pretty laid back and nice, with smaller plots, and that&rsquo;s something that I really do appreciate. I hope this one too will end pretty well, and after having read multiple others in the same series I think this will be as well.</p>
<p>In the book I have which is a collection of the first four stories, there is a short story tacked into the end, and since these stories in general are pretty short I will tack it onto this one for reading I think, it just doesn&rsquo;t feel right to count it as a separate book when it&rsquo;s a less than 40 page novellette.</p>
<h1 id="games">Games</h1>
<p>I&rsquo;ve been mostly just playing one game this week, <strong>Bravely Default II</strong> and I&rsquo;ve been enjoying it so much. There is something about it that is just dragging me in, I really enjoy the battle system, and the way it&rsquo;s set up, with ability to speed up the battles, and if you know you can beat the enemies you just wail onto them and get through the battle quickly. It&rsquo;s really nice, the graphics and story has been growing on me a lot as well. It&rsquo;s also really fun that it&rsquo;s really flexible in how much of what I want to get out of it, if I&rsquo;m tired I just go on a grinding session where I don&rsquo;t have to think that much and just mow through stuff, if I am out for something a bit more exciting I&rsquo;ll be following the story and get into some boss fights and stuff, which opens up the game a bit more for later as well. I got to Chapter 2 yesterday, I&rsquo;ve been taking my time, and slowly getting there, I don&rsquo;t really feel any need to rush, I just enjoy playing puppets with my different characters, it&rsquo;s just fun changing up their jobs and seeing how I can make them better, and how to change things around, it&rsquo;s just really a lot of fun so far, and it&rsquo;s the kind of RPG that I hope we see more of in the newer ones, ones that remember how the RPGs used to be, but that might be just me being old and set in my ways. I&rsquo;ve been really enjoying my gaming time this week.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;m not that sure if I have that much to write on this one, I&rsquo;ve been thinking about just switching out this heading to something like misc or something, which is basically what this one is. I&rsquo;ve been keeping up with listening to older <strong>into the aether</strong> episodes, I&rsquo;m up to episode 33 now, and the old episodes are good, but a bit uneven at times, I skipped through a couple of kingdom hearts episodes, it seems like quite a few podcasts I listen to have people who really love the series, but I don&rsquo;t, I don&rsquo;t really care much about it at all, and at least not enough to listen to someone talking about it for well over an hour.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 18</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-18/</link>
      <pubDate>Mon, 04 May 2026 08:24:33 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-18/</guid>
      <description>&lt;p&gt;Spring is slowly getting taken over by summer now as it feels at least, it&amp;rsquo;s nice that the spring at least did take a bit more time this time, and not just a week of spring-ish weather and then full summer, one I&amp;rsquo;m able to enjoy for once.&lt;/p&gt;&#xA;&lt;p&gt;I think I did manage to catch a cold or a virus or something as I&amp;rsquo;ve been feeling a bit under the weather the last days, not really something bad or heavy, just getting winded faster than normal, sniffing a bit and some headaches, but that will probably also lose it&amp;rsquo;s grip in a bit.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Spring is slowly getting taken over by summer now as it feels at least, it&rsquo;s nice that the spring at least did take a bit more time this time, and not just a week of spring-ish weather and then full summer, one I&rsquo;m able to enjoy for once.</p>
<p>I think I did manage to catch a cold or a virus or something as I&rsquo;ve been feeling a bit under the weather the last days, not really something bad or heavy, just getting winded faster than normal, sniffing a bit and some headaches, but that will probably also lose it&rsquo;s grip in a bit.</p>
<p>Still had some nice walks over the longer weekend, and spent quite a bit of time reading which was nice.</p>
<h1 id="books">Books</h1>
<p>On the books side I finished of <strong>Of Poets and Pirates</strong> and it was the one I&rsquo;ve enjoyed the most in J.S. Morin&rsquo;s series so far, it was spending some good time with the characters of the book, some fun quips, and some lower stakes stories, it&rsquo;s something that I really enjoy that most people probably don&rsquo;t so it&rsquo;s nice to see a bit of that.</p>
<p>As my Next one <strong>Right Ascension</strong> by Nicola Claire, I really enjoyed this one, story did divert quite a bit from the first two, and I really enjoyed the characters and story, it also helped that I have something for strong women, so I really had a lot of fun with this one, the biggest problem was it ending on a cliffhanger.</p>
<p>So I went straight into <strong>Zenith Point</strong> which is the capstone for the first series, this one was a prime example for me how the journey some times is way better than the destination, I enjoyed the story and the characters quite a bit, but then it ended quite abruptly, and then there was parts of a wedding and it just ended, for some reason that kind of bummed me out, but the journey there was a lot of fun at least.</p>
<p>I&rsquo;ll be back into the Black ocean again soon, it will probably be my next book, but I started reading <strong>Tanin&rsquo;s Treasure</strong> by Talia Rhea because I just felt I needed something new after having read quite a lot from the same series. So far I&rsquo;ve been enjoying it, it&rsquo;s quite cute, took a bit to get into the writing style of the author for me, but since I did I have been enjoying it.</p>
<h1 id="games">Games</h1>
<p>I finished up <strong>Under the Island</strong> today, and it was a really wonderful game, it knew how long it needed to be, and it was just a lot of fun all the way through, it never got too difficult, it kept up the nice vibes, and just was a lot of fun all in all, just a really enjoyable experience that is over before it got stale, I really enjoyed this one and if you like puzzely zelda likes it probably will be something you would enjoy as well.</p>
<p>I still played <strong>Vampire Crawlers</strong> for a bit, and it&rsquo;s the same as before, just some fun card combat, and it just feels good making some broken builds and so on, not really in an addiction loop with it, so it&rsquo;s one that I will come back to time after time and just enjoy some fun card combat until I&rsquo;m through it, it&rsquo;s just really a fun game.</p>
<p>One that I&rsquo;m a bit more conflicted on is <strong>Shapez 2</strong> the game is wonderful, and it&rsquo;s really fun puzzling out how to make new shapes, it feels really good seeing things coming togehter, but it kind of feels too close to work for me in many ways, which kind of makes it something a bit tiring to play for me, it&rsquo;s a fun game that I have to be in a specific mood to enjoy.</p>
<p>I came back to an older game in my wish to find something a bit different to play, it was nice finishing a game, and I wanted to see what kinds of different stuff I had, I&rsquo;ve been playing quite a bit of action stuff lately, I tried getting into octopath II again, but I didn&rsquo;t really feel it, so I started actually getting into <strong>Bravely Default II</strong> and it&rsquo;s been a blast so far, it feels like a real decendent of Final Fantasy V with it&rsquo;s fun systems and things to play around with, it&rsquo;s really nice to see that parts of Square enix still are holding on to the older style of games, and for me at least it&rsquo;s just way more of something that I want from an rpg than the newer Final Fantasy games who just doesn&rsquo;t really do it for me personall.</p>
<h1 id="media">Media</h1>
<p>As I&rsquo;m writing this I just got an update from one of my favourite podcasts through years and it seems like <strong>Knowledge fight</strong> has met the end of the road, it feels kind of sad, but I guess I will find something else to fill the void. As someone with my kind of very patterned lifestyle it always kind of puts me out of balance when something I&rsquo;m used to enjoying disappears, but it is how it is, nothing can last forever etc, so I hope the best for both of Dan and Jordan, and hope they will both do some fun projects in the future.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 17</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-17/</link>
      <pubDate>Mon, 27 Apr 2026 09:13:38 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-17/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been a rather nice week, but one that I don&amp;rsquo;t really have much to say about, work, relaxing and little new stuff.&lt;/p&gt;&#xA;&lt;h1 id=&#34;books&#34;&gt;Books&lt;/h1&gt;&#xA;&lt;p&gt;Reading has been rather flat as well I finished off &lt;strong&gt;Ava Greasemonkey&lt;/strong&gt; Alissa Lace, and it was a fun book, you kind of see that it&amp;rsquo;s probably one of her first books, because at times it was a bit clunky, and it kind of was sticking out that even small things that takes a really short time always takes a minute. But apart from those nitpicks I quite enjoyed my time with the book. And it had a satisfying ending, so all in all, a good experience.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It&rsquo;s been a rather nice week, but one that I don&rsquo;t really have much to say about, work, relaxing and little new stuff.</p>
<h1 id="books">Books</h1>
<p>Reading has been rather flat as well I finished off <strong>Ava Greasemonkey</strong> Alissa Lace, and it was a fun book, you kind of see that it&rsquo;s probably one of her first books, because at times it was a bit clunky, and it kind of was sticking out that even small things that takes a really short time always takes a minute. But apart from those nitpicks I quite enjoyed my time with the book. And it had a satisfying ending, so all in all, a good experience.</p>
<p>I also started and almost finished <strong>Poets and Piracy</strong> By J.S. Morin The third one in the black ocean series, and so far I&rsquo;ve been really quite enjoying this one, I have only about 30 pages or so left to go, and it&rsquo;s been one of my favourites in the series so far, quite a lot of fun drama in between the characters, some fun moments, and things going slowly forward, quite a lot of fun.</p>
<p>The next one is going to be the next in the Sector fleet series, and I&rsquo;m quite looking foreward to it, I&rsquo;m sure it will fit my current mood well enough.</p>
<h1 id="games">Games</h1>
<p>The week started out with <strong>Under the island</strong> and it&rsquo;s one I will for sure come back to, it&rsquo;s just still colourful, light hearted fun, some light puzzling, and just a world that is there to have fun in. I will jump back into it, it&rsquo;s just that this week the next one came in and took all of my playtime (almost) for the week.</p>
<p><strong>Vampire Crawlers</strong> came out, the next game from the vampire survivors people (and some more now since they have grown on that success). After having supported vampire survivors for years and made some great DLC for it, I kind of thought they would just sink back on their laurels, and rake in the cash, but this one came out, and I&rsquo;ve been really quite hooked on it. Being a DRPG like in visual, and card game in combat, a quite fast pace and easy to understand card combat, they have done some great job in creating cards from the abilities in the universe, and it&rsquo;s really readable as you play, with a lot of polish. It&rsquo;s not the deepest of card games, but it&rsquo;s a lot of fun, neither is it very hard, but it&rsquo;s just really fun to play, it feels great when you&rsquo;re able to cobble together something that synergises well. Really enjoyable, and compelling to play too, I&rsquo;ve cleared almost everything up to the second bridge now, and I&rsquo;m having a lot of fun with it. Great little game.</p>
<p>I was feeling in a bit of a factory mood too in the beginning of the week and <strong>Shapez 2</strong> released as 1.0 now, and this game is just a lot of fun, it&rsquo;s all the good things about building factories, and just the good things, you don&rsquo;t really have to care about resources, other than throughput and space, and it has comfort functions that just works, with things like copy and paste and so on you can set up new constructions really quite quickly, and you&rsquo;re left to deal with the puzzles of logistics and how to create the myriad of different shapes that you&rsquo;re told to make. It does kind of fall into the bucket that I have to be in a quite specific mood since the troubleshooting and working mood in it some times almost gets too close to what I do at work, as I try to understand what a cobbled together grown system actually does, and how to fix it, or make it work smoother, but it&rsquo;s a lot of fun when you get into the groove of it.</p>
<p>I also had a run in <strong>shiren the wanderer</strong> where I managed to get on top of the first tower, that was fun, on to the next ones, I&rsquo;m sure it gets way harder as I get deeper in, it&rsquo;s quite fun though, trying to remember to look into my backpack every time I get in a dicey situation to find my way out of it.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve been adding <strong>wanderbots</strong> to my youtube subscriptions again, I used to watch their videos quite a bit before because they play a lot of games that I enjoy, and have quite a similar taste to me, their commenting is also really chill, which I as an older guy by now really enjoy, I can&rsquo;t really deal with everything being turned up to 11 all the time. I unsubscribed a couple of years ago because their throughput was too high, and I felt kind of overwhelmed and lost, it seems like they have peered it down to one or two videos a day now, which is easier to sift through, and I&rsquo;m enjoying their stuff quite a bit.</p>
<p>Other than that on the podcast side <strong>video game podtimism</strong> had off this week, and since they have such a defined place in my weekly routine I really missed having that one to listen to. But I am filling the hole with some old episodes of <strong>into the aether</strong> and hopefully they will come back strong next week.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 16</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-16/</link>
      <pubDate>Mon, 20 Apr 2026 09:04:11 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-16/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been a decent week, I&amp;rsquo;ve been slowly feeling a bit better again, just quite a lot of stress at work the last couple of weeks, changing over systems are great as long as you don&amp;rsquo;t make errors, when you do, or don&amp;rsquo;t catch ones that are there, suddenly there is a lot of pressure to fix things quickly, which to be honest is not something that I&amp;rsquo;m a big fan off, a bit of pressure is good to get things done, when it gets up to a lot, and you have to come up with things and fix things quickly to satisfy people who do, and know nothing about it it&amp;rsquo;s not as fun. But well, I think I&amp;rsquo;ve managed to get most of the stuff brought over into shape now, hopefully at least, and then it&amp;rsquo;s on to the next ones.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It&rsquo;s been a decent week, I&rsquo;ve been slowly feeling a bit better again, just quite a lot of stress at work the last couple of weeks, changing over systems are great as long as you don&rsquo;t make errors, when you do, or don&rsquo;t catch ones that are there, suddenly there is a lot of pressure to fix things quickly, which to be honest is not something that I&rsquo;m a big fan off, a bit of pressure is good to get things done, when it gets up to a lot, and you have to come up with things and fix things quickly to satisfy people who do, and know nothing about it it&rsquo;s not as fun. But well, I think I&rsquo;ve managed to get most of the stuff brought over into shape now, hopefully at least, and then it&rsquo;s on to the next ones.</p>
<h1 id="books">Books</h1>
<p>I finished off <strong>Smuggler&rsquo;s concience</strong> By J.S. Morin, and it was pretty fun, I did enjoy it quite a bit, although there was a bit less of a togetherness that I missed from the first book, it was still pretty fun though, and I will continue on the series. Fun little romp with some action, and some fun character moments.</p>
<p>Second for this week was <strong>Apparent Brightness</strong> by Nicola Claire, it was another fun book, and I really enjoy the writing and the characters, there are some really good parts of this one. The plot was a bit too similar to the first one though, and I hope it will be a bit more different in the next one in the series, I&rsquo;m definitively going on with this series, it&rsquo;s a lot of fun, and I&rsquo;m just enjoying myself reading these books.</p>
<p>And I got started and about 40% through <strong>Ava Greasemonkey</strong> by Alissa Lace, I kind of wanted to break up the two series that I&rsquo;m currently in with something else as well, and this is different, and fun so far, I&rsquo;m hoping that it&rsquo;s going some good places, and so far it seems promising at least, I will have to see what it does now, I&rsquo;m just at a breaking point in the story where it can go multiple ways, and we&rsquo;ll see where it ends up.</p>
<h1 id="games">Games</h1>
<p>The beginning of this week I was not really in a good place when it came to games, most of my playtime through the week was different nonogram/picross games, but as always it&rsquo;s quite a nice way to bring myself down, there is something really calming about solving the puzzles, they engage the brain without really being too difficult, which is nice.</p>
<p>For the first time in a while I went on a little haul of buying some games I got 3 this time.</p>
<p>First one is the one that I spent the most time on, and really enjoyed playing over the weekend <strong>Under the Island</strong> it&rsquo;s an action adventure puzzle game, quite similar to the best (top down) zelda games, which focus more on solving puzzles than the fighting, and so far I&rsquo;ve been enjoying it a lot. The puzzles seem a bit more logical than the older zelda games, and I think something about it being scrolling rather than screen based makes the larger puzzles which in a Zelda game would span multiple screens make more sense to my brain. I&rsquo;ve been really enjoying this one, and it&rsquo;s very cozy, with a vibrant art style. For some reason I also really love the starting screen with &ldquo;Find a nice place and a cup of tea or coffe to enjoy your game the most&rdquo; or similar ones that comes up, it really matches the feel that I want from a game. Hopefully it will keep up being like this, the first 6 or so hours of it has been great at least.</p>
<p>The second one that I got is one that is very different <strong>Shiren the Wanderer: The Tower of Fortune and the Dice of Fate</strong> most of the games have extremely long titles, this one is pretty much a traditional (classic) roguelike with some nice graphics, and I&rsquo;ve been kind of wanting a good console roguelike to play, I have a lot of things to say about what everything is called roguelikes now a days, but I guess that&rsquo;s a lost cause already, the game is cheery and colourful, and I had fun on my first run in which of course ended catastrophically, but it was fun, and I think if I give it enough time to learn the systems better it will be one that will bring me quite a lot of fun in the future, I like that it does seem like the game is pretty light on the mood front, and it&rsquo;s just a fun adventure with shiren, I also appreciate that it has quite a lot of tutorial content that I can go through, it&rsquo;s kind of good for someone who is probably not as good at figuring out the small things quickly as one usually are getting good things for in games.</p>
<p>And the third one is <strong>Aeturna Noctis</strong> it looks beautiful, but there is one glaring thing about this game, that probably would have made sure that I would not have bought the game if I had known it before buying the game, it&rsquo;s a precision platform game, and it does not let me rebind movement to the d-pad. I do not enjoy playing a precision platforming and fighting game with a joystick, added to that the flakeyness of my switch joystick it makes the game so much less fun to play, so this one will probably be a dud to me, I&rsquo;m really disappointed about this one, it&rsquo;s one choice that makes me probably just unable to play the game, or at least stop me from getting especially far in it. It&rsquo;s a shame, because the game looks great, but well, that&rsquo;s how it is.</p>
<h1 id="media">Media</h1>
<p>For podcasts and stuff it&rsquo;s been mostly the same stuff as always for me in the week, I&rsquo;ve been enjoying listening to them, and the same ones are the ones I&rsquo;ve been enjoying the most. I&rsquo;m having fun with the relistening to the <strong>Into the Aether</strong> episodes from the start, although as always they are discussing some games at length that I just am not that into, I enjoy the banter though, but some times I wish they were a bit shorter about things that I don&rsquo;t enjoy. But that&rsquo;s just how things are, it&rsquo;s still just enjoyable listening to positive talk about videogames.</p>
<p>I also enjoyed some documentaries in Norwegian this week, and the new episode of <strong>videogame podtimism</strong> that podcast is just fun, and always bringing me joy, their humour gets very stupid some times, but in an enjoyable way, I&rsquo;m not quite sure how they manage to deliver the jokes that they do without getting grating on me, but they are.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Politics</title>
      <link>https://sotolf.codeberg.page/posts/politics/</link>
      <pubDate>Fri, 17 Apr 2026 12:47:28 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/politics/</guid>
      <description>&lt;p&gt;Yeah I know it&amp;rsquo;s not what anyone wants on a friday, but it&amp;rsquo;s kind of what made me think about this again. I find it kind of weird why so many people are clinging so on to capitalism, when I think about it at least I just see the bad behaviour it encourage, not only to a single person, but to our society at large. Unions fight for workers, and ensure things like having controlled work-days, and weekends that we can enjoy, while capitalism just is a race for more exploitation of the worker class, shuffeling value from people who have little to the people that have a lot. As we fight for things like having some leisure time, having a possibility to take breaks to gather our thoughts, that&amp;rsquo;s something that capitalism can&amp;rsquo;t allow. What is so often forgotten is that the time that you have off either a short break to gather your thoughts or a day off, are the times that I have actually come up with solutions to problems I have struggled with a long time. Downtime isn&amp;rsquo;t just time where work isn&amp;rsquo;t done, but recouperation, time to gather our thoughts or let them stew in the unconscious.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Yeah I know it&rsquo;s not what anyone wants on a friday, but it&rsquo;s kind of what made me think about this again. I find it kind of weird why so many people are clinging so on to capitalism, when I think about it at least I just see the bad behaviour it encourage, not only to a single person, but to our society at large. Unions fight for workers, and ensure things like having controlled work-days, and weekends that we can enjoy, while capitalism just is a race for more exploitation of the worker class, shuffeling value from people who have little to the people that have a lot. As we fight for things like having some leisure time, having a possibility to take breaks to gather our thoughts, that&rsquo;s something that capitalism can&rsquo;t allow. What is so often forgotten is that the time that you have off either a short break to gather your thoughts or a day off, are the times that I have actually come up with solutions to problems I have struggled with a long time. Downtime isn&rsquo;t just time where work isn&rsquo;t done, but recouperation, time to gather our thoughts or let them stew in the unconscious.</p>
<p>Happiness is something we all strive for, but money is not a measure of happiness, I mean sure, you will not be that happy if you don&rsquo;t have the means to support yourself, but that&rsquo;s not the money, the money are just tokens that you get for work done or more, the worth that some person of the ruler class has decided that you&rsquo;re worth, and yet, often the lower rewarded tiers of workers are the one that does the vital work, while the one on top just look at them as replaceable peons. Sadly this is not something that is easy to turn around, as the Imperial nations like the US are fighting tooth and nail against worker&rsquo;s right, propagandising their own population to make sure they are scared of the &ldquo;commies&rdquo; attacking either openly or hidden behind other stuff nations that try to stand against their ideals of conquest and shuffeling value from developing nations into their economy to keep it running for a while still.</p>
<p>We would need less if we would actually care about the people living in a country, and their wellbeing, rather than fueling the powerlust and never ending sickly hunger of the powerful, wanting more, more power, more money, more influence over the proletariate which they look down at like not even humans, but numbers on a spreadsheet, pawns to move around on a board or dispensers of value, they put in a as little as they can get away with, and get so much more value back, for us actually doing the work we don&rsquo;t even know how much our work really is worth, but for sure way more than the effort we put into it.</p>
<p>If we look at popular institutions and things that people actually value, like libraries, it&rsquo;s a near perfect illustration of what communistic ideals give us, they help people learn, you don&rsquo;t have to have a specific status or anything to make use of them. We own them together, and we can make use of books or a quiet place to take some time off. Or a park, a place where you can enjoy the sights, take a break from the rat-race of life and a little breather, because that&rsquo;s real value, things that they haven&rsquo;t taken away from us.. ..yet at least.</p>
<p>If you haven&rsquo;t thought of it, what is it that is so scary about communism? What&rsquo;s bad about working together, and to then share the value that we create, we will find that when we aren&rsquo;t stuffing the ruling class with foise gras and another private jet plane that we actually can do so much more than what we have that we thought, we will see that the work that we do matters, that it achieves something. And really we don&rsquo;t live to work, we work to be able to live, and working for something that you see actually matters is so much more fulfilling, than just plugging away on another day doing some mine numbign task that doesn&rsquo;t matter to you.</p>
<p>In addition to this comes the unequal exchange of value with the developing nations, as the ruling class had to concede some things to workers in their own countries, they turned their wage stealing ambitions towards countries where people struggle more, because desperate people who struggle are like gold for them, it&rsquo;s a point where they can extract value without much pushback, and the workers again are the ones that have to suffer.</p>
<p>While there isn&rsquo;t that much we can do, we can unionise, we can make ourselves heard, and show solidarity, because the frequent clashes between us, the small quibbles that they encourage us to put time and effort into, be it someone&rsquo;s sexuality, their gender or the skin colour of the person living next door, that is nothing else than making sure that we fight each other rather than realising what we are letting them do to us. So let&rsquo;s bide our time until we can pack out the guilliotines again.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 15</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-15/</link>
      <pubDate>Mon, 13 Apr 2026 09:45:17 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-15/</guid>
      <description>&lt;p&gt;Slowly the weather is warming up, and I&amp;rsquo;ve had a nice and pretty productive week after easter, it has been nice being able to ditch the big jacket, and stuff just has been pretty nice this week, hopefully it will keep on going that way.&lt;/p&gt;&#xA;&lt;h1 id=&#34;books&#34;&gt;Books&lt;/h1&gt;&#xA;&lt;p&gt;Finally got into the swing of reading again, started out with reading, first I finished off &lt;strong&gt;Doubleblind&lt;/strong&gt; by Ann Aguirre, which was a fun book, really enjoyable and fun to read. Quite a lot of politics and a bit of action and the end.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Slowly the weather is warming up, and I&rsquo;ve had a nice and pretty productive week after easter, it has been nice being able to ditch the big jacket, and stuff just has been pretty nice this week, hopefully it will keep on going that way.</p>
<h1 id="books">Books</h1>
<p>Finally got into the swing of reading again, started out with reading, first I finished off <strong>Doubleblind</strong> by Ann Aguirre, which was a fun book, really enjoyable and fun to read. Quite a lot of politics and a bit of action and the end.</p>
<p>Looking through my stuff I found a book that I didn&rsquo;t remember why I had gotten, it&rsquo;s a compilation book of the 4 first books in the <strong>Black ocean</strong> series by J.S. Morin and I started reading it, turns out I got it because <a href="https://beko.famkos.net/">Beko Pharm</a> had reccommended it to me. The first book is <strong>Salvage Trouble</strong> and I had a blast reading through it, fun characters, written with humour, and there are space wizards, just a lot of fun, and written in a way that makes it enjoyable.</p>
<p>After that one I started another series, with <strong>Accellerating Universe</strong> by Nicola Claire a part of a bigger sector series mushroom, which from what I understand is Sector Fleet, the series that I&rsquo;ve started on, Sector Wars, and Sector Files. This was a fun having to leave earth kind of story, and kind of in a way dystopian, with a huge evacuation ship leaving, it was fun and a compelling read, so looking foreward to the next one.</p>
<p>And lastly I started the second book in Black Ocean with <strong>Smuggler&rsquo;s concience</strong> Which has been fun for the part that I&rsquo;ve read so far, they are quite short, so they go really quick to read, but they are so much fun that I don&rsquo;t really mind, and why would that matter anyway, I&rsquo;m not here to just flaunt the amount of pages read.</p>
<h1 id="games">Games</h1>
<p>For games I haven&rsquo;t really been that much up on that this week, mostly I&rsquo;ve been playing some <strong>iconoclasts</strong> which is a fun puzzle exploration platforming game. I&rsquo;m still kind of in a platformer mood, while I kind of am moving over to turn based RPG stuff again I think, at least that&rsquo;s something that is on my mind the last days.</p>
<p>It&rsquo;s been a while since I&rsquo;ve been so into a game that I just want to finish it off now, but that&rsquo;s just how things are, we&rsquo;ll have to see where it goes, I wasn&rsquo;t really much in a gaming mood over the weekend either, and just played a bit of some incremental games, but nothing that I really would call gaming, maybe next week will be a bit more exciting.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve started to listen to some of the test podcasts that I downloaded last week, and the <strong>Red Menace</strong> podcast has been quite a bit of fun to listen to, it&rsquo;s a radical left podcast which discusses political stuff, and so far it has been fun, it&rsquo;s just a bit annoying that it&rsquo;s really hard to find the kind of stuff that I like in norwegian, while so often things that are in english are focused on the US, but well, I mean can&rsquo;t have everything either.</p>
<p>Another podcast that I&rsquo;ve listened to is another leftie one, <strong>Reaction</strong> pod where they are talking about alt-right figures, this one by a serb, a Norwegian and an American, so far it&rsquo;s been pretty fun, and at least the humour is a bit more of something that I&rsquo;m used to from over here, and so far it&rsquo;s been fun.</p>
<p>I know that <strong>Stay Forever</strong> will have a podcast about Final Fantasy V this month, and it&rsquo;s one that I&rsquo;m really look foreward to listening to.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Reading as Entertainment</title>
      <link>https://sotolf.codeberg.page/posts/reading-as-entertainment/</link>
      <pubDate>Thu, 09 Apr 2026 09:21:37 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/reading-as-entertainment/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve seen that in some ways it seems like I&amp;rsquo;m weird when it comes to how I treat reading, for me it&amp;rsquo;s not really something I do to get smarter or to learn stuff mainly at least, it&amp;rsquo;s just entertainment, when many others would sit down in front of the TV (Nothing bad about that, some times it&amp;rsquo;s just a good way to decompress after a long day) I sit down with my book, and read a bit. Since it&amp;rsquo;s something that&amp;rsquo;s replacing things like TV, I don&amp;rsquo;t end up reading mostly challenging stuff, sure I&amp;rsquo;m sure it has its good sides as well, but a lot of the time when I sit down to read, I&amp;rsquo;ve already been through a hard day of work and thinking and problem solving, and a challenging read is not really quite what I&amp;rsquo;m there for.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve seen that in some ways it seems like I&rsquo;m weird when it comes to how I treat reading, for me it&rsquo;s not really something I do to get smarter or to learn stuff mainly at least, it&rsquo;s just entertainment, when many others would sit down in front of the TV (Nothing bad about that, some times it&rsquo;s just a good way to decompress after a long day) I sit down with my book, and read a bit. Since it&rsquo;s something that&rsquo;s replacing things like TV, I don&rsquo;t end up reading mostly challenging stuff, sure I&rsquo;m sure it has its good sides as well, but a lot of the time when I sit down to read, I&rsquo;ve already been through a hard day of work and thinking and problem solving, and a challenging read is not really quite what I&rsquo;m there for.</p>
<p>One of the best things that I did for my reading was getting an e-book, it makes it so much easier to getting books that aren&rsquo;t that popular where I am, it&rsquo;s really easy to carry around, so at the same time of being something that I have around me all the time, always ready, it also opened worlds of new stuff that I just wouldn&rsquo;t be exposed to otherwise.</p>
<p>Even when reading books that on the surface aren&rsquo;t that deep, or challenging, I think there is something about how you experience a book, spend some times in other&rsquo;s shoes with a bit of a distance, I think it&rsquo;s helped me a lot to be more open to how other people are, it&rsquo;s easier to empathise with someone when you have a bit more of an idea about how they think about things.</p>
<p>There really is something magical about being out on a walk, sitting down for a rest, and reading a chapter or two on a bench, either in a park with people milling around doing their stuff, on a little hidden away place in my lunch break, or sitting on a tree trunk in a place with a good view, and birds that are making bird sounds around me, it makes me feel happy.</p>
<p>The one thing that I have found the most challenging is how much steam I lost after struggling with a book and the aftermath of procrastrinating and how hard it was to just get back into a good groove with reading afterwards. I was slowly getting stuck in the book <strong>Green Mars</strong> and it irked me more and more, it was something that was creeping in on my until it kind of exploded, and I just didn&rsquo;t want to continue on, and for almost a week afterwards I found myself just not wanting to read at the times that I usually do enjoy it, I was playing around with something else I was having at hand, or just don&rsquo;t set off the time I normally do for reading to do it. But now after having finished one book afterwards I think I slowly have gotten into it again, I&rsquo;m again exited to continue on reading. So much so that I went on another spree of getting books, so that I have something more to look foreward to.</p>
<p>I have also gotten a good feel for what books I will enjoy, so I look through some specific subreddits like /r/sciencefictionromance and I have a pretty good hitrate in finding things I enjoy by looking for recommendation threads and what people say about the books, I&rsquo;ve found that more than looking for specific tags or themes, what usually works for me is the vibe, if someone describes a vibe or feeling from a book that is something that I enjoy, I&rsquo;ve found that I&rsquo;m more likely to enjoy it, even though I have never seen firefly for example, I have learnt that if someone says that it has a firefly vibe, I&rsquo;m likely to enjoy it. I have also found specific things that I know that makes me enjoy a book, like found family, it&rsquo;s something that I&rsquo;m most likely going to enjoy.</p>
<p>Like with everything else, learning your own taste and what you&rsquo;re going to like is something one gets better with with some experience, I&rsquo;m hitting stuff that I&rsquo;m going to like way more now than what I used to, and as a result I tend to end up to rate most of what I read rather highly, now when I rate a book I also go for my experience of reading it, and not something more objective or fancy, I don&rsquo;t really care much about deeper themes, if it&rsquo;s something universal that many people will enjoy and so on, some times a book will get a higher rating just because I was in a good mood, or because I have a good memory of sitting outside in the sun enjoying myself while reading it, less helpful for others maybe, but I don&rsquo;t really know if I can really be objective, so I just rate my experience of it.</p>
<p>One thing that I have found to be almost more important than the things in the book, a fluid writing style, with focus on characters will most likely make my enjoyment of a book go up a lot. If an author wants to brag about the words that they know, it&rsquo;s going to be a detriment to me, I will enjoy the book less, sure I like being dumped into a sci-fi scenario with a lot of stuff unexplained and weird made up stuff that you have to figure out what is, but if the writing is dry, and I have to look up words every page, it&rsquo;s just not fun to read.</p>
<p>It&rsquo;s funny how something that is mainly entertainment to me, also kind of is a skill, I feel myself getting better at reading, better at finding stuff that I will enjoy, and better at motivating myself to read. In effect it&rsquo;s pretty similar to playing games, with the one caveat that I will usually get to the end of a book that I enjoy, it&rsquo;s the main drawback I feel with playing games, that if there is something I struggle with in it, it&rsquo;s likely that I won&rsquo;t be able to overcome it, a book is so rewarding in that as long as you keep on reading, you will get to the end, and you will get to experience the whole thing, there is something to be said about that that is nice.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 14</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-14/</link>
      <pubDate>Tue, 07 Apr 2026 11:25:10 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-14/</guid>
      <description>&lt;p&gt;I write this one a day later than normal, it&amp;rsquo;s easter, that strange time where the vacation days sneak up on me, so an extra day off on monday, which was nice. It also really helps that the weather has been amazing which has been really nice, so I had some good days being quite a bit outside and just enjoying the nice weather, and not having to have a jacket on.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I write this one a day later than normal, it&rsquo;s easter, that strange time where the vacation days sneak up on me, so an extra day off on monday, which was nice. It also really helps that the weather has been amazing which has been really nice, so I had some good days being quite a bit outside and just enjoying the nice weather, and not having to have a jacket on.</p>
<h1 id="books">Books</h1>
<p>I dropped <strong>Green Mars</strong> last week on Monday, it was a pain to trudge through, and just got worse, I didn&rsquo;t like that nothing could be solved without an american so I stopped reading at 60% it just wasn&rsquo;t worth it for me.</p>
<p>I started reading <strong>Doubleblind</strong> by Ann Aguirre, and I have been enjoying this one a lot more, it&rsquo;s also full of politics, but just writes people way better than the Mars-books ever did. I&rsquo;m still having a bit of a hangover from struggling so I catch myself procrastrinating even though I&rsquo;m not reading that book anymore, but I&rsquo;m really enjoying this one, it&rsquo;s a lot more fun.</p>
<p>Yesterday I also had an excellent time reading in a park with people around, and it was wonderful, just enjoying the nice weather and the atmosphere. It was wonderful.</p>
<h1 id="games">Games</h1>
<p>For most of the week I&rsquo;ve been playing <strong>Afterimage</strong> A metroidvania, I got pretty far in it a year or two ago, and got stuck on a boss, I started a new game, and have been quite enjoying it, yesterday I was a bit overwhelmed with how huge the game is, so I will probably take a little break again and play something else for a while, but this is a game that is really fun when one is in the mood for exploration, it&rsquo;s really nice looking, but the story is gobbeldigook, I&rsquo;m not sure if it&rsquo;s the trans/localisation that is weird or if the story just isn&rsquo;t great, but I just ignore all the text, and hope that I get through.</p>
<p>Yesterday I also remembered that I have <strong>Iconoclasts</strong> downloaded, and it&rsquo;s a fun mostly platformer metroidvania-ish game, and I started that one again as well, just to have something a bit smaller and more guided of an experience, and I&rsquo;m having quite a lot of fun starting out with it.</p>
<p>Over the weekend I was taste-testing some games too. One thing that I have noticed is that I have become way worse at playing metroidvanias and action games on a keyboard than what I used to be, it just feels a bit better playing on a controller. I tried out <strong>Mio</strong> a future metroidvania where you play a droid on a spaceship, I did get a bit into it, but it&rsquo;s one that feels really awkward on a keyboard for me, so I&rsquo;m struggling with it there, it does look really beautiful though which is a huge plus. Another one is <strong>Bo: Path of the teal lotus</strong> which very much feels like a mix between hollow knight and ori, with a very nice art style, they both feel pretty good, and are probably something that I will try out.</p>
<p>I also taste tested <strong>Astral Ascent</strong> which is more of a roguelike brawler, and it&rsquo;s one that I&rsquo;m not quite sure about, it feels really fun in the fights, but it kind of feels like it&rsquo;s a bit much with how it does magic, it&rsquo;s hard to keep in my brain when mostly focusing on evading and fighting things it&rsquo;s hard to keep that in mind as well, but it&rsquo;s quite interesting, so if it gets onto a good sale, maybe I will try it out.</p>
<h1 id="media">Media</h1>
<p>I finished out my backlog listening of <strong>Video Game podtimism</strong> and added <strong>press start</strong> to the rotation this week, I also kind of have been in the mood for some more <strong>Into the aether</strong> and have started relistening to episodes from the start, I also added some far left podcast stuff to try out, to see if there is anything worth listening to there, sadly it seems like most of the stuff is very america-centric, but I will have to wait and see, maybe it&rsquo;s fun, it would be nice with getting some more repetition of theory, to be sure that I have a good grap on that stuff.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 13</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-13/</link>
      <pubDate>Mon, 30 Mar 2026 09:30:44 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-13/</guid>
      <description>&lt;p&gt;This has been a weird week, I don&amp;rsquo;t quite know why, but I think it has something to do with the&#xA;healing work in my feet. They are almost good now, it&amp;rsquo;s not hurting anymore, and I walk without&#xA;a limp again, still a bit sore, but way better than it was. I even braved myself out on a bit of&#xA;a walk this saturday, nothing too far or too fast, just a couple of hours of walking and feeling&#xA;nature around me again, which was really really nice. It&amp;rsquo;s been almost two weeks since the last time,&#xA;and I&amp;rsquo;ve really missed that.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This has been a weird week, I don&rsquo;t quite know why, but I think it has something to do with the
healing work in my feet. They are almost good now, it&rsquo;s not hurting anymore, and I walk without
a limp again, still a bit sore, but way better than it was. I even braved myself out on a bit of
a walk this saturday, nothing too far or too fast, just a couple of hours of walking and feeling
nature around me again, which was really really nice. It&rsquo;s been almost two weeks since the last time,
and I&rsquo;ve really missed that.</p>
<h1 id="books">Books</h1>
<p>I&rsquo;m still working on <strong>Green Mars</strong> and it&rsquo;s still kind of a hard nut, at least now I think stuff has
been mostly set into motion, and things will keep up at least a bit of momentum, but it&rsquo;s kind of a hard
one to trudge through, something about the writing makes it hard to read, it&rsquo;s kind of dry, and it doesn&rsquo;t
really feel like emotions are well written, which is something that I think is holding me back. There are
also a lot of sciency words where they aren&rsquo;t really needed, and while I understand them mostly without
looking them up, it&rsquo;s some times stretching my context awareness more than I feel neccessary.</p>
<p>I&rsquo;m a bit over half way through though, and while I gripe about it quite a lot I do feel compelled enough
to see it through, it&rsquo;s not great in the moment to moment, but some times it has some fun stuff. I think it
will be a bit before I start on the last one in the series though, I really need a break before I go on with
this kind of writing.</p>
<h1 id="games">Games</h1>
<p>It&rsquo;s been a weird week for games this week, I&rsquo;ve been having fun with discussions about games, but not really
enjoying games themselves much, apart from really simple games. I&rsquo;ve kind of lost my steam with things that
I&rsquo;m playing, and probably it&rsquo;s another mood shift coming on, and it&rsquo;s time to figure out what I feel like playing
again.</p>
<p>I played quite a bit of <strong>apotris</strong> which is a really cool version of tetris that also has a Game boy Advance rom,
it&rsquo;s really nice for playing a more modern feeling tetris on my emulation handheld. In addition to that I was also
playing quite a bit of <strong>tetris 3</strong> on one of the days, it&rsquo;s a Super Nintendo game that is basically just tetris,
it has other modes, but I&rsquo;m not that much of a fan of that, but the classic tetris mode is pretty nice.</p>
<p>After some progress in <strong>Zelda oracle of Ages</strong> it kind of halted there as well, and I got stuck again, it seems
like the thing that usually gets me stuck are longer sequences of fights, and the multi room puzzles, it&rsquo;s hard
to see where I will have to do something that effects multiple rooms, and since some of them reset, and others don&rsquo;t
I kind of find it hard to see where I can do something that persists, where I make some progress, and what will be
reset. I defeated the midboss, and have mapped out most of the rest of the dungeon, and now basically am at a place
where I&rsquo;m trying to get the boss key to get there. I probably will continue on, but as always, there might be a bit
of a break, which I&rsquo;ve said every other time as well, but then still come back to it. We&rsquo;ll see, I still enjoy the game
quite a bit in the places where I&rsquo;m not stuck though, it&rsquo;s really amazing how much capcom managed to get of the really
restricted gameboy color hardware.</p>
<p>I almost didn&rsquo;t touch <strong>Core keeper</strong>, I&rsquo;ve gotten some tin stuff, but still feel kind of weak when running around, and
where there is tin there are also enemies that I struggle with, I&rsquo;ve found that I&rsquo;m mostly kiting them with ranged stuff,
and while that mostly works, when there are more enemies it gets kind of difficult to not be overwhelmed and killed, this
is another one that will probably go onto the back burner for a bit.</p>
<p>My mood is kind of leaning towards metroidvanias, I kind of want to play them and started <strong>Afterimage</strong> again, but the
exploration kind of makes me feel frustrated, and I don&rsquo;t really know why, it&rsquo;s a fun game though, so maybe it was just
my mood over the weekend, I don&rsquo;t know.</p>
<p>I spent some times playing some bullet heavens that I had on my computer as well, but it kind of feels like I&rsquo;m at a grind wall
by all of them, and while I enjoy them I couldn&rsquo;t really bring myself to really feeling like they are fun, even though
there is something nice about the mindless going at it, it&rsquo;s just not where my mood is at.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;m almost through the whole backlog of <strong>Videogame Podtimism</strong> now, just two episodes left and I&rsquo;m up to date with all of the ~287
episodes that they have released to date, it&rsquo;s been a lot of fun, and really enjoyable, I enjoy the friendship and shenanigans of
Chase and David, and the positive look on games is something that is nice, it&rsquo;s something that keeps the &ldquo;worst garbage&rdquo; podcasts
in a nice place for me, they tend to be having good vibe, and focus on the good parts of even mediocre things which is fun,
it also helps in keeping a more positive outlook myself, I enjoy that.</p>
<p>Looking for something to replace the backlog listening to VGP when I&rsquo;m through it all I found <strong>Press Start</strong> which marks itself as
a &ldquo;Gen-Z Video games podcast&rdquo;, I&rsquo;m not quite up on this generation thing that the Americans tends to go on about, but in effect it&rsquo;s
a videogame podcast from people who are a bit younger than me, and it&rsquo;s interesting to see how their views differ from mine, and what
they enjoy. I&rsquo;m not completely sure about them yet, but I have put them into my rotation for now, and it might be that they will become
another podcast to listen to.</p>
<p>All in all it&rsquo;s been kind of a weird week, where I&rsquo;ve been mostly enjoyed it moment to moment, and then at the same time kind of felt tired
of it, I don&rsquo;t know, but I&rsquo;m moving foreward, still waiting for it to get a bit warmer, it&rsquo;s still really quite cold, and I&rsquo;m wanting
to go out without a jacket again, it won&rsquo;t be long before I will be wishing I was back to this temeperature thoug, so I&rsquo;ll just have to
enjoy it now that I have it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Games and Difficulty</title>
      <link>https://sotolf.codeberg.page/posts/games-difficulty/</link>
      <pubDate>Mon, 23 Mar 2026 13:22:38 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/games-difficulty/</guid>
      <description>&lt;h2 id=&#34;do-games-really-need-to-be-difficult&#34;&gt;Do games really need to be difficult?&lt;/h2&gt;&#xA;&lt;p&gt;I have kind of a weird fascination with playing games, it&amp;rsquo;s something that has been a part of my life for so long, back from sitting in the back of the car when we&amp;rsquo;re on a long drive looking into the pea-soup green on green screen of the old gameboy. I&amp;rsquo;ve played games, so many games, but it&amp;rsquo;s not that often that I actually get around to finish them. It&amp;rsquo;s that weird thing about games, that you get to play around with them, test out theories, theory-craft and so on, it&amp;rsquo;s a place for the brain to get to think about things that are fun to think about, and try them out more or less in real time.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="do-games-really-need-to-be-difficult">Do games really need to be difficult?</h2>
<p>I have kind of a weird fascination with playing games, it&rsquo;s something that has been a part of my life for so long, back from sitting in the back of the car when we&rsquo;re on a long drive looking into the pea-soup green on green screen of the old gameboy. I&rsquo;ve played games, so many games, but it&rsquo;s not that often that I actually get around to finish them. It&rsquo;s that weird thing about games, that you get to play around with them, test out theories, theory-craft and so on, it&rsquo;s a place for the brain to get to think about things that are fun to think about, and try them out more or less in real time.</p>
<p>The reason I have played so many games, but finished relatively few of them is that I&rsquo;m not really that good at them, it&rsquo;s something that I&rsquo;ve realised in later years and actually done something with, lowering the difficulty to easy mode when I start something, because even though it usually makes the start annoyingly simple, I&rsquo;m much more likely to finish something when I can actaully do it.</p>
<p>I might be weird but I&rsquo;m not sure if a game becoming more difficult as you play it actually is a good thing, I mean sure, give the person playing more tools, and more toys to play with as they go along, but at least for me the reason why I enjoy reading so much is that I will be able to finish a book, no matter what, it&rsquo;s just contiuing on and you will get the whole story, not so much with games, I have so many stories in my head that just don&rsquo;t have an end, either because I tired of the game and didn&rsquo;t have fun with it, or because it got so hard that I didn&rsquo;t get to finish it.</p>
<p>That really makes me ask the question, does getting to the end of a game have to be difficult? For many people I would say no, sure some people play to get challenged, but I think that&rsquo;s probably more a smaller part than the amounts of games that get released. Some of the fast growing genres in at least the indie scene of games lately are things like bullet heavens (vampire survivors likes), cozy games, incremental games and even visual novels, all games that are kind of the opposite of difficult, and where you get to have fun with the game even if you haven&rsquo;t mastered the timing and 30-50 tries to defeat a boss.</p>
<p>I played <strong>Hollow Knight: Silksong</strong> for 60 hours or so, but I never finished it, I had fun, but ended up with having most of the upgrades, and having two enemy gauntlets blocking my way that I didn&rsquo;t manage to get through, I was pretty close to the second act boss, but never got to finish the game since it put one part that I wasn&rsquo;t good at at all as a blocker for all the paths where I could progress, basically just making sure that I couldn&rsquo;t finish a game that I&rsquo;d had a lot of fun with until then.</p>
<h2 id="what-then-drives-the-fun-if-not-difficulty">What then drives the fun if not difficulty?</h2>
<p>There are a load of things that can drive the fun in a game, even though it&rsquo;s not something that is hard to get through or needs skill, everything from a mystery, like in a book, something that <strong>1000XRESIST</strong> did really well for me, or having some possibility of gaining enough experience and in game progression that makes a game less punishing, something <strong>Hades</strong> did okay with, but not perfect with its god-mode, the problem with godmode is that you couldn&rsquo;t lower the help slowly as you got there, once you turn it on, it will at some time get up to the maximum amount of help with 80% of blocked damage, even if 70% would be the sweet spot where the game is just the right amount of challenge for you.</p>
<p>So many modern games also tends to make things difficult more than feeling fun to play, yeah sure it might look stunning, and have that &ldquo;git gud&rdquo; thing going, but does that really matter if playing it doesn&rsquo;t feel good, and most people aren&rsquo;t even going to see more than half of what it is that made the game?</p>
<p>Often too it feels like difficulty is just some way of artificially extending a game, rather than having a 10 hour game that is fun to play through, that I would probably play a couple of times, they artificially extended it by making it hard, which ends up in me not playing more than the 10 hours anyway and end up with a disappointed sad feeling to the game, rather than what it could be.</p>
<h2 id="but-what-about-people-getting-bored-without-the-challenge">But what about people getting bored without the challenge?</h2>
<p>Well I mean I don&rsquo;t say to not have things like challenges later on after the normal ending of the game, special bosses and so on, sure there is no problem with things like that existing, but why make the story, or important parts of it be blocked behind these things, if you have special challenges like that isn&rsquo;t beating the challenge enough of a reward for managing it? Why block people off by hiding the &ldquo;real ending&rdquo; behind something most people are never going to find?</p>
<p>There are also other ways of creating variety without necessarily making the game itself harder, things that let people create their own challenges or difficulty, like the rpg&rsquo;s thing about grinding, and seeing how long you can go on before the next save point, or like <strong>shovel knight</strong>&rsquo;s checkpoints that you can break, to risk more is great, they are challenges you can opt into if you want to, to make things have more stakes, and create your own challenge if you want to have that.</p>
<p>I&rsquo;m not against difficulty per se, but I would want something that I could opt into going along, not something that tells you, no, you can&rsquo;t continue having fun with this thing, because you&rsquo;re not able to execute these specifically timed keypresses in the right order.</p>
<h2 id="something-having-a-known-solution-is-what-sets-play-apart-from-work">Something having a known solution is what sets play apart from work.</h2>
<p>I often play games to get away from a hard day of thinking at work, and the nice thing about playing a game is that I know there is a solution that I can find with the tools that I have at hand, having to go to a wiki or a walkthrough to figure it out is making it just feel too much like work for me. There is something to be said about having reduced complexity, and some times that&rsquo;s just what one need, there is a reason why solving a sudoku or a nonogram is always enjoyable, even though it&rsquo;s not necessarily having a good curve of difficulty, it&rsquo;s just that the process of going through it, seeing the knot slowly unravel that just feels great.</p>
<p>As someone who has been told now multiple times by people I know well that they think I&rsquo;m on the autism spectrum, and recognise myself in the descriptions of people like that, interpreting things, finding hidden meanings that are hinted to in conversations and so on is not that easy, I struggle enough with it in daily life, either thinking about something I said that nobody took seriously, but I felt so bad about, or not understanding something said between the lines, some times puzzle hints just don&rsquo;t work well for me, I go through things trying to fit them logically in, and then it wasn&rsquo;t really meant to be that logical in the first place. I have enough stress with that in real life, it&rsquo;s not something I want to struggle with in my play time as well.</p>
<h2 id="the-feeling-of-never-really-being-finished-with-things">The feeling of never really being finished with things.</h2>
<p>Which brings me to the point that so often in games, it feels like I get robbed by being able to conclude some things, sure it&rsquo;s something I put myself up to. But it&rsquo;s nice to have something done, I did it, and it&rsquo;s concluded, it&rsquo;s something that makes me look back fondly at <strong>1000XRESIST</strong> and <strong>Eeastward</strong> while looking back to <strong>Final Fantasy VII</strong> with kind of sour taste in my mouth, even though I really enjoyed 90% of the game, the end boss was just bullshit, and I had to cheat my way through it to manage which just wasn&rsquo;t fun, the difficulty spike just kind of made me not enjoy the rest of the game retroactively.</p>
<p>When I buy a game, I buy a toy-box, and I kind of find it annoying when the one creating the toy box decide that I&rsquo;m not &ldquo;good enough&rdquo; to play with my toys any more and just take them away from me, rather than letting me play with the toys that I got to relax.</p>
<h2 id="does-this-have-a-point">Does this have a point?</h2>
<p>I&rsquo;m not sure, I won&rsquo;t change anything by ranting here, but it feels nice having gotten out a bit of my thoughts of the matter, the rise of genres that by their nature are not that hard like the aforementioned cozy games and bullet heavens is nice, and is maybe an example that there are more people like me, who don&rsquo;t really need something to be difficult and that one has to win, not having to keep seeing the toxic masculine &ldquo;git gud&rdquo; around, just having a set of toys to enjoy playing with, that&rsquo;s what a game is anyway isn&rsquo;t it, it should be fun, and we get them to have fun with them, not to manage to reach some arbitrary level of achievement from?</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 12</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-12/</link>
      <pubDate>Mon, 23 Mar 2026 09:04:59 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-12/</guid>
      <description>&lt;p&gt;Slowly my feet are getting better again, I&amp;rsquo;ve been eating some ibuprofen this week, and it seems to be helping, I&amp;rsquo;m also resting as much as I can, and not going on long walks on the weekend, I sorely miss it though. Really looking foreward to being able to do that again, but better wait until stuff is healed, so that I&amp;rsquo;m not stuck with this for longer.&lt;/p&gt;&#xA;&lt;h1 id=&#34;books&#34;&gt;Books&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;m still working on &lt;strong&gt;Green Mars&lt;/strong&gt; it&amp;rsquo;s still slow going, the book is okay, but it feels like it&amp;rsquo;s missing some kind of spark or something for me, I&amp;rsquo;m also kind of getting tired of americans getting the basics of communism explained to them, again and again, but I guess that&amp;rsquo;s what&amp;rsquo;s needed to get them to not be deadly afraid of those scary thoughts of working together, and helping each other out. I&amp;rsquo;m about 150 pages in, and slowly making inroads, but it feels like this is going to take a while, I think I will need a longer break before I go on to the last one in the series.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Slowly my feet are getting better again, I&rsquo;ve been eating some ibuprofen this week, and it seems to be helping, I&rsquo;m also resting as much as I can, and not going on long walks on the weekend, I sorely miss it though. Really looking foreward to being able to do that again, but better wait until stuff is healed, so that I&rsquo;m not stuck with this for longer.</p>
<h1 id="books">Books</h1>
<p>I&rsquo;m still working on <strong>Green Mars</strong> it&rsquo;s still slow going, the book is okay, but it feels like it&rsquo;s missing some kind of spark or something for me, I&rsquo;m also kind of getting tired of americans getting the basics of communism explained to them, again and again, but I guess that&rsquo;s what&rsquo;s needed to get them to not be deadly afraid of those scary thoughts of working together, and helping each other out. I&rsquo;m about 150 pages in, and slowly making inroads, but it feels like this is going to take a while, I think I will need a longer break before I go on to the last one in the series.</p>
<h1 id="games">Games</h1>
<p>For games I&rsquo;ve still been in kind of a weird place, still working on <strong>Legend of Zelda Oracle of Seasons</strong> but it&rsquo;s starting to become hard with the fighting, and I&rsquo;m not really sure if it&rsquo;s worth it, the exploration is still really fun, but things are getting a bit too convoluted, I just realised I&rsquo;m playing this through emulation, so I have save states, maybe I&rsquo;ll add one in front of the boss to not have to do the runback again and again, so that I at least get out of this cave, I&rsquo;m sure I&rsquo;ll be happier then when I get to be exploring again.</p>
<p>I saw some people I usually watch on youtube playing some <strong>Core Keeper</strong> and I bought this one a while ago if the last save is to believed back in 2024 some time, I just never got into it. This time I spent some time rebinding all the controls, as a standard they have this clawgrip stick and shoulders kind of setup that just didn&rsquo;t fit well with me, it also doesn&rsquo;t help that my switch light is starting to gain some years, and not all of the stuff is the most responsive. So I rebound everything to use the d-pad and face buttons, and now it does feel a lot more fun to move around, and it feels like I can do things. I&rsquo;m still quite confused about what I&rsquo;m doing, I still kind of am feeling out the place, everything is so extremely dark around, so I run around torch-spamming everything. They have done some great work with the procedural generation here though, the landscapes down in the caves look and feel great and natural, so that is really nice, at least I have something that is good to look at as I stumble my way around not quite knowing. I also feel like it&rsquo;s just a tad bit too zoomed out, but I guess that is for later when stuff get a bit more hectic. I&rsquo;m having quite a lot of fun being lost, maybe I will figure stuff out and get on a bit more with it, but for now I&rsquo;m happy puttering around with what I have.</p>
<p>Another thing I&rsquo;ve been having fun with is <strong>Deep Rock Galactic Survivor</strong> I never played the main game, so this is the first one for me, not that I think story is that important for this game, it&rsquo;s quite fun, it just kind of feels like the spikes for the next level once you have gotten the first one is quite steep. The loop of running around mining out stuff for getting better later, and choosing one of three upgrades. It&rsquo;s also colourful and nice, which is something that always will keep getting me into something. Things will always be better when they are bright and cheerful.</p>
<h1 id="media">Media</h1>
<p>As normal I haven&rsquo;t really done much media, some youtube watching of the same people I usually watch, and listening to podcasts, I&rsquo;ve been punching through most of the backlogged stuff now, and downloaded the rest of the episodes of video game podtimism, so I have 9 of them to listen to before I&rsquo;ve listen to everything that they have put out so far.</p>
<p>It&rsquo;s been a long time but I also have kind of been getting some spark back into thinking about programming, and I got zig up and running on my PC, so it might be that I&rsquo;ll be looking into that again, it seems like they have been changing the std-lib quite a lot since I was playing with it last, so I have to figure out how stuff works now, but I will take that slowly as I want to.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 11</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-11/</link>
      <pubDate>Mon, 16 Mar 2026 11:41:46 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-11/</guid>
      <description>&lt;p&gt;This has been a weird week, work was doing great, but I did a huge error when I bought shoes, I decided to wear them for my longer walk on saturday, and walking 25 km in completely new shoes was not a great idea, I managed to overextend my ancle once as well, and have been limping around most of the week with a sore ancle. I had to do some shopping on Friday, and really fucked upthings more, so most of my weekend I spent in bed in a sleep wake in-between state, at least the ancle got better, but now since I was limping so much my other foots big toe got some weird pressure and is now inflamed. So now I&amp;rsquo;m still limping, just on the other foot :p Hopefully this week it will heal though, and I will be fully functional again.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This has been a weird week, work was doing great, but I did a huge error when I bought shoes, I decided to wear them for my longer walk on saturday, and walking 25 km in completely new shoes was not a great idea, I managed to overextend my ancle once as well, and have been limping around most of the week with a sore ancle. I had to do some shopping on Friday, and really fucked upthings more, so most of my weekend I spent in bed in a sleep wake in-between state, at least the ancle got better, but now since I was limping so much my other foots big toe got some weird pressure and is now inflamed. So now I&rsquo;m still limping, just on the other foot :p Hopefully this week it will heal though, and I will be fully functional again.</p>
<h1 id="books">Books</h1>
<p>I finished up <strong>Provenence</strong> by Ann Leckie, and I really enjoyed this book, it was even better than the Ancillary books, and it had fun great characters, drama, and just enough interesting stuff happening together with the drama to be really enjoyable. It was a lot of fun, and a nice little pallette cleanser in between the mars books.</p>
<p>Speaking of the mars books, I started with <strong>Green Mars</strong> by Kim Stanley Robertson, and I will probably need a bit to get through this one, as I did with the first one, a couple of days last week I was just falling asleep early and didn&rsquo;t get much progress, so far at least it&rsquo;s been focusing on good characters, and I hope that will continue this book, at least both the protagonists that I liked the least died in the last book, so I don&rsquo;t have to bother with them anymore, but we&rsquo;ll see, the first 50 pages or so that I&rsquo;ve read so far has been fun at least.</p>
<h1 id="games">Games</h1>
<p>Since I was bedridden on saturday I was playing some games then, over the week though I&rsquo;ve been mostly working on <strong>Legend of Zelda Oracle of Seasons</strong>, It&rsquo;s a really fun adventure game, when I understand it it&rsquo;s really fun, but there has been times that I&rsquo;ve had to look up things either because I haven&rsquo;t been observant enough, or things like I didn&rsquo;t understand that the bewinged bear can fly longer if you mash the A-Button, I also had to look up a couple of mid-bosses, because I didn&rsquo;t see things like the real one having a shadow, or didn&rsquo;t understand that I had to throw bombs at the other ones to hurt it. Apart from these small things it&rsquo;s been really fun and adventorous, it&rsquo;s kind of funny how this feels more exploratory than many open world games now, where it just feels like you&rsquo;re going from question mark to question mark on a minimap.</p>
<p>I was kind of feeling like an optimistic game, and played quite a bit of <strong>Planet Crafters</strong> on saturday, it was kind of nice, it&rsquo;s kind of a slow incremental first person game, where you&rsquo;re slowly making progress towards terraforming a planet, it is kind of fun, and there is always something you can work towards, had quite a lot of fun with it.</p>
<p>I also played a bit of the early access of <strong>Fields of Mistria</strong> which is a really fun farming game, it has a bit more progression stuff than what star dew valley is, is more pastelle coloured and cute, and has some really great character interactions and characters in general, this is one that I&rsquo;m looking really foreward to coming out in 1.0 so that I can buy and play it</p>
<p>I also have been working a bit on <strong>Slay the spire</strong> but as always I kind of get dissuaded by how horrible I am at the game, I uusually get to the end of the second layer, and then die in the 3rd, I&rsquo;m obviously doing something wrong, but I&rsquo;m too dense to figure out what it is, and I will probably play something I enjoy more instead. Maybe starting another run of <strong>Stardew Valley</strong> I&rsquo;ve lost the understanding of where I was last year when I played it, and it&rsquo;s probably better to just wipe it and start a new one.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve been cleaning out a lot of backlog that I&rsquo;ve had in my podcast queue, and also done some more triaging to keep it down to a manageable level, there seem to be still a lot of good ones coming out, so I&rsquo;m not the one to complain.</p>
<p>I watched a 10 year anniversary of Stardew Valley video by the creator Concerned Ape that I really enjoyed, it&rsquo;s fun to see how the game changed through the years :)</p>
<p>Hoping for another good week, and quick healing for my feet, because it&rsquo;s annoying barely being able to walk when I&rsquo;m kind of relying on that for getting places and doing stuff.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 10</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-10/</link>
      <pubDate>Mon, 09 Mar 2026 08:01:34 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-10/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve had a rather nice week last week, not that much happening really, but I was in a good mood, and things have been going pretty well. I had to get some new shoes on Friday as my old ones were getting holes that were too big to ignore in them. My new pair is not really agreeing well with my feet still, so it&amp;rsquo;s not the most comfortable, but I hope that will get better with time, usually they just need some more time to get walked in.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve had a rather nice week last week, not that much happening really, but I was in a good mood, and things have been going pretty well. I had to get some new shoes on Friday as my old ones were getting holes that were too big to ignore in them. My new pair is not really agreeing well with my feet still, so it&rsquo;s not the most comfortable, but I hope that will get better with time, usually they just need some more time to get walked in.</p>
<h1 id="books">Books</h1>
<p>I fininshed off reading <strong>Red Mars</strong> by Kim Stanley Robinson, and it was a good book, mostly enjoyed it, I didn&rsquo;t get as annoyed with the landscape description as most people seem to be annoyed by, it was more the fact that we followed the worst characters that I really didn&rsquo;t like, and the good ones didn&rsquo;t get that much time. It really sped up around the last 100 pages though, and there was some fun stuff happening that I really enjoyed. All in all a pretty good book, and I think it probably works well for what it seems to be intended to do, make communism more palatable to americans. But I didn&rsquo;t really need that. Hopefully with that ground work laid we will get to enjoy the next book with less annoying american white men who will save the world, or at least think they are trying.</p>
<p>As my next one I need at least a book break before I start on the next mars book I found that I have <strong>Provenence</strong> by Ann Leckie, I can&rsquo;t even remember having gotten it, and had little clue about what it is or anything, and I think I will try to read as little as possible about it before reading it, so I dived in, and I&rsquo;m kind of intrigued, it&rsquo;s a side book to her other Imperial Radch books, it will be fun to see it more from a bit of a different perspective. So far from the 30 or so pages that I read yesterday it seems pretty good.</p>
<h1 id="games">Games</h1>
<p>I started <strong>A Solitaire Mystery</strong> last week, and I finished it as well, it&rsquo;s a fun little solitaire game with a goofy spy story, and it&rsquo;s fun for the amount of the story it takes, I had a good time with this one.</p>
<p>I played a bit of <strong>Grapple Dog</strong> Which is a really fun kind of throwback platformer, and I&rsquo;m enjoying myself a lot swinging around on the levels, I beat the second boss this week, and it was quite a fun one, still not focusing too much on collectibles, there seem to be quite a lot of fun stuff to do once it&rsquo;s finished as well, with time attack courses and so on, there is a lot in this game, and a lot more than I expected from the first glance, pretty solid.</p>
<p>It was the release of the early access of Slay the Spire II this week, so I started to play some <strong>Slay the Spire</strong> again, I&rsquo;m still as bad at it as I used to be, but it&rsquo;s fun to tinker with and I really like the &ldquo;work with what you got&rdquo; mentality of it. I don&rsquo;t quite know why, but the art is less off putting to me this time than the last time I played it, the second one is beautiful, maybe that was something that made me appreciate it more, I think I will still at least play a couple of runs and see, maybe I&rsquo;ll be able to be less then absolutely atrocious at the game, and being able to enjoy myself a bit more.</p>
<p>I finished <strong>The Room</strong> which I got for really cheap on my phone earlier this year, and it&rsquo;s a bit meh, I liked some of the puzzles, when you got to puzzle around with them, but the whole hiding things around on the box where you just have to tap around until something reacts is not really fun for me, so a lot of the time it&rsquo;s just looking at the hint to see what they did to hide something away this time rather than having fun working on puzzles.</p>
<p>And at last I did start <strong>Legend of Zelda: Oracle of Seasons</strong> Another try to actually enjoy a Zelda game, I don&rsquo;t really have too much fun with the 3D ones, at least the ones I&rsquo;ve tried, and starting with a gameboy colour one seemed like a good idea to me, and I&rsquo;ve been having fun with it for an hour or so at least, it&rsquo;s pretty impressive what they have managed to get out of the hardware, and I&rsquo;m enjoying it for now at least, let&rsquo;s see if I get a bit farther here than what I have come before.</p>
<h1 id="media">Media</h1>
<p>There has been a bit of slay the spire II stuff at the end of the week, and it&rsquo;s good since I feel like I&rsquo;m not really that invested in mewgenics stuff anymore, since it&rsquo;s a genre that doesn&rsquo;t really interest me much. I also started to watch a series about <strong>Paradise Killer</strong> that has been quite delightful, it really seems like a weird game with heart, and is more or less a prequel to <strong>Promise Mascot Agency</strong> which I played last year and really had a great time with. It feels like paradise killer is a game which is really more fun to play coach coop, or having someone to bounce off of, I really like the styling and over the top-ness of it though, it&rsquo;s great.</p>
<p>I&rsquo;ve been having a lot of podcasts bunching up, so I did a bit of triage on saturday, and listened to quite a lot of them, getting my queue from 50 at the start down to 30 now, which feels more managable, lots of good stuff, so I deleted out stuff that I wasn&rsquo;t really that interested in, which I might take up again later in case there is a lull again, I&rsquo;m just happy that there is a lot of fun stuff to listen to again, after it was a bit meager a couple of weeks there.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 09</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-09/</link>
      <pubDate>Mon, 02 Mar 2026 09:07:48 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-09/</guid>
      <description>&lt;p&gt;The spring is slowly coming in, and I&amp;rsquo;ve been really enjoying it, it&amp;rsquo;s starting to be some warm periods and back to a bit colder, it&amp;rsquo;s just nice seeing everything slowly getting back into life, the trees are still naked and sad though, but hopefully they also will get to be a bit greener again as well. My mood has been a bit up and down, but it&amp;rsquo;s trending in the right direction at least, that&amp;rsquo;s nice.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>The spring is slowly coming in, and I&rsquo;ve been really enjoying it, it&rsquo;s starting to be some warm periods and back to a bit colder, it&rsquo;s just nice seeing everything slowly getting back into life, the trees are still naked and sad though, but hopefully they also will get to be a bit greener again as well. My mood has been a bit up and down, but it&rsquo;s trending in the right direction at least, that&rsquo;s nice.</p>
<h1 id="books">Books</h1>
<p>I started on <strong>Red Mars</strong> last week, and I&rsquo;m still going strong, this one is a bit more challenge than what I&rsquo;ve read lately, it&rsquo;s good, but it does feel like most of the parts are just a little bit too long, but I guess it&rsquo;s just getting used to it and then it will be a bit better. At almost half way through I have no real clue what will happen, and we just had a ten year timeskip, so it&rsquo;s hard to say what will be happening. It&rsquo;s kind of fun how it feels weird that more people arrived on mars now, and you don&rsquo;t only get the original 100. I&rsquo;ve been enjoying it so far, but I don&rsquo;t really have any set idea for what&rsquo;s going to happen, other than the things that were teased in the beginning of the book. Which does feel kind of fun.</p>
<p>While I haven&rsquo;t gotten to read as much as usual this week at least I got some time to sit outside and read in the sun, and it has been great, it&rsquo;s something I&rsquo;ve been really missing from the winter time, and it&rsquo;s coming back :)</p>
<h1 id="games">Games</h1>
<p>Games have been a bit up and down for me, I was really excited and have had a lot of fun with <strong>Little Rocket Lab</strong> but I think in the excitement to get back to where new stuff were coming out I was kind of outpacing myself, and I need a little break, just arrived at part III and it seems I&rsquo;ll get access to deal with liquids soon, which is going to be fun, but I&rsquo;ll save that for when I&rsquo;m coming back, it&rsquo;s a really fun game though. It&rsquo;s just not a game that is very suitable to play when I&rsquo;m really tired, or have been drinking beer which happened a couple of times this week, we&rsquo;ll see, I&rsquo;m sure I will be back at it.</p>
<p>I have been playing a bit more <strong>Vampire Survivors</strong> as well and it has been quite fun, slowly doing some more unlocks, and just having fun mowing down enemies, I&rsquo;ve been turning off most of the extra stuff, since at some point it&rsquo;s just a lot, and the a bit less insane version is just nicer to deal with when I&rsquo;m not at my best.</p>
<p>On a whim I jumped back into <strong>The Solitaire Conspiracy</strong> which I&rsquo;ve had fun with before, and I&rsquo;m still having fun with it now, it&rsquo;s a 5 hr ~ish spy story, which likes to lead into the quite corny actiony place, and it&rsquo;s really quite a fun one for the time that it&rsquo;s going, you unknitting the solitaires and moving cards around is conceptualised as you directing the people on the ground with your strategy system, it&rsquo;s just fun and over the top, the solitaire is pretty easy, but that&rsquo;s just part of the game, as the last time, I&rsquo;m having fun with it, it&rsquo;s a fun silly game that is enjoyable for its run-time and then gets some time to rest again for the next time.</p>
<p>I also got into an incremental game time again for a bit over the weekend, and had some fun with them for a while, before kind of getting tired of them again, I usually do from time to time, and it&rsquo;s enjoyable, until it&rsquo;s not, and then I just have to notice that I&rsquo;m just playing to progress, and not really having fun anymore, and at that time just stop playing.</p>
<h1 id="media">Media</h1>
<p>It&rsquo;s high time for podcasts again it seems, for some reason they have been gathering up again, and I think it just means I need to spend a bit more time outside listening and enjoying the weather, I&rsquo;m still in a mood where gaming stuff is the thing that I like to listen to, but also not any random stuff it&rsquo;s something where I need some positive views on fun games, because the whole dudebro call of duty hell yeah kind of thing just isn&rsquo;t my cup of tea.</p>
<p>I listened to a great interview that Chris Plante did with Edmund McMillan the creator of Binding of Isaac and Mewgenics, it was really a good one.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 08</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-08/</link>
      <pubDate>Mon, 23 Feb 2026 07:57:42 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-08/</guid>
      <description>&lt;p&gt;Weird week this week, it was full bore at work, working on some new labels for demanding people, that was a lot of my week, debugging templating code and working on writing some new, working in a templating language is always weird, you&amp;rsquo;re kind of restricted in weird ways, and then suddenly not in others. It broke my brain enough that most of the evenings I was mush but well, that&amp;rsquo;s how life is some weeks, I was also on-call this week, but at least it was a rather quiet one, which is nice, the week was enough to deal with as it was. Towards the end of the week on thursday and friday we had the last death throes of winter, or at least I hope it was, with ~20 cm of snow coming down, but luckily that got melted away again mostly on saturday.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Weird week this week, it was full bore at work, working on some new labels for demanding people, that was a lot of my week, debugging templating code and working on writing some new, working in a templating language is always weird, you&rsquo;re kind of restricted in weird ways, and then suddenly not in others. It broke my brain enough that most of the evenings I was mush but well, that&rsquo;s how life is some weeks, I was also on-call this week, but at least it was a rather quiet one, which is nice, the week was enough to deal with as it was. Towards the end of the week on thursday and friday we had the last death throes of winter, or at least I hope it was, with ~20 cm of snow coming down, but luckily that got melted away again mostly on saturday.</p>
<h1 id="books">Books</h1>
<p>I finished up <strong>Wanderlust</strong> this week, and it was really fun, just a good amount of action with enough drama around it, I&rsquo;m usually more into the drama than action, there are some really fun characters in this one though, and it will be fun to continue on with their adventures later as well, just a lot of fun.</p>
<p>The next one was <strong>Derelict</strong> by LJ Cohen, which is a new author to me, I met them on the fediverse when I was talking about wanting books that end up in a found family place, and they were saying that&rsquo;s the kind of books that they write, the first third of it or so was a bit hard for me to get through, but then it set pace and was really enjoyable the rest of the part through, I really liked Nomi, but that might because she was the only one not being a teenager with daddy-issues. This was a lot of fun, and it got me reading on the weekend again, which usually don&rsquo;t happen unless I&rsquo;m really into a book.</p>
<p>And I just got finished with derelict on saturday, and I was talking around with people on friday, and a couple of pepole were starting <strong>Red Mars</strong> by Kim Stanly Robinson, and since I already have the books, and never got around to read them now seemed like an as good place as could be, I&rsquo;m only around 40 pages in, but this seems to have quite a lot more drama than what I expected at least from the beginning, if it continues on like this I think this is going to be a rather wild ride, looking foreward to it.</p>
<h1 id="games">Games</h1>
<p>For most of the week I was crashing at home, and I got really into <strong>Rush Rally 3</strong> again, it&rsquo;s just a really nice arcady rally game, I usually don&rsquo;t focus that much on getting high placements, I just really enjoy driving fast on the tracks and enjoying the feeling of slowly getting a bit better, and sliding and slipping around the tight curves. This one really has the feeling of some older colin mc rae rally games that were the first ones I played in the genre, and those and this one just have this fun feeling, while at the same time being quite simple games, it&rsquo;s one where it&rsquo;s nice just putting on a podcast and getting some driving on.</p>
<p>At the end of the week I got my first little haul of buying games this year, it&rsquo;s the first time in a while I&rsquo;ve been splurging a bit again, this time I got 3 games.</p>
<p>I had been testing out a &ldquo;gray market demo&rdquo; version of <strong>Little Rocket Lab</strong> and I really enjoyed it, so I bought it, and I&rsquo;m now working my way back to where I was the last time, I&rsquo;ve always wanted to get into factorio, but it&rsquo;s always felt a bit too grimy and a downer in a way, so I tried this one on a whim, and so far I&rsquo;m really enjoying it, it&rsquo;s pretty much a factory game merged with cozy-game graphics. It&rsquo;s just a nice cozy world to work on getting used to my machine building and factory slinging, the last time I got up to starting to recycling goods, and that&rsquo;s the part that really got me to want to go on, I really hope that there is some more focus in that direction, I really like building up logistics networks with spliting up and joining of resources and the like. I think a factory game about recycling, and building up things from recycling trash would be something right up my alley, I&rsquo;ve been looking at another game called middenmoon which is very much in that direction, and maybe something that I&rsquo;ll get if I really get through this one, I hope I will, for now at least I&rsquo;ve been having a lot of fun with this game, and hope it will go on with that.</p>
<p>On a whim I got <strong>Grapple Dog</strong> as well, it was really cheap and cheery and <a href="https://joelchrono.xyz/">Joel</a> was recommending it, and he usually knows about fun games, I haven&rsquo;t played that much yet, only the first 2 levels, but it&rsquo;s been fun, it controls well, and the grappling in the moments when I manage to get a flow going it feels great, until I crash and burn, miss my hookshot and land on a bed of spikes that is, it&rsquo;s fun and something I&rsquo;ll keep on playing a bit on and off.</p>
<p>I also got <strong>Dawnfolk</strong> which is a bit of an off part for me, I&rsquo;m not really a strategy game kind of person, but this one kind of felt like one that might be simple enough that it will be something I can deal with, it does look really cute, and the small mini-games look like fun, so I got it, and probably will try to pla it a bit more, I only have really played through the tutorial on this one so far.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;m still going on with podcasts, and the episodes are starting to gather up again, I&rsquo;ve kind of been mostly in enjoying gaming podcasts mood, and have been kind of putting off listening to other stuff.</p>
<p>I&rsquo;m starting to burn out a bit on mewgenics content, and have ended up just focusing on one person playing it, and just don&rsquo;t watch the others, it is a cool game, but not a watch 3 hours a day of it cool game. I&rsquo;v been instead looking ato some factory focused ones, so that&rsquo;s how I have been thinking of middenmoon and mine mogul, which both are games in early access, they are interesting, but I&rsquo;m not really an early access kind of guy, and especially not in a genre that is new to me, I&rsquo;d rather have something that is finished that I can enjoy, not something that is not yet balanced well and probably just stops somewhere where I&rsquo;m not ready for it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 07</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-07/</link>
      <pubDate>Mon, 16 Feb 2026 09:04:24 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-07/</guid>
      <description>&lt;p&gt;Another weird duldrumweek was the one ordered for this one it seems, the weather has been rather gray and depressing, and most other things has as well. Not that it has been all bad, I managed some nice achievements at work, and getting things going always feels nice, the place around here is also slowly warming up, so I&amp;rsquo;m starting to look foreward to not having to have a jacket on all the time, and really looking foreward to my reading outside time again, it&amp;rsquo;s nice when my fingers and butt doesn&amp;rsquo;t get frost damage from reading for a bit too long.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Another weird duldrumweek was the one ordered for this one it seems, the weather has been rather gray and depressing, and most other things has as well. Not that it has been all bad, I managed some nice achievements at work, and getting things going always feels nice, the place around here is also slowly warming up, so I&rsquo;m starting to look foreward to not having to have a jacket on all the time, and really looking foreward to my reading outside time again, it&rsquo;s nice when my fingers and butt doesn&rsquo;t get frost damage from reading for a bit too long.</p>
<h1 id="books">Books</h1>
<p>I finished up <strong>A galaxy of Debts</strong> and it was a decent book, but a bit too scatterbrained to really be great, there were times that was fun, and I can&rsquo;t really put my finger on what made this not that good, but it was a decent book that could be a lot better, I think this was from a newer author, I might be jumping in later and see how their writing evolves, the scenes by themselves were quite good, I think it was more the plotting and stuff that just didn&rsquo;t feel great in this one.</p>
<p>I&rsquo;m starting to get to the end of my bookhaul in the end of November, so I&rsquo;m a bit more reduced in what I have to read without dipping into my older library, it&rsquo;s also stuff I&rsquo;m a bit more unsure about how I will feel about, so it might be that my reading slows down a bit before I find something else that I&rsquo;m really into.</p>
<p>I started <strong>Wanderlust</strong> by Ann Aguirre, the second book in the grimspace series, and I needed a bit of time to get into it again, but it has started to give a bit more speed now, I&rsquo;m about a third through, so I hope it will keep up being enjoyable for the whole ride. If I judge from the first book I&rsquo;m pretty hopeful it will.</p>
<h1 id="games">Games</h1>
<p>I did play a bit more of <strong>Frog for whom the Bell Tolls</strong> and it has kept on being pretty fun, there just has been a couple of tasks now that I didn&rsquo;t manage to solve without looking at a walkthrough which makes me kind of sad, but I think I will try a bit more and see I&rsquo;m getting pretty close to the end, so it would be kind of sad to give up on it, I just haven&rsquo;t really had the will to go in and do it, we&rsquo;ll see.</p>
<p>What for some reason fit my mood rather well this week was <strong>Vampire Survivors</strong>, I&rsquo;ve been playing through some of the Adventures, it seems like most of the DLCs also has ones now, they are fun kind of bitesized versions of the full game which is kind of nice, as the beginning of the game was what I enjoyed the most, it&rsquo;s also a nice way to use stuff that I wouldn&rsquo;t really choose too often otherwise. I&rsquo;ve been a bit tired of grinding unlocks in the game with the DLCs there are just so many of them, and I&rsquo;ve been kind of stuck in a rut with it, but this was quite fun, and I&rsquo;ve been having fun surviving vampires again.</p>
<p>I&rsquo;ve been kind of in a mood of incremental games and factory games too lately, and I started trying out <strong>Little Rocket Lab</strong> which is a cozy factory game, which is really nice, I&rsquo;ve always wanted to get into factorio, but I really don&rsquo;t like the biters, I don&rsquo;t really want to have to focus on doing an RTS while building a factory. And the kind of dour grimy feel of everything in factorio just makes it feel less fun to me. Little Rocket Lab at least so far really feels like it&rsquo;s doing things right, it&rsquo;s nice and colourful, the characters are fun, and so far at least it&rsquo;s been a lot of fun building up small factories to help the people around me. I&rsquo;ve been enjoying this one a lot, and the character portraits here are really cute, there is something about the art in this game that I really enjoy.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve been listening a lot to <strong>Videogame Podtimism</strong> this week, it&rsquo;s nice comfort listening that always is quite enjoyable, for some reason it just felt like the right thing for me this week, I&rsquo;ve been listening to some other stuff as well, but it has been what I&rsquo;ve been enjoying the most listening to this week.</p>
<p><strong>Mewgenics</strong> the new game by the Binding of Isaac creator was released this week, and I&rsquo;ve been watching some series of it, it&rsquo;s a game that I enjoy more watching and listening to someone playing through than I think I will enjoy myself as I&rsquo;m not good at tactics games at all. It&rsquo;s also nice to be able to look away from the screen often as it has this uncomfortable art-style that made me not play isaac as well, I&rsquo;m not into the gross out art at all, it&rsquo;s really off-putting to me. This way I can still enjoy the game in a way, there are a lot of fun stuff in there that I wouldn&rsquo;t really enjoy if I would be playing the game for myself.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 06</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-06/</link>
      <pubDate>Mon, 09 Feb 2026 09:01:24 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-06/</guid>
      <description>&lt;p&gt;The weather is slowly getting a bit warmer, and it&amp;rsquo;s nice, my cold also left me enough now that I did have a nice 30 km walk this saturday, which was feeling rather great. My anxiousness was going a bit up and down through the week, but at least the weekend was blissfully nice. I have to do better with getting to sleep this week though, since I was far from sleeping enough last week, Maybe what will get me there is to not having books that I&amp;rsquo;m enjoying as much, because that was what kept me up this week.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>The weather is slowly getting a bit warmer, and it&rsquo;s nice, my cold also left me enough now that I did have a nice 30 km walk this saturday, which was feeling rather great. My anxiousness was going a bit up and down through the week, but at least the weekend was blissfully nice. I have to do better with getting to sleep this week though, since I was far from sleeping enough last week, Maybe what will get me there is to not having books that I&rsquo;m enjoying as much, because that was what kept me up this week.</p>
<h1 id="books">Books</h1>
<p>I finished off <strong>Cease Fire</strong> by Rose Mackie, and it was very OK, not great, but not really bad either, it just feels like the series was getting too long in the tooth, and she didn&rsquo;t have that many ideas after the last one, at least not that are new enough, all the relationships and situations kind of feel very samey. I think that&rsquo;s it for the series, at least it&rsquo;s all that I have of it, but this time that&rsquo;s maybe just as well.</p>
<p>Which I can&rsquo;t quite say about <strong>Hunter Raze</strong> by Laurann Dohner, which I really had a lot of fun with. It just felt rather fresh, and the story was really fun, it capped of the series pretty nicely as well. I had read some stuff that this one was getting stale, but compared with the other series I&rsquo;ve read this one is great. I think I can say I enjoyed every book in this one, and they kept me interested in reading and going on, all in all this was a great series, and I might reread it in a couple of years when I have some distance to them.</p>
<p>And for the last one I started <strong>Galaxy of Depths</strong> by Laurann Winther, I quite enjoyed the first one in the series, I just remember that it was a lot of stuff happening, so quite fun, but also kind of without any compulsion or real want to know what is going on, with these ones it&rsquo;s more like &ldquo;what&rsquo;s going to happen next&rdquo;, but they are fun to read through, and from how it started it feels like this one is going to be more of that. Not deep, but a fun little story where a lot of stuff happen.</p>
<h1 id="games">Games</h1>
<p>It&rsquo;s been a weird week for me gaming this week, I&rsquo;ve been on a Metroidvania kick lately, but it seems like that&rsquo;s petering out, I just haven&rsquo;t felt like playing much of those lately, and I went through some of the ones I have, but they just didn&rsquo;t really spark joy.</p>
<p>I did play a couple of hours of <strong>Vampire Survivors</strong> it&rsquo;s a fun game, and I haven&rsquo;t really played that much of the last couple of DLCs I got for it, really looking foreward to seeing what their new game vampire crawlers will do, that one seems like me-bait, a kind of simplified drafting card game first person dungen crawler seems like just something I would get really into. I&rsquo;ve been diving a bit into the adventure modes, because I was starting to feel a bit burned out on hunting the unlocks, and it did make it feel like less of a chore, I will probably do a bit more of it, as I was enjoying it quite a lot, and some times it&rsquo;s just nice to have something that isn&rsquo;t that thinky, and just feels nice to play.</p>
<p>I also think that I&rsquo;m getting into a retro phase again, I&rsquo;m kind of feeling like playing some a bit simpler games, so it might be a good time to jump into some gameboy and gameboy colour games again, I have just started <strong>Frog for whom the bell tolls</strong> yesterday, and it has been really fun for the 30 min or so that I&rsquo;ve played it so far, but I can&rsquo;t really say much about it yet, other than it did make me feel like I&rsquo;ve hit something that I want to continue on playing at least for now.</p>
<h1 id="media">Media</h1>
<p>Quite fun with podcasts this week, I had a lot of time listening while walking on saturday, and I am working on my backlog of <strong>videogame podtimism</strong> I have around 27 episodes left before I&rsquo;m caught up, and I&rsquo;m starting to wonder what to do next, I think a gaming podcast will be a nice one to have, while they are generally quite nice to listen to, and not as enfuriating as things like <strong>knowledge fight</strong> can be at times, so I&rsquo;ve been looking back at <strong>into the aether</strong> and it seems like I haven&rsquo;t listened to the first couple of years of that podcast, so it will probably be the next one to dive into.</p>
<p>Youtube is continuing on slowly ticking up as well, even though there is so much generated crap on there now, so I mostly just keep on watching the few accounts that I know, which are graeat, but nothing new, because it&rsquo;s just a 60% chance that you get some AI voice doing a soulless script that is just pain to listen to, I can&rsquo;t even go through it for things that interest me. There seems to be more fun coming out of people I&rsquo;m subscribed to though, feels like everyone is slowly working their way out of the january slump, feels kind of like a group thing.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 05</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-05/</link>
      <pubDate>Mon, 02 Feb 2026 09:57:41 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-05/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been one of those toiling weeks, but it seems like the cold is finally loosing it&amp;rsquo;s grip on me, on the weekend I was able to take a longer walk again without instantly falling asleep when I got back home. Stuff are moving foreward, but it feels like everything is into a slower period in a way, well, hopefully stuff will thaw up together with the winter now just starting to loose it&amp;rsquo;s grip to spring. I just really look foreward to spring again, hopefully it will be a bit longer than the felt 2 days of spring that we had last year before it became summer. I&amp;rsquo;m just looking foreward to having walks that just have to continue because sitting still just makes me too cold, and to having some reading breaks when walking again, it&amp;rsquo;s just something that I really enjoy, finding a nice quiet place to read and just enjoy my time.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It&rsquo;s been one of those toiling weeks, but it seems like the cold is finally loosing it&rsquo;s grip on me, on the weekend I was able to take a longer walk again without instantly falling asleep when I got back home. Stuff are moving foreward, but it feels like everything is into a slower period in a way, well, hopefully stuff will thaw up together with the winter now just starting to loose it&rsquo;s grip to spring. I just really look foreward to spring again, hopefully it will be a bit longer than the felt 2 days of spring that we had last year before it became summer. I&rsquo;m just looking foreward to having walks that just have to continue because sitting still just makes me too cold, and to having some reading breaks when walking again, it&rsquo;s just something that I really enjoy, finding a nice quiet place to read and just enjoy my time.</p>
<h1 id="books">Books</h1>
<p>It&rsquo;s been quite a productive reading week this week, I finished up <strong>Ruth&rsquo;s Bonded</strong> and it was pretty decent, nothing amazing, but it&rsquo;s a nice start of a story. It was also pretty short, so we&rsquo;ll see how it evolves throughout the series, I&rsquo;m not quite sure yet what kind of a story it will become, or how much I will enjoy it.</p>
<p>Which is not really what I will say about the next book that I read <strong>Grimspace</strong> by Ann Aguire, this one was a lot of fun, after a kind of slow beginning this one really gripped me, and I really enjoy the characters, it also went at pretty much a break-neck pace, and in the end this was a fun action story with just a bit of romance in it. Really had fun with this one.</p>
<p>And as the last one for this week I started <strong>Cease Fire</strong> it&rsquo;s the last one that I have from Rose Mackie&rsquo;s violet suns series, and this one took a bit to grip me as well, as the later ones in the series has tended to, I&rsquo;m enjoying it now, but I&rsquo;m kind of happy that this series is going to have a break for me as well, they tend to have a weird mix of being too similar to the others in the series, while at the same time having new fun stuff, having a bit more of a distance to the eventually next one probably is a good thing.</p>
<h1 id="games">Games</h1>
<p>There has been no pokemon this week, I kind of haven&rsquo;t been in a brain space for it this week, I&rsquo;ve been playing some <strong>minesweeper</strong> though which is a nice kind of brainless activity to do when I&rsquo;m not really that up for something complex, and I tend to get quite into it, so all together I&rsquo;m sure I clocked at least a couple of hours of playing minesweeper.</p>
<p>I&rsquo;ve also done some more <strong>Castlevania: Portrait of Ruin</strong> which has been fun, just that it has this really bullshit mandatory secret thing in the middle of it, where to be able to contiue on you have to find a random skill half way into where you are, then use it with it&rsquo;s really slow windup in the boss battle, and I&rsquo;m kind of wondering how people find that out without guides, guides are fun and cool, but I don&rsquo;t like it when it&rsquo;s mandatory to be able to play the game, it kind of makes me not very happy. But I&rsquo;m on to the remix portraits, so I&rsquo;m not that far away from how far I got in my last playthrough of this game, hopefully I will get all the way through it this time, we&rsquo;ll have to see, but the possibility is there at least.</p>
<p>I did play the first act of <strong>Kentucky Route Zero</strong> which I might play more of later, it&rsquo;s an interesting game, but it&rsquo;s also very confusing, my brain works really hard to understand and trying to get a good picture of how stuff is connected, but at least through the first act I didn&rsquo;t really get that much, it&rsquo;s kind of a nice feel of the game, and the writing is really good, but I would kind of be exaggerating if I said I have understood it yet.</p>
<h1 id="media">Media</h1>
<p>Media seems to be taking up a bit again, the youtube people that I follow have been starting posting more interesting stuff again, and podcasts are also getting into the groove again after the winter time. It&rsquo;s nice, I&rsquo;ve been in kind of a weird place lately thinking about the good episodes of things I&rsquo;ve been watching and listening, then having to remind myself that I&rsquo;m basically just remembering the hits and forget the misses, and that there will be more of the hits coming again, which is kind of a nice thing to remember.</p>
<p>I hope the trend continues on, I&rsquo;m ready to have more fun stuff again.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 04</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-04/</link>
      <pubDate>Mon, 26 Jan 2026 13:11:15 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-04/</guid>
      <description>&lt;p&gt;So another week has gone by, and I&amp;rsquo;ve been not feeling quite okay, I&amp;rsquo;ve been sniffly and quick to tire the&#xA;last weeks, and it&amp;rsquo;s been generally not that great, which also means that stuff like reading has been slower&#xA;than normal, hopefully it will get better some time, because it doesn&amp;rsquo;t really seem like it wants to let go.&#xA;That, combined with the weather being rather shitty the last days has made things a bit annoying, but hopefully&#xA;things will be better this week.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>So another week has gone by, and I&rsquo;ve been not feeling quite okay, I&rsquo;ve been sniffly and quick to tire the
last weeks, and it&rsquo;s been generally not that great, which also means that stuff like reading has been slower
than normal, hopefully it will get better some time, because it doesn&rsquo;t really seem like it wants to let go.
That, combined with the weather being rather shitty the last days has made things a bit annoying, but hopefully
things will be better this week.</p>
<h1 id="books">Books</h1>
<p>I was really enjyoing <strong>The Torid Affair</strong> by Laurann Dohner, it is one of the books in the series that I have enjoyed
the most so far. The characters were fun, and it felt different enough from the others that it was a joy. I kind of had to really make an effort to not just jump on to the next one in the series, generally I try to keep some others in between, since I get burned out on reading the same series in a go most of the time. I&rsquo;ll read a couple of other books before I jump back in again with the last one I have of the series.</p>
<p>I then started <strong>Ruth&rsquo;s Bonded</strong> by V.C. Lancaster, this is one that has that very stereotypical romance cover that makes people feel embarrased, but by now I&rsquo;ve learnt to basically ignore the covers, what really counts is what is inside, and that&rsquo;s more fun I think. I&rsquo;m a bit over half way through, since this is a rather short one, and so far at least it has been a fun story.</p>
<h1 id="games">Games</h1>
<p>It&rsquo;s been a rather quiet week when it comes to gaming as well, since I&rsquo;ve not really had that much energy, I haven&rsquo;t been playing that many games either.</p>
<p>But I did manage to finish <strong>Castlevania: Aria of Sorrow</strong>, now I did only get the bad ending, but I don&rsquo;t really feel like doing the things that I need to do to get the better ones, at least not now, maybe some other time, but at least I finally got to finish this game, that I&rsquo;ve worked on for a while already, that means that I have finished two of the three games in the castlevania advanced collection, and I will see if I maybe do finish the last of them too, but not for now, I found circle of the moon to be a bit too difficult for me, but maybe if I do a complete run from the beginning again I will be there enough to do it.</p>
<p>After the first castlevania game I went directly to another one <strong>Castlevania: Portrait of Ruin</strong>, this one from the Dominus collection, I have finished dawn of sorrow, but this one and order of ecclesia I still have left to play, I did have a save that was farther in, but I decided to start fresh since I on the other save softlocked myself out of being able to finish some quests since I sold items that are needed, this time I have decided just to not sell anything, so that I don&rsquo;t lock myself out. I really enjoy the gameplay of this one, and I think having the different enemies drop stuff instead of souls is more fun for me. Just got to the third painting in this one so far, so I still have ways to go before I get back to where I were, but I&rsquo;m having fun with it.</p>
<p>I&rsquo;m also still having fun with <strong>Pokémon: Lazarus</strong> it&rsquo;s quite amazing how manu fun things they added to this game, there are fishing like in Star dew valley, with the possibility of getting items in addition to pokemon. I haven&rsquo;t really made that much progress, but have caught 80 pokemon, and done 3 gyms so far.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;m getting dangerously close to having gotten through the backlog of videogame podtisim, it will be sad to be through, as it has been a good place for listening when I&rsquo;m empty of new episodes, but we&rsquo;ll see, maybe I&rsquo;ll find something elso to listen to in those places, but at least it will be a couple of months with 33 unlistened episodes before I get there.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 03</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-03/</link>
      <pubDate>Mon, 19 Jan 2026 10:23:27 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-03/</guid>
      <description>&lt;p&gt;Yey, hurray for me, as I write this I&amp;rsquo;ve completed another revolution around the sun, it&amp;rsquo;s kind of&#xA;funny how little I really care about this anymore, it seems like everyone makes a big deal about it.&#xA;But that&amp;rsquo;s how it is I guess. It&amp;rsquo;s been a weird week, slowly getting into the groove again after&#xA;having had so many weeks with holidays in them, now it feels like stuff are starting to get back to&#xA;the normal. I&amp;rsquo;ve been having a cold the last week or so, something that have made me long more for&#xA;the spring to come along, I hope it will last more than the week it did last year, it&amp;rsquo;s one of my&#xA;favourite times a year, when stuff are starting to come alive again, and the temperatures are slowly&#xA;getting up. Just looking foreward to my walks being a bit more comfortable, and be at a place where&#xA;I can sit out reading for half an hour without getting a wet posterior. But yeah, lots of things to&#xA;look forward to, in the mean time I&amp;rsquo;ll just trudge along.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Yey, hurray for me, as I write this I&rsquo;ve completed another revolution around the sun, it&rsquo;s kind of
funny how little I really care about this anymore, it seems like everyone makes a big deal about it.
But that&rsquo;s how it is I guess. It&rsquo;s been a weird week, slowly getting into the groove again after
having had so many weeks with holidays in them, now it feels like stuff are starting to get back to
the normal. I&rsquo;ve been having a cold the last week or so, something that have made me long more for
the spring to come along, I hope it will last more than the week it did last year, it&rsquo;s one of my
favourite times a year, when stuff are starting to come alive again, and the temperatures are slowly
getting up. Just looking foreward to my walks being a bit more comfortable, and be at a place where
I can sit out reading for half an hour without getting a wet posterior. But yeah, lots of things to
look forward to, in the mean time I&rsquo;ll just trudge along.</p>
<h1 id="books">Books</h1>
<p>I finished off <strong>Prince of dreams</strong> this week, and I am pretty happy that I read it through, but I&rsquo;m
kind of getting tired of the writing of the author, and since I haven&rsquo;t bought the last one in the
series I don&rsquo;t think I will go through the effort of getting it, at least not yet, I&rsquo;m pretty happy
with where it ended. It felt like each book kind of reset the character growth of the previous one.
It&rsquo;s been kind of a chore to read them even though I&rsquo;ve still kind of enjoyed them, I&rsquo;ll be kind of
happy to replace this series with a new one, hopefully one that meshes better with me.</p>
<p>As the one that I&rsquo;m currently reading is <strong>Hidden Fire</strong> by Rose Mackie, and this one has been a lot
of fun so far, I think in this series it&rsquo;s my favourite one since the first one, it has some more of
that adventure feeling, and also it helps that the main characters are a bit older, and have more
grown up kind of things holding them back from things, rather than the normal communication issues
trope.</p>
<h1 id="games">Games</h1>
<p>I played quite a bit of <strong>Ender Lillies, Quietus of the Knight</strong> through the beginning of the week,
and I&rsquo;ve been enjoying it quite a bit, it just is lying a bit on the tougher end of what I am
comfortable with on difficulty, so towards the end of the week I was feeling kind of burnt out with
it, I&rsquo;ve now gotten a better dash ability, which makes combat feel even a bit better, but I needed
a bit of a break after that, I&rsquo;ll probably come back to it though, it&rsquo;s a pretty fun game.</p>
<p>Then towards the end of the week I had problems finding out what I wanted to play, I tried a lot of
games, as I usually do in these resteless weeks to find one that sticks with me, after a while I
didn&rsquo;t really find anything on the switch that felt like I wanted to, so I went over to the miyoo
mini plus for some retro stuff, some times that does the trick, and this time too that was the case.</p>
<p>After remembering that I had been downloading some pokémon hacks some weeks ago I landed on starting
to play <strong>Pokémon Lazarus</strong> and I&rsquo;m really enjoying it. It&rsquo;s a pokemon emerald hack that is
basically a new game in the GBA pokemon game engine. The graphics are kind of done in a way more
reminicent of the GBC pokemon games, and as an old fogey I really enjoy the feel that it gives. The
game takes place in a completely new worldmap, which is reminiscent of greece. I have the two first
gym badges so far, and there are already quite a bit of quality of life upgrades in comparison to
the games that used to be on the console. It&rsquo;s really amazing how much they have done here, there
are a ton of pokemon to catch ~400, and there are tools helping you to know where they are, what
pokemon are in the area you&rsquo;re in, and also to help you catch stragglers when they are not there.
I&rsquo;m really in love with this game so far, and it&rsquo;s growing to probably be my overall favourite
pokemon game. It&rsquo;s really cool, and for now at least I think I will keep playing it for a while.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve been doing a lot of listening over the weekend, a lot of episodes through, and it&rsquo;s been quite
a good week, it seems like people are starting to overcome the january slump, and things are looking
up again. There has been some cool videos from youtube people that I&rsquo;ve been enjoying as well, and
it&rsquo;s nice to get something more fleeting in as well. I was watching some videos from people that I
don&rsquo;t follow, and I think I now am starting to understand more why people are saying that youtube is
really shit, there were a lot of AI shitty videos on every topic, and unless you know which people
to search for in specific it is really a bother trying to find stuff made by real people that
actually care about the topics they are making videos about. I think I will keep to the people I
know, so that I don&rsquo;t have to trudge through the slop.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 02</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-02/</link>
      <pubDate>Mon, 12 Jan 2026 08:16:12 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-02/</guid>
      <description>&lt;p&gt;Well another week is over, and I went from feeling restless to anxious, well like everything with&#xA;me, things move in cycles, so I will get through this as well, it will just take a bit of time.&#xA;Someone dragged a cold with them that I finally caught, so that and some cold and snow made me not&#xA;take that long walks over the weekend, I was not really feeling that great, so it ended up with&#xA;being 8-10 km on each day, not much, but at least it&amp;rsquo;s something.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Well another week is over, and I went from feeling restless to anxious, well like everything with
me, things move in cycles, so I will get through this as well, it will just take a bit of time.
Someone dragged a cold with them that I finally caught, so that and some cold and snow made me not
take that long walks over the weekend, I was not really feeling that great, so it ended up with
being 8-10 km on each day, not much, but at least it&rsquo;s something.</p>
<p>I hope my mood will come up a bit, I did feel a bit better towards the end of the weekend, so
uncharacteristically for me, I felt better on sunday than what I did on saturday, that&rsquo;s how it
rolls, hoping for better times, and I&rsquo;m pretty sure they will come. As they tend to do.</p>
<h1 id="books">Books</h1>
<p>I finished off <strong>Darkspace Warrior</strong> pretty early in the week, it was decent and fun, not fantastic,
but it was some nice cotton candy happy reading that doesn&rsquo;t hurt to get through. It&rsquo;s enjoyable,
but forgettable, at least I didn&rsquo;t find anything bad enough to write much about it.</p>
<p>As the second one for the week was <strong>Planet Biter</strong> which was one that really hooked me, this series
has the tendency of doing that for some of the books, and it was really a lot of fun, it&rsquo;s one that
I would never read if I would judge from the cover. At the same time the premise of them are
starting to grow a bit thin, so I am pretty happy that there is as far as I know just a couple of
books left in the series.</p>
<p>For the last one that I started this week <strong>Prince of Dreams</strong> it is the last one that I have in the
messenger chronicles, and I don&rsquo;t think that this is one that I will continue on with, it&rsquo;s one
where the last books has kind of dragged my reading tempo and frequency down, they are pretty good
books, but they just aren&rsquo;t that interesting to me, I think they are leaning too much into the whole
urban fantasy thing, and just aren&rsquo;t for me I think, I&rsquo;m already 100 pages into this one though, so
I will at least finish this one.</p>
<h1 id="games">Games</h1>
<p>I finished a game this week! It&rsquo;s not something that I do very often but I got through <strong>Ori and the
will of the wisps</strong> mostly in this week, it&rsquo;s a good game, but I feel like the focus that they put
onto fighting in this one didn&rsquo;t really do it any favours, I finished the first game years ago, and
that&rsquo;s still one that I liked more, that one had almost no fighting, and focused more on
platforming, I was happy that there was still some chase sequences in this one, but it seems like
they took away quite a bit of them to focus on battling, and boss battles. The thing is that enemies
often are the same colour and size as ori, so it was pretty easy to lose track of where I was, and
for the bosses it was difficult to see what was the spots they weren&rsquo;t invulnerable, which led to at
times frustrating times, also since the fighting implementation felt rather sloppy, I didn&rsquo;t really
feel much of a difference between the times that I died to the boss, and the time that I succeded.</p>
<p>I also played a couple of runs of <strong>Hades</strong> but progress here has been dying down as well, it seems
like I&rsquo;ve picked most of the low hanging fruit, and now the bigger things are there. There is only
the hidden aspect of the rail left to gather. Things are expensive enough now that there are
multiple runs to get anything. And the nectar is coming in on it&rsquo;s normal slow pace, it&rsquo;s kind of
funny that that is always a bottle neck while I still never have gotten under 5 ambrosia. I do
really like getting the different visual upgrades in this game though, I&rsquo;m usually not a person for
that kind of stuff, but I actually like making the hall of hades more and more gaudy and fun. I&rsquo;ll
probably keep on playing this one a bit here and there in between I think, as I still quite enjoy
it, it&rsquo;s just getting too slow to be my main focus I think.</p>
<p>For the next game after Ori, I still kind of felt like a metroidvania so I started up <strong>Ender
Lillies</strong> which I got a while ago, and started a new save. It does feel very stiff coming from
endgame ori, but that is kind of an unfair comparison as ori is one of the most fluid games I&rsquo;ve
played, and it&rsquo;s the beginning of a metroidvania with next to none of the upgrades. But I&rsquo;ve been
quite enjoying the fighting in this one, it&rsquo;s slower and more deliberate, and the things that the
enemies do are well shown so that you have time to react. It&rsquo;s been quite challenging so far, with
hordes of enemies, and getting used to movement that is very different from what I&rsquo;ve been playing
lately, the bosses are tough but fair, I did 3 of them on sunday, and one of them took me half an
hour to beat, but it never got frustrating, it was just getting used to the patterns and executing.</p>
<h1 id="media">Media</h1>
<p>It&rsquo;s been a slow period still with media, youtube in general is not great in january for some
reason, and even with podcasters it seems like this month has been rather thin this year with many
people being sick or having short breaks. I have been listening to some backlog stuff, and gotten to
episode 50 of the Hades II playthrough I&rsquo;ve been watching, it&rsquo;s quite fun but it&rsquo;s mostly background
stuff when playing a game or doing something else, as it otherwise would have gotten a bit too samey
for me. I&rsquo;m still kind of hoping for some great episode of something again, something that exites me
a bit more, but we&rsquo;ll see, something is bound to come up at some time or another.</p>
<p>So all in all it&rsquo;s been kind of a downer of a week, but things are at least looking up a little, I&rsquo;m
just really looking foreward to spring now, which is dangerous as it&rsquo;s still a couple of months to
wait, we&rsquo;ll have to see, hopefully there will be some happy things happening before then as well :)</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2026 01</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2026-01/</link>
      <pubDate>Mon, 05 Jan 2026 09:20:43 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2026-01/</guid>
      <description>&lt;p&gt;So, we&amp;rsquo;re on to a new year I guess, I took the changeover really quietly, and enjoyed my yuletide&#xA;with staying away from people and just charging batteries, I&amp;rsquo;m not quite sure if I&amp;rsquo;m all the way&#xA;back in to being ready to be social, but at least it&amp;rsquo;s getting a bit better again. I hope that stuff&#xA;will get better, starting to get a bit tired of the cold times again, it&amp;rsquo;s a big shame that exactly&#xA;autumn and spring, the two seasons that I enjoy the most are so short, I&amp;rsquo;m looking foreward to it,&#xA;at least we&amp;rsquo;re on our way back now, with the days slowly getting a bit of length every day.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>So, we&rsquo;re on to a new year I guess, I took the changeover really quietly, and enjoyed my yuletide
with staying away from people and just charging batteries, I&rsquo;m not quite sure if I&rsquo;m all the way
back in to being ready to be social, but at least it&rsquo;s getting a bit better again. I hope that stuff
will get better, starting to get a bit tired of the cold times again, it&rsquo;s a big shame that exactly
autumn and spring, the two seasons that I enjoy the most are so short, I&rsquo;m looking foreward to it,
at least we&rsquo;re on our way back now, with the days slowly getting a bit of length every day.</p>
<h1 id="books">Books</h1>
<p>I did finish <strong>Nightshade&rsquo;s Touch</strong> on new year&rsquo;s eve, I just wanted to get it over with before the
new year, and it was pretty fun, with kind of a twist ending, it seems like the author really loves
twists, so there are a couple in each book, if I&rsquo;m not seeing wrong the next one will be the last
one in the series, they are decent, but they are kind of weird and too tense in a way that I don&rsquo;t
really enjoy that much, so it&rsquo;s going to be good to get through these. I&rsquo;m not trying to paint it
too dark, I do enjoy my reading, but for some reason this series is always a bit hard to get startet
with, maybe it is that it feels more like urban fantasy than sci-fi, I&rsquo;m not quite sure, but I think
that&rsquo;s a big part of it.</p>
<p>I started and fininshed <strong>Wild Fire</strong> by Rose Mackie, and this one was pretty fun, the violet sun
series is always fun to get back to, and this one has been taking a bit more of a different route to
the others, it&rsquo;s still a fun series, and the characters are fun, but while the series are starting
to branch out a bit it kind of feels like all of the romantic interests are more or less the same
person, which is starting to wear a bit thin. One thing that is hauntig my mind was them describing
a blowjob as using lips tongue and teeth, who the hell wants teeth?&hellip;</p>
<p>Lastly I did start one from another of the series I got in my latest haul, the <strong>Dark Planet
Warrior</strong> by Anna Craven, I don&rsquo;t have much to say about it, as I&rsquo;m only 2 chapters in, but so far
the writing is pretty fun at least, and probably don&rsquo;t search the author having your safety filters
of, or you do, I&rsquo;m not your daddy.</p>
<h1 id="games">Games</h1>
<p>For games this week, most of the time I was restlessly not really managing to figure out what I
wanted to play, I started a lot of them to get a feel, like <strong>The Witcher Throne Breaker</strong>,
<strong>Lumines</strong>, <strong>Atelier Ryza</strong>, <strong>Star Dew Valley</strong> and some others, I feel like I could get into
star dew again, but it&rsquo;s just kind of hard to start in year two on my last save, and I&rsquo;m not quite
sure if I want to start from the beginning again either, as this year 2 save is the farthest I&rsquo;ve
gotten this far, I just have totally forgotten where I am, what my goals where at the time and so
on, I guess I will have to try again in some time, and see if I&rsquo;m in a better Star dew mood.</p>
<p>On friday I did spend some time playing rhythm games <strong>Rift of the Necrodancer</strong> and <strong>Taiko no
tatsujin</strong> They are games that I always enjoy playing a lot, but they always end up being a timewarp
and suck, so it&rsquo;s something that I can&rsquo;t really dedicate myself to playing very often, It was a fun
time though, but it also feels like most of my friday just evaporated as well, so it&rsquo;s a mixed
blessing.</p>
<p>I ended up playing some <strong>Patrick&rsquo;s Parabox</strong> it&rsquo;s a really quite fun sokoban mashup where you can
push boxes into boxes and them into others again, which leads to some really mind bending puzzles, I
was getting into it again after having done some <strong>Baba is you</strong> which I got a collegue to play a
bit as well, Baba is fun, but it&rsquo;s so much of a brain teaser to me that I don&rsquo;t really manage to
play more than a couple of levels at a time, it gets frustrating really fast when I try to play it,
I think I&rsquo;m not really good in thinking the way the game wants me to think in some times, and I&rsquo;m
too stubborn to look up answers for them, maybe I need to see if there is a site with gradual hints
for it or something that I can try, to get a bit farther in, and stretch that muscle.</p>
<p>Through the week I did play some rounds of <strong>Hades</strong>, and as I&rsquo;m getting to the harder difficulties
it gets harder for me to enjoy the game as much again, the gameplay is not really something I enjoy
that much, I enjoy everything else about the game, but the running around killing things is not as
fun all the time, but at least I have passed the real need to win as much, now it&rsquo;s mostly about
gathering nectar, which always feels kind of stretched out, I got some of the plushies as well now,
and I probably will dip back into it now and again, but I don&rsquo;t think it will be my sole focus as it
has been for a couple of weeks. It&rsquo;s kind of nice to have something to jump into for a run or two,
gathering some more nectar to make everyone my friend. It was really satisfying getting to the point
at the end of the story, and how the whole vibe in the house of Hades changed, and it&rsquo;s fun doing
the decorating, which I normally don&rsquo;t like in the games. So I will get back into it.</p>
<p>As I have done lately quite a bit the next game that gripped me was also one that I bought a couple
of years ago, this time it&rsquo;s <strong>Ori and the will of the whisps</strong> I really enjoyed the first one, and
it was one that I actually played all the way through, it was a really fun platforming focused
metroidvania, and that&rsquo;s what was really kind of bummed me out with this one the last time I played
it, it seems to have put a lot more focus on fighting enemies, I don&rsquo;t feel like it&rsquo;s something that
Ori really needed. But the platforming is still fun, so this time I&rsquo;m going into it with a bit
different expectations, and I&rsquo;m quite liking it this far, I have reached the same point where I
jumped off the last time, and I&rsquo;m still having fun, so I will see, maybe this time I will get to
explore some new places. The platforming is still quite fun, and the fighting is decent, and the
environments are lush and nice which is really nice. Now I just have to learn to stop being stubborn
attacking really challenging platforming sequences before I have the tools, so that I don&rsquo;t
frustrate myself too much. There still are some amazing platforming sequences, and I really like the
way that they make it feel like you&rsquo;re really exploring places, which I feel this does better than
things like Hollow knight <em>ghasp</em>.</p>
<h1 id="media">Media</h1>
<p>Slowly I&rsquo;m getting through the christmas flow of stuff that I&rsquo;ve been enjoying, and I think most of
the recaps and best of lists for 2025 are done now, I&rsquo;ve been mostly enjoying that a lot, and it&rsquo;s
always a fun time with a lot of stuff. My podcast queue is finally down to it&rsquo;s normal 15 or so
episodes that I have ready from having been almost up at 50 at the biggest time around new years.
It&rsquo;s been fun, but it seems like the dregs that I have left are more the stuff that are a bit harder
to get into. It&rsquo;s kind of back to the thing where I have a base enjoyment of the stuff, and then
there is a surprise episode that just really hits, which is also really fun. I ended 2025 with
having listened to 95 days and 15 hours of podcasts, or 1893 episodes, which is pretty crazy, well
I&rsquo;ve been for myself a lot this year, so I guess it&rsquo;s how it is, I&rsquo;m not thinking that I will top
that in 2026, it would probably be better if I don&rsquo;t.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 52</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-52/</link>
      <pubDate>Mon, 29 Dec 2025 08:13:52 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-52/</guid>
      <description>&lt;p&gt;It feels kind of weird starting this one with 2026 already, but I guess it&amp;rsquo;s technically correct&#xA;since the year is beginning in the middle of this week. I&amp;rsquo;ve have a very quiet yuletide, and not&#xA;really having to deal with people for some days have been great. Now it hasn&amp;rsquo;t been the best one in&#xA;years, it was kind of cold, and I was annoyed with all the extra sundays when everything has been&#xA;closed, but that was just a me thing, it&amp;rsquo;s just easier to get out on long walks when I know there is&#xA;an open grocery store on the way where I can stop by and get something to eat, on friday I forgot to&#xA;take in caffeine and I had some epic headaches in the night waking me up, but again, that&amp;rsquo;s just my&#xA;own stupidity coming to bite me.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It feels kind of weird starting this one with 2026 already, but I guess it&rsquo;s technically correct
since the year is beginning in the middle of this week. I&rsquo;ve have a very quiet yuletide, and not
really having to deal with people for some days have been great. Now it hasn&rsquo;t been the best one in
years, it was kind of cold, and I was annoyed with all the extra sundays when everything has been
closed, but that was just a me thing, it&rsquo;s just easier to get out on long walks when I know there is
an open grocery store on the way where I can stop by and get something to eat, on friday I forgot to
take in caffeine and I had some epic headaches in the night waking me up, but again, that&rsquo;s just my
own stupidity coming to bite me.</p>
<p>Somehow I did manage to resist the urge to get some new games last week, even though it was hard,
there are so many good sales now this time a year, I&rsquo;m not quite sure how I will fare this week, but
we will see, I spent enough in the beginning of the month on different things like gifts, sending
packages and so on that I&rsquo;m having to watch it a bit, but it might be that I&rsquo;ll be looking a bit
anyway and see.</p>
<h1 id="books">Books</h1>
<p>I&rsquo;ve been kind of not reading much over this week, it turns out that being out of my pattern, and
maybe not being that into my book either this week has been kind of caught me stuck, and I didn&rsquo;t
read much leaving me only half way through <strong>Night Shade</strong> by Pippa DaCosta. I&rsquo;m hoping to get
through it this week, but we&rsquo;ll have to see what time brings, I know that it will probably go on to
speed again when I go on to the next one, as I&rsquo;ve been quite enjoying the colony series that I have
lined up for my next read.</p>
<p>My usual reading time is before going to bed and in my lunch break, and since I&rsquo;ve been weird with
going to bed when I don&rsquo;t have to get up, and not having work, and in addition it&rsquo;s cold enough
outside that it&rsquo;s not really enjoyable to read there either it&rsquo;s been rather a bad week when it
comes to reading, I hope I can rectify that a bit at least this week.</p>
<h1 id="games">Games</h1>
<p>I&rsquo;ve been doing a bit better when it comes to game, and I think that&rsquo;s been what have taken up quite
a bit of my reading time.</p>
<p>First I did roll credits on <strong>Hades</strong>, and it was quite fun. I quite enjoy the change that happens a bit
after the end when everything kind of goes into a new normal. The story is still a lot of fun, and I
don&rsquo;t really feel that it&rsquo;s over yet, there are ton&rsquo;s of stuff left to do, so I&rsquo;ll still be plugging
away at it, but I&rsquo;ve started to even enjoy the battling, which was my biggest gripe of the game, it
isn&rsquo;t really my favourite type of game, but everything around it is so great that it kept me going
anyway. They did a great job with insentivising the runs though, which makes it always feel worth it
to go out on a new run, to the point that when I was trying to play some other games it was kind of
feeling that it was kind of not quite there, and that I could get more of the fun story stuff of
hades if I just played that instead.</p>
<p>After my 40+ runs of Hades I needed something else, and I landed on playing some <strong>Moonstone
Island</strong> and it&rsquo;s quite a mix of different things, it&rsquo;s a Alchemy driven farming game with creature
collection and card based battling. It&rsquo;s one that has been sitting in my backlog for a while, I got
it around when it was new in 2023, played it for 10 or so hours, and then moved over to something
else, it&rsquo;s a nice and slow game, which is a good break from after hades, and it has some progression
stuff, where there is almost always at least a couple of goals you&rsquo;re working towards. I do enjoy
it, but it&rsquo;s kind of starting to feel like the creature battling are getting a bit old on me, and
after I realised that I could feed my creatures hay instead of having to use crops that kind of made
things a lot easier. I enjoy fishing minigames a lot, I don&rsquo;t quite know why, it never really grabs
me when I&rsquo;m playing a fishing game, but when it&rsquo;s in another game I just really keep on enjoying it
a lot, I think I will keep on with this one for a while, but I&rsquo;m not quite sure where my whims and
moods will lead me, so we&rsquo;ll see.</p>
<p>I did also play a bit on my phone, I kind of found a big flaw with <strong>Halls of Torment</strong> it doesn&rsquo;t
save a run in progress, so I can&rsquo;t even switch over to another application in the middle of it
without completely abandonding the run, and with the runs lasting up to 30 minutes that&rsquo;s kind of an
issue to me, I will have to see, but it&rsquo;s likely that I will just uninstalling it for that, it&rsquo;s a
quite fun game, but with such a big problem with it I don&rsquo;t think it&rsquo;s something I will keep on
playing.</p>
<p>I had some fun with <strong>Dawncaster</strong> as well, it&rsquo;s fun exploring new gimmicks with different decks,
and it&rsquo;s nice to have a drafting deckbuilder game that I can have on the go, and it starts and plays
quick enough that it feels like I can have a satisfying play session in 15 minutes or so, and it&rsquo;s
easy enough to pick up again. The normal difficulty is also easy enough that I&rsquo;m not struggling too
much with getting a win in, and it&rsquo;s nice to be able to win one in every ten or so runs, instead of
every 1 of 20-50 which is normally how it is with games like it, there are higher difficulties as
well for people who likes the pain, but it&rsquo;s nice to just enjoy playing with some cards and not
having to minmax everything.</p>
<p>And last I did bring in a run of <strong>slice and dice</strong> after having played on Normal for a while I&rsquo;ve
been going down to easy again here as well, it&rsquo;s just fun playing with the dice, and I&rsquo;m close
enough to dying every round even in easy, so I think I&rsquo;ll hang around here for a while, having fun
with it until it may get too easy, and I&rsquo;m ready to move up, I did win a normal run, so I have
proven to myself that I can do it, so now I&rsquo;ll just keep on with the one that is the most fun to me
instead.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve been working on my podcast backlog over this week, and I&rsquo;m down to a normal-ish 20 in my queue,
it&rsquo;s a bit of a difference in that there is an 8 hour episode in there, which I&rsquo;m looking foreward
to, a german let&rsquo;s play of an old cyberpunk text adventure / rpg.</p>
<p>Videogame Podtimism had their games of the year episode, which was a lot of fun, it&rsquo;s really a nice
podcast that I really enjoy, still looking foreward to the into the aether one, just not quite sure
if it comes out on New year&rsquo;s or a bit later, but I&rsquo;ll have to wait and see, usually it&rsquo;s more than
worth the wait, and it really is one of my favourite kinds of episodes that they do, quite selfishly
I wish for a monster long one.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 51</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-51/</link>
      <pubDate>Mon, 22 Dec 2025 09:18:25 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-51/</guid>
      <description>&lt;p&gt;The year is finally drawing to a close, it feels like 2020 has been undending still. It was a decent&#xA;week last week, with a couple of stressors, but there should really not be any more plans or stuff&#xA;to do now the rest of the year, finally just going to do nothing but getting some rest hopefully. At&#xA;least my plans for the rest of the year is doing my work stuff, and hopefully get in a couple of&#xA;longer walks, listening to podcasts.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>The year is finally drawing to a close, it feels like 2020 has been undending still. It was a decent
week last week, with a couple of stressors, but there should really not be any more plans or stuff
to do now the rest of the year, finally just going to do nothing but getting some rest hopefully. At
least my plans for the rest of the year is doing my work stuff, and hopefully get in a couple of
longer walks, listening to podcasts.</p>
<h1 id="books">Books</h1>
<p>Got through a couple of books this week, I finished a series by finishing <strong>Renegade Love</strong> by Ann
Aguirre, it was a decent book, and it had glimpses of something really good, but I ended up not enjoying
it as much as the two others in the series, the plot felt a bit more contrived than the others in the series.
It was a nice ending, but getting there and everything just felt a bit too convenient even for me
who don&rsquo;t really bother about those things too much. All in all it was a fun, but a bit weird
series.</p>
<p>After that one I went on to the third one in the Veslor series, <strong>The Breeding Experience</strong> by
Laurann Dohner, and this is one where the name and cover really makes me happy that I&rsquo;m reading on a
e-reader, it&rsquo;s a bit too on the nose in some ways, even though the book itself is really quite
enjoyable, I&rsquo;m almost through this one, probably will finish it today, and the next one on the list
is another of the messenger books, it&rsquo;s nice to have a cadence to go by, for the love series by Ann
Aguirre I will slot in another one, and then I don&rsquo;t have to think too much for the next month or so
I think, while I finish all of my ongoing series.</p>
<h1 id="games">Games</h1>
<p>Games have been kind of weird this week, I wanted to play some different games, but none really fit
my mood, played a run or two of <strong>Vampire survivors</strong> and it was decent fun, but not really what I
wanted, did some platforming with <strong>Rabi Ribi</strong>, but it also wasn&rsquo;t the one, and then even tried to
go on with <strong>Sea of Stars</strong> but the story kind of put me off, and it felt all a bit too samey. I
squeezed in a run of <strong>Dead Cells</strong> but while fun, it didn&rsquo;t really spark joy this time.</p>
<p>I ended up trying <strong>Hades</strong> again, and it seems for some reason that it decided to be the one that I
would really enjoy at this time, I activated god mode this time since I was getting frustrated with
my last time of not really getting any farther, and it makes quite a bit of a difference in the
game, with the help from it, I now actually can bring things foreward, and I spent most of the week
getting runs in, actually starting to enjoy it, at least the two first biomes, they are fun, with
Elysium it&rsquo;s just a bit bullshit, all my least liked enemies are there ganging up on you, you have
to kill all the stuff twice, and it&rsquo;s just more bullshit than fun, and then it&rsquo;s ended with the
Theseus and Asterius boss fight which is my least favourite one as well, maybe as I get more used to
dealing with it it will get better, but so far it&rsquo;s just a place that I force myself through to get
to have fun with the other parts.</p>
<p>I did manage to beat Hades three times over the weekend, first one at 60% godhood, and after 27
runs, the shield, the bow, and the sword are the ones I cleared with so far. After that first win
against Hades stuff started going a bit faster with gathering things like Titan blood, and it shot
some new juice into my runs, now I&rsquo;m running through, trying to gather up enough stuff to make the
story go foreward, and it feels a bit like the edge has been taken off now in having to perform in a
way, since I did get through it once, the kind of funny thing is that it feels like it&rsquo;s so much
easier to get ambrosia, the higher quality of the god drinks than the nectar, which I can go
through a whole run of without seeing at all, so I guess I will just focus on doing runs and getting
used to the third stage to hopefully be able to have fun there as well. All in all I&rsquo;m having a lot
of fun with it, and it&rsquo;s what I want to play at the moment, so I will stay with it.</p>
<h1 id="media">Media</h1>
<p>Stuff are slowly getting into the dead zone of the christmas week, I have quite bit of stuff queued
up still, so I don&rsquo;t think that will be an issue this year, but we will have to see, there are some
days of off time in the week as well, so it might be that I have to supplement a bit with some
backlog stuff.</p>
<p>With videos there has been basically two things that I&rsquo;ve been watching, I&rsquo;ve been really enjoying
olexa&rsquo;s olexamas charity stuff, and he has managed to collect 19 000 dollars for extra life, which
is really great to see, and the stuff he has been posting over christmas has been really fun, so
that has been great. Apart from that I have been watching SB&rsquo;s Hades II run through, and enjoying it
quite a bit, it&rsquo;s just nice having some calm videos with them explaining their thought process, and
going through at a way faster clip than I would have managed to, from what it seems the second one
is probably too much for me.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 50</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-50/</link>
      <pubDate>Mon, 15 Dec 2025 09:18:09 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-50/</guid>
      <description>&lt;p&gt;I was at the post today, sending and receiving a package, and I think that&amp;rsquo;s it for the stressful&#xA;things this year, now it&amp;rsquo;s mostly just normal work, with the worst of the christmas stress over&#xA;with, so everyone is a bit calmer and in a better mood, looking foreward to the christmas&#xA;celebration. It&amp;rsquo;s such an ordeal getting the beginning of christmas through, stress at work,&#xA;celebrations, then in it all I have to buy and send presents back home, but it feels good getting it&#xA;done at least.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I was at the post today, sending and receiving a package, and I think that&rsquo;s it for the stressful
things this year, now it&rsquo;s mostly just normal work, with the worst of the christmas stress over
with, so everyone is a bit calmer and in a better mood, looking foreward to the christmas
celebration. It&rsquo;s such an ordeal getting the beginning of christmas through, stress at work,
celebrations, then in it all I have to buy and send presents back home, but it feels good getting it
done at least.</p>
<p>Joel also posted a <a href="https://joelchrono.xyz/blog/desert-island-games">desert island game
collaberation</a> that I took part it, and it&rsquo;s a
really fun post that you should probably read as well.</p>
<h1 id="books">Books</h1>
<p>Reading has been a bit slower this week than the break neck pace the last ones, this week I read
<strong>Game of Lies</strong> by Pippa DaCosta, which was fun, it&rsquo;s still being more half fantasy action than
what I expected, and it&rsquo;s kind of leaning into being more of an elder YA in some ways, but I&rsquo;m still
enjoying it, I really hope the characters are going to learn to trust each other a bit more, because
the whole being distrustful and not really great at each other schtick is starting to get a bit old.</p>
<p>After finishing that one I started reading <strong>Dark Fire</strong> by Rose Mackie, and this one is fun, it
feels like it&rsquo;s a bit better than the first one, but in other ways a bit weaker, but it&rsquo;s a nice
mix, and the characters and the world is really fun, so I&rsquo;m looking foreward to the rest of this
one, and the next ones in the series.</p>
<h1 id="games">Games</h1>
<p>Forgive me, because I have sinned, I wanted to let up a bit on the game buying since last week, but
I had to trick myself to do some more uncomfortable tasks, and was getting myself even more games to
at least feel that there was something good in the week :p At least it wasn&rsquo;t a huge investment, I&rsquo;m
sucker for a bargin and got 6 games for 25€ which was a pretty good deal.</p>
<p>I got the first <strong>Pheonix Wright triology</strong> And I think this is the second time that I buy these, I
had the original ones on the DS, and they are fun, never really got farther than the middle of the
first game the first time that I played it, so I was thinking I will probably play through it this
time, it&rsquo;s just a lot of fun characters, and stuff here, and who doesn&rsquo;t like a little murder
mystery and court drama.</p>
<p>As a second one, I got <strong>Rabi-Ribi</strong> as I kind of wanted a bit more of a platformer game to play
again, and this one seems different, with a kind of stupid story, and a mix between metroidvania and
a tohou-like bullet hell game this one looks quite fun, I&rsquo;m a bit baffeled by the controls since
jump is on B, Melee on X and ranged on Y, it just feels a bit clunky, but I&rsquo;m having fun with the
beginning that I&rsquo;ve played.</p>
<p>And for last there was a huge sale on <strong>Teslagrad 1- and 2</strong> which was also developed by a norwegian
developer, so I got that as well, I haven&rsquo;t really played much of it yet, but the graphics look kind
of cool, and they seem to be puzzly metroidvania games, I haven&rsquo;t really tried them out much though,
so will have to see when I feel like it.</p>
<p>I haven&rsquo;t really put that much time into them yet though, as I have other things that I&rsquo;m playing,
I&rsquo;m still inching my way foreward on <strong>Sea of stars</strong> I got the updates for the game last time I was
playing the one that came on the cart, now with a lot of updates it seems like they changed around
some things, I&rsquo;m now able to cook more than 10 things at a time, the healing spell costs 3 combo
dots rather than the 2 it did, and they seem to have tweaked some other small things, I don&rsquo;t know
what I think about that change yet, but it has made it a bit more challenging at least. I still
really enjoy the exploration and dungeons a lot, I&rsquo;m a bit colder on the battles than what I was,
since there isn&rsquo;t really that much to gain from fighting them, it feels more like they are just
obstacles in the way, rather than a way to improve and get better. I just beat the Necromancer now,
and got back to help Garl with the stone, and people are coming from the beginning of the game.
Hopefully it will grab me a bit more again, the blandness of the story kind of is annoying, I kind
of want to read it to get what is happening, since the dungeons are really cool, but I might just
get to be okay with skipping it, since I really am not enjoying the writing much at all.</p>
<p>I also did play a bit more <strong>Siralim: ultimate</strong> Now down to dungeon depth 140, and the monsers I&rsquo;m
fighting are now at double my levels at 800 vs my 400, I got through the round of my team which was
based on creatures dying and being resurrected, it&rsquo;s a really strong group, but the battles have
been rather a bit of a chore, since they just take so long with everything that is going on with
them, and the whole gimmick being rather slow in general, so I went through the levels with that
one, and quit when I was at the place to create a new paladin team, which needs to be one focused on
provoke and defence, which could be interesting.</p>
<p>I also did some phone gaming, <strong>Halls of Torment</strong> is still a pretty competent vampire survivors
clone, with a cool diablo skin, it&rsquo;s fun, I still kind of miss the colourful mismatched nature of
vampire survivors though, I just always liked that thrown together feel that it has.</p>
<p><strong>Dawncaster</strong> is still a really fun card game, I&rsquo;m kind of getting the feel that what I get out of
this one is what many do out of Slay the Spire, I can&rsquo;t quite put my finger on why, but I never
really liked the world and the art of it, while dawncaster just feels better to me, it&rsquo;s also a bit
easier I feel to find and gather the breaking combos, which is just fun, with well over 1200 cards
and some quite fun encounters, I think this one will keep me playing for a while, it&rsquo;s just quite
fun.</p>
<h1 id="media">Media</h1>
<p>Many podcasts are now going into the pre christmas lull, that is before the Game of the year
podcasts and recaps start coming out, I have downloaded some extra episodes to tide me over, and we
will see, december is always a weird month where the beginning is a bit of a downer, and then the
last week is usually one of the best of the year for me personally.</p>
<p><strong>Olexa</strong> is still going strong with his christmas blast, and it&rsquo;s a lot of fun, for some reasons
the kinds of videos that I really like usually aren&rsquo;t doing that great on youtube, and this is the
month where he catches up on those kinds of videos, so I&rsquo;m having a little treat almost every day,
which is nice.</p>
<p>I&rsquo;ve also been keeping on watching <strong>SB</strong> doing a let&rsquo;s play of Hades II, the Hades games are kind
of a bit of a sore thing to me, I really like the story, art and music, and the collecting thing,
it&rsquo;s just that the gameplay itself isn&rsquo;t really mine, so it&rsquo;s a let&rsquo;s play game for me, now on
episode 30 and he&rsquo;s almost vanquished chronos I think, I enjoy the calm demeanor of the guy. It&rsquo;s a
nice thing to have on in the background.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 49</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-49/</link>
      <pubDate>Tue, 09 Dec 2025 10:18:42 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-49/</guid>
      <description>&lt;p&gt;So, as I predicted this week was a weird one that has gotten me kind of out of my normal patterns,&#xA;and as a result has made me not feel too great, but I&amp;rsquo;m through most of the stuff now, it&amp;rsquo;s only&#xA;the application for the National ID tomorrow, and then I should be set for most of the things that&#xA;are leaving me unround, there is still a christmas celebration, but one with less people, and I&#xA;have to get the gifts that I bought for the people home sent, but at least they aren&amp;rsquo;t that huge&#xA;tasks, and I don&amp;rsquo;t stress out as much about them.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>So, as I predicted this week was a weird one that has gotten me kind of out of my normal patterns,
and as a result has made me not feel too great, but I&rsquo;m through most of the stuff now, it&rsquo;s only
the application for the National ID tomorrow, and then I should be set for most of the things that
are leaving me unround, there is still a christmas celebration, but one with less people, and I
have to get the gifts that I bought for the people home sent, but at least they aren&rsquo;t that huge
tasks, and I don&rsquo;t stress out as much about them.</p>
<p>It&rsquo;s been much this week for me to deal with, not really for a normal person, but I had to deal
with going to the inside mall a couple of times, and then the big christmas celebrations, and I&rsquo;ve
gotten more than my share of having to deal with people masses, both times when I was at the mall I
had to just lie down and sleep for a bit afterwards, I don&rsquo;t know, but that really does stress me
out for some reason.</p>
<h1 id="books">Books</h1>
<p>Because of sleeping a lot, and being out drinking a couple of times this week, I&rsquo;ve not gotten
through as many books as last week, but I did pretty well all things considered.</p>
<p>I finished off <strong>Shoot the messenger</strong> by Pippa DaCosta, and it was a fun one, very much story
foreward for this one, and an interesting mix between scifi and fantasy, with loads of twists and
turns, a lot of fun.</p>
<p>The next one I read was <strong>Heart Fire</strong> by Rosie Mackie, and it was also a quite story focused one
that I enjoyed I also quite enjoyed the new planet colony story, it was fun, and pretty well done,
just some of the sex scenes felt a bit awkward, but we&rsquo;ll see if that is getting better later in
the series.</p>
<p>I also started and finished <strong>Love Code</strong> by Ann Aguirre, and this was a really heart warming one,
while the story stuff were pushed a bit in the background, it was a really sweet little romantic
story that went through it, and I kind of don&rsquo;t care that stuff just conviniently works out for
some threads of the story. Now it seems like this one series are kind of the author being
fascinated with different animal&rsquo;s anatomy and stuff, which leads to some things feeling a bit off,
but I think that was on purpose, all in all I did really enjoy this one though.</p>
<p>And for the last one for the week, I did start <strong>Mission: Guardian Angel</strong> by Laurann Dohner, which
is starting out kind of like a military space opera, and then going into more of a romance book,
like the first one in the series, I hope this one doesn&rsquo;t feel as rushed in the end, because it was
my biggest point against the first one in the series, which I otherwise really enjoyed.</p>
<h1 id="games">Games</h1>
<p>For most of the week I have kept on playing <strong>siralim: ultimate</strong> but the current archetype that I
was working on has so slow battles that it&rsquo;s kind of a drag, I have a team built on creatures dying
and being resurrected, and while it&rsquo;s really quite strong, the battles are really slow, and drag on
for too long.</p>
<p>I did get some gift-cards for having been in the company for 10 years now, almost 11 by now, so I
was buying a couple of physical games, which I don&rsquo;t have many of.</p>
<p>I remember <a href="https://polymaths.social/@thedoctor">@thedoctor</a> talking warmly about <strong>Sea of Stars</strong>
and have been thinking about getting it for weeks now, but I never really got around to getting it,
but this felt like the perfect moment, I had some funds that I had to use up burning, and it was
accessible. And so far I really quite like it, I put in about 5 hours over the weekend, and it is
quite fun, I&rsquo;m not quite sure about the writing, but the pixel art is stunning, the music is great,
and the battle system feels like a mix between the mario and luigi series of mario rpgs, and the
voulnerability system from octopath traveller, with some of the combo-techs from chrono trigger.
The chrono trigger inspiration in special is quite strong here, as it feels like they wanted to
make kind of a spiritual successor to that game, I&rsquo;m having a lot of fun with it so far.</p>
<p>I also got <strong>Bravely Default II</strong> but haven&rsquo;t played it much yet, as I&rsquo;ve been focusing on sea of
stars first, I have played a bit of the two bravely games on the 3ds and quite enjoyed them, and
final fantasy V is one of my favourites, and at least from the opening part of the game this one
feels like a final fantasy game that went more through keeping on the turn based train than
yearning for being an action game, as most of the newer final fantasy games seem to do.</p>
<p>I had some rests of the money that I had to use at the indoor mall, so the last little bit I just
converted into some android giftcards and I got a couple of phone games</p>
<p><strong>Halls of Torment</strong> which is basically vampire survivors with a diablo I / II skin on it, and
it&rsquo;s pretty fun so far, while not being something stellar, it&rsquo;s still entertaining, and just like
vampire survivors, it&rsquo;s good brainless fun to just go through a run or two.</p>
<p>I also got <strong>Dawncaster</strong> since I&rsquo;ve been kind of jonesing for a card game, and for some reason it
feels like the phone is just a good place for card games, I just haven&rsquo;t put much time into it yet,
so I don&rsquo;t really have much to say about it.</p>
<p>For some other small ones I got <strong>Tiny terraces</strong> which seems to be kind of an idle growing stuff
game and <strong>Zookeeper DX</strong> which is a simple match 3 game.</p>
<h1 id="media">Media</h1>
<p>For media there isn&rsquo;t much new on my side, I&rsquo;m still enjoying my podcasts when I&rsquo;m out on walks,
slowly working my way through some backlogs and so on. <strong>Olexa</strong> one of my favourite youtube games
person is doing a fun christmas celebration thing where he&rsquo;s donating money to the extra life
charity, and playing some of the games that we enjoyed the most through the year, which is always
really fun.</p>
<p>And that&rsquo;s about it for this week I think.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 48</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-48/</link>
      <pubDate>Mon, 01 Dec 2025 08:32:41 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-48/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been another hellish week, with being on call, and things not working, so that I&amp;rsquo;ve been&#xA;working more than other times, and being quite sleep deprived also didn&amp;rsquo;t really help that much.&#xA;Since my brain was rather mushy I was keeping on doing simple stuff and just get through it. I think&#xA;this week will be better, it&amp;rsquo;s a bit stressful since I&amp;rsquo;m going to have to get some christmas&#xA;presents bought, so that I can send them to Norway and hopefully arrive around christmas, so I have&#xA;to brave the shopping mall, in which I haven&amp;rsquo;t set foot since last christmas. There is also the&#xA;first work christmas celebration, and since I&amp;rsquo;ve been in the company for 10 years now I will have to&#xA;go up in front of everyone, which is stressing me out for some reason, even though it&amp;rsquo;s not really a&#xA;big deal. Well, at least through this week, and then next week I will have to get my Austrian ID&#xA;card thingie that is new so that I will be able to still go to the hospital in case something&#xA;happens since it&amp;rsquo;s now being merged with the normal &amp;ldquo;e-card&amp;rdquo; for health services.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It&rsquo;s been another hellish week, with being on call, and things not working, so that I&rsquo;ve been
working more than other times, and being quite sleep deprived also didn&rsquo;t really help that much.
Since my brain was rather mushy I was keeping on doing simple stuff and just get through it. I think
this week will be better, it&rsquo;s a bit stressful since I&rsquo;m going to have to get some christmas
presents bought, so that I can send them to Norway and hopefully arrive around christmas, so I have
to brave the shopping mall, in which I haven&rsquo;t set foot since last christmas. There is also the
first work christmas celebration, and since I&rsquo;ve been in the company for 10 years now I will have to
go up in front of everyone, which is stressing me out for some reason, even though it&rsquo;s not really a
big deal. Well, at least through this week, and then next week I will have to get my Austrian ID
card thingie that is new so that I will be able to still go to the hospital in case something
happens since it&rsquo;s now being merged with the normal &ldquo;e-card&rdquo; for health services.</p>
<p>So I feel stressed, things aren&rsquo;t really fitting into my normal patterns, which makes me feel
unround and worked up, for nothing really, which is annoying, but it&rsquo;s how things are I guess, I
just have to go with the flow, and hopefully get everything in order.</p>
<h1 id="books">Books</h1>
<p>I&rsquo;ve been reading a lot this week, I started getting back into romantic sci-fi books, and they are
quite easy to read, so I get through a lot, and since I do enjoy them a lot I also read quite a lot,
so this week is a whopper.</p>
<p>First one out is <strong>No strings attached</strong> by Maizy Fell, and it really sparked me into reading more
of these, and I had a quite big haul after I got through it, because I just wanted more, this one is
a story about people having a hard time, then working together, it also dares to be silly when
needed, and was a lot of fun all the way through.</p>
<p>After having read the first I also went to the second one in the series, <strong>At your service</strong> also by
Maizy Fell, And it was another <em>warm blanket</em> read for me, just good people being good to each
other, some good story, and some good sex. It&rsquo;s just nice reading some books that don&rsquo;t focus on
violence and things being dour and sad, and now when it&rsquo;s dark out most of the time when I&rsquo;m not
working it&rsquo;s good to have another world to dive into.</p>
<p><strong>Strange Love</strong> by Ann Aguirre was the next one, and this was another good story, the alien was
alien enough that the sex part was getting a bit too weird for me, but the rest of the story was
really quite good and heart warming, and it had a really good talking dog character, which was a lot
of fun, he really was my favourite of the characters in the book.</p>
<p>The last book that I finished in the weekend was <strong>The Gorison Travel Incident</strong> by Laurann Dohner,
and this was one of those book that has the typical bare chested guy with a photoshop filter on the
cover books, but the story was fun, it just felt a bit rushed towards the end, as if the story
didn&rsquo;t really have time to play out in the amount of pages on the book, there are however more books
in the series, so I&rsquo;ll go on with them later.</p>
<p>And that one also was quickly through, so I got to start out on the next book too, which is <strong>Shoot
the Messenger</strong> by Pippa DaCosta. This one seems to be more of a mixed sci-fi fantasy book, and from
what I gather the more romantic parts are coming later in the series, it also seems like it&rsquo;s going
to deal with a more poly relationship thing, which is probably going to be fun, so far it&rsquo;s been
more a straight forward action story, which also has been fun.</p>
<h1 id="games">Games</h1>
<p>Most of my time went by to reading this week, so I just haven&rsquo;t played much, I also was pretty mushy
headed after working over night by being on call, so while I got in a run or two of <strong>Mr Sun&rsquo;s
hatbox</strong> the only thing I played quite a bit of was <strong>Siralim: Ultimate</strong> It&rsquo;s still fun to grind up
different things, getting new monsters creating new teams and trying them out, delving deeper and
deeper down in the different dungeons and so on. It&rsquo;s nice in that I can just decide for each little
15 min dungeon if I want something simple and easy, or if I want something more challenging, so it&rsquo;s
pretty adaptable to how I feel, or how much I can deal with, at the time, and there is something
that&rsquo;s just comforting about it&rsquo;s grindy play that just speaks to me.</p>
<h1 id="media">Media</h1>
<p>For media I&rsquo;ve been listening to some mix of music, some melodeath with <strong>Children of Bodom</strong> and
<strong>In flames</strong> and for my reading time mostly some happy hardcore and euphoric hardstyle mixes, for
some reason they have set as reading music to me, I enjoy the happy uplifting melodies while
reading.</p>
<p>Podcasts have been more or less on the normal schedule, just that some of them are taking
thanksgiving off, I&rsquo;ve heard that is a big thing in the US, here it&rsquo;s just the day where nothing new
comes from over there, there will probably be quite a bit of differences in the schedule the next
weeks as people are often also taking christmas off, but we&rsquo;ll see how it turns out, at least I have
the game of the year episodes that comes out in the end of the month to look forward to.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 47</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-47/</link>
      <pubDate>Mon, 24 Nov 2025 15:31:19 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-47/</guid>
      <description>&lt;p&gt;This has been another stressful week, in addition my left ancle had a sore tendon, so I wasn&amp;rsquo;t&#xA;really able to walk much through the week. It&amp;rsquo;s not really hurting anymore now, and I&amp;rsquo;m not limping&#xA;around anymore, but I&amp;rsquo;m still taking it a bit more carefully, to make sure that it doesn&amp;rsquo;t flare up&#xA;again. It sucks getting older.&lt;/p&gt;&#xA;&lt;p&gt;I hope things at work will calm down a bit, it seems like November is the full change things around&#xA;month, and everything is in turmoil, last year at least it calmed down again in december, but we&#xA;will have to wait and see, there is still this week to go, and then it will be through.. hopefully..&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This has been another stressful week, in addition my left ancle had a sore tendon, so I wasn&rsquo;t
really able to walk much through the week. It&rsquo;s not really hurting anymore now, and I&rsquo;m not limping
around anymore, but I&rsquo;m still taking it a bit more carefully, to make sure that it doesn&rsquo;t flare up
again. It sucks getting older.</p>
<p>I hope things at work will calm down a bit, it seems like November is the full change things around
month, and everything is in turmoil, last year at least it calmed down again in december, but we
will have to wait and see, there is still this week to go, and then it will be through.. hopefully..</p>
<h1 id="books">Books</h1>
<p>I finished up <strong>Head Case</strong> by M. R. Forbes, and it was quite fun. That&rsquo;s not to say I think the
book was amazing, but it was silly fun, it was quite a lot more entertaining than the first one in
the series, and a bit less cringey, which was nice, I&rsquo;m not quite sure what I will read next, as I
didn&rsquo;t really get around to decide yesterday after finishing the book, it was time to go to sleep.
It was a quick one, I managed to get through it in a week even though I had 2 days less of reading,
one because I was out drinking with a collegue after work, and another because I was just exhausted
and fell asleep before I got to read.</p>
<p>It&rsquo;s a while since I was getting some new books, I&rsquo;ve been mostly been reading stuff I have, but
haven&rsquo;t read yet, maybe it&rsquo;s getting time to get some new ones again, I don&rsquo;t know, will have to
see.</p>
<h1 id="games">Games</h1>
<p>When it comes to games I&rsquo;ve still mostly been playing <strong>Siralim: Ultimate</strong> still having fun
grinding out things, creating new teams, and just working on different things, the enemy monsters
are now regularly up at 2-3x the levels of my team, so it&rsquo;s getting at times a bit more tricky, but
it&rsquo;s fun still, I just think I need to play something else in between, so that I&rsquo;m not burning
myself out on it.</p>
<p>So.. ..there was a sale again, and I got two games that I have been looking at, the first one being
<strong>Mr Sun&rsquo;s Hatbox</strong> which is a really fun little game, it&rsquo;s a 2D sidescrolling stealth slap-stick
rogue lite, and it&rsquo;s quite fun, just running around trying not to be seen, and when you are hilarity
ensues, and it&rsquo;s trying to control the chaos and hope that the character you spent some runs
training up doesn&rsquo;t die on you. I&rsquo;ve been really enjoying this one, it&rsquo;s just fun, and manageable
for me, since it&rsquo;s a 2D sidescroller, which just fits my brain better.</p>
<p>And the second one that I got was <strong>Terra Nil</strong> which is kind of an opposite city builder that I&rsquo;ve
been eyeing for a while. You basically come to a world that is complete wasteland, and you have to
terraform and fix the landscape, building up different biomes, and make them suitible for different
animals, it&rsquo;s just a really nice game to look at, with really nice pixel graphics, and it just feels
good to rebuild nature, and feel a bit nice about it, rather than thinking about how humanity is
just a scurge that is destroying everything.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve been having a huge backlog of podcasts to work through the last weeks, but I finally have that
under control again, and things are more as normal, which means I get to listen to more of the old
<strong>Videogame Podtimism</strong> episodes that I haven&rsquo;t listened to, there is still ~60 left before I have
listened to all of their episodes.</p>
<p>Another one that I&rsquo;ve enjoyed the last week is <strong>Escape this Pod</strong> which is kind of audio escape
rooms, so kind of like a pen and paper roleplaying escape room, they have had quite entertaining
people on in the beginning at least, so it&rsquo;s one that I think I will listen to a bit more in the
future, and hope that they keep on being fun.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 46</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-46/</link>
      <pubDate>Tue, 18 Nov 2025 09:14:10 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-46/</guid>
      <description>&lt;p&gt;The stressful weeks are going on, it seems like november is a really stressful month for me every&#xA;year, it&amp;rsquo;s the month in the year where I have the most overtime, and most just stuff shoveled on top&#xA;of me to deal with, but at least usually it calms down in december, so at least that is something. I&#xA;also managed to hurt my foot this week, which also always seems to happen around Autumn, not quite&#xA;sure why, but it happened again.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>The stressful weeks are going on, it seems like november is a really stressful month for me every
year, it&rsquo;s the month in the year where I have the most overtime, and most just stuff shoveled on top
of me to deal with, but at least usually it calms down in december, so at least that is something. I
also managed to hurt my foot this week, which also always seems to happen around Autumn, not quite
sure why, but it happened again.</p>
<h1 id="books">Books</h1>
<p>I finished out <strong>Vast</strong> by Linda Nagata, and it&rsquo;s the best book I&rsquo;ve read of hers so far, it just
feels warmer, the characters feel less mean, and most of the book was less mean to the characters as
well, which was nice. It&rsquo;s far future stuff, and kind of gets uncanny in that it&rsquo;s really hard for
me to say what is coming on which was kind of fun. It has quite a bit of imaginative stuff in it,
and I quite liked it, the end veered a bit too close to horror for my taste, but that was just the
end of it.</p>
<p>Since vast was a pretty heavy book, I decided to go for something a bit more easy to read I have the
spaceship for sale series all from some time ago, and I didn&rsquo;t really enjoy the first book too much,
but I&rsquo;ll give the second one a try, and see if that is better, so <strong>Head Case</strong> it is, hopefully it
will be enjoyable.</p>
<h1 id="games">Games</h1>
<p>Because of stress at work I gravitate to comfort style games, games I already know, and this week
has been basically 2 games.</p>
<p><strong>Siralim: Ultimate</strong>: I&rsquo;ve played through the &ldquo;tutorial&rdquo; which is basically the story part, and now
that that is done, and I don&rsquo;t have to care about the story, the game just opens up, and feels a lot
better, it&rsquo;s pretty good at intensivising me at doing different things, building up new teams around
new specialisations, delve deeper, delve wider, there is just a lot of things to do, and the grind
heavy gameplay just fits very well to me when I&rsquo;m feeling tired in my head. It&rsquo;s a really fun game
that see a bit too little love I feel.</p>
<p>The second game is <strong>Hades</strong>, I did play it a bit when it came out, and I&rsquo;m watching a let&rsquo;s play of
Hades II so I thought I would give it another try again. It&rsquo;s pretty much as I remember it, the
story elements, and unlocking things is fun, and the art is beautiful, but I don&rsquo;t really enjoy the
action combat that much, I&rsquo;ve activated god-mode, and hope that it will make it possible for me to
get through it, we&rsquo;ll see, I only have like 5 runs in and have gotten to the hydra ones, the last
time I got to Hades a couple of times after 50 or so runs, so I&rsquo;m probably still a far way away from
that.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve been having a lot of podcasts to listen to, as it seems like a lot dropped towards the end of
last month, and now I&rsquo;ve finally gotten to a place where I have my usual queue length, which is
nice, because I really enjoy listening to some stuff more than others, most of which are dependent
on mood, some of it I just always enjoy.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Re Re Reassess Time Spent Enjoying Luxury</title>
      <link>https://sotolf.codeberg.page/posts/re-re-reassess-time-spent-enjoying-luxury/</link>
      <pubDate>Fri, 14 Nov 2025 09:46:22 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/re-re-reassess-time-spent-enjoying-luxury/</guid>
      <description>&lt;h1 id=&#34;re-re-reassess-time-spent-enjoying-luxury&#34;&gt;Re: Re: Reassess time spent enjoying luxury&lt;/h1&gt;&#xA;&lt;p&gt;So, I read &lt;a href=&#34;https://joelchrono.xyz/blog/reassess-time-spent-enjoying-luxury/&#34;&gt;this blog by&#xA;Joel&lt;/a&gt; which was talking about&#xA;&lt;a href=&#34;https://lwgrs.bearblog.dev/reassess-time-spent-enjoying-luxury/&#34;&gt;This post by Steve&lt;/a&gt; and thought,&#xA;why not continue on the chain.&lt;/p&gt;&#xA;&lt;p&gt;Now my circumstances are pretty different from both of theirs, I live alone, so technichally I can&#xA;do whatever I want to, whenever I want to. I also live a really long way away from family and so on,&#xA;so for me the thing hogging my time is mostly work.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h1 id="re-re-reassess-time-spent-enjoying-luxury">Re: Re: Reassess time spent enjoying luxury</h1>
<p>So, I read <a href="https://joelchrono.xyz/blog/reassess-time-spent-enjoying-luxury/">this blog by
Joel</a> which was talking about
<a href="https://lwgrs.bearblog.dev/reassess-time-spent-enjoying-luxury/">This post by Steve</a> and thought,
why not continue on the chain.</p>
<p>Now my circumstances are pretty different from both of theirs, I live alone, so technichally I can
do whatever I want to, whenever I want to. I also live a really long way away from family and so on,
so for me the thing hogging my time is mostly work.</p>
<p>So every day goes in a pretty normal pattern over the week, I&rsquo;m one of those people that Joel is
talking about that work on block times, mostly for the weekdays everything goes in the same pattern,
I work, I get home, relax a bit, eat supper, and then I have a block of 2 hrs of reading before I go
to sleep, and repeat the next day, I also have set days for everything, so I shop groceries on
monday, get my nicotine pouches on friday, and so on. I find the patterns comfy, since I don&rsquo;t
really have to think, and decide things (which I really don&rsquo;t like much at least with time
pressure). And that&rsquo;s basically it for the week days.</p>
<p>Then friday and weekend comes around and turns everything on it&rsquo;s head, I don&rsquo;t have obligations, so
I can stay up a bit longer, and I can do some other things, one of the luxuries that I enjoy the
most is just taking a really long walk, most of my saturdays is a 30 km or so walk listening to some
podcasts, and just enjoy moving, looking at the really nice views around here (Living right next to
the Alps really have some nice perks some times) listening to podcasts and letting my mind wander.
It&rsquo;s just nice knowing I can keep on walking as long as I want to, and I don&rsquo;t really have to
talking with people and other things that can be hard and bothersome at times.</p>
<p>Mostly I don&rsquo;t read that much over the weekend, unless I&rsquo;m really into my current book, which
happens, which means that the weekend reading usually because of that is more joyous, and I have
good memories to it. I really like Fridays and Saturdays, because they are my me-days, where I can
do stuff I want to, sunday is less great, everything is closed, and I still have to go to bed early
to get started with the week again.</p>
<p>I luckily never got into ticktock or youtube shorts, and I don&rsquo;t really have much algorithmic media
in my life any more, but I still some times get into a youtube rabbit hole where I watch a lot of
videos on a topic, mostly weekends are the time where I watch the long form videos that I didn&rsquo;t get
around to watching over the week, since my time is a lot more limited then.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 45</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-45/</link>
      <pubDate>Mon, 10 Nov 2025 11:46:54 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-45/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been kind of a weird messy week, with lots of stuff going on at work, in one way it&amp;rsquo;s good,&#xA;since I don&amp;rsquo;t get bored, there is always new things that needs to be fixed, new fires to put out.&#xA;But I hope that it will be a bit of a calm down, because around christmas it&amp;rsquo;s usually really quite&#xA;a lot going on at our work anyway, at least the first couple of weeks of advent.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It&rsquo;s been kind of a weird messy week, with lots of stuff going on at work, in one way it&rsquo;s good,
since I don&rsquo;t get bored, there is always new things that needs to be fixed, new fires to put out.
But I hope that it will be a bit of a calm down, because around christmas it&rsquo;s usually really quite
a lot going on at our work anyway, at least the first couple of weeks of advent.</p>
<p>I was also in 5 hrs at work over the weekend helping with a migration so the weekend was a bit
shorter than normally, but well, at least I&rsquo;m keeping on going.</p>
<h1 id="books">Books</h1>
<p>I finished up <strong>Roadside Picnic</strong> by the Strugatsky brothers, and I understand now where the whole
stalker and entire game genres come from, it was pretty fascinating reading through, but also not
quite my thing, since most of the people where assholes to each other 90% of the time, and there was
constant chainsmoking and drinking all the time, but it was a short one, so it wasn&rsquo;t that much of
it at least.</p>
<p>When I finished up that I though I&rsquo;ll continue on on another series that I have liked, but not loved
so far with <strong>Vast</strong> by Linda Nagata. The first book in the series had the same asshole problem that
Roadside Picnic had, the second one was better. The whole series is quite good at putting me in a
kind of icky uncomfortable place, since it&rsquo;s kind of very far future stuff, and the humans often
feel almost as alien as the aliens. We&rsquo;ll see, hopefully the upwards trajectory so far through the
series is contiuning on.</p>
<h1 id="games">Games</h1>
<p>This has been another back and forth week of gaming, I seem to have fallen into a pattern of playing
bits of pieces more than I usually do, so again this is kind of a long list.</p>
<p><strong>Ball X Pit</strong> is one that I have now kind of gotten into a comfortable pattern of, it&rsquo;s a game that
I have figured out now is best played for about an hour, doing some progress and then playing
something else, that way it&rsquo;s not growing too old, one hour is about 4 runs in, and that&rsquo;s just
enough, funnily enough, now that I got it on my switch I feel like the game is less addictive than
it was, and I see that as a good thing.</p>
<p>I&rsquo;ve also been plugging away at <strong>Etrian Oddyssey III</strong> and it&rsquo;s a comforting game, take another
delve into the labyrinth, gather stuff, sell, get a bit better, and do the same thing again, It&rsquo;s
also just really fun to explore in the first person view, and it just is a very calming game to me.
Etrian Odyssey was what got me into this genere, and I think it will stay one of the ones that I&rsquo;ll
enjoy the most.</p>
<p>For a couple of hours I also did some of <strong>Labyrynth of Refrain</strong>, and it&rsquo;s slowly starting to put
in more and more stuff, and the game is starting to get a bit more interesting, I&rsquo;m kind of happy
that it&rsquo;s slow rolling stuff out, it&rsquo;s a bit easier to follow along, but it seems an interesting
game so far at least.</p>
<p>I also started a new save on an old favourite of mine, <strong>Siralim, Ultimate</strong> which is a really nice
creature collector, and one that is very much in how I like them, there&rsquo;s just a lot of stuff
everywhere that you gather together, and a lot of monsters that each have their own traits that you
have to mix and match to create a synergistic team, at times it feels more like a deck builder than
a monster collector, in a good way.</p>
<p>I finally managed to win a Normal run of <strong>Slice and Dice</strong> I kind of had lost hope that i would
manage, but I actually had a successful run there, now the squad each died multiple times and got
resurected, but a win is a win :p It&rsquo;s still a fun game to play in small intervals, so I just play a
couple of fights now and then. I think I will just keep playing on normal or easy for now, because
it just is more fun for me, I&rsquo;m not that great at it.</p>
<h1 id="media">Media</h1>
<p>For some reason there was a big influx of podcasts this week, and my list is huge of things that I
want to get listened to, my queue is way larger than normal, so there I have something to work on.</p>
<p>This section was a bit meager this week, but that&rsquo;s mostly because I don&rsquo;t really think that there
was too much that was out of the ordinary really, at least that I can remember now :)</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 44</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-44/</link>
      <pubDate>Mon, 03 Nov 2025 09:28:00 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-44/</guid>
      <description>&lt;p&gt;After a couple of challenging weeks for me, both at work and personally, I think things are finally&#xA;starting to get together, I&amp;rsquo;ve got most of the most urgent things at work under control finally, I&#xA;think I have managed to convince my manager again that I have no use for an LLM, and I have managed&#xA;to get to some things that I really enjoyed in my spare time.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>After a couple of challenging weeks for me, both at work and personally, I think things are finally
starting to get together, I&rsquo;ve got most of the most urgent things at work under control finally, I
think I have managed to convince my manager again that I have no use for an LLM, and I have managed
to get to some things that I really enjoyed in my spare time.</p>
<p>The weekend was annoying, since the 1st of November is a national holiday here this was a weekend
with practically 2 Sundays in a row, which is kind of annoying since I usually stop by the grocery
store for some food in the middle or so of my walk, at least this time I knew before though, so that
I didn&rsquo;t go out for a long walk and stand hungry in front of a locked store.</p>
<h1 id="books">Books</h1>
<p>This week has been a simple week, I&rsquo;ve been reading through <strong>Network Effect</strong> by Martha Wells, the
last one of the murderbot series that I have at least, and I really liked this one a lot more than
the others, finally this one is long enough that you have time for story arcs and some more intrigue
than what you get from an approaching novella length book. I enjoyed this one a lot, and now I&rsquo;ll
have to decide what to read next.</p>
<h1 id="games">Games</h1>
<p>For the beginning of the week I started playing <strong>Etrian Odyssey III</strong> again, or continued on where
I left off the last time, and it was easier to get back into than what I thought it would be, after
one little excursion in the labyrinths it all started to come back, and I still really enjoy the
exploration of this game, it&rsquo;s just a joy running through the labyrinth and slowly getting a better
and better feel for it, having the map update as you get to know more, shortcuts, different places
etc, it&rsquo;s just a lot of fun. And it&rsquo;s one that I&rsquo;ve been playing for most of the week, and probably
will be doing on and off, taking one &rsquo;nother dive down.</p>
<p>In the weekend I did fall into a shopping spree and got some games, first of all <strong>Labyrinth of
Refrain: Coven of dusk</strong> Which is a DRPG that I&rsquo;ve been eyeing for a while, which was spurred by my
deepdive into the genre in the beginning of the year, it&rsquo;s one that I will focus on later after
Etrian Odyssey III I think, from the 2 or so hours that I played of it so far it seems to have a ton
of systems and things to fiddle with, so I&rsquo;m pretty sure that will be fun.</p>
<p>I also got <strong>BALL X PIT</strong> which I tested out as a pirate copy for a while, and enjoyed it so much I
found it was worth paying for, now I just have to replay to get back to where I was, and it&rsquo;s a bit
of an issue because my left joystick on my switch has some issues, but it&rsquo;s not really enough to
make it really bad, I just have to control it a bit counterintuitively for a while, it is nice to
play on the couch rather than in front of the PC though, and it&rsquo;s a really good podcast game, and a
game for when I don&rsquo;t really want to think to deeply, just have some fun with something that is
quite engaging, it&rsquo;s also a lot of difference between the characters which makes this one a really
quite enjoyable game.</p>
<p><strong>Moonlighter</strong> is another one that I have been eyeing for a while, and now it was on a really deep
sale with the whole game with dlcs for 3€ so I did pull the trigger and get it this time, I&rsquo;ve just
played a tiny bit, but it feels like a fun little game.</p>
<p>I was listening to the <a href="https://www.patreon.com/cw/PostGames">post games podcast</a> where Chris Plante
was interviewing Xelavier Nelson from <a href="https://www.strangescaffold.com/">strange scaffold</a> which
really was great, and I decided getting one of their games, as all of their games it has a fun name,
and it looked the most fun of the ones I looked at <strong>Space Warlord Organ Trading Simulator</strong> and
it&rsquo;s one that I will probably jump into when I feel in the mood for something like that, humour and
music looks really on point at least from the tiny fiddling I did with it.</p>
<p>So with having spent money and interest into these game, they surely are the ones that I played over
the weekend? Ehm, not really, I ended up playing <strong>Backpack Hero</strong> for most of the weekend, and I
really enjoyed jumping into this one, it really reminded me why I liked this one so much the last
time I played it, it&rsquo;s a fun roguelike that really eases you into the game, with the first runs
being just the first part, and then slowly expanding. It also has a lot of small challenges that
lets you learn how the different kinds of builds work, and it&rsquo;s just a lot of fun playing with
different characters and builds. It&rsquo;s something that made me think again, something that I really
enjoy in a game is when it nudges me into play with something that I wouldn&rsquo;t consider in the first
place, it&rsquo;s just really enjoyable to figure out and deal with what you&rsquo;ve got. I also really enjoy
the art and the really cozy characters in this one, everyone seems to want everyone else to be
happy, and the more annoying characters still want everyone to be happy, they just want to be the
one that makes everyone else happy.</p>
<h1 id="media">Media</h1>
<p>Like I mentioned in the games section, I started listening to some episodes of <strong>Post games</strong> and
it&rsquo;s quite a good one, it&rsquo;s kind of a guest heavy show, so it&rsquo;s one that lives and dies on the
guest, it&rsquo;s good if they have a good guest, and not if the guest isn&rsquo;t someone I enjoy, so I&rsquo;ll
leave this off autodownload and just grab the ones that sound interesting to me.</p>
<p>Apart from that I&rsquo;ve been listening to the same ones as ever, and I&rsquo;m still going strong on my
catching up on <strong>Videogame Podtimism</strong> getting really close now, and then I have to find another one
to relisten to.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 43</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-43/</link>
      <pubDate>Mon, 27 Oct 2025 10:50:58 +0100</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-43/</guid>
      <description>&lt;p&gt;This was the first real week of work after my vacation, and it already feels so far away, I don&amp;rsquo;t&#xA;know now it kind of feels like it already is months away, even though it&amp;rsquo;s just a couple of weeks&#xA;ago, that&amp;rsquo;s kind of weird isn&amp;rsquo;t it. Well I went through the week in kind of a weird mood, and I&#xA;kind of have the same feeling again, maybe it&amp;rsquo;s just post vacation blues, I don&amp;rsquo;t know, but I hope&#xA;I will get back to a more normal feeling again soon, it will be nice to get back to my normal&#xA;plucky self.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This was the first real week of work after my vacation, and it already feels so far away, I don&rsquo;t
know now it kind of feels like it already is months away, even though it&rsquo;s just a couple of weeks
ago, that&rsquo;s kind of weird isn&rsquo;t it. Well I went through the week in kind of a weird mood, and I
kind of have the same feeling again, maybe it&rsquo;s just post vacation blues, I don&rsquo;t know, but I hope
I will get back to a more normal feeling again soon, it will be nice to get back to my normal
plucky self.</p>
<h1 id="books">Books</h1>
<p>I&rsquo;ve been continuing on with <strong>A Desolution Called Peace</strong>, only 2 chapters left now, I&rsquo;ve been
enjoying the book, but it still kind of feels like it wasn&rsquo;t as good as the first one, the
characters don&rsquo;t feel as good as they did in the first book, and I have a lot more drive to read
on, the first book got up to compulsive levels. It&rsquo;s still a good book though, I just had expected
it to grab me more as I usually really enjoy first contact books.</p>
<p>I&rsquo;m kind of in a bind of what to read next, I think I&rsquo;m through most of the stuff that I was really
excited about that I had in my queue now, but I do have a lot of stuff still lying around, so
hopefully I will find something that feels like it will be fun.</p>
<h1 id="games">Games</h1>
<p>It&rsquo;s been another week of going back and forth, not really finding something that sparks a lot of
joy, I&rsquo;ve been keeping on trying some things, and hopefully I get that spark that tells me what
will be fun again.</p>
<p>I&rsquo;ve had some more runs of <strong>Dead Cells</strong> it&rsquo;s still pretty fun, and the fighting is still fluid
and great, but I&rsquo;m kind of getting stuck in a rut here without really feeling that I&rsquo;m making much
progress, I get to the same places, and it usually ends the run, I may need to rethink how I do
some things, or just bash my head at it again for a while until I get through. It still feels
great, and I still do a couple of runs each week.</p>
<p>I did some more nonograms in <strong>Piczle cross: Rune Factory</strong> and I&rsquo;m now a bit over half way
through, It has gotten to a point where they aren&rsquo;t as relaxing as they were, due to the size and
counting, so it&rsquo;s no longer as easy to sit down with when I&rsquo;m just feeling tired, but it&rsquo;s still
quite nice, and I do like doing picross puzzles, I guess I just have to get more proficient and
used to the harder difficulty ones that it&rsquo;s still fun.</p>
<p>Another one that I started this week again was <strong>Monster Sanctuary</strong> and it&rsquo;s a kind of
metroidvania creature collector mashup, it&rsquo;s kind of hard to say why I don&rsquo;t really fit too well
with it, it&rsquo;s a fun game, and I enjoy playing it, it&rsquo;s just kind of a weird stop in the action
going from metroidvaniaing around and then going into creature battles, I will for sure come back
to it, but it did all feel a bit overwhelming this time since there are so many stats, for each
creature, then equipment, and food, and I kind of just am thinking that I might not be doing things
right, so I think this is just not the time.</p>
<p>Towards the end of the week I continued on with <strong>Megaman Battle Network</strong> the first one, and it&rsquo;s
a fun game, the battling is fun, though it&rsquo;s pretty constant due to the really huge encounter rate
in this one, and the maps are really confusing with their isometric nature, it makes it
unneccessarily hard to figure out how to get around, in addition the game is not that great at
telling you what you are supposed to do at each point, I&rsquo;m currently trying to fix some water
issues in the city, and have gotten through a weird panel puzzle that was not especially fun to do
since 70% of it was obscured by layers laying over it, but I think I will be keeping on with it,
I&rsquo;m looking foreward to going on with the next games which from what I heard are doing better, and
fixing some of the shortcomings of the first one.</p>
<p><strong>Vampire survivors</strong> is still quite fun in a brain off mode, and I played a couple of runs, my
biggest issue with it is that 30 minute runs are quite long, I have done 270 or so of the 360
unlocks, so at least I&rsquo;m nearing something, but it will take some time before I get all the unlocks
done.</p>
<p>And at last I have been playing <strong>BallXPit</strong> It&rsquo;s a fun mashup of a vampire survivors game and
something like holedown. It&rsquo;s really fun, and it&rsquo;s kind of an issue, because it&rsquo;s one of those that
suck me in, and has that tight loop that makes it so easy to get caught in it and play more than I
originally wanted. It&rsquo;s satisfying bouncing balls around, seeing them getting better, and getting
new characters and mechanics, but it&rsquo;s one that I have to take care when playing, and at best set a
timer to make sure that I don&rsquo;t overplay it, it&rsquo;s addictive, but not in a way I&rsquo;m sure is good for
me, it kind of feels more like one of those mobile games that wants to get you stuck in playing,
thankfully it doesn&rsquo;t have the mobile monetisation, but the kind of compulsion thing that it does
is making me feel a bit less good about a game that is really fun.</p>
<h1 id="media">Media</h1>
<p>My podcast app showed me that I have already listened to more podcasts this year so far than I did
the whole of last year, so I seemed to have done a lot of listening as it wasn&rsquo;t a small amount
last year either. Some of it might be from listening to the backlog of <strong>videogame podtimism</strong> but
I am pretty happy with it. I like having my own little customised radio channel that plays things
that I enjoy, and I can listen to whenever I feel like.</p>
<p>I was also watching some old series by people that I enjoy, and emptying out my to view queue in
newpipe, so I have to get some new stuff to watch, and see if I find something else fun to watch.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 42</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-42/</link>
      <pubDate>Mon, 20 Oct 2025 08:25:52 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-42/</guid>
      <description>&lt;p&gt;I missed out on writing this last week since I was on vacation in Praha, it was nice, but quite&#xA;stressfull as I wanted to see as many things as possible over the 3-ish days that I had. 120 000&#xA;steps in 4 days was tiring though, so I was happy that I had some days afterwards to recover before&#xA;I was going to work again. Some of the updates probably will be rather large as I still did manage&#xA;to do some things as well.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I missed out on writing this last week since I was on vacation in Praha, it was nice, but quite
stressfull as I wanted to see as many things as possible over the 3-ish days that I had. 120 000
steps in 4 days was tiring though, so I was happy that I had some days afterwards to recover before
I was going to work again. Some of the updates probably will be rather large as I still did manage
to do some things as well.</p>
<h1 id="books">Books</h1>
<p>I finished off <strong>Ancillary Mercy</strong> and I really enjoyed the ending of the book, it was kind of a
very open ending which was nice, not one of the ones where every single little thread was tied up
and then a bow at the end, but it was a really quite enjoyable end to the series all in all.</p>
<p>I also read <strong>Exit Strategy</strong>, the 4th Murderbot book, and it was very similar to the other ones in
the series, it was a fun read, but as normal kind of too short to really feel satisfying.</p>
<p>In Prague I bought <strong>A Memory Called Empire</strong> which I really enjoyed, reading most of it on the
train ride back from Praha, this one felt kind of like a mix between the Meg Pechenick books that I
read last year, and Cherryh&rsquo;s Foreigner series, it was a really enjoyable read, and a nice way to
use 9 hours on the train.</p>
<p>And the last one for this section I started reading the next book in what I think is the duology
that the last book started <strong>A Desolution Called Peace</strong> (Wow I kind of feel that&rsquo;s a very
pretentious name, but what goes) And it&rsquo;s one that is a bit more work to get into than the first one
for some reason, but I think this one will be a fun one as well.</p>
<h1 id="games">Games</h1>
<p>I&rsquo;ve been playing quite a bit of <strong>Dead Cells</strong> through these weeks, so much so that I&rsquo;m starting to
take some breaks playing some other stuff in between, so that I don&rsquo;t burn out on a really fun game.
I think I have gotten most of the movement upgrades now, so the game is quite a lot more open now
than it was, and there really is a lot of stuff in this game, well, I do have all of the four DLCs
also so it should have been quite obvious, but I think I have a lot of more hours of fun in this one
in between.</p>
<p>I only brought my miyoo mini on my trip, since the switch is a bit too large to bring along, so I
started out playing some <strong>Super Metroid</strong> and got pretty far, it&rsquo;s fun, and it&rsquo;s quite impressive
how much they got right in that one, it&rsquo;s just a really well done game.</p>
<p>As I got more tired in my train ride, since I got up at 03:40 in the morning at the end of my trip I
was playing mostly some <strong>Game and Watch Collection 4</strong> for the GBA, which is just a very nice game
to play when my brain is feeling burnt out, I think my favourite of the Game and Watch games is
fire, it&rsquo;s just a really fun one.</p>
<p>I got home from my trip, and I kind of felt in the mood for some creature collector play, so I
started a new save in <strong>Cassette Beasts</strong> which I quite enjoyed, but it felt a bit slow and not
really quite for my mood this time, so I didn&rsquo;t play that long, but I know it&rsquo;s a really fun game,
so I think I will get back to it again, but for now it was just a little bit.</p>
<p>I also played another session of <strong>Bloodstained: Ritual of the Night</strong> and my previous thoughts on
this one still mostly stands, it&rsquo;s still not well optimised for the switch, the movement feels kind
of slow and ratchety, the movement is stiff, and quite a few of the areas and enemies feels kind of
out of place with the last one, some of the bosses are really fun though and fancy, some times it
feels like the switch really is dying trying to render things, and the textures goes down to early
youtube resolution.</p>
<p>So I didn&rsquo;t really end up playing that much of the last one, and figured I&rsquo;d combine the two, and I
started a new save on <strong>Monster Sanctuary</strong> which I have played a bit of before, but didn&rsquo;t really
get that far in, I really enjoyed starting out with it this time, and I think this will be the one
that I will play for a while, and put in some runs of dead cells now and again. It&rsquo;s a fun mix of
metroidvania and creature collector, and while the switch over when you meet an enemy feels a bit
abrupt, it&rsquo;s been quite fun starting out with it again.</p>
<h1 id="media">Media</h1>
<p>I&rsquo;ve been through a ton of podcasts in my half delirium of wanting to see as much of Prague as
possible, the four hour <strong>Into the Aether</strong> episode about Yakuza 0 was a highlight, I also got
through 15 or so episodes from my backlog of <strong>Videogame Podtimism</strong> and quite a bit of other stuff,
some of it feels like it kind of went just through my head as background noise though, in the
confusion of being a completely unknown place to me with a different language, and different money,
but it was nice to have something that I knew and grounded myself with.</p>
<p>As preparation for my trip to prague I did watch quite a bit of <strong>Honest guides to prague</strong> on
youtube, and I&rsquo;m happy that I did, it helped me enjoy the trip a lot more, recommending some places
to eat, and helped really get me out of the really touristy areas and into the city itself. I ended
up walking through many of the wards in the city rather than just the central Prague 1, and it was
nice getting out of the way of the tourist machine and see how real people live. The food was also
way cheaper there. I ended up using so little money that I had to buy some new shoes to use it all
up, which was nice too since I really needed a new pair, the old ones were so used up that I was
almost through the soles, and they had holes.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 40</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-40/</link>
      <pubDate>Mon, 06 Oct 2025 08:54:36 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-40/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve still been working on my cold (or whatever it is) this week, and I was sleeping through most&#xA;of the weekend, so no long walk for me this time, which is kind of sad, and it was kind of annoying&#xA;having next to nothing of my weekend to do anything, but I slept a lot, so my body probably needed&#xA;that. Feeling a bit better now which is good at least, hopefully that will keep on getting better,&#xA;and that I will be fit for my vacation next week.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve still been working on my cold (or whatever it is) this week, and I was sleeping through most
of the weekend, so no long walk for me this time, which is kind of sad, and it was kind of annoying
having next to nothing of my weekend to do anything, but I slept a lot, so my body probably needed
that. Feeling a bit better now which is good at least, hopefully that will keep on getting better,
and that I will be fit for my vacation next week.</p>
<h1 id="books">Books</h1>
<p>I finished out <strong>Ancillary Sword</strong> this week, and it had a nice ending as well, I enjoyed the focus
on this one quite a bit. I have found that I enjoy the drama almost more than the space battles, or
fights, and it&rsquo;s nice to have one at some time of the book, the mysteries and drama is what I enjoy
more than the rest, there are also quite a few show places throughout the system they are in, so
it&rsquo;s not really getting boring, I enjoy this series more for the different characters and how they
are interacting more than the real &ldquo;story&rdquo;.</p>
<p>Having that done I did continue on my murderbot read through with <strong>Rogue Protocol</strong> and it was
very much like the other ones in the series that I have read, the story was fun and fluffy, quite
enjoyable, and then it just ended way to early to really feel satisfying, I still have one more of
the short ones before one that is longer, and then we will see, these are fun, but too short to
feel fulfilling in any way.</p>
<p>And with that one finished I started on the last one in the Empire Radch series <strong>Ancillary Mercy</strong>
and it starts off right after the other one ends, and seems to be more in the vein of that one
than the first one, which I think is a good thing, I hope it will serve as a good end cap to the
series.</p>
<h1 id="games">Games</h1>
<p>So this will be a longer one again, I&rsquo;ve been experimenting a bit more with games and trying out,
and getting some more games again.</p>
<p>I got <strong>Nonogram Katana</strong> for my phone, and it has a really quite good interface for solving on the
phone, it has a lot of in-built puzzles, and a community that is creating more all the time, so it
will be really a long time until I have solved them all. And there is also a fun meta-game with a
lot of stuff that you get resources for by solving puzzles, so I probably will keep on with this
one for a long time.</p>
<p>I have been talking with <a href="https://polymaths.social/@amin">Amin</a> about how I didnt&rsquo; like <strong>Dead
Cells</strong> when I played it the first time, and he was encouraging me to try again, and to not focus
on speeding through the levels to get the speed bonus, but taking my time, and I have been, and
I&rsquo;ve been enjoying it a lot more as a result, I got all the DLC too now, so there are quite a lot
of stuff in there. It really does references exceptionally well, and having played as much indie
stuff as I have it&rsquo;s been so much fun just encountering rooms and weapons and things from other
games. I&rsquo;ve beaten the first boss a couple of times now, and it&rsquo;s just a lot of fun. I think the
conversations we had really put me in a different state of mind that let me focus more on the fun
stuff in the game, and I think this one will be with me for a while.</p>
<p>I also got a couple of more metroidvanias this time, since I kind of felt in that mood, first out
is <strong>Bloodstained: Ritual of the night</strong> I have really enjoyed the iga-vania games and getting this
one that was made after Igurashi left konami has been on my mind for a while, so I finally pulled
the trigger on it, and the first impression is rough, the graphics are kind of not great, it seems
to lean on 3D elements in a way that makes things look cheap, everything looks overly glossy and
kind of wet, which is not a great look, the enemies feel kind of stiff and some times just don&rsquo;t
look like they fit in. Movement is quite restricted, but that&rsquo;s normal for this kind of game in the
beginning, the thing is that in addition the optimisation for the switch is not good, just running
through some of the environments makes the game chug, and it feels at times that the little thing
is screaming for relief in my hands, and I also already had a crash in one of the boss fights. I
think I will give it a bit more time, but it&rsquo;s not the best so far.</p>
<p>The other one that I got was <strong>Ender Lillies: Quietous of the Knight</strong> And this is a way slower
paced battles when I came from the quite fast ones in Dead Cells, focusing more about reading
enemies, and getting through them. I haven&rsquo;t played that much of it yet, but movement feels good,
and I really like that they are marking rooms specifically when you have gotten everything in them.
Graphics are nice, and it runs well, so I think this will be one that I enjoy quite a lot. It&rsquo;s
difficult when they add in groups of enemies, but I think I will enjoy this one, and if I do there
is a sequel out as well. Let&rsquo;s see how well I fare with this one.</p>
<p>I was also playing a bit of <strong>Piczle cross Rune Factory</strong> and I&rsquo;m almost half way through the game,
I got reduced a bit since they added a huge collage for promotion of Guardians of Azuma, but I
won&rsquo;t complain about more puzzles to solve.</p>
<h1 id="media">Media</h1>
<p>This has been kind of a mop-up week for listening to podcasts and watching youtube videos that I
have downloaded, it seems there has been quite a lot of releases of stuff that doesn&rsquo;t usually
release, and I&rsquo;ve been having fun listening to a bigger variety of stuff than what I usually have
been. I&rsquo;ll have to take a little break in my back log listening to videogame podtimism stuff, but
I&rsquo;m sure I will be back there.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Political Ostriches</title>
      <link>https://sotolf.codeberg.page/posts/political-ostriches/</link>
      <pubDate>Tue, 30 Sep 2025 09:15:57 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/political-ostriches/</guid>
      <description>&lt;p&gt;So this is inspired by a blogpost I read today because it was posted by someone on my fediverse&#xA;instance, and it just really rubbed me the wrong way. It was titled as &amp;ldquo;Why I don&amp;rsquo;t talk about&#xA;politics&amp;rdquo; and I was expecting some kind of respectable thing like &amp;ldquo;I just don&amp;rsquo;t care about politics&#xA;that much&amp;rdquo; &amp;ldquo;I&amp;rsquo;m overwhelmed by it and don&amp;rsquo;t have the spoons for it&amp;rdquo; or at least something honest&#xA;like &amp;ldquo;It brings out so many people that disagree with me, which is not a good time&amp;rdquo;.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>So this is inspired by a blogpost I read today because it was posted by someone on my fediverse
instance, and it just really rubbed me the wrong way. It was titled as &ldquo;Why I don&rsquo;t talk about
politics&rdquo; and I was expecting some kind of respectable thing like &ldquo;I just don&rsquo;t care about politics
that much&rdquo; &ldquo;I&rsquo;m overwhelmed by it and don&rsquo;t have the spoons for it&rdquo; or at least something honest
like &ldquo;It brings out so many people that disagree with me, which is not a good time&rdquo;.</p>
<p>So that you can make your own picture of the situation and not only see my side, <a href="https://mtwb.blog/posts/2025/why-i-dont-talk-politics/">here is the link
to the post I&rsquo;m talking about</a> .
Well, yeah talk about something.. I&rsquo;m firmly on the left side of politics, but this is not a
position I came to without thought, or reading, probably more than what was healthy for me at time,
following news, and my own feeling of right and wrong.</p>
<p>My politics is something that I built up as I also worked on figuring out if religion was something
I would be able to subscribe to or not, more than a set in stone &ldquo;This is how it is, and how
everything should be&rdquo; it&rsquo;s always been a fleeting goal for me, I listen to people&rsquo;s arguements, what
they say, and then evaluate it out from the position where I am.</p>
<p>As I have taken more part in discussions and talking with people who are in a different place than
me, be it genderexpression, fiscal positions, minorites, environmental activists or religious people
, things they have said, and the experiences that they have had are things that I have taken with me
into the tapestry of my politics. Now of course some things are things that I&rsquo;m not moveable on, as
in that everyone should be treated with a modicum of respect, as long as they show the same trying,
and somet times even if they don&rsquo;t. Every person deserves to exist freely, and for either a state or a person to want to end that in any way is just wrong.</p>
<p>So enough waffeling about around my own base, and let&rsquo;s start to look at the thing that annoyed me.</p>
<p>Let&rsquo;s start off with the first sentence:</p>
<blockquote>
<p>It’s not like I don’t care about what goes on in the world. I do. But I don’t care about your opinion. It’s not personal, it goes for both sides of the political aisle.</p>
</blockquote>
<p>Yeah, that&rsquo;s all well and good, and if that would be it I wouldn&rsquo;t care, if they don&rsquo;t care then I
don&rsquo;t see why they would dedicate a whole blogpost to it, this is a nice short social media post
that needs no elaboration. But since I&rsquo;m writing this whole thing, you know that&rsquo;s not where it
ends&hellip;</p>
<blockquote>
<p>I think both sides are full of zealots who would watch the world burn if only they could be proven right. And the thing is, if you’re one of those on the far right or the far left, and you can bring yourself to be honest about it, you know I’m right.</p>
</blockquote>
<p>Ehm, shots fired.. I guess.. This is a blatant miscaracterisation of at least the left, watching the
world burn is the opposite of our stance, now I won&rsquo;t speek too much about the far right, I am not a
part of it, but yeah I can see that fitting more to many of them, but making a blanket statement
like that about it is just wild. It&rsquo;s also an equivocation of the two sides which is extremely
dishonest. Not everyone on the fringes are the same, every politically active person is not the
same. And you are not the only person reasoning yourself into your current point of view. Yes other
people are sentient and have their own thoughts and opinons, you are not the main character in
history.</p>
<blockquote>
<p>Someone asked me what my political beliefs are, and my response was as it always is: I think both sides are stupid. I’m a moderate</p>
</blockquote>
<p>Stupid? Really? What a well thought through and deeply argued stanmce that is. So what exactly is
stupid about them, the right&rsquo;s focus on lowering taxes and conservative focus on moving slowly to
keep things as they are? The left&rsquo;s focus on trying to make it possible for everyone to take part in
society? Is it the focus of the left of everyone helping everyone foreward, or the more right view
of giving the people who acheive things more, to encourage growth, what exactly is stupid?</p>
<blockquote>
<p>I also have so little interest in hearing about actual politics from people, because what’s the fucking point? You’re not going to sway me, and for sure you’re not going to be swayed, so why waste our breaths? Let’s talk sports. Then at least when we argue, it will be fun.</p>
</blockquote>
<p>Well, you might not find arguing politics fun or worth it, so then just don&rsquo;t. It&rsquo;s kind of funny
how they are here just thinking that everyone is the same as themselves, I would never be where I am
now, or hold the opinions that I do if I wasn&rsquo;t open to discussions, and having the base empathy of
being able to put myself in others shoes. The point of a discussion is never to &ldquo;win&rdquo; to sway the
other person to admit defeat, but to sow seeds, to exchange opinions and better understand and
communicate with the person you&rsquo;re conversing with. This is not something that is possible if you
enter the conversation as &ldquo;I won&rsquo;t fucking move, you&rsquo;ll submit to my awesome intellect moron&rdquo;, I
mean of course you will get nowhere in a discussion if that&rsquo;s how you enter it. I repeat, the goal
of a discussion is not winning, it&rsquo;s information gathering, and sowing seeds, treating it as
anything else, yeah of course that will leave you frustrated.</p>
<blockquote>
<p>All talking about this shit does is widen the gap.</p>
</blockquote>
<p>Yeah, if the way you enter the discussion is like you wrote earlier, of course that is the result,
if you go in thinking your conversational partner is a moron, of course they will distance
themselves from you, because you&rsquo;re acting like a dick. Nobody wants to associate with a dick.</p>
<p>I&rsquo;ll just skip some more repeating of &ldquo;I think everyone is a moron for not agreeing with me, and
that&rsquo;s pushing them away from me&rdquo; for a bit of brevity.</p>
<blockquote>
<p>The dumb thing is, a lot of us agree about a lot of things.</p>
</blockquote>
<p>And how exactly is agreeing about a lot of things dumb? It&rsquo;s not, we&rsquo;re all human, the variance of
experience and situation isn&rsquo;t really that big, we all live, we all die, we all have people we love,
and things we want to do, we all enjoy good art, of course we agree about most things, and that&rsquo;s a
baseline for any discussion, when we discuss things like politics there is a reason why we don&rsquo;t
talk about things that we agree about, that would kind of nix the point of a discussion in the first
place, we usually reserve the things we agree on to smalltalk and just talking about stuff rather
than in a discussion.</p>
<blockquote>
<p>But we’re driven by the media to focus not on the things that we agree on, but on that which divides us. Why? Because division and hatred make them more money. If we’re busy fighting each other, we can’t protest too much as the ultra wealthy do whatever it is they want to do.</p>
</blockquote>
<p>Now I don&rsquo;t watch much media, but I don&rsquo;t think this is some kind of revelatory point. Everyone
knows this, so what&rsquo;s the point of bringing it up? Again, don&rsquo;t treat every not you person as being
some sheep who can&rsquo;t think for themselves, we are all human beings, both you and me, that I don&rsquo;t
agree with you doesn&rsquo;t mean I&rsquo;m brainwashed by media and just spew talking points I found there,
give others the same leeway you&rsquo;re giving yourself.</p>
<blockquote>
<p>So while one side is hating immigrants and gay people and the other side is hating religious people and gun owners, the Elons of the world are spending their money ensuring nothing is working the way we need it to.</p>
</blockquote>
<p>This is a wild comparison of two things, and it&rsquo;s a crazy thing to say, so I will take a bit of time
to. First of all, see the two groups that the people supposedly hates, on the one side you have
immigrants and LGBTQ+ persons, here you have two intrinsic caracteristics which are something you
cannot change, it&rsquo;s a part of you as a person, then on the other side you have religious people and
gun owners, both things that you choose to get into, and that you can just stop doing if you want
to, to make a comparison like this means setting them as something compareable, which they are not.
Choosing to be religious or owning a gun is not a political thing, I know many lefties who are
religious, and own a gun. Why would lefties &ldquo;hate&rdquo; these things? I assure you we don&rsquo;t, how would we
be able to have a weaponised revolution without weapons, and I don&rsquo;t see what religions have to do
with this at all. Let&rsquo;s take christianity, jesus flipping the tables of the money lenders and
associating with the prostitutes, pretty lefty believes right? So that means in this twisted view of
&ldquo;politics&rdquo; jesus must hate religion. Now lets move over to guns, look at the cubans with Che
Guevarra, or the Vietnamese guerilla warriors, people who absolutely hate guns right?</p>
<p>So what this paints a picture about more than someone standing above, and looking down at people for
being brainwashed MSM-Zombies is someone who just doesn&rsquo;t care, think themselves above others who
are little else than a chinese room to them, philosphical zombies who don&rsquo;t think for themselves,
but regurgitate and hate for some not stated reason.</p>
<blockquote>
<p>I don’t talk about politics, because nobody listens. I prefer spending my time more productively than talking to an immovable object.</p>
</blockquote>
<p>Nobody listens to you, because of the way you talk about others, because of how little empathy you
show in the way you are talking, and in the obvious disdain and lack of belief in their powers of
reason you show. Of course people won&rsquo;t change if you call them stupid before you even begin.</p>
<p>The thing about politics is that you need a baseline of empathy, if you&rsquo;re unable to put yourself in
somebody else&rsquo;s shoes you won&rsquo;t be able to have a good discussion. And a discussion is not necessary
there to sway someone&rsquo;s point of view, rather for an exchange of ideas, and sowing seeds.</p>
<p>The older I get the more I see that everything is in some way politics, and to close oneself off
from being able to take part we would do nothing else than calsify, being unable to change and
becoming a better selve that can look back and be ashamed of something they said before. I think
that is a good thing, it shows that even an oldish person like me can learn, can see and learn from
other people, and I do sincerely believe that we can work together every single one of us to create
a place that is better for everyone. It&rsquo;s not a zero sum game, something you see in everything small
like curb cutouts, and better footpaths, it may be focused on making life easier for one group, but
in the end it shows that doing these things will make a place better for everyone.</p>
<p>Rising tides raises all ships, the world is not a zero sum game, and rather than caracterizing
people you don&rsquo;t agree with as brainless creatures unable of reasoning and thought, we should see
them as they are, flawed human beings like ourselves, and we are way closer than what you think.</p>
<p>Which is why I do talk about politics.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 39</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-39/</link>
      <pubDate>Mon, 29 Sep 2025 09:14:24 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-39/</guid>
      <description>&lt;p&gt;I still have a cold that is hanging on, after a long time, it&amp;rsquo;s annoying, I&amp;rsquo;m kind of weak and&#xA;coughing quite a bit, but well, some time this one too has to lose its grip of me some time.&#xA;This has been kind of a weird detatched week where I&amp;rsquo;ve been going back and forth between everything&#xA;which has been kind of a good thing after weeks of hyperfocus, but lets see, it was a good but&#xA;unfocused week.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I still have a cold that is hanging on, after a long time, it&rsquo;s annoying, I&rsquo;m kind of weak and
coughing quite a bit, but well, some time this one too has to lose its grip of me some time.
This has been kind of a weird detatched week where I&rsquo;ve been going back and forth between everything
which has been kind of a good thing after weeks of hyperfocus, but lets see, it was a good but
unfocused week.</p>
<h1 id="books">Books</h1>
<p>I finished up <strong>There is no antimemetics division</strong>, and it was a quite fun book, it went quite off
the rails in a good way towards the end, I enjoyed the SCP descriptions a lot with their weird
things that I wouldn&rsquo;t have thought off, and the implications that they would have, was less a fan
of more of the horror parts of the story, it&rsquo;s not my kind of thing, but it was a fun story told
broken up which fits with how the minds of the people working in the antimemetics division are.</p>
<p>I have been reading a lot of long and kind of heavy books, so I thought I&rsquo;d read something light and
fluffy, and remembered having kind of enjoyed the first murderbot book, so on wednesday I started
<strong>artificial condition</strong> by Martha Wells, I got started, slowly getting into the book, enjoying the
beginning a lot.. and then it was over, still on wednesday, it was a good book, but I only just got
to get into the world and enjoying it when it was over. Way too short, at least considering how much
I paid for it back in the day.</p>
<p>And then I had to look for something else, it&rsquo;s a couple of books ago that I started the empire
Radch books, so I picked up <strong>Ancillary Sword</strong> and this was a fun world to step back into, and so
far at least I&rsquo;ve been really enjoying it, this feels more space opera in style than the first one,
and there seems to be quite a lot of fun drama, and good times with fun characters, which I enjoy.</p>
<h1 id="games">Games</h1>
<p>After weeks of having a clear thing to hyperfocus on, <strong>silksong</strong> I finally really burned out on
it, I kind of knew it would be happening when my focus was strong for so long, it&rsquo;s kind of annoying
that it happened before I finished at least the base story, but I just woke one day and just
thinking about it made me annoyed, so I need to wait a bit before I dip into that world again,
really wonderful game though and having managed to grip me that hard for so long, in all my time off
thinking about it, or playing the game, it just got too much for me.</p>
<p>What I&rsquo;ve been puttering about the most after that has been playing deckbuilding roguelikes, mostly
<strong>cobalt core</strong> I&rsquo;ve been having a great time with it, probably because it&rsquo;s the one that for me hit
the vibes and the graphics really well, it&rsquo;s extremely clear with which cards does what, and I
really like the different characters, the quips and everything, it just makes it a lot more fun to
play. I have won the normal mode a couple of times, and am now working on getting in a win on hard
to get the one unlock, and then I&rsquo;ll see which one I will focus on, I&rsquo;ll probably be jumping back
and forth, depending on wanting a challenge or just wanting to be able to do something.</p>
<p>I&rsquo;ve had <strong>Meteorfall: journeys</strong> downloaded on my phone for a while, and it&rsquo;s a really fun game that
I played some hours of over the weekend, it&rsquo;s just a fun little game, with the smallest hands you
can have, it&rsquo;s just one card, and you decide if you want to play it, or discard it to get some extra
stamina, it manages to get a lot out of the quite simple mechanics, and while I don&rsquo;t love the
graphic style you can&rsquo;t say that it isn&rsquo;t recogniseable. I remember trying the next game in the
series, krumit&rsquo;s tale, and that not landing at all for me, but this was a fun little thing to play
with.</p>
<p>I&rsquo;ve also been playing around a bit with some picross games, the jupiter&rsquo;s <strong>picross series</strong> and
the <strong>story of seasons / rune factory picross games</strong> Just spent some time solving some riddles, and
having fun with them and relax, it&rsquo;s just a good time, and something that doesn&rsquo;t take too much will
power to get into.</p>
<p>I had a couple of runs in good old <strong>Rogue legacy</strong> and it&rsquo;s still a quite fun timewaster of a game,
it&rsquo;s just nice having some playing with it and getting a bit stronger, just jumping around and
fighting some enemies.</p>
<p>And I had a run in <strong>griftlands</strong> and this is a fun but complex game, I&rsquo;m absolutely garbage at it,
but there are so many fun things in there, and I enjoy the story, and there are a lot of things to
try out, it&rsquo;s one that I probably should spend some more time figuring out, as it&rsquo;s fun to play
around with. There is just a lot of things there, with 2 different decks that you use for different
things, and a story, and trinket, some meta-progression and so on, but I at least enjoyed the start
again.</p>
<p>I did a half run of <strong>slay the spire</strong> and it&rsquo;s still a game that I see is great, and still don&rsquo;t
quite manage to enjoy, and one of a &ldquo;gray demo&rdquo; of <strong>monster train 2</strong> The monster train games do
look like they are worth getting into, they seem pretty fun, and seems to be a bit more friendly
when it comes to giving the player some broken stuff, which is fun for people like me who aren&rsquo;t
that great at the games, but still enjoy them.</p>
<h1 id="media">Media</h1>
<p>At least here is one place where I&rsquo;ve been more stable this week, not jumping that much back and
forth, I&rsquo;ve been feeling kind of more of an urge to listen to more <strong>videogame podtimism</strong> so it&rsquo;s
been what I&rsquo;ve been mostly listening throught the week, I&rsquo;m almost half way through my backlog of
episodes, so we&rsquo;ll see what I will be focusing on after I&rsquo;m through with those, at least I have some
extra listening for a couple of more months.</p>
<p>The <strong>eggplant</strong> podcast&rsquo;s year of UFO50 is done now, and it has been mostly a fun run of
discussions on the game, funnily enough it has been kind of keeping me from playing it for some
weird reason that I don&rsquo;t quite understand, so maybe with a couple of weeks off from it I will be
getting it on my switch, it&rsquo;s really an impressive collection of games, and there were a lot of fun
discussions had through this series.</p>
<p>I&rsquo;ve been watching some stuff on youtube, mainly my normal youtube channels, having <strong>Gronkh</strong>
playing some water park simulator or revenge of the savage planet in the background is nice, and
then I found an old series of <strong>olexa</strong> playing forward escape the fold which is pretty fun.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 38</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-38/</link>
      <pubDate>Mon, 22 Sep 2025 08:52:32 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-38/</guid>
      <description>&lt;p&gt;It was a good week, work was going foreward with some things that were quite fun, a bit of&#xA;programming to get things along, some tasks that were helping coworkers more than solving niggles,&#xA;it feels better when I can do things that I see actually helping people more.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m slowly getting a bit off of the silksong hype, which is nice, I&amp;rsquo;ve been hyperfocusing on reading&#xA;about it on my off time over the week, and now at least I feel like I can take a bit time off and&#xA;focus on other things and still play in the evening.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It was a good week, work was going foreward with some things that were quite fun, a bit of
programming to get things along, some tasks that were helping coworkers more than solving niggles,
it feels better when I can do things that I see actually helping people more.</p>
<p>I&rsquo;m slowly getting a bit off of the silksong hype, which is nice, I&rsquo;ve been hyperfocusing on reading
about it on my off time over the week, and now at least I feel like I can take a bit time off and
focus on other things and still play in the evening.</p>
<p>I&rsquo;ve been having a bit of a cold too, so my long walks were really kind of a challenge, on saturday
I got home, went to relax on the bed and woke up in the morning the next day again :p</p>
<h1 id="books">Books</h1>
<p>I finished off <strong>The deed of Paksenarrion</strong> this week, and all in all it has been an awesome series,
apart from one chaper in the last book that I really found not necessary, and really hurt the whole
feeling of the rest of the books, if that one is getting skipped I will say that this series would
be high up on my list of favourites. I kept on reading that chapter rather than skipping it,
thinking there might be something important there that I shouldn&rsquo;t miss out on, but no, it&rsquo;s just
torture porn and glee about punishing a female character for being strong and standing up for
things.</p>
<p>I&rsquo;ve just started <strong>there is no antimemetic division</strong>, I tried getting into the SCP stuff a while
back, it&rsquo;s some quite fun ideas that gets played with, but the thing that usually made me not hang
on that long where having to sit in front of the PC reading them, or my phone, this seems to be some
of the story sequences gathered together as a book, and so far I&rsquo;m really enjoying it. It&rsquo;s pretty
fun and thought provoking, about how to fight something that it&rsquo;s really hard to be aware of, or
even being aware of it can be detrimental to be able to get it away.</p>
<h1 id="games">Games</h1>
<p>Well, no surprise, this week has been another one where most of my time has gone to <strong>silksong</strong>,
It&rsquo;s still really enjoyable, and I&rsquo;m still exploring stuff, even so many hours in, there is more.
What I really find amazing here is how much trust they seem to have in the curiosity and ability of
the person playing, some things that are quite needed are hidden quite well away, and even complete
areas of the map are hidden behind a false wall. I think I must be close to having at least found
most of the areas from Act 2 now, though I still don&rsquo;t have the maps for two of them. I was
exploring the generally hated bile water, and I don&rsquo;t dislike it that much, the only thing is the
lack of benches, which makes it kind of annoying, having to run back for 5 minutes through the same
stuff again and again because I suck at the arena fights is not that much fun. After that I&rsquo;ve been
exploring the Sands and the Slab which I found really fun. The slab kind of feels like a commentary
of metroidvanias itself, with literal gates that you unlock with literal keys, which was kind of a
fun thing. And I found a pretty challenging but fun boss fight down in there which I&rsquo;m currently
working on, got the boss to stagger twice, but that&rsquo;s as far as I am on that one.</p>
<p>I&rsquo;ve been watching out for a sale on <strong>Persona 5</strong> and It finally came this week, so I got that, and
I&rsquo;ve played the first couple of hours in some time off to cool down from silk song, and it seems
pretty neat, but the first two hours of a persona game is usually not enough to really get on with
it, it seems fun so far, but the interace is a bit much. It&rsquo;s just everything everywhere at once,
and feels a bit more cluttered than 3 and 4 which I&rsquo;ve been playing. We&rsquo;ll have to see though, I
haven&rsquo;t really been getting off the tutorial track yet, so maybe it&rsquo;s something that I can get used
to with some time, it does look flashy, but maybe a bit much.</p>
<p>Another one that I got on the sale was <strong>undertale</strong> I have played quite far in once on pc, but I
remember being terribly dissappointed with how the game was pretty much forcing and tricking me into
doing things I didn&rsquo;t want to, but couldn&rsquo;t figure out how to get away from, and then blame me for
it afterwards, but we&rsquo;ll se how I get along with it this time.</p>
<h1 id="media">Media</h1>
<p>This week I&rsquo;ve been downloading more videos than I&rsquo;ve been watching, so I have some over, olexa had
some nice looks, and I&rsquo;m watching him struggle with silksong has also been cathartic, as he&rsquo;s
usually better at games than what I am, now for sure I&rsquo;m looking at this with hindsight, because I&rsquo;m
far farther than he is, but I&rsquo;m looking foreward to seeing how he gets along with it, and it&rsquo;s
always funny seeing others react to some of the jokes and things that I found funny.</p>
<p>I&rsquo;m still working on my <strong>videogame podtimism</strong> binge, and slowly getting up on 100 episodes, it&rsquo;s
nice seeing how they are slowly working their way into how they are currently doing things. I also
enjoyed their new episodes as they come out as well, it&rsquo;s kind of a whiplash suddenly hearing them
talk about more current things again.</p>
<p>I&rsquo;ve moved <strong>wavelengths</strong> into my auto-download podcasts, it&rsquo;s been a joy to listen to, while I
miss Stephen from <strong>into the aether</strong> on these episodes, since this is basically additional stuff,
it&rsquo;s fun to get some more listening with Brendon who I really enjoy, he was basically what got me
listening to the aether after having listened to the <strong>no script at all</strong> podcast and that ending as
the show ended, and I got into the aether after missing Brendon, and with time it got to become one
of my favourite podcasts.</p>
<p>Through cooperation with Brendon from wavelengths I also found the <strong>Minnmax</strong> podcast, and I think
I will listen to some more of their stuff, and see if I like it, their episodes are kind of long, so
I think this is one that will be a bit more dependent on what they are discussing, because I have
enough stuff talking about new games that I won&rsquo;t play because of their AAA-ness and stuff, but I&rsquo;ve
been enjoying what I&rsquo;ve listenend to so far at least, so maybe I&rsquo;ll pick it up more later.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 37</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-37/</link>
      <pubDate>Mon, 15 Sep 2025 09:15:29 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-37/</guid>
      <description>&lt;h2 id=&#34;books&#34;&gt;Books&lt;/h2&gt;&#xA;&lt;p&gt;I went through the second book of &lt;strong&gt;The deed of Paksenarrion&lt;/strong&gt; &lt;strong&gt;divided allegiances&lt;/strong&gt; and this one&#xA;has an even more go directly to the next one ending than the first one, so I went straight into&#xA;starting to read &lt;strong&gt;Oath of gold&lt;/strong&gt; It&amp;rsquo;s weird how the first book in the series left so much more of&#xA;an impression on me than the latter parts, I guess I didn&amp;rsquo;t enjoy the ending much, since I can&amp;rsquo;t&#xA;remember anything of it, but the journey there is quite great. The second book was good, but it&#xA;doesn&amp;rsquo;t really reach up to how much I enjoy the first one, it just really is enjoyable. And even&#xA;though the happenings can be kind of grim it never really stops being kind of cozy.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="books">Books</h2>
<p>I went through the second book of <strong>The deed of Paksenarrion</strong> <strong>divided allegiances</strong> and this one
has an even more go directly to the next one ending than the first one, so I went straight into
starting to read <strong>Oath of gold</strong> It&rsquo;s weird how the first book in the series left so much more of
an impression on me than the latter parts, I guess I didn&rsquo;t enjoy the ending much, since I can&rsquo;t
remember anything of it, but the journey there is quite great. The second book was good, but it
doesn&rsquo;t really reach up to how much I enjoy the first one, it just really is enjoyable. And even
though the happenings can be kind of grim it never really stops being kind of cozy.</p>
<p>So I&rsquo;ll keep reading this one towards the end and see why I don&rsquo;t remember anything past the point
that I currently am in the book.</p>
<h2 id="games">Games</h2>
<p>This week has been more or less one thing, and one thing only when it comes to games, <strong>silksong</strong>
it&rsquo;s a wonderful metroidvania so far, and I&rsquo;m really enjoying it, it&rsquo;s kind of nice not having
levelling and such in it, it makes me less worried if I&rsquo;m prepared enough, and I can focusing on
trying to deal with what&rsquo;s in front of me instead.</p>
<p>I really enjoy the bossfights in this game, and I have never really enjoyed them in other games, I
think it has something to do with them being very well telegraphed, and following good fun patterns
that you can learn, so after some tries, you learn the patterns, and the tells, and you execute the
pattern when you see the tell, which often is complicated by the pattern being a bit variable or
half random, but it&rsquo;s really fun. I&rsquo;m struggling more with the arena battles, where you&rsquo;re locked in
a room, and groups of enemies are spawning in, since it&rsquo;s so much to focus on and deal with it just
feels more chaotic and harder to deal with.</p>
<p>The one thing that I would criticise silksong for is that it&rsquo;s kind of hard to know what is on the
path where you have to get through something, and what is optional extra challenge. I often am
unsure, or I see it first then when I&rsquo;ve gotten through it, but I&rsquo;m not sure if that is intentional
or not.</p>
<p>I&rsquo;ll probably be going on with this for a while, not being that great with games, I struggle at
points, and use some off time to gather some resources before trying again, but when just the act of
moving around, and doing basic stuff is as fun as it is in this game I don&rsquo;t really care, I&rsquo;m just
having fun playing, so what if I use longer, that&rsquo;s just more enjoyment for me.</p>
<p>It feels like many of the bossfights also have their own music going on, which is really fun too, it
just makes the whole thing keep from being stale. I think I could be gushing about this thing for so
long, so I&rsquo;d better stop before it gets too tedious.</p>
<h2 id="media">Media</h2>
<p>I&rsquo;ve been kind of wanting to listen to some more silk-song discussions, and the one episode of
<strong>into the aether</strong> and <strong>wavelengths</strong> talking about it kind of weren&rsquo;t enough yet, but we&rsquo;ll see
how they are going along, I also really enjoyed the segment of <strong>video game podtimism</strong> that was
talking about it, so quite a lot of fun there.</p>
<p><strong>Geowizard</strong> released the last episode of his no-roads mission through London, which I&rsquo;m really
looking forward to watching in the evening, it&rsquo;s just a lot of fun, and the guy is really charming,
he just makes things fun to watch.</p>
<p>This week&rsquo;s podcast in general apart from that has been more of  the normal, and I&rsquo;ve been kind of
more excited to go back to listening to some of the old videogame podtimism episodes that I have.
I guess it&rsquo;s still kind of all in a bit of a funk, but I hope things will do better as time goes
along.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Games and Guides</title>
      <link>https://sotolf.codeberg.page/posts/games-and-guides/</link>
      <pubDate>Tue, 09 Sep 2025 10:45:33 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/games-and-guides/</guid>
      <description>&lt;p&gt;It seems I&amp;rsquo;m writing a lot about games here, I probably should write another book post, but well,&#xA;it&amp;rsquo;s what fills my mind more often than not, and I seem to have more opinions about games than books&#xA;for some reason, even though I enjoy both a lot.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s fascinating reading other people talking about playing games with guides, which feels weird to&#xA;me, maybe it&amp;rsquo;s because I&amp;rsquo;m from the &amp;ldquo;olden times&amp;rdquo; when we didn&amp;rsquo;t have constant access to the&#xA;internet in the time that I started playing games. For me a huge part of playing a game is figuring&#xA;out a vague and constantly evolving understanding of the game, it feels like reading a guide would&#xA;and get that spoonfed into me would really take away a huge part of what I like about playing them.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It seems I&rsquo;m writing a lot about games here, I probably should write another book post, but well,
it&rsquo;s what fills my mind more often than not, and I seem to have more opinions about games than books
for some reason, even though I enjoy both a lot.</p>
<p>It&rsquo;s fascinating reading other people talking about playing games with guides, which feels weird to
me, maybe it&rsquo;s because I&rsquo;m from the &ldquo;olden times&rdquo; when we didn&rsquo;t have constant access to the
internet in the time that I started playing games. For me a huge part of playing a game is figuring
out a vague and constantly evolving understanding of the game, it feels like reading a guide would
and get that spoonfed into me would really take away a huge part of what I like about playing them.</p>
<p>Playing with a guide feels more to me like doing the thing as effectively as possible to move on to
consume the next thing. And it&rsquo;s not something that I like, I like it when I can do mistakes,
something that I may have to work around later, of course I don&rsquo;t always get the hidden secrets, I
don&rsquo;t get to see everything a game has to offer, but what I do get is a playthrough that feels mine,
I get the joy of figuring out something, it&rsquo;s actually kind of joyful to see that something I&rsquo;ve
been doing for a long time maybe wasn&rsquo;t right, and now that I figured out the thing I&rsquo;m supposed to
do I have a weird extra skill that I wouldn&rsquo;t have developed had I just followed the &ldquo;correct way&rdquo;
the whole time.</p>
<p>Exploration is one thing that I love about game, that feeling of not knowing what is around the next
corner, then sometimes finding nothing, others finding something cool that can help me or hinder me.
Also not knowing how enemies work before I&rsquo;ve been facing them for a while, working out the way that
I like to tackle them, and being surprised by a boss coming and then having to deal with it is fun
to me. Then going back through an area and finding something I didn&rsquo;t notice the first time around
either because I thought I missed something or on the way back to a place when playing a
metroidvania (search action, gatepunk or whatever you want to call the genre).</p>
<p>I guess some of the same feelings that I have that goes against guides are the same about
min-maxing, it kind of feels like some people are optimising the fun out of a game, following the
path of least resistance like that feels weird to me, I guess it&rsquo;s just how I think about games, if
a game is fun I shouldn&rsquo;t need a guide, because just moving around, doing the little tight loop
feels good, just running around and fighting feels fun, that&rsquo;s already something, and then coming
across new and interesting things is a bonus that comes on top.</p>
<p>Some games also does something similar, like the minimap with 1000 question marks on it that seemed
to be so popular in the wake of the witcher 3, it&rsquo;s overwhelming, and it just doesn&rsquo;t feel as good
to explore when you see exactly where everything is, and you just tick them off the list one after
the other. I kind of want to miss things, and see them later, it just makes the world feel more
alive, and it feels more satisfying when I do find it.</p>
<p>And some times still I do cave in, I get really lost and look at a guide for a section, but every
time I feel kind of not so great afterwards, because when you start looking at a guide, it gets so
much more easy to do it the next time, and the magic seeps out of the game for me. Of course some
games are way better than others at actually pointing you in the right direction, or subtly
signposting things, if a game doesn&rsquo;t do that it&rsquo;s a deficit that can be kind of helped by having a
guide to look at. I just wish that more of them were kind of hints, rather than a recipe to follow.</p>
<p>This aversion to following guides also is something that I think leads to me having more fun with a
game that is either linear or a small open world, since I&rsquo;m not following a guide an open world game
often makes me feel lost, and not knowing where to go and what to do, which is kind of weird since I
love getting lost in a metroidvania, the difference there being that the game is made with that in
mind, and mostly you have a map showing what you have explored, where you can go, and where you have
yet to venture.</p>
<p>All of this is of course just my opinion and how I&rsquo;m enjoying playing games, and if it&rsquo;s not how you
enjoy them you&rsquo;re free to ignore this old man yelling at clouds and just play it how you enjoy it,
it&rsquo;s your journey and fun after all.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 36</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-36/</link>
      <pubDate>Mon, 08 Sep 2025 08:12:17 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-36/</guid>
      <description>&lt;p&gt;My net has been down at home, I haven&amp;rsquo;t bothered trying to fix it, and nobody else has cared enough&#xA;either, well, it will fix itself soon enough, I don&amp;rsquo;t really care that much, and it&amp;rsquo;s nice having&#xA;some time where I know I will be completely off line, so basically I&amp;rsquo;m taking a half sabattical from&#xA;the internet. It does feel kind of freeing in a way. All in all life has been pretty good.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>My net has been down at home, I haven&rsquo;t bothered trying to fix it, and nobody else has cared enough
either, well, it will fix itself soon enough, I don&rsquo;t really care that much, and it&rsquo;s nice having
some time where I know I will be completely off line, so basically I&rsquo;m taking a half sabattical from
the internet. It does feel kind of freeing in a way. All in all life has been pretty good.</p>
<h1 id="books">Books</h1>
<p>Finished off <strong>Sheepfarmer&rsquo;s Daughter</strong> by <strong>Elizabeth Moon</strong> this week, and if anything, it was
better than the last time I read it. It&rsquo;s just something about the comeraderie and the way she
writes characters that I really enjoyed, I remember pieces from when I read the book and I think the
whole series about 20 years ago, but it&rsquo;s really nice experiencing it again, and for some reasons I
think that first book was the one that I really remember much from it&rsquo;s getting really spotty with
the others, I don&rsquo;t know if it is because that one is a lot better than the others, or if it is just
because I fell off of reading the whole series the next time.</p>
<p>Started up reading <strong>Divided Allegiance</strong> again by the same author right afterwards, and after a
short introduction this promises to be quite a different book, I&rsquo;ve been enjoying it so far, it&rsquo;s
been more fantasy and a bit less grounded than the last time, but it might be that I will enjoy this
as well, it&rsquo;s going to be interesting at least.</p>
<p>I&rsquo;m really enjoying this <strong>Fantasy</strong> mood I&rsquo;ve been in for a bit now, I used to love those books
back in the day, but for some reason just stuck in a stubborn phase of reading almost exclusively
sci-fi, it&rsquo;s nice mixing it up a bit more.</p>
<h1 id="games">Games</h1>
<p>This week has been about one series and one series mostly, <strong>Hollow knight</strong> , Everyone was so hyped
for <strong>Hollow knight: Silk Song</strong> and I was starting to replay the first one for some days to get
used to it and to take part in the hype. And I actually managed to, I liked the game a lot more this
time than the last time, and when thursday came up for the release I was really exited about it.</p>
<p>Silk Song managed to bring all the big game stores to it&rsquo;s knees by release, while it had so much
exitement behind it, and I was getting a bit nervous since as I said my internet was down at home,
so when I struggled 40 min before even getting to buy it since the stores were down I was really
happy that it did go through well before I got finished with work, I was almost getting ready to
camp along a bit longer.</p>
<p>And I am very happy that I did get <strong>Silksong</strong> it&rsquo;s been a wonderful game for me so far, it&rsquo;s
beautiful to look at and listen to, and the movement just feels great, it&rsquo;s pretty hard, and I&rsquo;m
struggling with some boss fights, but I&rsquo;m having fun. I never was a person that really liked boss
fights, but this one really is bringing it out, I think they are pretty well signposted when they
will do things, so it feels like when I messed up it&rsquo;s just beyond my reach, that makes it so that
I will actually keep on working on them, I see the progress, and it doesn&rsquo;t feel like I&rsquo;m just
guessing and having the constant feeling of me just doing something wrong. It&rsquo;s been hard but fair
so far, and it&rsquo;s a bit of a struggle getting money, I&rsquo;ve starting to bundle together the rosary
beads I&rsquo;ve gotten, after having lost way too many on expeditions into the unknown, and the fee to
get them saved up really has been worth it. So far this has been a wonderful game, and I&rsquo;m excited
to keep on exploring, and bang my head against the next boss.</p>
<p>I did have a little time being frustrated with my progress where I was playing a bit of <strong>Mario
Golf: Advanced tour</strong> on the GBA, or really emulated on my miyoo mini, and it has been fun, I got
through most of the training, and played the first golf round I think, and it&rsquo;s really fun, and
charming, the golfing feels good, and a tiny bit less complex than <strong>golf story</strong> but not a lot, and
since the stick of my switch lite is kind of borked it&rsquo;s nice not having to fight that as well, I do
have a new stick lying around, so I should get around to fix it some time, but I don&rsquo;t need it for
the games that I am the most excited by right now, so probably something I will do later when I feel
like it again.</p>
<h1 id="media">Media</h1>
<p>This week I haven&rsquo;t been having some long marathon of old episodes like last week, but <strong>video game
podtimism</strong> returned after two months which was really nice, it&rsquo;s fun listening to Chase and David
go through the games they have played, and getting a newer episode, I&rsquo;m also still doing the
backlog, and am around the 70&rsquo;s now, they are just a bit more mellow in the newer episodes, and I
have kind of missed that.</p>
<p>Because of some crazy stuff going on over at infowars this week it&rsquo;s also been a lot of <strong>knowledge
fight</strong> and it was kind of nice gloating over some infighting at the bad guy HQ. And there was 2 3
hour episodes, which took quite a big place in my listening time.</p>
<p>I&rsquo;m kind of looking foreward to seeing how some of the people I&rsquo;m listening to are going to react to
silksong, it&rsquo;s one of the few times when I feel like I&rsquo;m on to the new thing, and it&rsquo;s weird,
usually I&rsquo;m years behind on stuff, I like that it released to everyone at the same time, it makes it
easier to keep up in the start.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 35</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-35/</link>
      <pubDate>Mon, 01 Sep 2025 09:15:14 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-35/</guid>
      <description>&lt;p&gt;Another week done, and another little summary, I was pretty happy with my podcasting post last week,&#xA;give it a try if you&amp;rsquo;re looking for something to listen too. Apart from that I&amp;rsquo;ve had a pretty nice&#xA;week, getting some stuff done. I was out donating blood on friday, it&amp;rsquo;s always a bit nerve wrecking&#xA;since I hate needles and stuff like that, but as long as I look away I survive the needle thing, and&#xA;then it&amp;rsquo;s just wait a bit and done. It&amp;rsquo;s a nice thing to do, and the easiest way to be a hero.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Another week done, and another little summary, I was pretty happy with my podcasting post last week,
give it a try if you&rsquo;re looking for something to listen too. Apart from that I&rsquo;ve had a pretty nice
week, getting some stuff done. I was out donating blood on friday, it&rsquo;s always a bit nerve wrecking
since I hate needles and stuff like that, but as long as I look away I survive the needle thing, and
then it&rsquo;s just wait a bit and done. It&rsquo;s a nice thing to do, and the easiest way to be a hero.</p>
<h1 id="books">Books</h1>
<p>I finished off <strong>Ancillary Justice</strong> this week in front of the blood donation office, and it was a
fun read, it has just enough action, and quite a bit of time to get used to the characters, with
just about the right amount of action scenes. It kind of felt like a better version of murderbot to
me, I never could get into that series after having read the first one, since it felt so weird, the
robot so whiney, and the characters all basically non-entities. Ancillary justice had some good
characters, some fancy scenes, and fun descriptions of one mind being in a lot of bodies at the same
time. I really enjoyed it, and that I read through it this fast always is a sign that I really
enjoyed a book.</p>
<p>I hemmed and hawed a lot about what to read next, and ended up with not wanting to go right on to
the next in the series. I ended up with choosing a fantasy book that I last read as a teenager, I
don&rsquo;t really read much fantasy, so maybe it&rsquo;s something I can get a bit more into again :) I chose
<strong>The sheepfarmer&rsquo;s daughter</strong> a part of the deed of Paksernarrion series, I remember really
enjoying it the last time, and I have enjoyed a lot of Elizabeth Moon&rsquo;s books, so I&rsquo;m pretty sure I
will enjoy this one as well.</p>
<h1 id="games">Games</h1>
<p>This has been the time that I really decided to give <strong>Persona 4</strong> a break, I played little over the
week, since I just don&rsquo;t really manage to get into it. It always kind of feels like a chore to get
started, and I don&rsquo;t really know why, I loved the third one in the series, and this one is filled
with things that I really enjoy, so I&rsquo;m kind of frustrated that I don&rsquo;t like it more than I do, it
might just be the mood that I&rsquo;m in lately, but in the end I ended up putting it aside and play some
other games, and I hope to get back to it some time, we&rsquo;ll have to see when I feel more like it
again.</p>
<p>I was listening to the best of gba games episode of into the aether this week (more on that later)
and with how they were talking up advanced tour quite a lot I remembered that I had <strong>Golf Story</strong>
installed since a long time, and I played quite a bit of it, it&rsquo;s a competent golf game, and a wacky
cheerful story, the writing is not really great, but I guess it serves it purpose, it did make me
laugh out loud a couple of times with silly stuff, like quest chains of giving one person a thing to
get a thing to give to another that seemed pretty delibetairly placed. I&rsquo;m now on the beach, and
some of the challenges are starting to get more tedious than fun, but I&rsquo;ll see, I might continue on
a bit more.</p>
<p>Another one that I gave some time again with all the hype for silksong was <strong>Hollow Knight</strong> I
already had a save game with 30 hours played, but I didn&rsquo;t want to jump into the deep end again, so
I restarted it from the start again, I do like the environments a bit more than the last time I
played, and get more a sense of exploration which I have been enjoying quite a lot, The first
bosses went down pretty fast, and I&rsquo;m now back into the city again. I remember this one having a
boss fight with a long way with really annoying enemies on the way, so I&rsquo;m kind of dreading doing
that gauntlet again, but so far I&rsquo;ve actually quite enjoyed myself with this game, maybe it&rsquo;s
finally my time to enjoy Hollow Knight.</p>
<p>I also started <strong>Mario Golf - Advance Tour</strong> but since I only played for an hour or so I can&rsquo;t
really say much of it, a lot of the time was just getting through the introduction, and doing some
challenges on the training thing, I&rsquo;ve been struggling a bit with one of them, but kind of want to
get through it, so that I have some basic skills before starting, so far it seems pretty charming,
and a bit more easily readable than golf story, I&rsquo;m pretty sure I will try this one out a bit more.</p>
<h1 id="media">Media</h1>
<p>Last week I was listening to the backlog of <strong>Videogame Podtimism</strong> and they mentioned that one of
them was listening to the <strong>Into the Aether</strong> gba episode, which I remembered really enjoying, so I
ended up relistening to the gba episode and the nintedo DS episode, which alone was 8 hours of
podcasting this weeks, which means I didn&rsquo;t manage to get as empty as I have been the last weeks. It
was a really good time though.</p>
<p>Also I&rsquo;ve kind of the feeling that the video game podtimism guys really started getting going around
episode 50, and it&rsquo;s been even more fun listening to them, I&rsquo;ve been actually listening more to them
than to other stuff that is coming out new, it&rsquo;s just kind of nice to have something like that that
I can really enjoy for when I&rsquo;m feeling a bit down.</p>
<p>I&rsquo;m looking foreward to them starting to release weekly episodes again though, I&rsquo;ve kind of really
missed them being a part of my sundays, it&rsquo;s just fun.</p>
<p>For youtube stuff I haven&rsquo;t been watching much new stuff this week, there was some exciting ones the
week before, but this one has been a bit more lackluster, just not much stuff I&rsquo;ve found that
interesting, and yesterday my internet was down, so I didn&rsquo;t get to watch the new episode of
<strong>geowizard</strong> going through London without roads, but I have it downloaded now, so that I can watch
it in the evening today, so that&rsquo;s at least something :)</p>
]]></content:encoded>
    </item>
    <item>
      <title>Podcast Recommandations</title>
      <link>https://sotolf.codeberg.page/posts/podcast-recommandations/</link>
      <pubDate>Thu, 28 Aug 2025 10:22:23 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/podcast-recommandations/</guid>
      <description>&lt;p&gt;I do listen to quite a few podcasts and some times I get asked for recommandations, so I think I&#xA;should write something up, it might be that I can help people find something they will enjoy. I have&#xA;listened to many through the year, some for periods and some for longer, some that I fell out of&#xA;enjoying, but here are current ones that I am enjoying quite a bit.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I do listen to quite a few podcasts and some times I get asked for recommandations, so I think I
should write something up, it might be that I can help people find something they will enjoy. I have
listened to many through the year, some for periods and some for longer, some that I fell out of
enjoying, but here are current ones that I am enjoying quite a bit.</p>
<h1 id="politics">Politics</h1>
<h2 id="knowledge-fight">Knowledge Fight</h2>
<p><a href="https://knowledgefight.com/">Knowledge fight</a> is a podcast by Dan and Jordan, where they talk about
Alex Jones and his ceasless race to the bottom, and I&rsquo;ve been listening to this one for years now,
it&rsquo;s good to see people take down talking points, point out the stupid things that they say, and
having one calm and one frustrated host does help, as you get both the more educated point by point
take down, and the immediate frustrated reaction. Both the hosts are failed commedians, and the
balance is just right for me at least.</p>
<h2 id="louder-than-crowder">Louder than Crowder</h2>
<p><a href="https://www.louderwithcrowder.com/st/podcast">Louder than Crowder</a> is one that is a bit newer for
me, and it&rsquo;s a bit more &ldquo;Jockey&rdquo; than what Knowledge fight is, but I think it&rsquo;s kind of needed too,
since Crowder is a less entertaining and more frustrating guy in general. While the humour is a bit
more juvenile in general, it does not go over the line to be too annoying, and it&rsquo;s cathartic to
just hear someone come with the same kind of reactions that I myself have hearing much of the
extremely stupid shit. It has Three hosts which I had a bit of issues with keeping apart in the
beginning, but it&rsquo;s all in all cathartic and entertaining takedown of a bad dude.</p>
<h2 id="know-rogan">Know Rogan</h2>
<p><a href="https://www.knowrogan.com/">Know Rogan</a> is a more measured version of both the above, while it does
have it&rsquo;s lighter moments, Cecil and Marsh does a more calm approach to looking at Joe Rogan and his
guests. It&rsquo;s less jokey and something that is maybe more palatable for &ldquo;serious&rdquo; people. While at
the same time being entertaining enough to not get boring. They haven&rsquo;t been going for that long
yet, so it might be that they get even more in gear later and let more of their frustrations show,
but I do enjoy this take.</p>
<h1 id="video-games">Video Games</h1>
<h2 id="into-the-aether">Into the Aether</h2>
<p><a href="https://intothecast.transistor.fm/">Into the Aether</a> is as they say themselves &ldquo;A low key video game podcast&rdquo;
Basically two guys talking about games that they have enjoyed playing the last week. They don&rsquo;t
really only play new stuff some times playing some older stuff as well, and the vibes are just great.
In additional to their normal weekly episodes they have some maraton long ones now and then, like
their end of the year episodes and others, which can range in the 6 - 16 hours. I just really enjoy
them, so even when they are talking about stuff that don&rsquo;t interest me to much I just enjoy their
enthusiasm and comraderie. Absolutely one of my favourites that always makes it up to the top of my
playlist when a new episode releases</p>
<h2 id="stay-forever">Stay Forever</h2>
<p><a href="https://stayforever.de">Stay Forever</a> might be a harder sell for most people, mostly because it&rsquo;s a
podcast in german, so it has a bit less of a reach than stuff that are in English, it&rsquo;s also more of
an umbrella podcast with different podcasts about different retro themes, they all share being very
deeply researched and having great hosts that are extremely knowledgeable about the stuff they are
talking about, there is <strong>Stay Forever</strong> which focuses on retro PC games <strong>Stay Forever Technik</strong>
that is about retro hardware with deepdives into things like Graphic cards, mice or different
systems. <strong>Super Stay Forever</strong> which is a console retro focused thing and some others, just really
enjoayble and informative retro stuff.</p>
<h2 id="videogame-podtimism">Videogame Podtimism</h2>
<p><a href="https://www.podtimism.com/">Videogame Podtimism</a> a Optimist videogame podcast, is a goofy video
game podcast by two goofy guys, Chase and David. It&rsquo;s a fun one, with some humour that might not hit
everyone, like Into the Aether, they do focus on bringing in stuff they enjoy, and they also usually
bring in an older game that got middling ratings and try to find the good stuff that the game did.
So it&rsquo;s kind of a mix of them talking about stuff that they have played lately, some comedy sketch-y
thing that can be a bit hit or miss, and talking about some old-ish stuff or mechanics, basically
cousin games. That doesn&rsquo;t sound that fun when I look at it, but it is one that I really enjoy
listening to. It&rsquo;s a nice fun one that kind of has made its way into my Sunday rituals.</p>
<h2 id="dot-zip">Dot zip</h2>
<p><a href="https://dotzip.online/">Dot zip</a> is a podcast about short games, and it&rsquo;s a bit more situational
for me, some times it&rsquo;s really enjoyable, others not so much, but I like the hosts, and they are
talking about a lot of more obscure shorter games, which does broaden my horizon to stuff that I
would otherwise not have found, which is fun. It&rsquo;s an eclectic mix of different stuff.</p>
<h2 id="hardcore-gaming-101">Hardcore gaming 101</h2>
<p><a href="http://www.hardcoregaming101.net/category/podcasts/">Hardcore gaming 101</a> is a fun retro game
podcast with a silly premise, rate all of the games, there is a rotating cast, and each episode they
add a new game to the ranking list, they have a lot of fun with it being a scientific and completly
objective rating, and each episode ends with them placing the game on the ranking list, fun hosts
and a really varying list of games, it&rsquo;s just a fun listen.</p>
<h1 id="fun--variety">Fun / Variety</h1>
<h2 id="thats-absurd-please-elaborate">That&rsquo;s absurd Please elaborate</h2>
<p><a href="https://thatsabsurdshow.com/">That&rsquo;s absurd please elaborate</a> is one that I found late summer
last year, and it&rsquo;s an amazing premise for a podcast, each episode they tackle two Absurd questions
sent in by listeners, and they try as good as they can to come up with scientific answers to those
questions, so if you ever wanted to know how hard it would be to poke someone standing on the moon
with a stick from earth, What ramifications it would have if humans had wings, how to explain left
to an alien, or if filling the grand canyon with melted water from the melting ice caps would solve
anything, this would be something that I think you would enjoy. It&rsquo;s a light-hearted fun way to make
science interesting, and a lot of fun.</p>
<h2 id="lateral">Lateral</h2>
<p><a href="https://lateralcast.com/">Lateral</a> is Tom Scott&rsquo;s gameshow podcast, and if you enjoy british panel
shows this one is one that is quite fun. It&rsquo;s a lateral thinking quiz show, and just brings up a lot
of amusing and interesting small things to think about that I just don&rsquo;t come across very often, the
guests are mostly also very endearing, and it&rsquo;s just an enjoyable fun time in general.</p>
<h2 id="citation-needed">Citation needed</h2>
<p><a href="https://www.citationpod.com/">Citation Needed</a> is another podcast with a fun premise, kind of
playing off of how podcasters are &ldquo;expert&rdquo; in things, the premise of this one is that for each
episode one host is doing &ldquo;research&rdquo; by reading through a wikipedia page, and then presenting an
essay for the rest of the hosts. They have kind of a crass crude humour, but I enjoy it, it&rsquo;s kind
of a guilty pleasure for me, but it&rsquo;s a fun way to touch on some new theme that you wouldn&rsquo;t think
you were interesting, or just having fun listening to 4-5 guys making stupid jokes for 30 minutes.</p>
<h2 id="372-pages">372 Pages</h2>
<p><a href="https://372pages.com/">372 Pages</a> we won&rsquo;t get back, is one that I found after having read ready
player one, and not enjoying the book very much, finding it to be kind of stupid, and that&rsquo;s
basically the thing that they do in this podcast, they read books they probably won&rsquo;t like, and make
fun of them. It&rsquo;s a fun time, varying a bit in how silly the book they read is, but I do mostly
enjoy it a lot, my favourite section being fact or fan fiction, where the one host presents the
other with 5 different extracts from the book and weird outlandish fan fiction, and the other must
guess if it&rsquo;s an upcoming thing from the book, or fanfiction written by a listener.</p>
<h2 id="rekommandert">Rekommandert</h2>
<p><a href="https://podtail.com/no/podcast/rekommandert/">Rekommandert</a> probably is the most niche podcast on
the big list here, since it&rsquo;s in Norwegian, so most people probably won&rsquo;t understand much of what is
going on, but it&rsquo;s an interview Podcast by Kristopher Schau where he invites a guest in to deep dive
into a niche topic that they burn for, and he&rsquo;s asking questions, it&rsquo;s just a fun time, and it&rsquo;s
always fun to listen to an expert talking about something that they burn for.</p>
<h1 id="skepticism">Skepticism</h1>
<h2 id="skeptics-guide-to-the-universe">Skeptics guide to the Universe</h2>
<p><a href="https://www.theskepticsguide.org/">Skeptics guide to the universe</a> is one that I&rsquo;ve been listening
to for a long time, it&rsquo;s probably the one that has been in my rotation for the longest of
everything, while they do have a tendency to be a bit too tech positive, and jump on some hype
trains more than I enjoy they just are fun to listen to, and I keep on really enjoying the little
quiz at the end of each episode where they try to find the fiction from the truth in statements.
It&rsquo;s one that is a bit more hit and miss for me again depending on the themes. But all in all I keep
on listening, and I do watch out a bit with some of the things they sound too positive about, but I
keep on listening.</p>
<h2 id="skeptics-with-a-k">Skeptics with a K</h2>
<p><a href="https://www.merseysideskeptics.org.uk/podcasts/skeptics-with-a-k">Skeptics with a K</a> is kind of the
British version of the Skeptics guide, and the podcast is a bit less polished and regimented than
it, but I also kind of feel more trustful of them, they are also fun to listen to, and they are
following more of a one theme an episode rather than being more of a news show, which means that
they are less hyped, and each episode can be very different, very much one that I enjoy when it
comes into my feed.</p>
<h2 id="skepticrat">Skepticrat</h2>
<p><a href="https://audioboom.com/channels/4846754-the-skepticrat">Skepticrat</a> is kind of a fun podcast mostly
discussing some news, mostly from the US because of the hosts, it&rsquo;s a kind of funny show with some
jokey sub-tone, it&rsquo;s a good time, and it&rsquo;s nice to hear news from people that feel like they have a
soul.</p>
<h1 id="atheism">Atheism</h1>
<p>This is probably the group of podcasts that has seen the most churn for me, as it&rsquo;s hard to find the
right mix of someone that gets outraged enough without being too obnoxious, but here are the ones
that are currently in my rotation.</p>
<h2 id="friendly-atheist">Friendly Atheist</h2>
<p><a href="https://friendlyatheistpodcast.com/">Friendly Atheist</a> is another podcast that follows the one
informed host one outraged one. And it is one that I have a lot of fondness for, Hemant has been in
this game for an extremely long time, and he&rsquo;s the source for a lot of atheist news in the US, and
Jess just is a really good outlet for the extremely measured delivery, bringing in the outrage, and
making it be a lot less dry than it would be without her.</p>
<h2 id="scathing-atheist">Scathing Atheist</h2>
<p>The <a href="https://scathingatheist.com/">Scathing Atheist</a> is probably one of the flagship podcast of
Puzzle in a thunderstorm, Noah, Heath, and Eli is doing a fun summation of the most outrageous
religion news from the us the last week, before they are having a rotating segment that is usually
religious book reviews, or a blasphemous audi reenactment of the bible or something else. This just
balances nicely about being a fun outlet for frustrations I have with religions, while at the same
time not being too edgy and reply bro-ey I mostly stay more for the hosts than anything, it&rsquo;s just a
fun time.</p>
<h2 id="cognitive-dissonance">Cognitive Dissonance</h2>
<p><a href="https://www.dissonancepod.com/">Cognitive Dissonance</a> is kind of hard to place, it lies somewhere
between religion critics and a news round up, and does have some rather crude humour, but mostly in
a good way. It&rsquo;s one that really was a release valve for me because I got so dissillusioned with
religion critics being either extremely dry and boring or too edgy reply bro stuff, Tom and Cecil
are just fun to listen to, they have a good amount of outrage and crude humour that is nice to get
some outlet for at times.</p>
<h2 id="god-awful-movies">God Awful Movies</h2>
<p><a href="https://audioboom.com/channels/4829841-god-awful-movies">God Awful Movies</a> is a podcast reviewing
(mostly) christian movies, and making fun of them, it&rsquo;s enjoyable, and it&rsquo;s a fun listen, bad media
review things does feel kind of fun, and some of the ones that they have here really makes you
wonder how they exist in the first place. It&rsquo;s enjoyable and often kind of stupid or bewildering,
it&rsquo;s a weird look into american culture at times. So much weird stuff.</p>
<h1 id="honerable-mentions">Honerable mentions</h1>
<p>Here are some other podcasts that I do listen to, that I thought was worth a mention, but not really
a big one :p</p>
<ul>
<li><a href="https://www.abroadinjapan.com/category-podcasts">Abroad in Japan</a> is a podcast accompagniying the
Abroad in japan podcast, and is just a couple of nice people talking about Japan</li>
<li><a href="https://bloodgodpod.com/">Axe of the Blood God</a> is an RPG podcast about new RPGs, it&rsquo;s one that I
occationally listen to as I like the hosts, but they spend a lot of time talking about things that
don&rsquo;t interest me that much.</li>
<li><a href="NYGBCpod.com">not your grandmother&rsquo;s bookclub podcast</a> is one that I enjoyed, but it seems to
have been disappearing so it&rsquo;s no longer active it seems.</li>
<li><a href="https://www.mydadwroteaporno.com/">My dad wrote a porno</a> also was a hilarious one that is
basically finished, where the dad of one of the hosts wrote a series of smut books, and they have
readings and fun with it.</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Frustration and Apathy</title>
      <link>https://sotolf.codeberg.page/posts/frustration-and-apathy/</link>
      <pubDate>Tue, 26 Aug 2025 08:04:53 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/frustration-and-apathy/</guid>
      <description>&lt;p&gt;Quite often now a days it gets really hard to keep the drive up to be happy go lucky, it has been my&#xA;modus operandi for years, I&amp;rsquo;m that slightly aloof coworker who gets overly amused by his own bad&#xA;jokes, the guy who comes up with punny names for tools, basically the class clown, just grown up a&#xA;little. Outwardly that&amp;rsquo;s still my role, and I&amp;rsquo;m still doing my best, not only for the people around&#xA;me, but for myself, because I like it when people smile, I don&amp;rsquo;t really care if rather often I&#xA;become the butt of the joke, that&amp;rsquo;s something that is easy to take to keep the mood up.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Quite often now a days it gets really hard to keep the drive up to be happy go lucky, it has been my
modus operandi for years, I&rsquo;m that slightly aloof coworker who gets overly amused by his own bad
jokes, the guy who comes up with punny names for tools, basically the class clown, just grown up a
little. Outwardly that&rsquo;s still my role, and I&rsquo;m still doing my best, not only for the people around
me, but for myself, because I like it when people smile, I don&rsquo;t really care if rather often I
become the butt of the joke, that&rsquo;s something that is easy to take to keep the mood up.</p>
<p>Now as the climate crisis becomes more and more appearant, there is a war in europe, israel is
continuing it&rsquo;s genocide of the palestinians, and the fascists in America just keeps on clawing in
more and more of the power, I feel like more often than not I get zapped, and I have to grab deeper
and deeper into my reserve of spoons to keep up my happy façade.</p>
<p>The thing is I do my best to reduce what I can when it comes to my living, I don&rsquo;t have a car, I try
to buy locally when I can, and I just don&rsquo;t buy much when I can awade it. I&rsquo;m open to other people&rsquo;s
viewpoints, and do my best to not be a dick about things that people can&rsquo;t change. It&rsquo;s something
that I had to work on for a while, since I was a 90&rsquo;s kid, but with time I was also dragged along,
and made to see that no matter how different people look on the outside, we aren&rsquo;t that different in
the end.</p>
<p>We get bombarded all the time, with americans in social media talking about their situation, and as
much as I feel with them, it&rsquo;s far away, and I have zero way to really do anything. It&rsquo;s oligarchs
and fascists, and capitalism run wild, and no matter how little I can do I keep on hearing about
more and more shit happening, the same is about other things, the crazies in charge not only are set
on destroying as much of our culture and togetherness with capitalism&rsquo;s continuous greed for more
and more shiny baubles rather than personal connections, and are ready to sacrifice so much just for
the opportunity to get more of them.</p>
<p>Since I keep on hearing about these things of course I want to do something, and I do, I change, I
change my life, while it makes only a small difference to the trans person that I was talking with on the net
that was sharing frustrations to me, at least I am better equipped to deal with someone I meet in
real life, and can be a better person, but for the big things, it just keeps on getting worse, and
you just see more and more horrible things happen, and the small power you have to push through
demonstrations and grassroots efforts just is so small.</p>
<p>This huge power difference makes me feel like none of the efforts are worth anything, and I will
keep on being berated by people who knows nothing about me anyway, I keep on working a full-time job
fulfilling the goals of the bosses rather than my own, and see little return for effort made, even
though at times it was hard fought battles. It would just be a difference to really have a stake in
something rather than fighting other people&rsquo;s battles.</p>
<p>So you stand there getting more and more frustrated about seeing the unfairness and outright evil
shit happening, and you&rsquo;re taking some extra time off to walk over to the blood drive to donate
blood. You try to keep up your belief that anything you do actually matters, and while locally it
might actually do, that donation that you made might save a life, or at least make someone else&rsquo;s a
little less miserable, but you don&rsquo;t see anything you do make a difference.</p>
<p>The apathy rears its ugly head, you see that your keeping away from polluting, or being a decent guy
just gets nullified at once by oligarcs going on their 7th vacation of the year, or your try to talk
that one friend that don&rsquo;t see any issues with the genocide in Gaza, which quickly gets wiped out
since their only thoughts are those of the last person they talked to, and it feels like nothing you
do really matters. No matter what you do, it makes no difference in the end, and keeping it up just
gets harder and harder. No matter what you keep on getting bombarded with the next horrible thing
happening and the light points just gets fewer and farther between, the time where you&rsquo;re trying to
recover a spoon or two gets coopted again by the oligarcs and the fascists, because it&rsquo;s all people
talk about.</p>
<p>Well, I just talked with my boss again today, since I saw there is a blood drive nearby again, I
will walk over on friday and donate blood again, because I&rsquo;m apathetic, but I still want to do something
good, to balance out at least a little part of everything, make small changes, to at least try and
make the world better than if I wasn&rsquo;t.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 34</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-34/</link>
      <pubDate>Mon, 25 Aug 2025 08:08:52 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-34/</guid>
      <description>&lt;p&gt;The warm weeks continue on, but at least the last couple of days was a reprieve. All in all it has&#xA;been a decent week, but work was more or less just going along to get through it, on my free time it&#xA;finally felt like something happened again, had a good weekend although the saturday was heavy with&#xA;rain, had a nice little walk, finished off my book, and the sunday had a comfortable temperature&#xA;as well, so I was just enjoying the day, so a decent week.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>The warm weeks continue on, but at least the last couple of days was a reprieve. All in all it has
been a decent week, but work was more or less just going along to get through it, on my free time it
finally felt like something happened again, had a good weekend although the saturday was heavy with
rain, had a nice little walk, finished off my book, and the sunday had a comfortable temperature
as well, so I was just enjoying the day, so a decent week.</p>
<h1 id="books">Books</h1>
<p>Finished off <strong>Exodus by Peter F Hamilton</strong> this week, and it was a decent one, the pacing was a bit all
over the place, to the point that I felt he could have sliced off 100 pages or so to get it there.
But then again, that&rsquo;s not why you read a Hamilton book, you expect something sprawling and fun,
with good writing that is a great journey, the end doesn&rsquo;t always live up to it, but this book
landed it pretty well, with a clever solution, and kind of an open-ish ending, which I guess is
needed as this counts as a prequel to a game. I enjoyed it.</p>
<p>I was kind of not quite sure what to go on reading after this one, so I just looked through my
library of books for something with a recogniseable name that I haven&rsquo;t read yet, that I heard good
things about, so my next one is <strong>Ancillary Justice, by Ann Leckie</strong>. The first few chapters were decent
at least, not quite sure quite what&rsquo;s going on, but it at least seems fun.</p>
<h1 id="games">Games</h1>
<p>Buckle down, because I think this section is going to be rather long this week, I was playing a lot
of stuff, and have been thinking a bit about it lately.</p>
<p><strong>Persona 4</strong> is going along, I&rsquo;m starting to be a bit more enamoured with the characters, they are
decent and some of them are good like the Dojimas. It&rsquo;s very driving foreward which is good, and
slowly I&rsquo;m meeting people that I&rsquo;m more interested in spending time with. I specifically chose to
play on easy to not have to follow a guide, because that&rsquo;s not really fun to me, and so far I&rsquo;m
having fun with it here too, it&rsquo;s just still something that is missing from the characters of 3
which I really prefer. It&rsquo;s a weird game, as in before I sit down to play, I don&rsquo;t really want to,
but then when I do sit down and play a day or two I get sucked back into the story, there are a lot
of fun stuff happening, but it all does feel a little bit too plucky and happy go lucky in a way,
which is weird, because it&rsquo;s something that I usually really enjoy.</p>
<p>I played a bit of <strong>Rift of the Necrodancer</strong> this weekend too, but did pace it better, it tends to
become a real black hole of flow to me, but I did get out of it at a good time, the game is still
very good, I just need to watch out that I don&rsquo;t duck into it too hard, because it ends in hours for
&ldquo;nothing&rdquo; that usually feels not great to me.</p>
<p>I was kind of having an want to play some retro games this week, and every time that I&rsquo;ve been
sitting down with them lately it just haven&rsquo;t clicked with me, so this weekend I downloaded
<strong>GZDoom</strong> and a pack of the &ldquo;official&rdquo; wad files, and I&rsquo;ve been playing quite a bit of <strong>Doom</strong> as
I thought I would start from the first one of them. And it&rsquo;s just silly fun, I do like the graphics,
and the movement just feels really smooth, that game really manages the trick of making you feel
like an absolute certified bad-ass. I&rsquo;m still getting lost quite a bit looking for the keys now and
then, but it&rsquo;s just dumb silly fun, and I enjoy running up to monsters with a shotgun blasting them
in the face from around the corner.</p>
<p>My phone company complained that I hadn&rsquo;t loaded my prepaid account in a year or so, so I refilled
that one, since I don&rsquo;t really use it for anything else I bought three Android games, it&rsquo;s a nice
little treat to have something around that isn&rsquo;t filled with ads, and can be played offline, I ended
up being pretty happy with what I got.</p>
<p>I got <strong>threes</strong>, which is the one that started the whole 2048 thing, it&rsquo;s a fun game, and it does
manage to evade what I feel is one of the biggest problems with 2048, that it just gets too much of
a mechanical go on until you&rsquo;re tired of it kind of thing. Playing a round of threes is a bit
shorter, and it has more fun thinking to be done to get there. I quite enjoy it for a short break to
reset a bit, and it&rsquo;s a good podcast game.</p>
<p>The second one that I got was <strong>Merge Maestro</strong>, It&rsquo;s a fun merging version of a balatro like, and
it seems to be still in development, I like the idea, and the whole game being based on emoticons,
while having been done before is pretty fun, it&rsquo;s always a bit of a struggle in the start until you
get to build up synergies of a couple of symbols, but when you do it feels pretty good, I have won
two runs on the two easiest difficulties, and so far it&rsquo;s been a decent amount of fun, and it was
really cheap for what it is at least, so a promising thing.</p>
<p>And then the last one was <strong>Slice &amp; Dice</strong>, I&rsquo;ve heard so much good about this one, and it seems
like most of the people that have been playing it really has been enjoying it. So I dived in, and so
far it&rsquo;s really fun. A roguelike version of Yatzee with an honestly mad amount of different modes
and stuff to unlock. It opens up a bit basic, but starts to really unfold. I feel like at least so
far it has just the right amount of decisions to be fun, but at the same time not be too
overwhelming, it&rsquo;s hard though, in the 4-5 runs that I&rsquo;ve had so far the farthest I got was to die
on the last fight, and that on the easy difficulty, but it&rsquo;s fun to theorise along the way, and it
does have really good feeling dice, which just makes it more fun to play. Very enjoyable.</p>
<p>I did play some more of the <strong>Pleague knight</strong> part of the <strong>Shovel Night</strong> big pack, and I still
struggle with the movement of the character, I didn&rsquo;t do that much before going back to Persona, but
it&rsquo;s something I probably will dig into after I finish off my Persona maraton probably, I&rsquo;m waiting
for <strong>Persona 5</strong> to go on a sale, while the game looks pretty fun, I don&rsquo;t really want to shell out
60 € for it, and I have time to wait for it to go down, it does seem like it regularly goes down to
20, and that I will be more than happy to pay when the time comes.</p>
<h1 id="media">Media</h1>
<p>The podcast well is still rather dry, and I&rsquo;m in danger of going into the same trap that usually
happens to me around this time a year, subscribing to a lot of different things to fill up the lull,
and then being bogged down when the ones I usually listen to start to flow back in. I&rsquo;m still using
the time to listen to backlogged episodes of <strong>Videogame Podtimism</strong> and I&rsquo;m up to episode 60 or so
now in their older episodes, which means I still have 100 or so to go before I&rsquo;m caught up, but at
least for the time being that&rsquo;s what I&rsquo;m filling up with, I will have to see when things starts to
fill up again, I just don&rsquo;t want to go back into that same problem again as I usually do.</p>
<p>There is a new <strong>Stay forever</strong> episode about the simpson&rsquo;s hit and run that I have downloaded that
I look foreward to, I had a lot of fun with that game back in the day, and Gunnar and Christopher do
manage to make games that I have no connection to and that seems dull at first glance be interesting
and fun episodes, so I&rsquo;m pretty sure this one is going to be fun.</p>
<p><strong>Geowizard</strong> released a fun adventure on youtube again, I really enjoy his stuff, this time he&rsquo;s
going through London without following any car road or canal for more than 25 m, the first episode
was already fun, and now I&rsquo;m pretty sure there will be a couple more before he&rsquo;s gotten all the way
through, that guy is just fun, and it&rsquo;s always a treat when something new comes up in my feed from
him.</p>
<p>I also quite enjoyed <strong>Olexa</strong> and <strong>Retromation</strong> playing rogue-lite block out bingo, they are both
people that I enjoy watching, they are pretty calm and fun dudes to watch, and just having some
banter and them doing some challenges in different games was a nice time.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Challenges and Streaks</title>
      <link>https://sotolf.codeberg.page/posts/challenges-and-streaks/</link>
      <pubDate>Tue, 19 Aug 2025 09:24:52 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/challenges-and-streaks/</guid>
      <description>&lt;p&gt;I have tried many things that has challenges and streaks throughout the years, and it never ends up&#xA;being a good thing, I see with myself that I will keep on finding loopholes to get a &amp;ldquo;technical win&amp;rdquo;&#xA;and it&amp;rsquo;s not just something I see in myself, I see it in others as well.&lt;/p&gt;&#xA;&lt;p&gt;First take a reading goal, I see many set themselves pretty high goals, like reading 50 books in a&#xA;year, which is well and good, it&amp;rsquo;s a good number of books to read in a year, but then it gets closer&#xA;to december, and the number is still not there, so they start out reading smaller and smaller books,&#xA;and just end up reading a comic or something and counting it as a book. At the same time they will&#xA;avoid longer books which might have been great to read, because it will reduce the arbitrary amount&#xA;of books that they have set as a goal. I for sure would not have read two 1000 page books this year&#xA;if I had set a number of books goal to read. Since bookwyrm just really wants me to set one I set an&#xA;easily achieveable one for me and go on.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I have tried many things that has challenges and streaks throughout the years, and it never ends up
being a good thing, I see with myself that I will keep on finding loopholes to get a &ldquo;technical win&rdquo;
and it&rsquo;s not just something I see in myself, I see it in others as well.</p>
<p>First take a reading goal, I see many set themselves pretty high goals, like reading 50 books in a
year, which is well and good, it&rsquo;s a good number of books to read in a year, but then it gets closer
to december, and the number is still not there, so they start out reading smaller and smaller books,
and just end up reading a comic or something and counting it as a book. At the same time they will
avoid longer books which might have been great to read, because it will reduce the arbitrary amount
of books that they have set as a goal. I for sure would not have read two 1000 page books this year
if I had set a number of books goal to read. Since bookwyrm just really wants me to set one I set an
easily achieveable one for me and go on.</p>
<p>Streaks also leads to the same kind of thing, I see &ldquo;blogging challenges&rdquo; like blaugust or 100 days
to offload, and look at what comes out of it, and it&rsquo;s the same thing happening, you don&rsquo;t really
feel like writing anything that day, and it&rsquo;s getting late, you just want some sleep, and you end up
writing 300 words of nonsense. It&rsquo;s here where you stop looking at your post as some fun thinking
through a theme, or something you really want to write to get off of your chest, and it turns into
content, you have to make content for the content machine, and for many of the posts that I have
read^Wskimmed that are marked as this would have had more content if they had just copy pasted lorem
ipsum and called it a day. I don&rsquo;t really believe in things being &ldquo;content&rdquo; if something is just
there to be there, what is it then worth? If the only reason you write something is to get something
out, what&rsquo;s the point?</p>
<p>I have way much more belief in, and it&rsquo;s something that I practice for myself most of the time, at
just blocking out time to spend on something, for reading I have set times a day where I will at
least get started reading, and then continue on. For writing, I some times write a couple of pages
of something and just scrap it afterwards because I&rsquo;m not happy with what came out. Sure it may not
have a tangiable thing that I can show others as a result like a streak of 31 days of having written
something, but I know.</p>
<p>This dillusionment with the result of challenges and streaks has caused me to stop doing things I
enjoy many times, I&rsquo;ve taken part in challenges for reading, then seeing I will not reach my goal
deem myself an unworthy failure and just stop reading for a time, the same is with things like
learning vocabulary, the one surefire way to get me to stop actually learning is to bring in some
kind of streak system, because if I fail that streak once, my brain insists that I just am an
unmitigated failure and it should never learn vocabulary again, because I&rsquo;ve already lost.</p>
<p>Now let&rsquo;s jump back to the blogging challenges that kind of triggered this post, I see that the more
people who I usually really enjoy reading posts from write these less than lorem ipsum posts, it
feels like they don&rsquo;t care about writing it, they write not because they want to, but because they
feel an obligation to, to not be a failure in not reaching their goal, them treating their writing
more as a way of pushing out &ldquo;content&rdquo; than wanting to share something, or writing something they
even care a little bit about makes me as a reader not care either. The insidious thing though is
that this also colours their other writing, the more slop someone shares, the harder it gets for me
to care as well, and the itching to just unsubscribe from something that neither the writer, nor
myself really seem to care about grows.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Persona 3 Portable</title>
      <link>https://sotolf.codeberg.page/posts/persona-3-portable/</link>
      <pubDate>Mon, 18 Aug 2025 11:32:55 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/persona-3-portable/</guid>
      <description>&lt;h1 id=&#34;persona-3-portable-a-little-review&#34;&gt;Persona 3 Portable, a little review&lt;/h1&gt;&#xA;&lt;p&gt;P3P has kind of been my obsession of late, it seems like the RPG spree is continuing on, and this&#xA;time it&amp;rsquo;s another one that I started back in the day, but never finished. Now the first time I&#xA;played this game was back in the 2010s on my old PSP, I don&amp;rsquo;t remember why I didn&amp;rsquo;t go on, but I&#xA;did really enjoy the game, it&amp;rsquo;s with so many games in that part of my life, I just played them for a&#xA;bit, and then went on to the next one.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h1 id="persona-3-portable-a-little-review">Persona 3 Portable, a little review</h1>
<p>P3P has kind of been my obsession of late, it seems like the RPG spree is continuing on, and this
time it&rsquo;s another one that I started back in the day, but never finished. Now the first time I
played this game was back in the 2010s on my old PSP, I don&rsquo;t remember why I didn&rsquo;t go on, but I
did really enjoy the game, it&rsquo;s with so many games in that part of my life, I just played them for a
bit, and then went on to the next one.</p>
<p>This is the little brother to the Persona 3 game for the Playstation 2, which has some extra
constraints to it, in addition to the ones ATLUS had from being on the verge of bankrupcy, so it&rsquo;s a
doubly constrained game, and constraints usually leads to very interesting games, and this certainly
is one, to save on space most of the daily lifesim elements are now presented as a visual novel, and
most of the interaction is rewritten to still make the story make sense, I like this, since it makes
it quite a breeze to go from one interesting thing to another, and you don&rsquo;t walk around endlessly
trying to figure out what to do next.</p>
<p>I put the difficulty down to easy, I&rsquo;m not really that good at games, and I do want to get through
this thing, the interest I have for now is mostly on story, and the Tartarus is grindy enough as it
is with its 264 floors, so for time and my own sanity, I kind of dislike being blocked from
progressing just because I haven&rsquo;t arbitrarily acheived some skill that somenone just though I
should intuit, or just banged against it until I get through it. With that the battles weren&rsquo;t that
much of a challenge, but it was still interesting enough to be fun. And I enjoyed the dungeon
crawling, even though it can be a bit monotoneous, with a podcast playing in the background I was
going through it, and I really enjoyed fusing together demons to create new ones, see what came out
of it, and which things it brought along from the ones going into producing it.</p>
<p>Now the main draw to this was the story and the characters. And I really enjoyed it, there is
something special in this game that the characters are starting out being quite cold towards you,
and only slowly opening up quite a bit into the game when you&rsquo;ve been through hell and back
together. It&rsquo;s something that you don&rsquo;t see too often in game, some real character arcs. I really
grew to like these characters, probably because it took effort, and we weren&rsquo;t all best friends from
point 0, it felt more like we earned the trust of the team.</p>
<p>I also really enjoyed the different small stories that get told through the Social-Links, basically
small side stories that does affect things a bit in that it makes your fused personas get some extra
stats, or when they are finished let you create the strongest one bearing their arcana.</p>
<p>There is a ton of subtext in this game, the arcanas, the personas of each person, and the writing
being influenced from greek tragedies. It really all hangs together great, and there are some
gut-punches along the way. Because of the length and the good writing, the story twists and turns,
and the different feelings that they want to get across does hit, and things feel earned when
something happens.</p>
<p>This was a really fun dungeon crawler with interesting systems glued together with well written
dialogue and fun side-stories filled with room for interpretation. While I&rsquo;m not really fond of
interpretation and &ldquo;literary&rdquo; stuff it&rsquo;s fun to see that it&rsquo;s there for the people that like that
stuff. It was a fun ride, with fun set-pieces, and a story that made me laugh, and get on the verge
of tears. It&rsquo;s a game that I really enjoyed.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 33</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-33/</link>
      <pubDate>Mon, 18 Aug 2025 09:14:23 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-33/</guid>
      <description>&lt;p&gt;This has been kind of a weird week, I don&amp;rsquo;t quite know how to summarise it, but at least in the end&#xA;it was quite okay, just a lot of the same stuff as normal, and then a free day on friday, not the&#xA;greatest day to have off in my opinion. Weekend was okay, but not stellar, it was a bit too wet for&#xA;that.&lt;/p&gt;&#xA;&lt;h1 id=&#34;books&#34;&gt;Books&lt;/h1&gt;&#xA;&lt;p&gt;With my book I&amp;rsquo;m still trudging through the same one, it&amp;rsquo;s still entertaining, but it&amp;rsquo;s so long, at&#xA;least I&amp;rsquo;m over 60% in now, and it&amp;rsquo;s still good, some action, some fun sci-fi thing, but I&amp;rsquo;m not&#xA;quite sure, there is nothing in there really pushing me to go on, it&amp;rsquo;s okay, and entertaining, but&#xA;not much more than that, I think I will still go on though, might be that the ending is fun, but&#xA;judging from the normal ending of Hamilton&amp;rsquo;s books, they usually aren&amp;rsquo;t that great, it&amp;rsquo;s usually&#xA;more the journey than the destination type of book.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This has been kind of a weird week, I don&rsquo;t quite know how to summarise it, but at least in the end
it was quite okay, just a lot of the same stuff as normal, and then a free day on friday, not the
greatest day to have off in my opinion. Weekend was okay, but not stellar, it was a bit too wet for
that.</p>
<h1 id="books">Books</h1>
<p>With my book I&rsquo;m still trudging through the same one, it&rsquo;s still entertaining, but it&rsquo;s so long, at
least I&rsquo;m over 60% in now, and it&rsquo;s still good, some action, some fun sci-fi thing, but I&rsquo;m not
quite sure, there is nothing in there really pushing me to go on, it&rsquo;s okay, and entertaining, but
not much more than that, I think I will still go on though, might be that the ending is fun, but
judging from the normal ending of Hamilton&rsquo;s books, they usually aren&rsquo;t that great, it&rsquo;s usually
more the journey than the destination type of book.</p>
<h1 id="games">Games</h1>
<p>I finished up Persona 3 Portable on the weekend, and what a wonderful game this was, the story was
great, the characters wonderful, and I really liked the presentation. I think it helped that I
played on easy so that I didn&rsquo;t really have anything really holding me back in the campaign, with
that I could pretty much cruise through and just enjoy the story. I will still come back to this and
play the second campaign, at least I&rsquo;m pretty sure, and I&rsquo;m a bit of two minds, but then I will
probably try and do it on normal instead. It&rsquo;s pretty impressive how much they got me so invested in
something that is 90% just menus, almost everything in P3P is just menus, but they are fun,
interesting menus I&rsquo;ll tell you!</p>
<p>What do you do right after you have finished a Monster long RPG with good characters that you love,
well, just jump into another one I guess, or at least that&rsquo;s what I did, jumped straight into
Persona 4 Golden after finishing 3, I did play the introduction a year ago or so, so I could skip
the eternal intro section. After having loved the cast of 3, it&rsquo;s kind of a struggle for me to
connect with the cast of 4 They are way more plucky adventurers than the predecessor, and the
theming and the vibe of the game just is so tonally opposite that it&rsquo;s a bit of a challenge to get
over. There are things that I prefer with 4, they have more setpieces for story stuff, while I
really enjoyed the visual novel style of P3P I have to say that it does help with having more scenes
that you can see while people are talking, now the walking around bit doesn&rsquo;t really pull in this or
that direction it&rsquo;s more or less equal. There is one thing that I do like more with 4 and that is
the shuffle time with cards after battle, it just is a lot more fun than the 3 card monty thing that
they did in 3, this time it feels more like a simple card game with some risk reward stuff, and I do
like how it&rsquo;s calmer, and less frantic.</p>
<p>I did a mistake in the weekend, I started playing Rift of the Necrodancer right before midnight, and
as usual with that thing I just got stuck in a focus hole, and it just overrode everything and I
played way later and longer than what I was planning to, and ended up with kind of messing up my
sleeping schedule, I should have learned that this will happen, but by now I guess I never will.</p>
<h1 id="other">Other</h1>
<p>It seems podcasts are still hard to come by, but that means I&rsquo;ve been getting through my backlog
which is nice, It&rsquo;s been over a year since the last time I have been able to see the beginning and
end of my to listen queue without scrolling, but now I do manage every weekend, which is kind of an
interesting situation to be in.</p>
<p>Into the Aether&rsquo;s big PSP episode was this week, and I really enjoyed it, these are just so nice and
fun to listen to, I love mega episodes like this, and while I understand that it would be unfeasible
to have more of them I would love to. I had so much fun with this one.</p>
<p>A theme that Brendon brought up on the podcast, and later in <a href="https://wavelengths.online/posts/why-are-all-gaming-handhelds-huge-now">a
blogpost</a> really resonated
with me, I basically grew up with handhelds, playing handheld games exclusively, and while some
elemnts of the games are brought on along, the kind of games that I grew up playing really doesn&rsquo;t
exist anymore. I would also love some kind of real portable system coming along again as well, it
was gaming for me, hopefully people will go along with wanting smaller handhelds again.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Podcasts</title>
      <link>https://sotolf.codeberg.page/posts/podcasts/</link>
      <pubDate>Wed, 13 Aug 2025 11:09:43 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/podcasts/</guid>
      <description>&lt;p&gt;I really love podcasts, like in extremely love podcasts, like I&amp;rsquo;m listnening to over 1000 episodes a&#xA;year love podcasts. It&amp;rsquo;s been a long relationship, I started out listening to them around 2006, so&#xA;that even means that I have a 2 decade anniversary with listening to them next year.&lt;/p&gt;&#xA;&lt;p&gt;Before podcasts I was a huge radio listener, and I grew up listening to radio, I also had a portable&#xA;radio like a diskman that I used to carry along with me, there aren&amp;rsquo;t many of the podcasts that I&#xA;used to listen to back in the day that I still listen to. I guess I do change through the times, and&#xA;some I have come back to with time, but that is the good thing about having a list of different&#xA;podcasts that I listen to, it&amp;rsquo;s like a radio that is tuned into topics that I am interested in, and&#xA;I can just pause it, and then continue on later when I have the time.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I really love podcasts, like in extremely love podcasts, like I&rsquo;m listnening to over 1000 episodes a
year love podcasts. It&rsquo;s been a long relationship, I started out listening to them around 2006, so
that even means that I have a 2 decade anniversary with listening to them next year.</p>
<p>Before podcasts I was a huge radio listener, and I grew up listening to radio, I also had a portable
radio like a diskman that I used to carry along with me, there aren&rsquo;t many of the podcasts that I
used to listen to back in the day that I still listen to. I guess I do change through the times, and
some I have come back to with time, but that is the good thing about having a list of different
podcasts that I listen to, it&rsquo;s like a radio that is tuned into topics that I am interested in, and
I can just pause it, and then continue on later when I have the time.</p>
<p>I really like that they are mainly offline, I can download rather small files and carry them along
with me, have hours of stuff ready for me to listen to. Back in the day I used to have a small mp3
player, my old creative muvo running off 2 AAA batteries, and sticking it into my PC every evening,
and running my little script that went through and downloaded stuff to it, things have changed now
that I have a phone in my pocket with a dedicated programme that is specialised to do it, but I
really liked my old janky setup as well, it kind of gave me a better understanding of how simple and
nice the whole setup is, just some audiofiles linked to by a single file.</p>
<p>Audio content is great for the times that you want your eyes free, like when I&rsquo;m out walking, and
it&rsquo;s also great alongside games, it&rsquo;s nice to have something to listen to when I grind some game, or
jumping around in a platformer. It&rsquo;s there while doing chores, and when I just want to sit down for
10 minutes relaxing.</p>
<p>Long form content is nice, and it&rsquo;s something that podcasts do very well, since the files are rather
small, and you can easily just pause it, they are usually around the hour mark, but also many times
up to 3-4 hours and in some cases even up to 6 or even a whopping 16 hours.</p>
<p>The informality of a podcast can be great, at least when you like the hosts, and it feels more
relaxed that more planned out and rehearsed things, and it&rsquo;s usually not a huge thing if you lose
focus for 5 minutes. I never managed to get into audio books, since my mind tends to wander when I
read a story, and unless it&rsquo;s an audio play I find myself having to rewind so often that it&rsquo;s not
really doable for me.</p>
<p>The relative ease of creating a podcast also means that there are a lot of niche stuff out there
that you just don&rsquo;t get other places, and usually discussed in a depht that you just don&rsquo;t see other
places, you get everything from really bad quality stuff recorded on crap microphones to
professional productions with chapter markers and pictures for each chapter, it&rsquo;s a really cool
variation that&rsquo;s just wonderful.</p>
<p>I guess I could go on more and more, I just really love them, which I think I&rsquo;m qualified to say,
just in the last 5 years I&rsquo;ve listened to 600+ days of podcasts, so yeah, I guess I&rsquo;m a bit over
average of an enjoyer of podcasts :p</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 32</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-32/</link>
      <pubDate>Mon, 11 Aug 2025 08:08:59 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-32/</guid>
      <description>&lt;p&gt;I took a day off this week, it was my first one this year :p it was nice though, I kept away from&#xA;people and had a nice walk in the woods, that day was just as the rain gave way for the sveltering&#xA;heat, so at least I had one day with quite comfortable weather. I did manage to hurt my big toe a&#xA;bit, so on the weekend I wasn&amp;rsquo;t able to move around too much, but the weather was so warm anyway&#xA;that it probably wouldn&amp;rsquo;t be something adviceable anyway. So much sweating when walking outside, so&#xA;I was feeling like a budget twilight vampire with my sparkly sheen of sweat :p I&amp;rsquo;m really looking&#xA;forward to Autumn now, when the days aren&amp;rsquo;t as warm as this, at least since the spring was basically&#xA;non-existant this year.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I took a day off this week, it was my first one this year :p it was nice though, I kept away from
people and had a nice walk in the woods, that day was just as the rain gave way for the sveltering
heat, so at least I had one day with quite comfortable weather. I did manage to hurt my big toe a
bit, so on the weekend I wasn&rsquo;t able to move around too much, but the weather was so warm anyway
that it probably wouldn&rsquo;t be something adviceable anyway. So much sweating when walking outside, so
I was feeling like a budget twilight vampire with my sparkly sheen of sweat :p I&rsquo;m really looking
forward to Autumn now, when the days aren&rsquo;t as warm as this, at least since the spring was basically
non-existant this year.</p>
<h1 id="books">Books</h1>
<p>Still reading Exhodus, and I still enjoy it, it&rsquo;s been kind of slow going the last days, I do go on,
it&rsquo;s just taking a while, I don&rsquo;t really mind, as it is a fun book, I just don&rsquo;t have much to say
about it here, it&rsquo;s starting to build up a bit though, so probably there will be a bit more action
rather than vibes in this week&rsquo;s reading.</p>
<h1 id="games">Games</h1>
<p>I&rsquo;ve been playing quite a lot of Persona 3 Portable over the weekend and through the week as well,
and I&rsquo;ve gotten to December now, so things are starting to be quite interesting, and the story is
starting to draw more to an end. One thing that I really appreciate with this one is that it&rsquo;s so
well written, I&rsquo;m just thinking how painful the S-Links (The smaller stories) could have been if
they weren&rsquo;t done as well as they are. Basically everything except the dungeon crawler half of the
game would be so painful if it wasn&rsquo;t.</p>
<p>Tartarus is starting to be a bit long in the tooth, but I&rsquo;m now at level 214 or so, so there aren&rsquo;t
that many left, and the whole point about it is being long, ardeous and kind of a slog to get
through, I don&rsquo;t mind it that much though, as those sessions are nice for just putting on a podcast
and blast through battles.</p>
<p>I have met some bosses that were a bit annoying, but since I did start the game on easy it hasn&rsquo;t
really been that bad, but I do feel like they would be frustrating on higher difficulties, on easy I
haven&rsquo;t really been struggling, it seems like it does limit the bullshit enemies enough to not
really be too bad. When I will play the game again the next time, probably next year or something, I
will need a bit of a break in between I think, but I do want to do the female protagonist as well,
probably I will at least try on normal difficulty and see if I can do it then, and then bump it down
if it gets too frustrating.</p>
<p>UFO 50 did release on the switch this week, but I&rsquo;m not in a mood where I deal well with
frustration, so I think I will wait with buying it until I&rsquo;m in a place where I can deal with it
better, I was close to just getting it, but there is really no reason to for me now, as I still have
quite a few games that I want to play before I get that far.</p>
<h1 id="media">Media</h1>
<p>Media wise this has been a weird week for me, with my one extra day off I did manage the unthinkable
though, I reduced my podcast queue down to empty, I don&rsquo;t think I&rsquo;ve done that in years. It&rsquo;s
probably a combination of the summer being down time for many and me having some more time to
listen, so I did put in some stuff from the back log. There was no Into the Aether this week which
made me kind of sad, probably it&rsquo;s in the preparation of their PSP special though, so hopefully it
will be worth it, maybe I will start putting in some of their episodes from the back-log as well.</p>
<p>Since the heretic-hexen rerelease came this week I did watch Gronkh playing the games a bit, and
that was fun, I do enjoy his videos a lot, but many of them are of Horror games or long series which
I don&rsquo;t really enjoy that much. That little though was fun, and some retro gameplay as well was nice
to watch. I&rsquo;m at a point in using German that I don&rsquo;t really think I can count it as practice any
more, the funny thing is although I learned German after English it feels more homey to me, probably
because I never spent long in any english speaking country.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Rpg Systems</title>
      <link>https://sotolf.codeberg.page/posts/rpg-systems/</link>
      <pubDate>Wed, 06 Aug 2025 10:18:41 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/rpg-systems/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been playing quite a bit of RPGs in the last 6 months or so, before that I think the only one&#xA;that I actually had finished was Dragon Quest 11 back on the 3DS. Mostly there has been a difficulty&#xA;spike or something that just brought me out of it, so I decided to just realise that I&amp;rsquo;m not that&#xA;great at games and just set the difficulty down to easy. I don&amp;rsquo;t quite know what it is that I&amp;rsquo;m&#xA;doing wrong which makes these difficulty spikes so difficult for me to deal with, but this way I do&#xA;get to at least experience the whole thing, which is nice.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve been playing quite a bit of RPGs in the last 6 months or so, before that I think the only one
that I actually had finished was Dragon Quest 11 back on the 3DS. Mostly there has been a difficulty
spike or something that just brought me out of it, so I decided to just realise that I&rsquo;m not that
great at games and just set the difficulty down to easy. I don&rsquo;t quite know what it is that I&rsquo;m
doing wrong which makes these difficulty spikes so difficult for me to deal with, but this way I do
get to at least experience the whole thing, which is nice.</p>
<p>Turn based RPGs are the ones that I prefer, and they all usually follow quite a set and traditional
format, and then throw in a system or two which kind of spices things up, being the Final Fantasies'
Active Time Battle or Shin Megami Tensei&rsquo;s Press turn system. It&rsquo;s fun figuring out how to use these
the best ways to deal with normal battles, the attrition and so on.</p>
<p>One realisation that I made this week is that the system of Octopath Traveller (shield break)
basically just is a slight change on Persona&rsquo;s 1 more turn system, where you exploit the enemies'
weakness and put them in a state where you can more easily deal with them.</p>
<p>So those are the battle systems themselves, but that&rsquo;s usually just the most visible ones, then you
have things like monster catching, demon fusing, jobs, and other ones that in addition with the
slow-ish growth through levels and experience makes a place where you can lorecraft and build
together something that works with how you want to play. I really enjoy that slow working towards
something and seeing it coming together, and then you noticing something that steers you in a
slightly different direction.</p>
<p>Currently I&rsquo;m playing Persona 3, and I really enjoy the variation and little breaks from battle to
fuse together demons and having a new team to play with, some more and less skills, and weighing
which types to keep around for the social links, and which ones are getting too weak to keep around,
it&rsquo;s the most fun I&rsquo;ve had with that kind of system since I was playing siralim which works more
like a card game, with each monster having a passive skill that works together to form broken
combinations, and fun interactions.</p>
<p>The best thing a system like this can do is when it&rsquo;s captivating enough that I keep on thinking
about it and lorebuilding in my head over the day, and then get to try out things in my &ldquo;gaming
time&rdquo; in the evening, some times it just doesn&rsquo;t work, others it does. I guess it&rsquo;s just kind of a
informatics person thing, that it&rsquo;s fun to play around with systems, figuring out how they work, and
what you can do with them.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 31</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-31/</link>
      <pubDate>Mon, 04 Aug 2025 09:54:51 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-31/</guid>
      <description>&lt;p&gt;This has been another week of churn, and all in all not a great week, not the worst, but there&#xA;hasn&amp;rsquo;t really been much to really celebrate this week. Another rainy week, with the weekend being&#xA;wet enough that I only have 3-4 hours of walking time together through the weekend, and many times&#xA;when I arrive at my home door looking like a sad drowned puppy. Also it was an on-call week, which&#xA;are never the great ones, but at least I had some things through. I thought I would do a mini review&#xA;of Final Fantasy VII as I did manage to finish that one Last week.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This has been another week of churn, and all in all not a great week, not the worst, but there
hasn&rsquo;t really been much to really celebrate this week. Another rainy week, with the weekend being
wet enough that I only have 3-4 hours of walking time together through the weekend, and many times
when I arrive at my home door looking like a sad drowned puppy. Also it was an on-call week, which
are never the great ones, but at least I had some things through. I thought I would do a mini review
of Final Fantasy VII as I did manage to finish that one Last week.</p>
<h1 id="final-fantasy-vii-mini-review">Final Fantasy VII Mini review</h1>
<p>I got this one on a whim since it was on another sale, and 6€ for a classic RPG is not something to
sneeze at. The graphics are.. well.. PS1 Graphics, but the longer you get into the game, the more
you start forget about that, and the more you get impressed about how well it all works together,
and while the graphics can&rsquo;t be said to be fancy, you get kind of impressed about it, and it has its
own charm, all in all I really liked the look of the game. But if you&rsquo;re into the more fancy and
high fidelity graphics, this probably won&rsquo;t win you over.</p>
<p>The story is decent, and it does it&rsquo;s thing of shuffeling you from one set-piece to another, and
these set pieces is what is really kind of making me impressed in this game, there are so many
memorable moment, cool little sequences that kind of makes this feel like a world spanning
adventure, climbing up a skyscraper, climbing up a snowy mountain, dropping in heist style over an
occupied city, snowboarding down a mountain or trying to stop a train by jumping from carriage to
carriage. This felt like what was driving the game, and It kept on amusing and amazing me how much
stuff they added to the game.</p>
<p>Battles are pretty standard fare, kind of like the normal Turn based combat, the limit-breaks kind
of are there, and while they are nice to get from time to time, I don&rsquo;t really think they added much
to the battle system. Materia was decent, but I don&rsquo;t really think they hold anything up to things
like the Job system in FFV, it kind of was there in the background, and I didn&rsquo;t fiddle around with
it too much, and if anything it made the character feel more like JPGs with stats to me, since
everyone could be anyone, and then just bekame nobody.</p>
<p>I&rsquo;m pretty happy with the discoverability and leading on of the story, and there wasn&rsquo;t many points
where I was really lost and had to look up what I was supposed to do next, which was really nice,
and it&rsquo;s something that I appreciate, and they did manage this without map markers and the like,
which made it feel less like following markers, and more like following the story, which I really
enjoyed.</p>
<p>And then we have the last dungeon and boss, that&rsquo;s where it all fell apart for me, and thankfully
for the last boss I was playing on the switch rerelease which let me cheat by filling up all the
meters (limit, life, ATB) and speed up the time 3x, the cave leading up to the final boss was okay,
and I got through it without cheating, but it had quite a lot of bullshit enemies that seemed to be
designed to just eat as many of your resources as possible, which was annoying, it broke the flow of
battle and being nocked down by instant death attacks just aren&rsquo;t fun, I went into the last cave
with 40 Pheonix downs, and had 25 when I reached the final Boss. The final boss battle also just was
not fun, it had tons of bullshit attacks, and also kept on doing this 40+ second long attack, which
just kind of decimated my party, which I had to spend resources to redo, and get in a couple of hits
before it started again. I was happy to cheat here, but it just didn&rsquo;t feel like a good conclusion.</p>
<p>All in all I really enjoyed the game, up until the last cave, and I do understand why this is
counted as a classic by many, it really did the transition to 3D well, and all in all I&rsquo;m really
happy to have played FF7. I just wish it wasn&rsquo;t marred by the bullshit leading up to the end.</p>
<h1 id="books">Books</h1>
<p>I started &ldquo;Exodus&rdquo; by Peter F. Hamilton this week, and it&rsquo;s kind of an intriguing world, and now
finally after having read about 200 pages of introductions it feels like the story is starting to
move, which is nice. I still really enjoy Hamiltons writing, and his quirks, it kind of feels like
coming home, as his was some of the first sci-fi books that I read when I started reading the genre.</p>
<p>The characters are pretty fun to, and while there has been no aliens so far, the gene edited upper
classes of humans in this book might as well be, as different and powerful as they do feel from the
rest of the characters.</p>
<p>I like most of the characters so far, and the beginnings of a story, but still haven&rsquo;t quite a hold
of what the story will be, but the show place and the characters are now in place, and I feel ready
to see what will happen, which is nice.</p>
<h1 id="games">Games</h1>
<p>Finishing of FF7 was kind of a let down, with the ending being how it was, but what&rsquo;s more natural
after finishing a long RPG than, starting another. So well I started playing Persona 3 Portable (the
switch rerelease). And I&rsquo;m now 15+ Hours in since it was a rainy weekend with not much to do.</p>
<p>I did play the beginning of P3P back in 2010 I think it was on my PSP, and this one really dredged
out some nostalgic memories. I think I&rsquo;m starting to get close to where I fell off the last time,
but I&rsquo;m not quite sure. It&rsquo;s a very enjoyable game though, the split in 2 with story elements, and
then some dungeon crawling works pretty well, the story pieces are written really well, and I like
the small broken up pieces of story (Apart from Kenji with his teacher crush, fuck him&hellip;).</p>
<p>The battles are fun, and the cycle of climbing up levels until you get to the mini boss, go back to
heal and fuse together demons, getting something new, and then dive in again feels really good, and
it&rsquo;s kind of really fun to keep in mind having a team that can do what I need in the dungeon, while
still being the types to further my goals in the story part. It&rsquo;s an engaging system that keeps on
ratteling on in the back of my mind over the day, which is always kind of fun.</p>
<p>I did start the game on easy, while it hasn&rsquo;t been much of a challenge in this mode yet, at least
it&rsquo;s not a frustrating block that doesn&rsquo;t let me continue on, I can always play it on a harder
difficulty later with the female protagonist, which from what I heard has a lot of new stuff with
it.</p>
<h1 id="other-media">Other Media</h1>
<p>As far as other media goes there wasn&rsquo;t really much that sparked too much of an interest with
something new and interesting, which kind of let me in a rut, with some light points here and there,
I watched some videos about eshop-slop which were kind of entertainment, for some reason I kind of
do like watching people talking about bad games :p</p>
<p>So since this section is rather short I guess I will take the chance to write a tiny bit about why I
stopped listeing to some podcasts, one prime example being &ldquo;Trash taste&rdquo; I do enjoy some of their
episodes, but they seem to have been gotten more back into anime/manga, and weeb-culture again,
while I mostly am more interested in their japan life stuff, which they used to have quite a lot of,
so I put them out of my auto download queue, which usually is okay, because I tend to read through
the episode descriptions and get the ones that I&rsquo;m interested in, but their descriptions are
atrocious, so I have no clue what the episode will be about, and end up with just not listening to
any of their episodes any more.</p>
<p>On youtube as well, it seems like my japan content has been going down rapidly, Abroad in Japan
seems to have almost stopped posting, and Connor&rsquo;s channel as well, and I kind of grew tired of some
of the other channels I did use to watch, I guess I kind of miss it, maybe I will try and look for
some new, it&rsquo;s just tiring to wade through all the shitty ones until I find a presenter that I
enjoy, and I don&rsquo;t really have the motivation and energy to do that at the moment.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 30</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-30/</link>
      <pubDate>Mon, 28 Jul 2025 11:20:23 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-30/</guid>
      <description>&lt;p&gt;A week of up and downs, Not the gratest, also not the worst, so that&amp;rsquo;s how it is I guess, not quite&#xA;sure what to say about this one, well still a couple of weeks to go before work hopefully settles a&#xA;bit again, but we&amp;rsquo;ll have to see about that.&lt;/p&gt;&#xA;&lt;h1 id=&#34;books&#34;&gt;Books&lt;/h1&gt;&#xA;&lt;p&gt;I Started reading &amp;ldquo;Deception Well&amp;rdquo; By Linda Nagata this week, and I almost got through it as well,&#xA;around 40 pages to go before I&amp;rsquo;m done with it. This is a really weird book, it&amp;rsquo;s kind of enjoyable,&#xA;but still kind of uncomfortably weird in a lot of places. Much of it takes place in a very far&#xA;future, where nanomachines and bio engineering has gotten a long way, so people are always a bit&#xA;weird, Probably stemming from this, it&amp;rsquo;s also kind of hard to know what is possible, so you&amp;rsquo;re&#xA;always kind of on the edge not knowing what is possible and what is not, which kind of leads to an&#xA;uncanny uncomfortable world which I&amp;rsquo;m not quite sure about if I like or not. It&amp;rsquo;s kind of a weird&#xA;book to me, but all in all I think I liked more than disliked the book.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>A week of up and downs, Not the gratest, also not the worst, so that&rsquo;s how it is I guess, not quite
sure what to say about this one, well still a couple of weeks to go before work hopefully settles a
bit again, but we&rsquo;ll have to see about that.</p>
<h1 id="books">Books</h1>
<p>I Started reading &ldquo;Deception Well&rdquo; By Linda Nagata this week, and I almost got through it as well,
around 40 pages to go before I&rsquo;m done with it. This is a really weird book, it&rsquo;s kind of enjoyable,
but still kind of uncomfortably weird in a lot of places. Much of it takes place in a very far
future, where nanomachines and bio engineering has gotten a long way, so people are always a bit
weird, Probably stemming from this, it&rsquo;s also kind of hard to know what is possible, so you&rsquo;re
always kind of on the edge not knowing what is possible and what is not, which kind of leads to an
uncanny uncomfortable world which I&rsquo;m not quite sure about if I like or not. It&rsquo;s kind of a weird
book to me, but all in all I think I liked more than disliked the book.</p>
<h1 id="games">Games</h1>
<p>This week I have been mostly Playing Final Fantasy VII, the rerelease of the old PS1 RPG, and it&rsquo;s
the newest Final Fantasy that I have been tried playing. So far it&rsquo;s a really enjoyable game with a
lot of cool set pieces where you have interesting fights and mini-games and so on. The story is
quite enjoyable as well.</p>
<p>Sure the graphics has not aged that well, since it&rsquo;s from that awkward first 3D games thing, but
that&rsquo;s quite quickly forgotten and I just enjoy the game instead. There is something charming about
it, and it has just strengthened my view that what is needed for a game is not fancy graphics, it&rsquo;s
the sum of all the parts, and if anything the graphics are one of the less important to me, as long
as it&rsquo;s kind of colourful, I like things that are colourful.</p>
<p>I&rsquo;ve also been just playing the beginning of the Persona 3 Portable rerelease for switch as well and
this is just how I remember it, this is probably what I will jump to when I&rsquo;m through with FF7, I
remember playing this on the PSP, but I&rsquo;m not quite sure how far I did get, if it&rsquo;s similar as with
FF7 it&rsquo;s probably a lot shorter than what I thought :p</p>
<p>I&rsquo;ve been having a lot of fun with RPGs lately, it&rsquo;s something that I haven&rsquo;t really done that much
before, I think I&rsquo;ve finished only a few RPGs completely, Dragon Quest XI being one of them, and
most of the others being pokémon games. So let&rsquo;s see what happens, I hope at least that I will be
able to get through FF7 some time in the next weeks, hopefully it doesn&rsquo;t have some kind of huge
difficulty spike that will kill my will to continue.</p>
<h1 id="podcasts-and-media">Podcasts and Media</h1>
<p>I don&rsquo;t really remember that much of this week, which is probably an indication there wasn&rsquo;t that
much interesting new stuff happening. Olexa, Orbital Potato, and Retromation is going on with
Farming simulator, and it&rsquo;s still really fun watching and listening to their hijinx through
struggling with the game.</p>
<p>One of my favourite podcast memories of this week was probably &ldquo;That&rsquo;s absurd please elaborate&rdquo;
where they were having a shark episode that was interesting even though I&rsquo;m not that interested in
sharks, but it was a fun episode, and learning how sharks have like all the superpowers was kind of
fun.</p>
<p>On an old videogame podtimism episode they were talking about Nostalgia, and that made me think, it
was a fun one, and I think I ended up with thinking that nostalgia is something good.</p>
<p>Also there was one episode about the Amiga from stay forever which I did enjoy, but I&rsquo;m not quite
sure if I do enjoy their new strategy of splitting up their normal 6 hour long technic episodes in 3
that gets released over weeks rather than all in one go, we&rsquo;ll have to see how it turns out though,
might be that it will be something I will enjoy in the end.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 29</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-29/</link>
      <pubDate>Mon, 21 Jul 2025 09:27:58 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-29/</guid>
      <description>&lt;p&gt;This has been a long churny week again, one of those where it&amp;rsquo;s hard to pick out where it starts and&#xA;ends, where it some times feels both like it goes fast and slow at the same time, and you don&amp;rsquo;t&#xA;really feel like you have any demarkations to orient yourself after.&lt;/p&gt;&#xA;&lt;p&gt;I had some nice walks this week, and while it&amp;rsquo;s still way too warm to comfortably do them, at least&#xA;it was nice to do again, I think not really getting to go out on my longer walks really has&#xA;negatively impacted my mood the last weeks, most of the time in the forest at least it&amp;rsquo;s halfway&#xA;tolerable to walk in the shadows at least, but it&amp;rsquo;s not the greatest.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This has been a long churny week again, one of those where it&rsquo;s hard to pick out where it starts and
ends, where it some times feels both like it goes fast and slow at the same time, and you don&rsquo;t
really feel like you have any demarkations to orient yourself after.</p>
<p>I had some nice walks this week, and while it&rsquo;s still way too warm to comfortably do them, at least
it was nice to do again, I think not really getting to go out on my longer walks really has
negatively impacted my mood the last weeks, most of the time in the forest at least it&rsquo;s halfway
tolerable to walk in the shadows at least, but it&rsquo;s not the greatest.</p>
<h1 id="books">Books</h1>
<p>I finished Cyteen this week, and it was almost a week earlier than what I was expecting myself to,
towards the end this one got really enjoyable, it&rsquo;s just a bit of a slog to get through the first
150 pages or so, and then this was really a good book. It&rsquo;s a heavier book than what I normally
read, with more politics and philosophy in it, which on one side is a good thing, but thankfully it
was packed into something that was pretty fun to read, and had moments that I really enjoyed.</p>
<p>I also started &ldquo;Deception Well&rdquo; By Linda Nagata, I don&rsquo;t quite remember why I picked these books up,
I think it might have been when I was searching for women writing sci-fi for the reading challange
that I set up for myself one year, but I&rsquo;m not quite sure. I remember not really enjoying the first
one in the series, it was well written, but it was way too much misery porn for me, just ugly mean
people being mean to each other. I&rsquo;ve only read the first 50 or so pages so far in this one, and it
does seem better on that point, so I hope this one will be a good read.</p>
<h1 id="games">Games</h1>
<p>I put Octopath Traveller II on a hold this weekend, after going frustrated with myself about it, it
seems me not being great at games is kind of starting to kicking my shins after 30 or so hours, or
it might be that I just need a little break, still really enjoying the game, but when I just felt
frustrated every time I booted it up I just need to get a bit of space I think, play something else
for a while, and come back to it with a better head space.</p>
<p>Did some more levels of OmNomRun, it&rsquo;s not at all a difficult or very inspiring game, but it&rsquo;s fun
to just brainlessly run and avoid obstacles for a while, and this is a decent one of the
autorunners, It&rsquo;s one where I play 10 levels in between stuff, and it&rsquo;s good at that, it&rsquo;s not
something that is something you can play for hours at an end.</p>
<p>I also did a bit more of Final Fantasy VII, but not that much either, it does feel fun, it just
doesn&rsquo;t match my current mood that well, so I just put in an hour or so, got the story going a bit,
until they get sent out on their second mission and Tifa joins the party, I&rsquo;m sure I will enjoy this
one, I remember playing the beginning back on the playstation.</p>
<p>What I spent most of my playtime over the weekend on was Shovel Knight, I have played through this
game on the PC and 3DS before, yeah I have bought this game at least 3 times :p And I got the Shovel
Knight treasure trove on the switch some time ago, but never really put any time into playing it.
I&rsquo;m through most of the game again now, doing most of the levels, the Boss-Rush towards the end and
have started the fight against the Enchantress, here I have to relearn her patterns before I&rsquo;m
through, but it&rsquo;s been a lot of fun, Shovelknight is one of the few games where I&rsquo;m mostly enjoying
the boss battles. There is a lot more to go in the whole collection though, I also own one of the
other characters separately, but didn&rsquo;t play it in this pack, so I have something more to go on when
I&rsquo;m through this one.</p>
<h1 id="podcastsmedia">Podcasts/Media</h1>
<p>For podcasts this has been another rather slow week, multiple ones are on a summer break, and I&rsquo;m
listening to quite a lot of backlogged stuff still. There weren&rsquo;t that many stand out episodes this
week that I enjoyed a lot more than the others really, mostly just going through stuff to have
something to listen to. I enjoyed that Skeptics Guide to the Universe finally had an almost AI less
episode again, it has been frustrating me that they have been focusing so much on that lately that I
have been rather been listening to other stuff.</p>
<p>Olexa, Retromation and Orbital Potato, all three youtubers that I quite enjoy has been starting to
play Farming Simulator, and the combination of how much they are struggling with managing to do
anything, and some of the jank of the game just really is an entertaining combination. It&rsquo;s just a
slow motion car crash that is really fun for me to watch at least.</p>
<p>All in all a middling week that well, at least happened, It was not my favourite one, and let&rsquo;s make
this one a better one :)</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 2025 28</title>
      <link>https://sotolf.codeberg.page/posts/this-week-2025-28/</link>
      <pubDate>Mon, 14 Jul 2025 08:19:17 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-2025-28/</guid>
      <description>&lt;p&gt;I had to add the year in to the title this week, I didn&amp;rsquo;t think of it in the first place, and was&#xA;kind of thinking it would be a short time experiment, now that I&amp;rsquo;ve actually done them for a while I&#xA;think it may be best to future proof them a bit, sot that I will have them work in case I keep on&#xA;doing these.&lt;/p&gt;&#xA;&lt;p&gt;It has been a rather bland churny kind of week this week, not that much going on, not much that&#xA;elevates my mood much over baseline. Fingers crossed for this week, maybe something good will&#xA;happen. Which lead my concentration to falter a couple of times, and me just looking forward to the&#xA;evenings to get to enjoy octopath a bit more. The weather is still springing back and forth between&#xA;rain and baking sun, so let&amp;rsquo;s see what the week brings.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I had to add the year in to the title this week, I didn&rsquo;t think of it in the first place, and was
kind of thinking it would be a short time experiment, now that I&rsquo;ve actually done them for a while I
think it may be best to future proof them a bit, sot that I will have them work in case I keep on
doing these.</p>
<p>It has been a rather bland churny kind of week this week, not that much going on, not much that
elevates my mood much over baseline. Fingers crossed for this week, maybe something good will
happen. Which lead my concentration to falter a couple of times, and me just looking forward to the
evenings to get to enjoy octopath a bit more. The weather is still springing back and forth between
rain and baking sun, so let&rsquo;s see what the week brings.</p>
<h1 id="books">Books</h1>
<p>I&rsquo;m still working on Cherryh&rsquo;s Cyteen, this is a big bastard of a book, around 500 pages read now,
and that is half way through the book, so it will probably take me a couple of weeks still to get
all the way through. It&rsquo;s getting good though, and she&rsquo;s building well on all the back story that
she has built up, and things are moving at a bit better of a clip now, so I hope and think that it
will be kind of keeping up what it has going, rather than going back to the more plodding style of
the beginning. I think I will need something a bit lighter and shorter when I get through it. I&rsquo;m
thinking of doing a reread of the Consortium Rebellion series by Jessie Mihalik, I really enjoyed it
the last time I read them, and they would fit pretty nicely I think.</p>
<h1 id="games">Games</h1>
<p>I&rsquo;m still really enjoying &ldquo;Octopath Traveller II&rdquo; and it&rsquo;s still occupying a lot of my mind, so if
you don&rsquo;t enjoy reading about that you can safely just skip this section.</p>
<p>This has been taking up most of my gaming time this week, and I have been getting about 30 hours
into it. I&rsquo;m not really rushing though, so I&rsquo;m not really that far into the stories. There is just
so many things to enjoy and savour here, which is really nice.</p>
<p>Firstly since there are 8 different stories to follow, you don&rsquo;t really get stuck in a rut in all of
them at once, so there is quite a lot of story variation, something that is nice for us as players,
and I would think for the developers as well. It&rsquo;s also an impressive amount of variation and
expressivity to the environments and the scenes for each of the story parts which I really enjoy,
it&rsquo;s quite the treat to go on to the next one. It&rsquo;s also nice that it kind of follows a Dragon Quest
kind of story telling with smaller stories that you can play in one evening / session, so that you
get a nice little satisfying piece when you sit down to play.</p>
<p>Battles are still fun, and the way the stories are built up makes you automatically need to rotate
the team, which is kind of annoying since you have to keep on retraining people, but on the other
hand it&rsquo;s fun because you&rsquo;re forced to take out some of the people that you have been leaning on,
and have to figure out how to work with this new group of people, which keeps things fresh. The
battle music is a banger. And I&rsquo;m starting to gathering up some more secondary jobs so it&rsquo;s fun
seeing them grow as well, there is constant movement foreward, and it&rsquo;s nice seeing the characters
grow.</p>
<p>I was a bit worried about the open world ish build up of the map, but it has been done in a nice
way, most of the areas outside of the cities are more or less corridors with some breaks and things
in it, even though they look way nicer, so you don&rsquo;t really continously get lost, but it&rsquo;s all small
enough that on the first run through they feel exploratory and interesting, and still short enough
that it&rsquo;s not a slog going through them the next times, there is just the right amount of chests
tucked away on different places, and temples and other goodies to stumble over that helps you going
foreward in some way or another.</p>
<p>I really enjoy this game.</p>
<h1 id="media--podcasts">Media / Podcasts</h1>
<p>It has been another kind of meager week for podcasts, &ldquo;Into the aether&rdquo; is back from break which is
really nice, it just always feels like there is just not enough, which is good in some ways, because
it keeps me wanting to listen, and means I&rsquo;m not tired of it. &ldquo;Video game Podtimism&rdquo; Just started
its break, and other ones are a bit more nebulous going back and forth. Dan and Jordan from the
Knowledge fight podcast stopped their 60&rsquo;s TV recap show &ldquo;A matter of time&rdquo; which is kind of sad
because I like them, and it&rsquo;s nice to get something a bit less focused on bad things version of
their show.  I&rsquo;ve also been a bit more ruthless about just stopping things that are too navelgazing
into American stuff and politics without having a bit of levity, so that means a couple of episodes
I just skipped or stopped halfway through. So I guess I will probably listen to quite a bit of back
log episodes this week again. Still working on the Video game podtimism one, and probably will for a
while if I don&rsquo;t grow tired of it.</p>
<p>I included media here to drag in some videos that I watched as well, even though it&rsquo;s not that
varied either for this week, I keep watching one of my favourites on youtube, olexa&rsquo;s channel,
playing interestig games, and just having kind of a calming voice that I enjoy listening to. They
were playing <a href="https://hempuli.itch.io/a-solitaire-mystery">Hempuli&rsquo;s new solitaire game</a> and it
looked really fun, so I&rsquo;ll probably be getting that one for some enjoyment in between. It looks like
a lot of fun.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 27</title>
      <link>https://sotolf.codeberg.page/posts/this-week-27/</link>
      <pubDate>Mon, 07 Jul 2025 09:06:45 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-27/</guid>
      <description>&lt;p&gt;Another week of heat that has at least been cooling down a bit towards the end, maybe I&amp;rsquo;ll end up&#xA;being a bit more awake this week, I&amp;rsquo;m getting kind of tired of being kind of stupid :p All in all&#xA;the week wasn&amp;rsquo;t that bad, but I think I will take a day off probably next week, we will see.&lt;/p&gt;&#xA;&lt;h1 id=&#34;books&#34;&gt;Books&lt;/h1&gt;&#xA;&lt;p&gt;So I&amp;rsquo;m only 23 percent or so through &amp;ldquo;Cyteen&amp;rdquo;, on the other side that is 230 pages or so, so it&amp;rsquo;s not&#xA;that bad, it just feels kind of demoralising :p It might also be because this is a bit more of a&#xA;challenging books than my normal ones. I am still enjoying it, it&amp;rsquo;s just not as fluffy a read as my&#xA;normal ones. There are lots of stuff happening, and a lot of politicking both in the government and&#xA;academic sense. I&amp;rsquo;m still kind of bewildered about what will happen next as even as far in as I am&#xA;it feels like it can go anywhere, I wish I had a bit more of a feeling of where it would go at&#xA;least.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Another week of heat that has at least been cooling down a bit towards the end, maybe I&rsquo;ll end up
being a bit more awake this week, I&rsquo;m getting kind of tired of being kind of stupid :p All in all
the week wasn&rsquo;t that bad, but I think I will take a day off probably next week, we will see.</p>
<h1 id="books">Books</h1>
<p>So I&rsquo;m only 23 percent or so through &ldquo;Cyteen&rdquo;, on the other side that is 230 pages or so, so it&rsquo;s not
that bad, it just feels kind of demoralising :p It might also be because this is a bit more of a
challenging books than my normal ones. I am still enjoying it, it&rsquo;s just not as fluffy a read as my
normal ones. There are lots of stuff happening, and a lot of politicking both in the government and
academic sense. I&rsquo;m still kind of bewildered about what will happen next as even as far in as I am
it feels like it can go anywhere, I wish I had a bit more of a feeling of where it would go at
least.</p>
<h1 id="games">Games</h1>
<p>Most of the week I was playing Mary Skelter 2 still, it&rsquo;s a fun dungeon crawler, and I really enjoy
the dungeon designs they have made, they are pretty intricate, and then they have nice shortcuts
that you can open when you get a bit farther in.</p>
<p>The systems are fun and everything, but as I got farther in I also started to get a bit tired of
it, so on Saturday I decided I will take a little break from it.</p>
<p>I had bought Octopath Traveller II on a sale earlier in the week, so that was what I went over to,
and so far with a bit over 5 hours played I am really enjoying it, I&rsquo;m still working on bringing the
band all together, I have gathered up 4 travellers so far, and I am really enjoying the small
vignettes that they have when they are joining up.</p>
<p>The classes are pretty fun, I started out with an Apothecary, and I really like her, her story also
feels kind of intriguing even though it&rsquo;s kind of the normal amnesia start of a game. I joined up
with a eastern warrior which has been one of the more boring, normal ones, a merchant and a dancer.
So pretty much a rag-tag team.</p>
<p>There also seems to be a bit more of a job system than just normal classes, and that&rsquo;s usually
always something enjoyable. So it seems like it does have an enjoyable amount of different systems
to play around with. The battles themselves are pretty fun, here the enemies have shields usually
1-5 this far and some vulnerabilities, and you try to hit their shields off, then they get stunned,
you also get boost points for each turn that you didn&rsquo;t use one, and you can use them to attack
multiple times, or do stronger versions of your normal attacks. It&rsquo;s pretty fun, and it seems pretty
generous with mana and stuff, so you get to enjoy the pretty effects.</p>
<p>The game looks, and sounds utterly gorgeous, it&rsquo;s some of the most beautiful graphics that I&rsquo;ve ever
seen, it&rsquo;s just the right amount of pixelly while still being stylised, So you get to watch
beautiful vistas and very impressive battle effects, while you still have the kind of derpy big
sprite moving across the screen and stuff like this. It seems like visually this is just catnip for
me. I&rsquo;m already kind of thinking of getting the first one as well, but I will wait a bit, and get
farther in this one before I jump on getting more stuff, I have enough things to play anyway.</p>
<p>My shopping spree continued, I got Final Fantasy VII the switch remake since people keep on saying
that&rsquo;s a good one, so I have that in the backhand, it was really cheap so it will very much at least
be worth it.</p>
<p>I also got Om Nom Run which is just a braindead endless runner game, because I felt like it, and I
played a bit of that, it was enjoyable, and I probably will do some more.</p>
<h1 id="podcasts">Podcasts</h1>
<p>This has been another one where There hasn&rsquo;t been that many podcasts added, so I&rsquo;ve been listening
quite a lot to older episodes, Video Game Podtimism is going on a two month hiatus since one of the
hosts just became a father, so it&rsquo;s good that I still have quite a lot of old episodes from them
still to listen back to.</p>
<p>I hit my usual end of week marker in the middle of the week somewhere, and ended up with 14 episodes
in my queue on sunday evening, when it&rsquo;s usually around 10 more, in one way it&rsquo;s nice, since it gets
me more time to listen to old stuff, which is also enjoyable.</p>
<p>I&rsquo;m really looking forward to Stay Forever&rsquo;s Hardware episode on the Amiga, that podcast in general
is just extremely enjoyable, they just makes deep dives like nobody else really manage to I think,
their episodes feel more like documentaries on the the things they are talking about rather than
just surface talking about games, well they do that as well, so that mix of things just makes it
really enjoyable to me.</p>
<h1 id="all-in-all">All in all</h1>
<p>So all in all it&rsquo;s been a decent week, it just kind of disappeared in the churn somehow, I think I
should probably do something to come out of some of the patterns, it&rsquo;s just that I need to keep some
of them going, so to break the correct ones and not all of them are some times not that easy.</p>
<p>I think one thing that I probably really should let go is that I have been spending quite a bit for
games the last weeks, and I have quite a backlog of fun things going now, so I really should let
that rest for a bit, at least until I am in a place where I feel like I don&rsquo;t want to play any of
the things that I do have, I now have 7 or so games that I at the moment feel like I want to play,
so adding to that is not really doing myself any favours. I should take the time and just enjoy
them, and step number one of that should probably be not religiously checking on &ldquo;dekudeals&rdquo; for
good offers, I&rsquo;ve been checking there multiple times a day for a month or so, and I really
shouldn&rsquo;t. At least when my plan is to not really buy anything for a while.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Ugly Code</title>
      <link>https://sotolf.codeberg.page/posts/ugly-code/</link>
      <pubDate>Fri, 04 Jul 2025 11:39:24 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/ugly-code/</guid>
      <description>&lt;p&gt;Gotta love proprietary templating languages&lt;/p&gt;&#xA;&lt;p&gt;Here is a seriously cursed piece of code that I wrote today&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;if(contains(GetVar(&amp;#34;lots&amp;#34;), LOT), &amp;#39;&amp;#39;,&#xA; LOT)&#xA; +&#xA;if(Contains(GetVar(&amp;#34;lots&amp;#34;), LOT)  ,&amp;#39;&amp;#39;, left$(SetVar(&amp;#34;lots&amp;#34;, GetVar(&amp;#34;lots&amp;#34;) + &amp;#39; &amp;#39; + LOT),1))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;At first it might not look too horrible, but the more you look at it the worse it gets, I will tell&#xA;you the tale of how this thing came into existence.&lt;/p&gt;&#xA;&lt;p&gt;So I&amp;rsquo;m writing a template for some papers, and I get lot numbers, quite a lot of them (pun&#xA;intended), but we don&amp;rsquo;t really want to have all the duplictes printed.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Gotta love proprietary templating languages</p>
<p>Here is a seriously cursed piece of code that I wrote today</p>





<pre tabindex="0"><code>if(contains(GetVar(&#34;lots&#34;), LOT), &#39;&#39;,
 LOT)
 +
if(Contains(GetVar(&#34;lots&#34;), LOT)  ,&#39;&#39;, left$(SetVar(&#34;lots&#34;, GetVar(&#34;lots&#34;) + &#39; &#39; + LOT),1))</code></pre><p>At first it might not look too horrible, but the more you look at it the worse it gets, I will tell
you the tale of how this thing came into existence.</p>
<p>So I&rsquo;m writing a template for some papers, and I get lot numbers, quite a lot of them (pun
intended), but we don&rsquo;t really want to have all the duplictes printed.</p>
<p>I think &ldquo;nice&rdquo; I know that the templating software has a Previous() function that lets me retrieve
the value of a field in the previous row, I&rsquo;ll just use that, and it will work.</p>
<p>so I wrote a nice little if, and thought myself finished</p>





<pre tabindex="0"><code>if(Previous(LOT) != LOT, LOT, &#39;&#39;)</code></pre><p>It was simple, it was nice, the problem is that the lots of course don&rsquo;t come sorted, so we got this</p>





<pre tabindex="0"><code>lot1
lot2
lot1</code></pre><p>So I had to come up with some way to deduplicate it, I looked so long for some kind of deduplicaton
thing in the software, but the sum functions only could sum numbers, and not strings, so I had to
come up with something else.</p>
<p>After some searching I found the function pair SetVar and GetVar, and those would set a local
variable in the software for this run through of the template.</p>
<p>There is no collections, but since this is a templating language at least we have strings..</p>
<p>So to add it we concatenate our new lot with a space in front of it to separate them, and for
something we will get to now. In one field of the report you are only allowed to use one statement,
and the setvar function return the result of the set thing.. Which means we check if the Lot is
already in our lot string, and then print the first character of it, which is a space, and since
this is the last thing in our return string it just looks as if it&rsquo;s empty..</p>
<p>I&rsquo;m not looking forward to maybe having to debug this in the future.</p>
]]></content:encoded>
    </item>
    <item>
      <title>My Weird Habits</title>
      <link>https://sotolf.codeberg.page/posts/my-weird-habits/</link>
      <pubDate>Tue, 01 Jul 2025 15:02:05 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/my-weird-habits/</guid>
      <description>&lt;p&gt;I have figured out that I&amp;rsquo;m having some weird habits when you compare to &amp;ldquo;normal&amp;rdquo; people, me being a&#xA;habit person I first of all have divided up my days, so I buy groceries on mondays, and so on.&lt;/p&gt;&#xA;&lt;p&gt;The first weird thing is that I just don&amp;rsquo;t have a data plan for my phone. So I only have internet&#xA;when I&amp;rsquo;m within wifi-range, and mostly also not then. It&amp;rsquo;s a weird thing in the beginning maybe, but&#xA;I have internet at home and at work, and otherwise I don&amp;rsquo;t really need it, and looking at how often&#xA;other people around me just grabs for their phone all the time I don&amp;rsquo;t really want it either. The a&#xA;bit bad thing about this is that I notice other people playing on their phone a lot more. One thing&#xA;that I have tried experimenting with is just picking up my phone and start playing solitaire when&#xA;the others are surfing around and not being subtle with it, but it doesn&amp;rsquo;t really seem like anyone&#xA;is picking up the hint at all.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I have figured out that I&rsquo;m having some weird habits when you compare to &ldquo;normal&rdquo; people, me being a
habit person I first of all have divided up my days, so I buy groceries on mondays, and so on.</p>
<p>The first weird thing is that I just don&rsquo;t have a data plan for my phone. So I only have internet
when I&rsquo;m within wifi-range, and mostly also not then. It&rsquo;s a weird thing in the beginning maybe, but
I have internet at home and at work, and otherwise I don&rsquo;t really need it, and looking at how often
other people around me just grabs for their phone all the time I don&rsquo;t really want it either. The a
bit bad thing about this is that I notice other people playing on their phone a lot more. One thing
that I have tried experimenting with is just picking up my phone and start playing solitaire when
the others are surfing around and not being subtle with it, but it doesn&rsquo;t really seem like anyone
is picking up the hint at all.</p>
<p>As a concequence of only having network some places I also like to have things offline, so I don&rsquo;t
stream stuff, I always download them and have them available on my phone. I don&rsquo;t have games
installed that rely on an internet connection and in general I&rsquo;m pretty well prepared for &ldquo;offline
time&rdquo; People around me also knows that I&rsquo;m not really always available, and it&rsquo;s a nice and freeing
feeling, and something that makes it easier for me to go out in the woods to disappear and get some
time for myself to just recharge, I don&rsquo;t really need people interupting me when I do that.</p>
<p>I try to turn off screens and light at 22, mostly to make sure that I get in some reading time each
evening, so basically around that time I try my best to save that time for reading and nothing else,
and it&rsquo;s been a good thing for my sleep, and it makes me read a lot more, since I have allotted time
for that that is for nothing else really.</p>
<p>I guess those are the biggest ones really, but it&rsquo;s something that for some reason tend to make
people confused if I talk to them. I don&rsquo;t really know why.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 26</title>
      <link>https://sotolf.codeberg.page/posts/this-week-26/</link>
      <pubDate>Mon, 30 Jun 2025 08:32:21 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-26/</guid>
      <description>&lt;p&gt;This has been a really warm week, and my body does not agree with it, so I&amp;rsquo;ve spent maybe more time&#xA;than normal just vegetating or sleeping, since I don&amp;rsquo;t sleep well in this warmth at all, but well,&#xA;that&amp;rsquo;s how summer is, at least they have been promising some rain over this week, so I still am in&#xA;hopes that it will be a bit more liveable, but we will have to wait and see.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This has been a really warm week, and my body does not agree with it, so I&rsquo;ve spent maybe more time
than normal just vegetating or sleeping, since I don&rsquo;t sleep well in this warmth at all, but well,
that&rsquo;s how summer is, at least they have been promising some rain over this week, so I still am in
hopes that it will be a bit more liveable, but we will have to wait and see.</p>
<h1 id="books">Books</h1>
<p>I really loved &ldquo;Ribbon Dance&rdquo; and for now this is the end of the Liaden Universe for me, I&rsquo;ve read
through all the books that I have from them, and all in all it has been a really fun Journey, good
characters, and good stories that mostly have made me very happy.</p>
<p>I was procrastrinating a lot on choosing my next book, since it was kind of a daunting task, but I
ended up with starting up C.J. Cherryh&rsquo;s &ldquo;Cyteen&rdquo; I&rsquo;ve read a lot of her other books from the
Alliance-Union universe, and quite enjoyed them, and even though this is a pretty daunting book,
with almost 1000 pages, I hope that it will be a fun, or at least interesting journey.</p>
<p>I&rsquo;ve just about started it, and it&rsquo;s straight on to the politics, in something that almost reminds
me a bit of the Foreigner series of hers, which I also have read quite a few of.</p>
<h1 id="games">Games</h1>
<p>With games I was still searching a lot, and I gave up on Axiom Verge again, at the same time as the
last time, maybe I just don&rsquo;t like this game, I don&rsquo;t know I will keep it in the back of my mind,
and maybe play it again some, but it just doesn&rsquo;t really spark that Joy that I feel I need from a
game.</p>
<p>I also downloaded <a href="https://supermariomon.com/">super mariomon</a> and put it onto my miyoo mini, and
started playing a bit, and it&rsquo;s really a fun version of pokémon, and for some reason I kind of feel
more for my little guys with them being different characters from mario, and this seems like a
really solid and well done rom-hack, I will probably play this some more than the couple of hours
that I have done so far, but it gave a really good first impression at least. And it&rsquo;s nice to have
a newish game to play on my miyoo, I think I have given it less playtime than it deserves in the
last months.</p>
<p>One of the games that I have been on sales hunting for &ldquo;Mary Skelter 2&rdquo; went on sale last week, 13€
for basically 2 games is a very good price, so I jumped on that one, and started playing it, and
it&rsquo;s really fun so far. It&rsquo;s a drpg, a first person dungeon crawler and it has systems upon systems,
which is something that feels good since that means you always feel like you&rsquo;re making some progress
at least in one of the things that you&rsquo;re trying to do. It also helps that although the subject of
the game is quite dark and horror adjacent, you don&rsquo;t really have the dark dreary environments,
rather very trippy clown vomit kind of colourschemes, which makes going around grinding feel a lot
better, since you&rsquo;re not looking at the same gray places all the time, it really makes a big
difference for me.</p>
<p>Apart from that I have been doing some looking around for something else as well, but haven&rsquo;t really
found anything I really want at the moment, so probably I&rsquo;ll just wait for something else that I
feel like coming up on a sale again.</p>
<h1 id="podcasts">Podcasts</h1>
<p>It has been a weird week for podcasts this week, I think it has been a bit of a lull in people
producing stuff, probably because many have been going on summer vacation and things like it, which
ended up in me getting to some backlog stuff, so I have been listening to quite a bit of older video
game podcasts, which has been pretty fun actually, it&rsquo;s nice getting some older thoughts on games,
and since you never really get to play all games from older years, maybe something interesting is
coming up as well.</p>
<p>&ldquo;Eggplant presents a year of UFO50&rdquo; is also going towards an end, and it is going to be weird to not
have the weekly episodes about different fun games there. But it has been a quite fun year of
different new- oldish games.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 25</title>
      <link>https://sotolf.codeberg.page/posts/this-week-25/</link>
      <pubDate>Mon, 23 Jun 2025 09:33:34 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-25/</guid>
      <description>&lt;p&gt;It was a long week this week, it&amp;rsquo;s been way too warm, and that does make my motivation and energy&#xA;basically tank. But well we just have to make the best out of it and things will hopefully look up.&lt;/p&gt;&#xA;&lt;h1 id=&#34;books&#34;&gt;Books&lt;/h1&gt;&#xA;&lt;p&gt;I finished off &amp;ldquo;Salvage Rights&amp;rdquo; this week, I also started it this week, and I think getting through&#xA;it in less than a week is pretty good, concidering it was kind of a brick, a very enjoyable brick,&#xA;but quite a think one anyway. It was hitting pretty much right in the vibes that I really enjoy from&#xA;a book though, with good people working together and being kind to each other, so it was way less of&#xA;a chore to get through than the last one that I read.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>It was a long week this week, it&rsquo;s been way too warm, and that does make my motivation and energy
basically tank. But well we just have to make the best out of it and things will hopefully look up.</p>
<h1 id="books">Books</h1>
<p>I finished off &ldquo;Salvage Rights&rdquo; this week, I also started it this week, and I think getting through
it in less than a week is pretty good, concidering it was kind of a brick, a very enjoyable brick,
but quite a think one anyway. It was hitting pretty much right in the vibes that I really enjoy from
a book though, with good people working together and being kind to each other, so it was way less of
a chore to get through than the last one that I read.</p>
<p>Starting off on &ldquo;Ribbon Dance&rdquo; with the first 50 or so pages read it does feel like this one is
following in the same traces, so that will be good. This also is the last one of the Liaden books
that I have, so I will have to start looking through the others that I have to see if I find
something else that I will enjoy, there is something nice but still a bit daunting about looking for
something new after you&rsquo;ve been reading books that I&rsquo;m quite sure I will enjoy for so long.</p>
<p>I&rsquo;ve been reading big parts of this book outside when out on my walks, and it&rsquo;s really nice to have
a good view and some nice air around while reading, and it&rsquo;s something I will try to do a bit more
of again, there is something extra about sitting on a hill with a view, or on a bench by the river
side reading that does make it even a bit nicer than just sitting in my normal cozy spot, or reading
before bed.</p>
<h1 id="games">Games</h1>
<p>I rolled credits on &ldquo;the Messenger&rdquo; this week, and it&rsquo;s an awesome game, it really was good, and
what really sticks with me is just movement, movement just feels right here, and it just makes the
game a joy to play, the bosses were hard, but actually manageable, and I wish other games was around
this difficulty level, at least for me it was just enough, and they were usually fun challenges to
deal with. I will play the DLC, and probably dip a bit into the New game plus as well, because
jumping around in this one just feels right.</p>
<p>So with another game basically finished I&rsquo;ve been floundering around, I do want to keep on a bit
with Etrian Odyssey, but I just haven&rsquo;t been that much in the mood for RPGs the last week or so, but
I will get back to it some day or other, it&rsquo;s just a really fun series of games, I just will have to
play some other things until I get into the mood again.</p>
<p>I started a new save in &ldquo;Children of Morta&rdquo; which is a beautiful Action RPG which is fun, but after
some hours I need a little pause from that as well, but I will come back to it, it&rsquo;s a great game,
but the slow progression and repetition of things just makes me kind of need some breaks in between,
it also doesn&rsquo;t help that I feel like ranged combat just is a lot more fun than the others, and you
kind of have to level everyone around the same to keep on doing well.</p>
<p>Which led to me starting a new save in &ldquo;Axiom Verge&rdquo; as well, Kind of like with the messenger I did
stop this one at some time because I just felt lost, and lost the motivation to keep going, and
maybe I&rsquo;m in a place to better enjoy it now, I got it in a double pack with II as well, so it would
be nice to at least get through this one, it&rsquo;s another metroidvania that leans even more on metroid
than the vania, who knows maybe this is the time that I will get through it.</p>
<p>I also installed &ldquo;Luck be a landlord&rdquo; on my phone, I kind of needed a phone game, and most of the
offerings are small microtransactioned to hell games, and it&rsquo;s fun, I&rsquo;m not sure if I&rsquo;m getting
better at it, but I did at least the first 4 or so difficulties, and it&rsquo;s a nice little thing to
have when I&rsquo;m not in the puzzeling mood to play Baba is you.</p>
<p>Cauldron is also one that I started a bit, it&rsquo;s a great podcast game that you can kind of play
without thinking too much, and it&rsquo;s colourful and cheery, but since it&rsquo;s a PC game, it&rsquo;s not
something that I want to play too often, I just don&rsquo;t have a comfortable setup for playing PC games.</p>
<p>So I&rsquo;ve been touching at a lot of games this week, but I am not quite sure how much joy has been
sparked, I think maybe I&rsquo;ll get on with Axiom verge, but we&rsquo;ll have to see what the week brings.</p>
<h1 id="podcasts">Podcasts</h1>
<p>I&rsquo;ve been in a pretty good place coming to podcasts this week, the culling of some stuff that I just
wasn&rsquo;t enjoying the last week, and adding some from the backlog of Video Game Podtimism to make up
for it really was a good choice, I got through most of the ones that I added last week, and only
skipped a couple that just wasn&rsquo;t what I wanted to listen to. I&rsquo;m down to 15 unlistened episodes on
a Monday, and it&rsquo;s not that often that is the case. So it might be that I need to add some more
backlog stuff, but that&rsquo;s a nice problem to have.</p>
<p>One of my favourite podcast plays also started it&rsquo;s third and last season &ldquo;The strange case of
starship Iris&rdquo; And it was great hearing the characters again, and it got me wanting to just binge
it, but well, the episodes are not all out, so I just have to set it up so that I get it at good
times, like when I&rsquo;m out walking and actually paying good attention to it, because I think it&rsquo;s
worth that.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Liaden Books</title>
      <link>https://sotolf.codeberg.page/posts/liaden-books/</link>
      <pubDate>Fri, 20 Jun 2025 09:18:23 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/liaden-books/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been reading this series for almost half a year now, and thought I&amp;rsquo;d spare it some words,&#xA;since it&amp;rsquo;s been something that I&amp;rsquo;ve been enjoying quite a lot, and seeing the evolution going&#xA;through as the first books were written in the 80s and the newest came out around last year if I&#xA;remember completely.&lt;/p&gt;&#xA;&lt;p&gt;The universe the stories happens in is one that is birthed from a previous one when the&#xA;restistance lost a war against some overwhelming power. While we have some more inventive aliens&#xA;like the clutch turtles, a race of big turtles who lives for thousands of years and are slow, or&#xA;the psychic norbears who are basically reading and communicating through thoughts and sentient trees, but that&amp;rsquo;s about&#xA;it for more inventive ones, most of the story takes place with Terrans, basically base humans, the&#xA;Liaden, which are base humans with some kind of magic power, and living through a very strict set&#xA;of rules and propriety, and a bit less so, the yxtrang, a military developed version of humans who&#xA;lost their inclination to serve and grouped together in the chaos of the transition to the new&#xA;universe, and are now more or less bands of marauding pirates.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve been reading this series for almost half a year now, and thought I&rsquo;d spare it some words,
since it&rsquo;s been something that I&rsquo;ve been enjoying quite a lot, and seeing the evolution going
through as the first books were written in the 80s and the newest came out around last year if I
remember completely.</p>
<p>The universe the stories happens in is one that is birthed from a previous one when the
restistance lost a war against some overwhelming power. While we have some more inventive aliens
like the clutch turtles, a race of big turtles who lives for thousands of years and are slow, or
the psychic norbears who are basically reading and communicating through thoughts and sentient trees, but that&rsquo;s about
it for more inventive ones, most of the story takes place with Terrans, basically base humans, the
Liaden, which are base humans with some kind of magic power, and living through a very strict set
of rules and propriety, and a bit less so, the yxtrang, a military developed version of humans who
lost their inclination to serve and grouped together in the chaos of the transition to the new
universe, and are now more or less bands of marauding pirates.</p>
<p>There are multiple sub-series through the 25 or so books in the universe, and we&rsquo;re following
different people and different generations of different families through time, mostly
consentrating on clan Korval, called &ldquo;The Tree and Dragon&rdquo;. You get to know these quite a lot
through the stories, and it&rsquo;s a nice thing to have an anchor.</p>
<p>The books go a bit back and forth in what they are, some are more of a romance story, with people
falling in love and so one, some have some stories of war, of growing up in a place foreign to
you, some about sentient AIs, and so on, there is a good variety of different places, and people
to follow, and it usually keeps the story interesting.</p>
<p>The main thing that I really enjoy in the book is the warmth in the storytelling, there are
always some good people to follow, and there are points of community and empathy that just really
feels right to me.</p>
<p>Language is handled very well and actually believeably through the stories, and I&rsquo;m actually
really quite impressed by it, each group of people have their own languages, and there are trade
which they speak together, there are evolution of languages, accents, and I have to say that it&rsquo;s
done really well, and even more there is no Sapir-Whorfian magical skills that you get from
knowing a language.</p>
<p>Much of what we have are stories about cultures crashing, about learning how to live with people
you&rsquo;re unsure about, and in the end finding out that people probably aren&rsquo;t that different in the
end, and that we can do things if we work together on it.</p>
<p>I only have a couple of books to go now in the series, and then I&rsquo;ll be on the lookout for
something else interesting to read, I&rsquo;m both quite exited to find something new to read, and at
the same time kind of sad that this long period of reading is coming to an end.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Graphics</title>
      <link>https://sotolf.codeberg.page/posts/graphics/</link>
      <pubDate>Tue, 17 Jun 2025 11:30:17 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/graphics/</guid>
      <description>&lt;p&gt;Video game graphics is kind of a weird topics, I think there are two different ways of&#xA;thinking about them, and at least for me personally there is one way that works way better than&#xA;the other one.&lt;/p&gt;&#xA;&lt;p&gt;One way of thinking of game graphics is, the newer the game, the higher fidelity and more lifelike&#xA;the graphics should be, and it seems to be something that drives things like console development&#xA;and things foreward, but I still don&amp;rsquo;t really understand it, for me it doesn&amp;rsquo;t really give me&#xA;much, other than I look at a picture or two and am impressed over how fancy graphics can look now&#xA;a days.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Video game graphics is kind of a weird topics, I think there are two different ways of
thinking about them, and at least for me personally there is one way that works way better than
the other one.</p>
<p>One way of thinking of game graphics is, the newer the game, the higher fidelity and more lifelike
the graphics should be, and it seems to be something that drives things like console development
and things foreward, but I still don&rsquo;t really understand it, for me it doesn&rsquo;t really give me
much, other than I look at a picture or two and am impressed over how fancy graphics can look now
a days.</p>
<p>The other way, and the one that was more forced back in the days were to let art direction,
restrictions and gameplay decide how the game looks, and it&rsquo;s something that I at least feel works
way better for me, does this game need to be 3D? Is there something that can be done with the
graphics to better support the gameplay itself, if it doesn&rsquo;t really have to look lifelike the
game authors are more free to do things that may be counterintuitive, but really enhance the
gameplay. There can be a lot, like the size of the in game avatar in comparison to the world
around them, colours.</p>
<p>I have to say that I&rsquo;m still partial to the chunky pixel look of old games, it may be nostalgia to
some degree, but I think that the game is just easier to parse and focus on when it&rsquo;s done in that
style. Lately I&rsquo;ve been retrying some old platforming favourites, ori and the will of the whisps
and the messenger. Ori does look beautiful, but I find it so much harder to parse than the more
spartan look of the messenger, while they do colour the enemies different than the background it
just has more of a tendency to blend into the background and foreground than the messenger&rsquo;s more
contrasting style for enemies, which makes it clear what is a threat, and what is just a
background element.</p>
<p>I&rsquo;ve also found many games that do fancy 3D and things like it to be harder to control, while 2D
more art direction focused games usually control well with a D-pad, and usually have more of a
direct feel, when we move over to a 3D free camera thing it gets really restrictive, and you kind
of have to rely on control sticks to get the control to feel decently intuitive.</p>
<p>Now how many games really need that? I have the feeling the need for sticks and that granular
control often is more in the service of the fancy graphics than it really is needed to make fun
gameplay, and it often feels more like something that is a hinderence for the flow of the game
than a real enrichment, but well, maybe that&rsquo;s just me being a grouchy old fart :p</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 24</title>
      <link>https://sotolf.codeberg.page/posts/this-week-24/</link>
      <pubDate>Mon, 16 Jun 2025 11:02:47 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-24/</guid>
      <description>&lt;p&gt;This has been an extremely warm week, and I don&amp;rsquo;t really do well with warmth, so I&amp;rsquo;ve been doing my&#xA;best staying hydrated, which works well most days, except for the weekend when I am out walking, I&amp;rsquo;m&#xA;not really liking to carry around a lot of stuff, so I leave my backpack at home, which means I&amp;rsquo;m&#xA;getting dehydrated, but well, we do our best.&lt;/p&gt;&#xA;&lt;h1 id=&#34;books&#34;&gt;Books&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been struggling a bit with &amp;ldquo;Fair trade&amp;rdquo; since it&amp;rsquo;s extremely swingy, some of the parts I&amp;rsquo;ve&#xA;found really good and I love those part, then to crash into some weird politics between rich people&#xA;that I don&amp;rsquo;t really understand and care about, and then it crashes into being a struggle again, now&#xA;I&amp;rsquo;m at the 90% mark, so I guess I will fininsh it today, and I really hope the next one will be less&#xA;swingy, and since it&amp;rsquo;s back in the main timeline I have enough grounding that I feel that will not&#xA;be an issue.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This has been an extremely warm week, and I don&rsquo;t really do well with warmth, so I&rsquo;ve been doing my
best staying hydrated, which works well most days, except for the weekend when I am out walking, I&rsquo;m
not really liking to carry around a lot of stuff, so I leave my backpack at home, which means I&rsquo;m
getting dehydrated, but well, we do our best.</p>
<h1 id="books">Books</h1>
<p>I&rsquo;ve been struggling a bit with &ldquo;Fair trade&rdquo; since it&rsquo;s extremely swingy, some of the parts I&rsquo;ve
found really good and I love those part, then to crash into some weird politics between rich people
that I don&rsquo;t really understand and care about, and then it crashes into being a struggle again, now
I&rsquo;m at the 90% mark, so I guess I will fininsh it today, and I really hope the next one will be less
swingy, and since it&rsquo;s back in the main timeline I have enough grounding that I feel that will not
be an issue.</p>
<h1 id="games">Games</h1>
<p>I&rsquo;m still in a middle phase with games where I don&rsquo;t really know what I want, I was playing a tiny
bit more of Ori and the will of the wisps, but I don&rsquo;t really like the combat focus that it has. But
I think at least I have clocked why it bothers me so much with ori, and not in the castlevania
games, I think it might have to do with it feeling more like just an obstacle in Ori, you get
nothing really for defeating the enemies, other than maybe some currency and some healing items,
while in castlevania you always get xp that makes you stronger, or you get some kind of slotmachine
item, or something that makes it at least worth it to do the fights. I have the same problem with
Hollow Knight, just even more there because the fights are even more laborious than they are in Ori.</p>
<p>I picked &ldquo;the Messenger&rdquo; back up over the weekend, and I have really loved this one, the graphics
are just in the sweet spot for what I like, the sound track is great, and I seem to be more patient
with it this time than the last time that I played this, it&rsquo;s really a fun game, and the movement
just feels great. The last time I stopped playing when it moved over to the more metroidvania built
up maps, but I think this time I will persivere. But let&rsquo;s see, maybe I will finally finish this
one.</p>
<h1 id="podcasts">Podcasts</h1>
<p>I&rsquo;ve been rejiggering my podcasts a bit this week, for some reason which I&rsquo;m not quite clear about
&ldquo;opening arguements&rdquo; a law podcast that I&rsquo;ve been listening to for years, but this week I found that
it&rsquo;s just not interesting, it has been way too much American stuff in all my feeds lately, and this
isn&rsquo;t funny or at least have some kind of lightening to it, so it has to go, I still have the feed
in case they have some single episodes worth listening to, but it&rsquo;s out of the I listen to every
episode rotation.</p>
<p>I&rsquo;ve been mostly liking gaming podcasts this week, which kind of fits into my mood, all the politics
gets to be a bit much, so I keep to the ones that at least have a bit of humor, or the very left
ones who dares to actually be upset and annoyed about things.</p>
<p>Funny thing I have noticed is that everything that I listened to who was made by more centrist
people have slowly left its place in my feed, the thing is I can&rsquo;t really deal with people excusing
stupid stuff any more, I&rsquo;m not in a place where I think building bridges is the right thing.</p>
<p>Let&rsquo;s see, I think this week will be a bit better, having eradicated some more stuff that makes me
not in a great mood, maybe it will help a bit.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 23</title>
      <link>https://sotolf.codeberg.page/posts/this-week-23/</link>
      <pubDate>Tue, 10 Jun 2025 09:16:51 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-23/</guid>
      <description>&lt;p&gt;So, I&amp;rsquo;m doing another one of these, I was unsure if I would even do it, but here I am. One day late&#xA;this week as yesterday was a holiday here in Austria. That means I have a longer time to summarise,&#xA;so let&amp;rsquo;s go.&lt;/p&gt;&#xA;&lt;h2 id=&#34;books&#34;&gt;Books&lt;/h2&gt;&#xA;&lt;p&gt;I Just finished off &amp;ldquo;Trader&amp;rsquo;s leap&amp;rdquo; yesterday, and I really enjoyed the book, it&amp;rsquo;s another chonker&#xA;with 450-ish pages, but the pace and everything just really fit me well. It has the warmth that I&#xA;seek from books, and the characters are established for so long that you know their family 2&#xA;generations back, you feel at home and grounded in the universe. Really a fun one, from what I&#xA;gather from the next one, (I&amp;rsquo;m reading them in publication order) it seems to be from way earlier in&#xA;the timeline, still kind of looking forward to it, as it seems to be another trading one, and those&#xA;tend to be some of my favourites. After that there will be two more books of tying up lose threads,&#xA;and then most of the series is done.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>So, I&rsquo;m doing another one of these, I was unsure if I would even do it, but here I am. One day late
this week as yesterday was a holiday here in Austria. That means I have a longer time to summarise,
so let&rsquo;s go.</p>
<h2 id="books">Books</h2>
<p>I Just finished off &ldquo;Trader&rsquo;s leap&rdquo; yesterday, and I really enjoyed the book, it&rsquo;s another chonker
with 450-ish pages, but the pace and everything just really fit me well. It has the warmth that I
seek from books, and the characters are established for so long that you know their family 2
generations back, you feel at home and grounded in the universe. Really a fun one, from what I
gather from the next one, (I&rsquo;m reading them in publication order) it seems to be from way earlier in
the timeline, still kind of looking forward to it, as it seems to be another trading one, and those
tend to be some of my favourites. After that there will be two more books of tying up lose threads,
and then most of the series is done.</p>
<p>There also seems to be two other books in the subseries of my current one that I probably should
read since they are also in a trader trope, I just have to get them first, and since they also is
from earlier in the timeline it&rsquo;s something I can read afterwards.</p>
<p>I&rsquo;ve been reading outside again over the long weekend, and I really enjoy that, it&rsquo;s something I
should do more of again, it&rsquo;s just nice to have some other place around me while reading, and I just
like looking over the rim of my book and have a nice view, it kind of just makes the book even more
enjoyable to me.</p>
<h2 id="games">Games</h2>
<p>For games this has been another week of not being completely sure what I want or don&rsquo;t, so I got
myself the first of the three Atelier Ryza games, which was on offer, I have only played a bit of
the beginning, but it seems pretty nice so far, it&rsquo;s a bit unclear where I can get the different
ingredients for alchemy, and I&rsquo;m a bit unsure where to go, but so far it seems pretty cozy and nice,
I will get back to this one in between when I need something cozy.</p>
<p>The Etrian Oddyssey Originals collection also got back on sales, and I jumped on that one to get the
two ones that I didn&rsquo;t have on the switch, the automapping walls and the easier basic difficulty is
kind of worth it to me, even though I have started the game on nds as well. Still working on the
first stratum there, but just really enjoying it, it&rsquo;s something about the ambience with that game
that just makes me feel happy, and the soundtrack is amazing, I wouldn&rsquo;t think the old chiptuny
music would fit, but it really does, and it might be that it&rsquo;s just being a bit nostalgic to me as
well.</p>
<p>I got a new SD-Card for my switch a couple of weeks ago, and now with about 10x as much space as I
did have I have before I have been downloading some games that I had before, but never kept
installed to save on space, so I&rsquo;ve been playing a little bit of &ldquo;the Messenger&rdquo; and the second Ori
game, and probably will jump in and out of them a bit, as I seem to have gotten more into RPGs, but
sometime needs something with some fun movement as well.</p>
<h2 id="podcasts">Podcasts</h2>
<p>Podcasts have been a bit more routine this week, having listened to a lot of hardcore gaming 101 the
last weeks to fill in the gaps I think I will take a little break from that backlog and listen to
some more of the videogame podtimism backlog as that podcast really has gotten a nice place for me.
I really like the tagline of &ldquo;The okayest games of the yesteryears&rdquo; and their positive outlook,
celebrating games that weren&rsquo;t always the best, but they had something worth celebrating.</p>
<p>For the new one this week they also did an experiment, but one that I enjoyed a lot more than the
last one, a summary of the okayest games they have been playing so far this year, and it was a nice
one, but then again I am a sucker for these kind of best of episodes of most podcasts.</p>
<p>Starship Iris, a podcast book that I&rsquo;ve been following for years now is getting started on their
last season this month, and it has been putting out some teasers that I have found really quite
interesting.</p>
<p>I also restarted listening to skeptics with a K, I kind of feel that I have had a bit of lack of
British podcasts, and it has been replacing Axe of the Bloodgod on my list since that one is a bit
more hit or miss in covering things that I&rsquo;m interested in, I still am subscribed to that one, I
just will download episodes manually when it&rsquo;s something I feel will be interesting, since they
discuss a lot of things in lenght that don&rsquo;t quite hit my likes completely.</p>
<p>Joel pointed me towards &ldquo;the worst community report&rdquo; as a replacement for into the aether, since
they were taking a week off, I really enjoyed the Atelier discussion that they had, but kind of
tuned out when they got to other themes, it seems to be more of a recap of the discord community
which I&rsquo;m not quite sure if is something I will be interested in in the long run, and it shows that
they don&rsquo;t have that much experience with podcasting and stuff since there was a bit much of talking
over each other and stuff, but it will be another one that I will look at the topics of and
downloading if I find the topic intriguing.</p>
<p>Stay forever, the German retrogame podcast that is one of my favourites also released an episode
about Metal gear solid 2 which was a lot of fun, really looking forward to their Amiga episode that
should come this month, this is just my comfort podcast, and it&rsquo;s just something that is nice
listening to.</p>
]]></content:encoded>
    </item>
    <item>
      <title>This Week 22</title>
      <link>https://sotolf.codeberg.page/posts/this-week-22/</link>
      <pubDate>Mon, 02 Jun 2025 10:09:00 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/this-week-22/</guid>
      <description>&lt;p&gt;So I have seen &lt;a href=&#34;https://joelchrono.xyz/&#34;&gt;Joel&lt;/a&gt; doing this on his blog, and I guess I will give it a&#xA;try, I haven&amp;rsquo;t really done as much different things, but it&amp;rsquo;s nice having a little summary, and I&#xA;always enjoy reading his week sumups so I guess it&amp;rsquo;s something that is at least for some people&#xA;enjoyable :)&lt;/p&gt;&#xA;&lt;p&gt;I had some really nice walks over the weekend, not as long as I would have wanted to, but the&#xA;suddenly baking sun got a bit too much for me, so I didn&amp;rsquo;t get more than 5-6 Hours of walking done.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>So I have seen <a href="https://joelchrono.xyz/">Joel</a> doing this on his blog, and I guess I will give it a
try, I haven&rsquo;t really done as much different things, but it&rsquo;s nice having a little summary, and I
always enjoy reading his week sumups so I guess it&rsquo;s something that is at least for some people
enjoyable :)</p>
<p>I had some really nice walks over the weekend, not as long as I would have wanted to, but the
suddenly baking sun got a bit too much for me, so I didn&rsquo;t get more than 5-6 Hours of walking done.</p>
<h2 id="books">Books:</h2>
<p>I&rsquo;m still working on <a href="https://bookwyrm.social/book/2005608/s/accepting-the-lance">Accepting the
Lance</a> , it&rsquo;s a good book, but it&rsquo;s
quite long, so it takes a bit of time to get through, but piece by piece it&rsquo;s getting there.</p>
<p>From what I have understood this is kind of the end of the Era of Liaden that I&rsquo;m currently in, so
it has some threads to tie together before the next line of stories can sprout up, something I&rsquo;m
looking forward to, about 30% left in the book now, and on page 380 or so, probably going to
finished off some time towards the middle of this week.</p>
<h2 id="games">Games:</h2>
<p>For games I&rsquo;ve been kind of going back and forth, I finished off <em>Promise Mascot Agency</em>, and I really
enjoyed it, kind of a wacky and wholesome crime story with management and exploration of a small
open world. I really enjoyed it, and it was a game that mostly did very well within it&rsquo;s size, just
big enough to feel big, but not so big that it felt sparse and repetetive, a really fun game that I
think I will probably come back to some time, to give another go, since it&rsquo;s not that long.</p>
<p><em>Undernauts: Labyrinth of yomi</em> Is one that I&rsquo;m kind of having a bit of a difficult time with, I&rsquo;ve
been kind of bummed out about how grungy and not colourful the graphics has been, and then I was
struggling with one of the bosses, which I finally managed to get down. Now I&rsquo;ve started on the tier
two dungeons, the thing is that I really like the mechanics and stuff of the game, but the whole
horror veneer they decided to put on top of it really didn&rsquo;t fit me well. I will be keeping on
plugging away on it back and forth, but It&rsquo;s not a game that I can keep on playing until I&rsquo;m through
with it, because I just don&rsquo;t like how it looks.</p>
<p>Since I finished mascot agency and kind of have been struggling with undernauts I have been playing
a bit of some other games, but not really sticking with any of them, I kind of feel like I&rsquo;m not
quite sure what I want to play, so I played a bit of crashlands, which is a fun little crafting
game, a bit of cat quest 2, and kind of looked at the titles of some of the games, started them up,
but just exited from the menu screen, I think I should probably go back to playing some etrian
odyssey on the miyoo, because I really like the graphics, it just feels so much harder than the 2nd
one that I played on the switch, I am starting to suspect that the basic difficulty I played on that
one was easier than the standard difficulty of the NDS games.</p>
<h2 id="podcasts">Podcasts:</h2>
<p>I&rsquo;ve been listening through my normal list of podcasts, which are a lot, I probably should write
them up some time, and put up which I really enjoy and things like that, but it&rsquo;s kind of a daunting
task since I listen to a lot of them.</p>
<p>As normal <em>Into the aether</em> has been one of the high points, and I did really enjoy the latest
episode of <em>stay forever</em> it&rsquo;s great how they manage to keep me interested in listening to the
history and stuff about a game I have never played and probably never will, some podcasts like these
I will put to the top of my queue at once, rather than listening to them as they come in which is my
normal way of doing that. <em>Video game podtimism</em> is usually one of my favourites, but this week they
did an experiment that didn&rsquo;t really hit me as well as it usually does, instead of the usual
ecclectic mix of different games this time they went full hog onto one game that I wasn&rsquo;t that
interested in, and while it wasn&rsquo;t bad, it just wasn&rsquo;t what I was looking forward to.</p>
<p>All in all I&rsquo;m going into this week with some new sun burns, and hopefully will have a good time,
let&rsquo;s see what this new week brings.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Videogame Bosses</title>
      <link>https://sotolf.codeberg.page/posts/videogame-bosses/</link>
      <pubDate>Fri, 30 May 2025 09:50:32 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/videogame-bosses/</guid>
      <description>&lt;p&gt;I really am in two minds when it comes to videogame bosses, to a point it&amp;rsquo;s nice to have a big&#xA;enemy capping of an area, and it&amp;rsquo;s kind of fun to have something to work towards, but in the end&#xA;more often than not it ends up being more of a negative than a plus for me personally, they are&#xA;often one of the reasons that I end up reading more books than playing video games. There are so&#xA;many things that can be done wrong with boss battles, and it&amp;rsquo;s annoying having to change the&#xA;difficulty of the whole game, just because the bosses are annoying.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I really am in two minds when it comes to videogame bosses, to a point it&rsquo;s nice to have a big
enemy capping of an area, and it&rsquo;s kind of fun to have something to work towards, but in the end
more often than not it ends up being more of a negative than a plus for me personally, they are
often one of the reasons that I end up reading more books than playing video games. There are so
many things that can be done wrong with boss battles, and it&rsquo;s annoying having to change the
difficulty of the whole game, just because the bosses are annoying.</p>
<p>One funny thing about boss battles is that it&rsquo;s very depending on the game, and what I hate about
them in one game is what I love about them in another one. In RPGs I absolutely hate gimmick
bosses, the ones that can only be hurt by doing some specific thing, or are especially strong to one
type of character or the like, much of this is how much work it is to retool your whole team to the
one thing that the developers wanted to do, and if you&rsquo;re me you&rsquo;re really bad at working out what
they wanted and more likely than not that&rsquo;s the end of that game for me.</p>
<p>For platformers however the gimmick bosses are the ones that are the most fun, probably because
iterating solutions are a lot easier in a platformer, and ususally they are pretty quickly beat when
you find the trick that they need.</p>
<p>In both cases though the bullet sponge bosses and the dragged out ones are the worst, while I can
keep up dodging and going through a pattern for 10-15 minutes, after that it&rsquo;s not fun any more,
even more if you don&rsquo;t have things like life bars, so you don&rsquo;t even know how far you are along you
just keep on pushing that stone up the mountain and hope that some time you&rsquo;ll finally get it to
rest somewhere else than down at the bottom.</p>
<p>It&rsquo;s such a weird thing though, because a good boss can be really exhilerating, finally getting
through this tough challenge, but that&rsquo;s only if you actaully manage to push through it. More often
than not, a bossfight is what will just make me have to abandon a game, which is annoying, yes, make
it a bit more challenging than the base game, make it something flashy and huge, something fun, but
so many seem to just push up the difficulty into something that is a game ender for me, which is a
bit sad, because there are some games that I really would have loved to give some more time, I&rsquo;m
just not able to step up to the challenge that they give.</p>
<p>But that might just be because I&rsquo;m not really that great at video games :p</p>
]]></content:encoded>
    </item>
    <item>
      <title>Reading</title>
      <link>https://sotolf.codeberg.page/posts/reading/</link>
      <pubDate>Wed, 28 May 2025 16:59:38 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/reading/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve always been fond of reading, but there are some changes that I have done through the time to&#xA;give myself more opportunities to read. Some things are simple others may be harder to do, depending&#xA;on your situation, but they are all things that have helped me read more at least :)&lt;/p&gt;&#xA;&lt;p&gt;First of all, might be a duh, but actually helped me a lot, allow myself to just give up on&#xA;something if I find that I dread sitting down reading it, I read for entertainment, and when I won&amp;rsquo;t&#xA;sit down because I&amp;rsquo;m not looking forward to it, then I&amp;rsquo;ve missed the point, I also never really look&#xA;fondly back on a book that I finished because I was already so far into it, so if I don&amp;rsquo;t like a&#xA;book, I give up on it, and read something else.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve always been fond of reading, but there are some changes that I have done through the time to
give myself more opportunities to read. Some things are simple others may be harder to do, depending
on your situation, but they are all things that have helped me read more at least :)</p>
<p>First of all, might be a duh, but actually helped me a lot, allow myself to just give up on
something if I find that I dread sitting down reading it, I read for entertainment, and when I won&rsquo;t
sit down because I&rsquo;m not looking forward to it, then I&rsquo;ve missed the point, I also never really look
fondly back on a book that I finished because I was already so far into it, so if I don&rsquo;t like a
book, I give up on it, and read something else.</p>
<p>I found a genre that works for me, for me that&rsquo;s mostly sci-fi, and it&rsquo;s a huge genre, with
everything from pretty dumb schlock that is fun to read for the action, and characters and up to
mind boggling stuff that feels like you would need a phd to actually understand.</p>
<p>Personally I like reading on a e-reader, it&rsquo;s smaller and thinner than a book, even more so for the
bricks that I end up reading some times, so it&rsquo;s easier to carry around everywhere, weighs next to
nothing, and lasts about a month per time I charge it, it&rsquo;s something that has been well woth the
price for me , I&rsquo;m soon up to having read 300 books since I got my kindle, so it&rsquo;s been great for
me.</p>
<p>I have also set up a no screens rule for myself at 22 on normal days, so I&rsquo;m not allowed to play
games, watch TV or anything like that, and try to keep away from the phone as well, so then I have
the choice to read a book, or go to sleep basically, and it has worked very well for me, it&rsquo;s
something I&rsquo;ve done for a couple of years by now, and I have to say that I&rsquo;m very happy with it, not
life changing, but it&rsquo;s a nice habit that has helped me being better.</p>
<p>And last but not least, always be kind to yourself, and don&rsquo;t compare yourself with others. Sure
this other person read 3 books in the time it took you to read one, they read faster and remember
more of the book, but why does that matter? I read for entertainment, so I had to stop myself from
comparing myself to others, it doesn&rsquo;t lead to anything good at all, because you will never really
be the &ldquo;best&rdquo; at reading if you&rsquo;re having work or doing anything else than reading all the time.</p>
<p>I do see that I do become a bit faster at reading, and get more read in some years, so it&rsquo;s
something you get better at, but reading is not about being the best at reading, it&rsquo;s about having a
good time and enjoying oneself.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Rhythm Games a Love and Hate Relationship</title>
      <link>https://sotolf.codeberg.page/posts/rhythm-games-a-love-and-hate-relationship/</link>
      <pubDate>Mon, 26 May 2025 10:02:30 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/rhythm-games-a-love-and-hate-relationship/</guid>
      <description>&lt;p&gt;So I made an error, like I have many times before, I got myself a new rhythm-game, this time I&#xA;bought &amp;ldquo;Rift of the necrodancer&amp;rdquo; and I love it, and hate it, most of the reason is my love-hate&#xA;relationship to rhythm games in general, it&amp;rsquo;s one of my favourite genres, but at the same time I&#xA;can&amp;rsquo;t play them too often, mostly because they just completely suck me in, and by that I mean to an&#xA;unhealthy degree.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>So I made an error, like I have many times before, I got myself a new rhythm-game, this time I
bought &ldquo;Rift of the necrodancer&rdquo; and I love it, and hate it, most of the reason is my love-hate
relationship to rhythm games in general, it&rsquo;s one of my favourite genres, but at the same time I
can&rsquo;t play them too often, mostly because they just completely suck me in, and by that I mean to an
unhealthy degree.</p>
<p>Rhythm games have this ability to completely hi-jack my focus and put me into a very strong flow
state, which I love, but the problem is stopping, and getting out of it. And be it as it may, this
saturday I lost 9 hours of time to just completely flowing into the game, and the only reason I
stopped was that it was 04 in the morning and I was getting exhausted.</p>
<p>Rhythm games have this perfect blend of needing skill, to always have a challenge that is just
outside of what you are able of doing. The visuals are usually cheery and upbeat, and the music just
wants you to keep on dealing with it. There is also the pleasure of a more tight connection to the
music as being aware of the rhythm of the music itself makes it so much easier, or on harder
difficulties possible to follow the mayhem on the screen.</p>
<p>Rift of the necrodancer on the surface is a simple game with only 3 inputs, just a tiny bit more
complicated than Taiko no tatsujin&rsquo;s 2, but that doesn&rsquo;t mean that the game is any less complicated.
The cool thing with rift is that it&rsquo;s markers are monsters, that all follow their own patterns, so
while some are just normal hits, others needs to be hit twice, some need to hits and moves in a
predictible pattern, yet others move down the board in different patterns and have their own way of
being special.</p>
<p>The thing about these movements is that on well done tabs, not only is it pleasing to hit the notes
at the perfect time, but the patterns of the movement, and how they match the music just really
sucks me in, the bats grouping together, the sceletons retreating up the board, or the bouncy
sprites, that makes the music feel even more bouncy and floating.</p>
<p>This visual element (mostly) really does make a difference, I love taiko no tatsujin, but it&rsquo;s more
focused on the audio element, and it feels really pleasing when you get the drum patterns in and it
flows, but the presentation of the tabs themselves are more normal with mostly just the rest of the
interface doing wild crazy things around it.</p>
<p>Another thing that I really enjoy by well done tabs in rhythm games are that they often have small
jokes built in, like a rhythm change, a last note that comes in at a weird time or something like
that, and it&rsquo;s a weird kind of game design joke that I actually get, most of the other ones I am not
really well enough versed to get, but these ones just really hit me each time.</p>
<p>Oh how I love rhythm games, but I can&rsquo;t play them too often, becuase they grab me too hard and don&rsquo;t
want to relinquish that hold of my complete attention.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Games I have Been Playing</title>
      <link>https://sotolf.codeberg.page/posts/games-ive-been-playing/</link>
      <pubDate>Thu, 22 May 2025 09:49:26 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/games-ive-been-playing/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been having a lot of fun with playing games again the last month or so, and I found a new genre&#xA;that I have really enjoy, DRPGs, old school first person dungeon crawlers, with more focus on&#xA;mechanics than story, and they have really been scratching an itch I didn&amp;rsquo;t really know that I had.&lt;/p&gt;&#xA;&lt;p&gt;Probably the most known of these are the Etrian Odyssey series, and they are wonderful, I really&#xA;like the nature feeling envioronmental labyrinths, the graphics looks pretty amazing for being on&#xA;the Nintendo DS, and they are difficult, but fair. It&amp;rsquo;s a lot of fun delving into the labyrinth&#xA;again and again, getting a little bit deeper each time.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve been having a lot of fun with playing games again the last month or so, and I found a new genre
that I have really enjoy, DRPGs, old school first person dungeon crawlers, with more focus on
mechanics than story, and they have really been scratching an itch I didn&rsquo;t really know that I had.</p>
<p>Probably the most known of these are the Etrian Odyssey series, and they are wonderful, I really
like the nature feeling envioronmental labyrinths, the graphics looks pretty amazing for being on
the Nintendo DS, and they are difficult, but fair. It&rsquo;s a lot of fun delving into the labyrinth
again and again, getting a little bit deeper each time.</p>
<p>Now it&rsquo;s not that weird that Etrian Odyssey is the biggest, it&rsquo;s developed by a big known developer
ATLUS, which is probably more known for the Persona series or lately Re:Fantasio, but there are a
number of smaller companies that do DRPGs as well, Experience inc. being one of them that I&rsquo;ve kind
of really fallen into liking a lot. The games can look kind of samey, but there is something about
the graphics and feel of these games that really appeals to me, and the steady slow progress just
really appeals to me.</p>
<p>There are some things I&rsquo;m not a fan of, and it&rsquo;s like in most games, Gimmick bosses, they just never
were fun to me, sure make them have some personality, and let them be gates for levels or items, but
having only one kind of damage damage them so that I have to rebuild my whole team and grind them
up, that kind of thing just isn&rsquo;t fun.</p>
<p>It&rsquo;s always really nice to get into a new genre, suddenly a lot of games that you didn&rsquo;t think about
gets open, and it&rsquo;s really nice. I&rsquo;ll be working on more of them, I&rsquo;ve only finished Etrian Odyssey
II and gotten very far in Demon Gaze, and got sidetracked playing &ldquo;Promise mascot Agency&rdquo; but I&rsquo;m
quite sure I will drop down in the dungeons again for some more slow progress.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Miyoo mini plus</title>
      <link>https://sotolf.codeberg.page/posts/miyoominiplus/</link>
      <pubDate>Mon, 29 Jul 2024 11:39:44 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/miyoominiplus/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve always really enjoyed older consoles, or, I mean they weren&amp;rsquo;t really that old when&#xA;I started out playing them, I grew up on the dmg Gameboy, and have been mostly having all the&#xA;nintendo handhelds as they have been released.&lt;/p&gt;&#xA;&lt;p&gt;Emulation has always been kind of magic, and I&amp;rsquo;ve really enjoyed it, to the extent that I do have&#xA;aftermarket SNES controllers more or less always connected to my PC, to have some fun playing old&#xA;games. The downside about that has always been that I have to sit down in front of my PC to enjoy&#xA;playing old games that I enjoyed, and I&amp;rsquo;ve always been more of a handheld gamer.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve always really enjoyed older consoles, or, I mean they weren&rsquo;t really that old when
I started out playing them, I grew up on the dmg Gameboy, and have been mostly having all the
nintendo handhelds as they have been released.</p>
<p>Emulation has always been kind of magic, and I&rsquo;ve really enjoyed it, to the extent that I do have
aftermarket SNES controllers more or less always connected to my PC, to have some fun playing old
games. The downside about that has always been that I have to sit down in front of my PC to enjoy
playing old games that I enjoyed, and I&rsquo;ve always been more of a handheld gamer.</p>
<p>For a while now (3+ Years) I&rsquo;ve been listening to the <a href="https://intothecast.online/">&ldquo;Into the Aether&rdquo;</a>
podcast, and <a href="https://wavelengths.online/">Brendon</a> there has been talking about his emulation
handhelds for a while. I don&rsquo;t quite know why but it always felt like something that I didn&rsquo;t
really have the possibility to have myself.</p>
<p>That is where <a href="https://fosstodon.org/@joel">joel</a> comes in, he was also getting into emulation
handhelds and was pushing me towards getting one for myself. So I eventually got to it
and ordered one off of amazon. It took a while for it to arrive though, as the first
shipment got lost by amazon, but the second one did arrive.</p>
<p>I got the <a href="https://www.miyoogame.com/product/miyoo-mini-plus-retro-handheld-game-console/">miyoo mini plus</a> in nice gray gameboy colours, which I really like the look of.
It does come with an SD card filled with stuff, but many has warned me off that, so I haven&rsquo;t used
this card at all, using a known good SD card brand that I knew from before, and installing the
<a href="https://onionui.github.io/">onionOs</a> on it from the get-go, it has a lot of comfort functions and
emulation cores that supports a lot more systems by default. Which is really nice.</p>
<p>I didn&rsquo;t really want to think too much about which roms to download and stuff like that so I went
with a curated pack <a href="https://archive.org/details/tiny-best-set-go">tiny best set go</a> and
supplemented it with roms from <a href="https://r-roms.github.io/">roms megathread</a> since tiny best set
doesn&rsquo;t really have any Nintedo DS or Playstation roms in it (My SD-Card is small 32 gb so I didn&rsquo;t
go for the bigger collections). I also did not copy over the arcade roms, since they don&rsquo;t really
interest me much. After a short while I got going. I was trying to evade my normal
pattern of just using a lot of time customizing and adding games more than actually playing them so
that was a short way to get started and just get going.</p>
<p>I&rsquo;ve been testing out some different games, and the little device seems to just play everything I
chuck at it well, even the more demanding nintendo ds games and playstation games, which left me
pretty impressed.</p>
<p>The handheld form factor really makes a huge difference in how much I do enjoy playing handheld
games it turns out. I&rsquo;ve tried doing emulation on my phone, but even though the games ran
perfectly, it just didn&rsquo;t feel right. I really like having the physical buttons and it being an all
in one dedicated machine. Just like having an ebook reader dedicated to read books, having a device
dedicated to emulating just makes sense to me, and it feels great.</p>
<p>After having played a bit around with just seeing how stuff runs, I decided to start playing
pokemon games, I never really played any of the ones after the first generation, and this feels
like a really good time to go on. There is something about a simple monster capturing game that
doesn&rsquo;t really demand that much of me, it&rsquo;s nice to have something to wind down with after work. So
I started out with pokemon Chrystal, and I&rsquo;m really impressed about how good it looks to be a Game
Boy colour game. So far I&rsquo;m really enjoying it.</p>
<p>We&rsquo;ll see what the future brings, but I&rsquo;m really having fun with this thing now.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Nostalgia</title>
      <link>https://sotolf.codeberg.page/posts/nostalgia/</link>
      <pubDate>Fri, 28 Jun 2024 09:01:00 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/nostalgia/</guid>
      <description>&lt;p&gt;For over a week now I&amp;rsquo;ve had this weird kind of nostalgia hanging over me, being whistful about&#xA;a time that just isn&amp;rsquo;t anymore, and I don&amp;rsquo;t know why really.&lt;/p&gt;&#xA;&lt;p&gt;It started out with me being annoyed at phones, (I know I know, old man yelling at clouds) but I&#xA;can&amp;rsquo;t escape the feeling that we were better off in the time before we were all staring down on the&#xA;black rectangle every day. My tendency to do that also in situations where it really would be&#xA;better to not to was the reason I&amp;rsquo;ve decided not to have a data subscription for my phone, I only&#xA;have internet when I have wifi around, which is generally enough for me.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>For over a week now I&rsquo;ve had this weird kind of nostalgia hanging over me, being whistful about
a time that just isn&rsquo;t anymore, and I don&rsquo;t know why really.</p>
<p>It started out with me being annoyed at phones, (I know I know, old man yelling at clouds) but I
can&rsquo;t escape the feeling that we were better off in the time before we were all staring down on the
black rectangle every day. My tendency to do that also in situations where it really would be
better to not to was the reason I&rsquo;ve decided not to have a data subscription for my phone, I only
have internet when I have wifi around, which is generally enough for me.</p>
<p>The thing is, before smartphones there was an &ldquo;off button&rdquo; we weren&rsquo;t always available, always
online, it was something that we could escape if we wanted to, not so much anymore, I have kind of
created something similar, and it took time to get people used to that I&rsquo;m not always available but
it&rsquo;s nice.</p>
<p>At the same time it&rsquo;s really convenient, and I don&rsquo;t really want to get rid of my phone either,
it&rsquo;s nice being able to download new stuff to listen to on the device itself without having to
chain it to a PC, but I did pretty well with it before as well.</p>
<p>Games is another place where I look back, but there as well I&rsquo;m not sure if what I&rsquo;m being is not
just not wanting to change and looking back to what things was when I was a young&rsquo;un. I just feel
like as we&rsquo;ve progressed it feels like we have taken away more and more limitations, and I&rsquo;m a guy
that strives under limitations, I&rsquo;m a person that need them to really manage to work. I&rsquo;m not good
at a wide open task, what I&rsquo;m good at is taking the limited options that we do have and make the
best out of it. And it feels like we&rsquo;re moving more in the direction of less limitations, maybe I&rsquo;m
just afraid of being left behind, I don&rsquo;t know.</p>
<p>Maybe it&rsquo;s also that it&rsquo;s signs of the time that I used to be more free, the times where I wasn&rsquo;t
chained to my workplace and other commitments, that makes me look at the memory of me walking
through the streets of Kobe with my mp3player in my pocket, my ds, and psp in my pocket. Having the
time to just go to the arcade and playing a taiko drum game in the arcade just because I wanted it.</p>
<p>There is also a danger of survivorship bias, that I&rsquo;ve just selectively forgotten the bad things,
and remember the good ones, I won&rsquo;t deny that. Sure there was a ton of bad games before too, they
were even more expensive to figure out that they weren&rsquo;t fun. It was in many ways an inconvenient
time, but I don&rsquo;t know, some times I kind of think that something not being convenient, maybe is
not such a bad thing.</p>
<p>So I don&rsquo;t know, the time that I&rsquo;ve kind of been longing for in my head the last couple of weeks,
it might just not have existed, or it might be just the situation that I was in at that time. But I
do kind of wish that I could walk through the train seeing people playing some silly game on their
small portable game machine that was weird and fun, things having silly colours, because why not,
jump off at some station where I know nobody and just get lost exploring, without a map or idea of
where to go. But then again, who knows, at least I can think back on that time in fondness.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Zig Freeing Error</title>
      <link>https://sotolf.codeberg.page/posts/freeing-error/</link>
      <pubDate>Thu, 20 Jun 2024 08:33:39 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/freeing-error/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m still working on learning zig, and today I had some issues with a small parser that&#xA;I was writing in my quest to learn enough of it to be a bit more comfortable with the&#xA;language.&lt;/p&gt;&#xA;&lt;p&gt;I struggled a bit with how to create a parser, thinking first that I would have to create&#xA;a mutable string to be able to chop off bits of it as it got parsed. I ended up scrapping&#xA;that idea when I read some example code for a toml parser that did the obvious, a struct that&#xA;just points to the string and an index, so wohoo, working well so far, I could read my&#xA;nested lists into structs, these looks like this:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;m still working on learning zig, and today I had some issues with a small parser that
I was writing in my quest to learn enough of it to be a bit more comfortable with the
language.</p>
<p>I struggled a bit with how to create a parser, thinking first that I would have to create
a mutable string to be able to chop off bits of it as it got parsed. I ended up scrapping
that idea when I read some example code for a toml parser that did the obvious, a struct that
just points to the string and an index, so wohoo, working well so far, I could read my
nested lists into structs, these looks like this:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">List</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="n">elements</span><span class="o">:</span><span class="w"> </span><span class="p">[]</span><span class="n">Element</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">free</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">List</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">        </span><span class="c1">//print(&#34;freeing: {any}\n&#34;, .{self});
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">elements</span><span class="p">)</span><span class="w"> </span><span class="o">|*</span><span class="n">elem</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">            </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">elem</span><span class="p">.</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">                </span><span class="p">.</span><span class="n">num</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="k">continue</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">                </span><span class="p">.</span><span class="n">list</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="o">|*</span><span class="n">lst</span><span class="o">|</span><span class="w"> </span><span class="n">lst</span><span class="p">.</span><span class="o">*</span><span class="p">.</span><span class="nf">free</span><span class="p">(</span><span class="n">alloc</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">        </span><span class="n">alloc</span><span class="p">.</span><span class="nf">free</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">elements</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Element</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">union</span><span class="p">(</span><span class="k">enum</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="w">    </span><span class="n">num</span><span class="o">:</span><span class="w"> </span><span class="kt">usize</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="w">    </span><span class="n">list</span><span class="o">:</span><span class="w"> </span><span class="n">List</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="p">};</span></span></span></code></pre></div>
<p>So my list is basically a slice of elements that can be either a number or another list.
When I want to free out the memory I recurse into the sublists and free them from the inside out.</p>
<p>This all worked quite well, at least in theory, when I parsed my file into this struct, the compiler
was yelling at me that I was leaking memory. I tried a lot of things and couldn&rsquo;t really wrap my
head around what it was that was wrong.</p>
<p>Some people may be able to see from my parsing code that will follow here, but it took me quite a
while to figure it out. So here we go:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">getLines</span><span class="p">(</span><span class="n">path</span><span class="o">:</span><span class="w"> </span><span class="p">[]</span><span class="kr">const</span><span class="w"> </span><span class="kt">u8</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Pair</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">fs</span><span class="p">.</span><span class="nf">cwd</span><span class="p">().</span><span class="nf">openFile</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="p">.{})</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="o">|</span><span class="n">err</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">        </span><span class="n">std</span><span class="p">.</span><span class="n">log</span><span class="p">.</span><span class="nf">err</span><span class="p">(</span><span class="s">&#34;Failed to open file {s}&#34;</span><span class="p">,</span><span class="w"> </span><span class="p">.{</span><span class="nb">@errorName</span><span class="p">(</span><span class="n">err</span><span class="p">)});</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">        </span><span class="k">return</span><span class="w"> </span><span class="n">err</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">    </span><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">file</span><span class="p">.</span><span class="nf">close</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Pair</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">first</span><span class="o">:</span><span class="w"> </span><span class="o">?</span><span class="n">List</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">second</span><span class="o">:</span><span class="w"> </span><span class="o">?</span><span class="n">List</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">    </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">file</span><span class="p">.</span><span class="nf">reader</span><span class="p">().</span><span class="nf">readUntilDelimiterOrEofAlloc</span><span class="p">(</span><span class="n">alloc</span><span class="p">,</span><span class="w"> </span><span class="se">&#39;\n&#39;</span><span class="p">,</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">math</span><span class="p">.</span><span class="nf">maxInt</span><span class="p">(</span><span class="kt">usize</span><span class="p">))</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="o">|</span><span class="n">err</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">        </span><span class="n">std</span><span class="p">.</span><span class="n">log</span><span class="p">.</span><span class="nf">err</span><span class="p">(</span><span class="s">&#34;Failed to read line: {s}&#34;</span><span class="p">,</span><span class="w"> </span><span class="p">.{</span><span class="nb">@errorName</span><span class="p">(</span><span class="n">err</span><span class="p">)});</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="w">        </span><span class="k">return</span><span class="w"> </span><span class="n">err</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="w">    </span><span class="p">})</span><span class="w"> </span><span class="o">|</span><span class="n">line</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="w">        </span><span class="k">defer</span><span class="w"> </span><span class="n">alloc</span><span class="p">.</span><span class="nf">free</span><span class="p">(</span><span class="n">line</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">mem</span><span class="p">.</span><span class="nf">eql</span><span class="p">(</span><span class="kt">u8</span><span class="p">,</span><span class="w"> </span><span class="n">line</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;&#34;</span><span class="p">))</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="w">            </span><span class="k">try</span><span class="w"> </span><span class="n">result</span><span class="p">.</span><span class="nf">append</span><span class="p">(.{</span><span class="w"> </span><span class="p">.</span><span class="n">first</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">first</span><span class="p">.</span><span class="o">?</span><span class="p">,</span><span class="w"> </span><span class="p">.</span><span class="n">second</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">second</span><span class="p">.</span><span class="o">?</span><span class="w"> </span><span class="p">});</span><span class="w">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="w">            </span><span class="n">first</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="w">            </span><span class="n">second</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">21</span><span class="cl"><span class="w">            </span><span class="k">continue</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">22</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">23</span><span class="cl"><span class="w">        </span><span class="kr">var</span><span class="w"> </span><span class="n">parser</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Parser</span><span class="p">.</span><span class="nf">fromString</span><span class="p">(</span><span class="n">line</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">24</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">first</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">25</span><span class="cl"><span class="w">            </span><span class="n">first</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">parser</span><span class="p">.</span><span class="nf">parseList</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">26</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">27</span><span class="cl"><span class="w">            </span><span class="n">second</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">parser</span><span class="p">.</span><span class="nf">parseList</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">28</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">29</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">30</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">31</span><span class="cl"><span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">32</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>The compiler says that the parser was allocating lists that didn&rsquo;t get freed, and I could not quite
wrap my head around why, so I started to debug my parser, but everything looked fine there, it
wasn&rsquo;t leaking, and I was going through my file by lines, and it worked fine, no leakage at all,
until I reached the last pair of the file.</p>
<p>And then it hit me, there is no empty line at the end of the file, so the last pair that I prepare
never gets added to the result. And since it never was a part of the result it never got freed and
just leaked all over the place. Basically all I had to do was add a little:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln">1</span><span class="cl"><span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">first</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">null</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">second</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">        </span><span class="k">try</span><span class="w"> </span><span class="n">result</span><span class="p">.</span><span class="nf">append</span><span class="p">(.{</span><span class="w"> </span><span class="p">.</span><span class="n">first</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">first</span><span class="p">.</span><span class="o">?</span><span class="p">,</span><span class="w"> </span><span class="p">.</span><span class="n">second</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">second</span><span class="p">.</span><span class="o">?</span><span class="w"> </span><span class="p">});</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w">    </span><span class="p">}</span></span></span></code></pre></div>
<p>to make sure that the last lines in the file also will get added, if they are there. And it worked!</p>
<p>I think this is the first time that leaking memory actually saved a logical problem in the code for
me. Now of course it depends on you using a language with leak detection, but I was very happy to
figure it out.</p>
<p>I&rsquo;m still having a lot of fun writing zig. And there are a lot of small learning opportunities like
this, slowly I&rsquo;m getting less horrible at this, and having a great time doing it.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Games</title>
      <link>https://sotolf.codeberg.page/posts/games/</link>
      <pubDate>Mon, 17 Jun 2024 07:56:17 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/games/</guid>
      <description>&lt;p&gt;I do really like to play games, quite a lot, it&amp;rsquo;s a nice way to wind down&#xA;from a hard day of work. The kind of games that I really do enjoy though, have&#xA;shifted through the years.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve always been mainly a handheld games person, I used to play a bit of PC games&#xA;but mostly I&amp;rsquo;ve been on handhelds, here is the list of consoles that I&amp;rsquo;ve had/have:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I do really like to play games, quite a lot, it&rsquo;s a nice way to wind down
from a hard day of work. The kind of games that I really do enjoy though, have
shifted through the years.</p>
<p>I&rsquo;ve always been mainly a handheld games person, I used to play a bit of PC games
but mostly I&rsquo;ve been on handhelds, here is the list of consoles that I&rsquo;ve had/have:</p>
<ul>
<li>Nintendo Gameboy (DMG)</li>
<li>Nintendo DS</li>
<li>Sony PSP</li>
<li>Nintendo 3DS</li>
<li>Nintendo Switch</li>
</ul>
<p>Up until the 3DS because of the systems that I&rsquo;ve had, I&rsquo;ve been playing mostly
AAA games, but as I played on the 3DS and Switch my gaming also moved over to be
mostly indie games, so queue the meme:</p>
<blockquote>
<p>I want shorter games with worse graphics made by people who are paid more
to work less, and I&rsquo;m not kidding.</p>
<ul>
<li>Jordan Mallory</li>
</ul>
</blockquote>
<p>And I think there is really something to it. I do like games that are a bit shorter
so there is actually a chance that I will finish them, I also like that indie games
mostly dare to be a bit different, have a story that is a bit less by the numbers,
and since I&rsquo;m kind of getting to be an old fart now, the graphics aren&rsquo;t really
something that I focus on in a game, I want them to be decently pretty, but photorealism
isn&rsquo;t really something that I care about at all.</p>
<p>I don&rsquo;t really have the time that I used to have to play games, so I mostly don&rsquo;t really play
the games for that long at all before I do something else, so I have a lot of long game that I&rsquo;ve
basically just started, and never really got that far in, then when I come back to them I usually
forget where I am, and start them from the beginning anyway. When a game is shorter (10-20 hours) I
will usually actually play through it. Of course there are a lot of things here, something round
based like a rogue-lite/like is something I often return to just because the rounds usually are
short enough that I can play one in a single session.</p>
<p>Indie games also seems to take more chances than the huge AAAs, and it&rsquo;s nice, I don&rsquo;t really want
to play Assassin&rsquo;s creed 345, but something that feels fresh and different. Maybe something that
plays around with an idea that doesn&rsquo;t hold up for a 40 hour game, but is really fun for 10 hours.</p>
<p>The pricing of course helps a lot too, I like not having to pay 70€ for a game that I don&rsquo;t know
that I will love, it feels way better to pay 10 for a game that I know is short, and I can have fun
for the little time that I play it.</p>
<p>For my switch games I do have a list <a href="https://www.dekudeals.com/collection/mpnjqj3fkx">here</a> that I
try to keep reasonably up to date with the games that I have, so if you&rsquo;re curious as to what I like
in games, that&rsquo;s probably a pretty good place to look.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Simplicity</title>
      <link>https://sotolf.codeberg.page/posts/simplicity/</link>
      <pubDate>Thu, 13 Jun 2024 11:12:29 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/simplicity/</guid>
      <description>&lt;h2 id=&#34;the-journey-towards-simplicity&#34;&gt;The journey towards simplicity&lt;/h2&gt;&#xA;&lt;p&gt;It&amp;rsquo;s kind of weird, but simplicity is something that I have started to enjoy more and&#xA;more in my life as I have grown older. The younger me loved reveling in complex stuff&#xA;and there is something about it that feels kind of exhilerating, that moment when something&#xA;clicks and you understand something complex it feels really good, my brain gets that nice&#xA;little rush of endorphins and tells me I&amp;rsquo;m a good boy.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="the-journey-towards-simplicity">The journey towards simplicity</h2>
<p>It&rsquo;s kind of weird, but simplicity is something that I have started to enjoy more and
more in my life as I have grown older. The younger me loved reveling in complex stuff
and there is something about it that feels kind of exhilerating, that moment when something
clicks and you understand something complex it feels really good, my brain gets that nice
little rush of endorphins and tells me I&rsquo;m a good boy.</p>
<p>What I usually did was then to just leave it at that, it&rsquo;s nice, I have understood
this complex fun thing, on to the next. But is that really all there is to it?
The thing is, understanding something complex, isn&rsquo;t that hard, it takes a bit of
time, but it&rsquo;s not something that has value in itself.</p>
<p>As I started playing with programming languages and programming itself, it&rsquo;s something
that started forming in my thoughts, while programming, even in pretty high level
languages, one has to break down complex things into smaller descrete steps, and stack
them on top of eachother to build up the complexity from simpler steps. And I found
that this was something that was even more rewarding than just understanding the complexity.</p>
<p>My programming journey slowly started unfolding, and I found that I enjoyed languages
that builds on more basic blocks more, maybe just because I had to unfold and break
things apart even more to it&rsquo;s even more simple parts that I could really understand,
and feel that I had a more full understanding of the thing.</p>
<p>The funny thing is that as I came to the conclusion that I could break complex things
into simple things, I started to really admire simple things. Sure there is something
fun with complex multi layered stuff, but there is something elegant about simple things
that would let you do things without the complexity.</p>
<h2 id="simplicity-in-my-tools">Simplicity in my tools</h2>
<p>Window-managers are cool, and fun to play around with, they basically are the thing that
steers our interaction with the computer, and when I started out playing with them it was
something that I just added onto my system as an additional tool. I started playing with
window managers, and using them to interact with the tools that I knew from my gnome2 setup.</p>
<p>As time came to change from my old machine to a newer one I took some time and looked through
which tools I really was using from the huge set I used to have, and looked for alternatives
I started setting up tools that still did the things I wanted, but wasn&rsquo;t really set up to
be a part of a big complex whole, and I set the whole thing up so that I had simpler tools
doing each task.</p>
<p>Now what I have running is probably too simple for many, something they wouldn&rsquo;t really have
any fun using, I use BSPWM, a very simple window manager that doesn&rsquo;t even have traditional
configuration, you start it up, and send it commands to configure things after it started. It
also doesn&rsquo;t do anything else than managing windows in response to commands it&rsquo;s sent. So
you use an external program like sxhkd that listens for hotkeys, and fire out a command when
a hotkey combination is sent.</p>
<p>There are some other things that I used to really enjoy that I have been finding is a bit too much
for me, I used to have a compositor running, so that I could have those fun transparent terminals,
but they don&rsquo;t really do anything else than make things look fancy, and kind of make the information
harder to read. So I dropped that. Another thing that just always was a part of every system I had
was a status bar always on screen, but I found that it was just there because it was something
that always was there, I never really used it. So I removed that as well, or since I was using
bspwm, I removed the stuff I&rsquo;d added to it to make it possible.</p>
<p>All in all my whole setup tends to look a bit alien and sparse to people, but I do really enjoy
using it, and it&rsquo;s now something that is really tailor made for me and the way I like to work.
Niche, yeah sure, but there is also something calming about it, and it makes me focus on what I
want to do, and to only really reach for things because I want to, not because I saw an enticing
looking icon or something, getting distracted from what I originally wanted to do, and end up
spending time on my computer when it wasn&rsquo;t really something I wanted to in the first place.</p>
<h2 id="programming-simplicity">Programming simplicity.</h2>
<p>After all of my previous mentions of simplicity, this will probably not come as a shock, but
as with so many other things my preferences for programming also has been tending towards
simplicity.</p>
<p>Python was probably the first language where I actually started doing real things, and it&rsquo;s still
the tool I will be reaching towards if I&rsquo;m just creating something for work, it is easy to use
has a lot of convenient things that makes it a nice tool to quickly make something that does a task.</p>
<p>So here comes the rub, I like simplicity, but pragmatism is also important to me, if I just want
something done, why be a zealot and just force something to be simple?</p>
<p>But for playing around, for hobby projects, the languages that I tend to like are the really simple
ones, for me there are documentation languages, like python, rust, C++, Haskell and so on. They
are fun balls of complexity, where you spend a lot of time reading documentation, and then find
the abstraction that does what you need, and how to use it, and write down the thing. But so often
it feels like if the internet went down, I would really struggle doing anything in them.</p>
<p>I&rsquo;ve found myself to really enjoy &ldquo;dive in&rdquo; langauges, like nim, zig, gleam and surely others like
go and odin, and so on. They are pretty easy to hold in my mind, and instead of reading
documentation I can focus on the thing I want to do. Sure there are tradeoffs, but they are the ones
that I like. There are of course even simpler languages like c and forth, but I have found them
to be a bit too hard, I don&rsquo;t really want to recreate basic datastructures, and I do enjoy having
a type system that is better at protecting myself from my stupidity.</p>
<h2 id="and-everything-else">And everything else.</h2>
<p>So simplicity can take many forms, I&rsquo;ve grown to create simple patterns and rules for myself to get
me to do things, I always go shopping on mondays, so I don&rsquo;t have to worry about that the other
days.</p>
<p>I turn off screens at 22:00 at night, and have set as a goal to read 1 page of a book, which usually
turns into an hour, but it&rsquo;s mostly there as a ruse, as continuing to read is a lot easier than
picking up the book and get started.</p>
<p>I like simplicity, but like everything else, being a zealot is not healthy, so I&rsquo;m pragmatic about
it, I do most of my things in a terminal, but browsing the web for example, just isn&rsquo;t pleasant in
that format, so I use a web browser, even though they are a complex beast often rivalling an own OS.</p>
<p>So I guess, tend toward simplicity when it&rsquo;s not at the detriment of getting things done I guess.</p>
<p>I don&rsquo;t know how to end things, so I guess I&rsquo;ll just go the simple route, I hope you are having a
pleasant day, and bye for now :)</p>
]]></content:encoded>
    </item>
    <item>
      <title>Gettin Ziggy With It</title>
      <link>https://sotolf.codeberg.page/posts/gettin-ziggy-with-it/</link>
      <pubDate>Wed, 12 Jun 2024 11:38:26 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/gettin-ziggy-with-it/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m fascinated with programming languages, and I like playing around with them.&#xA;The latest one that I have been really enjoying is zig, it&amp;rsquo;s a very low level&#xA;language, but has some quite nice features that makes it feel a lot more high&#xA;level than what it actually is.&lt;/p&gt;&#xA;&lt;p&gt;Zig is a fun language to play around with, and I actually feel good about the&#xA;code that I write in it, in comparison to go, rust and odin it&amp;rsquo;s very simple&#xA;and nice to work with.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;m fascinated with programming languages, and I like playing around with them.
The latest one that I have been really enjoying is zig, it&rsquo;s a very low level
language, but has some quite nice features that makes it feel a lot more high
level than what it actually is.</p>
<p>Zig is a fun language to play around with, and I actually feel good about the
code that I write in it, in comparison to go, rust and odin it&rsquo;s very simple
and nice to work with.</p>
<p>This time&rsquo;s task is <a href="https://adventofcode.com/2022/day/9">Advent of code 2022: day 9</a></p>
<p>Like always I start with creating a couple of types that I can use to store the
input in a more convenient format:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln">1</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Dir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">enum</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">up</span><span class="p">,</span><span class="w"> </span><span class="n">down</span><span class="p">,</span><span class="w"> </span><span class="n">left</span><span class="p">,</span><span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Motion</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w">    </span><span class="n">dir</span><span class="o">:</span><span class="w"> </span><span class="n">Dir</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="w">    </span><span class="n">len</span><span class="o">:</span><span class="w"> </span><span class="kt">usize</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="p">};</span></span></span></code></pre></div>
<p>Just a simple enum and a structure to keep things together. With this we can then
start working on parsing the file into a list of motions:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">getLines</span><span class="p">(</span><span class="n">path</span><span class="o">:</span><span class="w"> </span><span class="p">[]</span><span class="kr">const</span><span class="w"> </span><span class="kt">u8</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">fs</span><span class="p">.</span><span class="nf">cwd</span><span class="p">().</span><span class="nf">openFile</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="p">.{});</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">file</span><span class="p">.</span><span class="nf">close</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">buf_reader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">io</span><span class="p">.</span><span class="nf">bufferedReader</span><span class="p">(</span><span class="n">file</span><span class="p">.</span><span class="nf">reader</span><span class="p">());</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">reader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">buf_reader</span><span class="p">.</span><span class="nf">reader</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">motions</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="kt">u8</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">line</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">line_no</span><span class="o">:</span><span class="w"> </span><span class="kt">usize</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">writer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">line</span><span class="p">.</span><span class="nf">writer</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="w">    </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">reader</span><span class="p">.</span><span class="nf">streamUntilDelimiter</span><span class="p">(</span><span class="n">writer</span><span class="p">,</span><span class="w"> </span><span class="se">&#39;\n&#39;</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">))</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="p">(</span><span class="n">line_no</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="w">        </span><span class="k">defer</span><span class="w"> </span><span class="n">line</span><span class="p">.</span><span class="nf">clearRetainingCapacity</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="w">        </span><span class="kr">const</span><span class="w"> </span><span class="n">dir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">line</span><span class="p">.</span><span class="n">items</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="w">            </span><span class="s">&#39;D&#39;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">Dir</span><span class="p">.</span><span class="n">down</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="w">            </span><span class="s">&#39;U&#39;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">Dir</span><span class="p">.</span><span class="n">up</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">21</span><span class="cl"><span class="w">            </span><span class="s">&#39;L&#39;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">Dir</span><span class="p">.</span><span class="n">left</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">22</span><span class="cl"><span class="w">            </span><span class="s">&#39;R&#39;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">Dir</span><span class="p">.</span><span class="n">right</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">23</span><span class="cl"><span class="w">            </span><span class="k">else</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">24</span><span class="cl"><span class="w">                </span><span class="k">return</span><span class="w"> </span><span class="k">error</span><span class="p">.</span><span class="n">UnknownDirection</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">25</span><span class="cl"><span class="w">            </span><span class="p">},</span><span class="w">
</span></span></span><span class="line"><span class="ln">26</span><span class="cl"><span class="w">        </span><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln">27</span><span class="cl"><span class="w">        </span><span class="kr">const</span><span class="w"> </span><span class="n">steps</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">fmt</span><span class="p">.</span><span class="nf">parseInt</span><span class="p">(</span><span class="kt">usize</span><span class="p">,</span><span class="w"> </span><span class="n">line</span><span class="p">.</span><span class="n">items</span><span class="p">[</span><span class="mi">2</span><span class="p">..</span><span class="n">line</span><span class="p">.</span><span class="n">items</span><span class="p">.</span><span class="n">len</span><span class="p">],</span><span class="w"> </span><span class="mi">10</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">28</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">29</span><span class="cl"><span class="w">        </span><span class="k">try</span><span class="w"> </span><span class="n">motions</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="n">Motion</span><span class="p">{</span><span class="w"> </span><span class="p">.</span><span class="n">dir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dir</span><span class="p">,</span><span class="w"> </span><span class="p">.</span><span class="n">len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">steps</span><span class="w"> </span><span class="p">});</span><span class="w">
</span></span></span><span class="line"><span class="ln">30</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="o">|</span><span class="n">err</span><span class="o">|</span><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">err</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">31</span><span class="cl"><span class="w">        </span><span class="k">error</span><span class="p">.</span><span class="n">EndOfStream</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{},</span><span class="w">
</span></span></span><span class="line"><span class="ln">32</span><span class="cl"><span class="w">        </span><span class="k">else</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">err</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">33</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">34</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">35</span><span class="cl"><span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">motions</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">36</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>And that is quite a mouthful, thankfully I find the reading of files to be one of the
more complex parts of this one, so if you get through that one you&rsquo;re well set.</p>
<p>Strings in zig are <code>[]const u8</code> so basically a fat pointer to a character array, this gets
a bit more complicted as the strings are utf-8, but as long as you know stuff is going
to be ascii you can just treat it as that, thankfully.</p>
<p>Our return type is <code>!std.ArrayList(Motion)</code> the exclamation point means that this function can
return an error or a value, and the function calling it will have to deal with it. We won&rsquo;t see
much of that in this one though, since this is basically a throw-away script all my error handling
is basically bubble up to main, and quit if something is out of whack.</p>
<p>We also have to send an allocator along to this function, since we need to deal with arrayLists,
and zig is very explicit about that, if your function allocates it needs an allocator, that way
you will always be aware of where you allocate, which is nice. The only real exception to this
I can see is that you can cheat if you have a function that accepts something like an arrayList,
and you can then steal the allocator that it uses, but I&rsquo;m quite sure that&rsquo;s frowned upon.</p>
<p>We create some boilerplate stuff, a buffered reader and an arraylist to read the line into as a
buffer. then we go through each line, parse the direction into an enum and parse the steps into
an usize.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="kr">pub</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="o">!</span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">gpa</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">heap</span><span class="p">.</span><span class="nf">GeneralPurposeAllocator</span><span class="p">(.{}){};</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gpa</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">alloc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gpa</span><span class="p">.</span><span class="nf">allocator</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&#34;day09.txt&#34;</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">lines</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="nf">getLines</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">lines</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">    </span><span class="k">try</span><span class="w"> </span><span class="nf">part1</span><span class="p">(</span><span class="n">lines</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">    </span><span class="k">try</span><span class="w"> </span><span class="nf">part2</span><span class="p">(</span><span class="n">lines</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>So then we can look at the main function, here we set up an allocator, parse the file into a list
of motions that we then send over to the functions for part1 and part 2. We also make sure to
deinit (free) the list of motions at the end of the function so that we don&rsquo;t leak memory. When you
use the general purpose allocator the compiler will yell at you about the memory that you forget
to free, which is nice, kind of makes me feel more confident that I&rsquo;m doing that correctly, and
it&rsquo;s good that it does, since I&rsquo;ve seen from using zig a bit now, that I&rsquo;m still not great at
remembering to do that.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">part1</span><span class="p">(</span><span class="n">motions</span><span class="o">:</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">),</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">rope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Rope</span><span class="p">{};</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">rope</span><span class="p">.</span><span class="nf">move</span><span class="p">(</span><span class="n">motions</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w">    </span><span class="nf">print</span><span class="p">(</span><span class="s">&#34;Part1: {d}</span><span class="se">\n</span><span class="s">&#34;</span><span class="p">,</span><span class="w"> </span><span class="p">.{</span><span class="n">score</span><span class="p">});</span><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>Part one looks very nice and high level, we construct a rope, and ask it to move through
the motions, and print it&rsquo;s score, this looks very nice. So let&rsquo;s see what a rope is, and
how it works:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Rope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="n">head</span><span class="o">:</span><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Point</span><span class="p">{},</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">    </span><span class="n">tail</span><span class="o">:</span><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Point</span><span class="p">{},</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">move</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">Rope</span><span class="p">,</span><span class="w"> </span><span class="n">motions</span><span class="o">:</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">),</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">usize</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">        </span><span class="kr">var</span><span class="w"> </span><span class="n">seen</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">AutoHashMap</span><span class="p">(</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">        </span><span class="k">defer</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">motions</span><span class="p">.</span><span class="n">items</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">motion</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">            </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">..</span><span class="n">motion</span><span class="p">.</span><span class="n">len</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">_</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">                </span><span class="n">self</span><span class="p">.</span><span class="n">head</span><span class="p">.</span><span class="nf">move</span><span class="p">(</span><span class="n">motion</span><span class="p">.</span><span class="n">dir</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">                </span><span class="n">self</span><span class="p">.</span><span class="n">tail</span><span class="p">.</span><span class="nf">follow</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">head</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">                </span><span class="k">try</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">put</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">tail</span><span class="p">,</span><span class="w"> </span><span class="p">{});</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="w">        </span><span class="k">return</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">count</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="p">};</span></span></span></code></pre></div>
<p>So basically a rope is a head and a tail, which both are points (we will look into the point type
later) and one function move, which does the main work.</p>
<p>Since we need to get the number of places that are visited at least once we need some way of
deduping the points, and since zig has no set, we&rsquo;re using a hashmap with only keys. Memory
management here is very simple, since we&rsquo;re just throwing everything away after the function
goes through.</p>
<p>To do the motion we do the steps one by one, so that we can record the place of the tail after each
step. Basically we inchworm our way foreward, we first move the head, and then let the tail follow.
after that we record the place the tail is, and we repeat until we&rsquo;re through everything.</p>
<p>In the end we count how many keys we have, and that&rsquo;s our answer.</p>
<p>So the next step to look into is the Point type:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="n">row</span><span class="o">:</span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">    </span><span class="n">col</span><span class="o">:</span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">move</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="n">dir</span><span class="o">:</span><span class="w"> </span><span class="n">Dir</span><span class="p">)</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">        </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">            </span><span class="p">.</span><span class="n">up</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">            </span><span class="p">.</span><span class="n">down</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">            </span><span class="p">.</span><span class="n">left</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">            </span><span class="p">.</span><span class="n">right</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">follow</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="n">other</span><span class="o">:</span><span class="w"> </span><span class="n">Point</span><span class="p">)</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="w">        </span><span class="kr">const</span><span class="w"> </span><span class="n">row_diff</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">other</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="w">        </span><span class="kr">const</span><span class="w"> </span><span class="n">col_diff</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">other</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nb">@abs</span><span class="p">(</span><span class="n">row_diff</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="nb">@abs</span><span class="p">(</span><span class="n">col_diff</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">col_diff</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="w">            </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">21</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">col_diff</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">22</span><span class="cl"><span class="w">            </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">23</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">24</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">row_diff</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">25</span><span class="cl"><span class="w">            </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">26</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">27</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">row_diff</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">28</span><span class="cl"><span class="w">            </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">29</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">30</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">31</span><span class="cl"><span class="p">};</span></span></span></code></pre></div>
<p>A point is pretty simple, it&rsquo;s a row and column (I prefer them to x and y since they are less
easy to confuse, which I often do)</p>
<p>The point also has two functions in it&rsquo;s namespace. One that moves a point one step in a direction,
and another one that lets one point follow another point, nothing really complex here, just the
abs function that is a compiler builtin, probably since it works on many number types, I don&rsquo;t
really know why that has to be, but it is, so I&rsquo;ll just have to deal with that, compiler built in
functions are always prefixed with an @</p>
<p>And that&rsquo;s it for Part 1, and Part 2 is not that much harder, first the function to part2 will look
quite familiar:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">part2</span><span class="p">(</span><span class="n">motions</span><span class="o">:</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">),</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">rope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LongRope</span><span class="p">{};</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">rope</span><span class="p">.</span><span class="nf">move</span><span class="p">(</span><span class="n">motions</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w">    </span><span class="nf">print</span><span class="p">(</span><span class="s">&#34;Part2: {d}</span><span class="se">\n</span><span class="s">&#34;</span><span class="p">,</span><span class="w"> </span><span class="p">.{</span><span class="n">score</span><span class="p">});</span><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>The only difference to part 1 is that we have a different type of rope, so let&rsquo;s look at this long
rope:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">LongRope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="n">knots</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="mi">10</span><span class="p">]</span><span class="n">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">.{</span><span class="n">Point</span><span class="p">{}}</span><span class="w"> </span><span class="o">**</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">move</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">LongRope</span><span class="p">,</span><span class="w"> </span><span class="n">motions</span><span class="o">:</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">),</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">usize</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">        </span><span class="kr">var</span><span class="w"> </span><span class="n">seen</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">AutoHashMap</span><span class="p">(</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">        </span><span class="k">defer</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">motions</span><span class="p">.</span><span class="n">items</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">motion</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">            </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">..</span><span class="n">motion</span><span class="p">.</span><span class="n">len</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">_</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">                </span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nf">move</span><span class="p">(</span><span class="n">motion</span><span class="p">.</span><span class="n">dir</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">                </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">..</span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">.</span><span class="n">len</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">idx</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">                    </span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">[</span><span class="n">idx</span><span class="p">].</span><span class="nf">follow</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">[</span><span class="n">idx</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">]);</span><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">                </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="w">                </span><span class="k">try</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">put</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">[</span><span class="mi">9</span><span class="p">],</span><span class="w"> </span><span class="p">{});</span><span class="w">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="w">        </span><span class="k">return</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">count</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="p">};</span></span></span></code></pre></div>
<p>The long rope has an identical interface to the normal rope, but internally it&rsquo;s quite different,
instead of having just a head and a tail we now have an array of 10 knots, for our move function we
now iterate thorugh the array of knots, letting each of them follow the last, and we have our
answer.</p>
<p>The whole listing will follow at the end of the post, but first, I just want to talk a little bit
about things that I really enjoy with zig.</p>
<p>The language is very simple, it doesn&rsquo;t have a lot of abstractions, basically just the normal set of
basic types, and  a couple of collections, and things are pretty easy to understand. Even reading
the stdlib when some function has confused me wasn&rsquo;t really that difficult. And I find that I could
pretty quickly just write code, rather than reading and looking at the documentation all the time.
There is something freeing about that. Now that being said, there are quite a lot of things I just
haven&rsquo;t done in it yet, like comptime, but I mean I&rsquo;ve been using nim for a long time without having
to deal with macros as well, but I think I will want to look into it, since it&rsquo;s something people
seem to really love about the language.</p>
<p>I like that you can put functions in the namespace of a structure or an enum, that way I feel like
my code is a lot more organised than what my nim code is, I&rsquo;m not sure if this is mostly an
illusion, but if it is, it&rsquo;s one that I really do enjoy.</p>
<p>I was very unsure about the fact that not using a variable, or not marking an unchanged variable is
a compiler error, but I&rsquo;ve had exactly that remind me of something that I hadn&rsquo;t completely written
through yet multiple times, so I&rsquo;m leaning towards actually liking that. If I do have to run some
half written code to see something I can always discard them with <code>_ = variable</code> so it&rsquo;s not that
bad.</p>
<p>All in all I&rsquo;m really happy with the language, and I&rsquo;m having fun with it, so I think I will play
around with it some more.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zig" data-lang="zig"><span class="line"><span class="ln">  1</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">std</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">@import</span><span class="p">(</span><span class="s">&#34;std&#34;</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">  2</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">mem</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">mem</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">  3</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">fs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">fs</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">  4</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">print</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">debug</span><span class="p">.</span><span class="n">print</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">  5</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">  6</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">ParseError</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">error</span><span class="p">{</span><span class="n">UnknownDirection</span><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln">  7</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">  8</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">getLines</span><span class="p">(</span><span class="n">path</span><span class="o">:</span><span class="w"> </span><span class="p">[]</span><span class="kr">const</span><span class="w"> </span><span class="kt">u8</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">  9</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">fs</span><span class="p">.</span><span class="nf">cwd</span><span class="p">().</span><span class="nf">openFile</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="w"> </span><span class="p">.{});</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 10</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">file</span><span class="p">.</span><span class="nf">close</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 11</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 12</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">buf_reader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">io</span><span class="p">.</span><span class="nf">bufferedReader</span><span class="p">(</span><span class="n">file</span><span class="p">.</span><span class="nf">reader</span><span class="p">());</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 13</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">reader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">buf_reader</span><span class="p">.</span><span class="nf">reader</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 14</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 15</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">motions</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 16</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 17</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="kt">u8</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 18</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">line</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 19</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 20</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">line_no</span><span class="o">:</span><span class="w"> </span><span class="kt">usize</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 21</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">writer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">line</span><span class="p">.</span><span class="nf">writer</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 22</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 23</span><span class="cl"><span class="w">    </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">reader</span><span class="p">.</span><span class="nf">streamUntilDelimiter</span><span class="p">(</span><span class="n">writer</span><span class="p">,</span><span class="w"> </span><span class="se">&#39;\n&#39;</span><span class="p">,</span><span class="w"> </span><span class="kc">null</span><span class="p">))</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="p">(</span><span class="n">line_no</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 24</span><span class="cl"><span class="w">        </span><span class="k">defer</span><span class="w"> </span><span class="n">line</span><span class="p">.</span><span class="nf">clearRetainingCapacity</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 25</span><span class="cl"><span class="w">        </span><span class="kr">const</span><span class="w"> </span><span class="n">dir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">line</span><span class="p">.</span><span class="n">items</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 26</span><span class="cl"><span class="w">            </span><span class="s">&#39;D&#39;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">Dir</span><span class="p">.</span><span class="n">down</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 27</span><span class="cl"><span class="w">            </span><span class="s">&#39;U&#39;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">Dir</span><span class="p">.</span><span class="n">up</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 28</span><span class="cl"><span class="w">            </span><span class="s">&#39;L&#39;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">Dir</span><span class="p">.</span><span class="n">left</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 29</span><span class="cl"><span class="w">            </span><span class="s">&#39;R&#39;</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">Dir</span><span class="p">.</span><span class="n">right</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 30</span><span class="cl"><span class="w">            </span><span class="k">else</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 31</span><span class="cl"><span class="w">                </span><span class="k">return</span><span class="w"> </span><span class="k">error</span><span class="p">.</span><span class="n">UnknownDirection</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 32</span><span class="cl"><span class="w">            </span><span class="p">},</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 33</span><span class="cl"><span class="w">        </span><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 34</span><span class="cl"><span class="w">        </span><span class="kr">const</span><span class="w"> </span><span class="n">steps</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">fmt</span><span class="p">.</span><span class="nf">parseInt</span><span class="p">(</span><span class="kt">usize</span><span class="p">,</span><span class="w"> </span><span class="n">line</span><span class="p">.</span><span class="n">items</span><span class="p">[</span><span class="mi">2</span><span class="p">..</span><span class="n">line</span><span class="p">.</span><span class="n">items</span><span class="p">.</span><span class="n">len</span><span class="p">],</span><span class="w"> </span><span class="mi">10</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 35</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 36</span><span class="cl"><span class="w">        </span><span class="k">try</span><span class="w"> </span><span class="n">motions</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="n">Motion</span><span class="p">{</span><span class="w"> </span><span class="p">.</span><span class="n">dir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dir</span><span class="p">,</span><span class="w"> </span><span class="p">.</span><span class="n">len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">steps</span><span class="w"> </span><span class="p">});</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 37</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="o">|</span><span class="n">err</span><span class="o">|</span><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">err</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 38</span><span class="cl"><span class="w">        </span><span class="k">error</span><span class="p">.</span><span class="n">EndOfStream</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{},</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 39</span><span class="cl"><span class="w">        </span><span class="k">else</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">err</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 40</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 41</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 42</span><span class="cl"><span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">motions</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 43</span><span class="cl"><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 44</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 45</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Dir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">enum</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">up</span><span class="p">,</span><span class="w"> </span><span class="n">down</span><span class="p">,</span><span class="w"> </span><span class="n">left</span><span class="p">,</span><span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 46</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 47</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Motion</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 48</span><span class="cl"><span class="w">    </span><span class="n">dir</span><span class="o">:</span><span class="w"> </span><span class="n">Dir</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 49</span><span class="cl"><span class="w">    </span><span class="n">len</span><span class="o">:</span><span class="w"> </span><span class="kt">usize</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 50</span><span class="cl"><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 51</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 52</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 53</span><span class="cl"><span class="w">    </span><span class="n">row</span><span class="o">:</span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 54</span><span class="cl"><span class="w">    </span><span class="n">col</span><span class="o">:</span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 55</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 56</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">move</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="n">dir</span><span class="o">:</span><span class="w"> </span><span class="n">Dir</span><span class="p">)</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 57</span><span class="cl"><span class="w">        </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 58</span><span class="cl"><span class="w">            </span><span class="p">.</span><span class="n">up</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 59</span><span class="cl"><span class="w">            </span><span class="p">.</span><span class="n">down</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 60</span><span class="cl"><span class="w">            </span><span class="p">.</span><span class="n">left</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 61</span><span class="cl"><span class="w">            </span><span class="p">.</span><span class="n">right</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 62</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 63</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 64</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 65</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">follow</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="n">other</span><span class="o">:</span><span class="w"> </span><span class="n">Point</span><span class="p">)</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 66</span><span class="cl"><span class="w">        </span><span class="kr">const</span><span class="w"> </span><span class="n">row_diff</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">other</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 67</span><span class="cl"><span class="w">        </span><span class="kr">const</span><span class="w"> </span><span class="n">col_diff</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">other</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 68</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nb">@abs</span><span class="p">(</span><span class="n">row_diff</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="nb">@abs</span><span class="p">(</span><span class="n">col_diff</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 69</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">col_diff</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 70</span><span class="cl"><span class="w">            </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 71</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 72</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">col_diff</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 73</span><span class="cl"><span class="w">            </span><span class="n">self</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 74</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 75</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">row_diff</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 76</span><span class="cl"><span class="w">            </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 77</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 78</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">row_diff</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 79</span><span class="cl"><span class="w">            </span><span class="n">self</span><span class="p">.</span><span class="n">row</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 80</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 81</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 82</span><span class="cl"><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 83</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 84</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">Rope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 85</span><span class="cl"><span class="w">    </span><span class="n">head</span><span class="o">:</span><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Point</span><span class="p">{},</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 86</span><span class="cl"><span class="w">    </span><span class="n">tail</span><span class="o">:</span><span class="w"> </span><span class="n">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Point</span><span class="p">{},</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 87</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 88</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">move</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">Rope</span><span class="p">,</span><span class="w"> </span><span class="n">motions</span><span class="o">:</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">),</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">usize</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 89</span><span class="cl"><span class="w">        </span><span class="kr">var</span><span class="w"> </span><span class="n">seen</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">AutoHashMap</span><span class="p">(</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 90</span><span class="cl"><span class="w">        </span><span class="k">defer</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 91</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 92</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">motions</span><span class="p">.</span><span class="n">items</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">motion</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 93</span><span class="cl"><span class="w">            </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">..</span><span class="n">motion</span><span class="p">.</span><span class="n">len</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">_</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 94</span><span class="cl"><span class="w">                </span><span class="n">self</span><span class="p">.</span><span class="n">head</span><span class="p">.</span><span class="nf">move</span><span class="p">(</span><span class="n">motion</span><span class="p">.</span><span class="n">dir</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 95</span><span class="cl"><span class="w">                </span><span class="n">self</span><span class="p">.</span><span class="n">tail</span><span class="p">.</span><span class="nf">follow</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">head</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 96</span><span class="cl"><span class="w">                </span><span class="k">try</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">put</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">tail</span><span class="p">,</span><span class="w"> </span><span class="p">{});</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 97</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 98</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 99</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">100</span><span class="cl"><span class="w">        </span><span class="k">return</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">count</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">101</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">102</span><span class="cl"><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln">103</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">104</span><span class="cl"><span class="kr">const</span><span class="w"> </span><span class="n">LongRope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">105</span><span class="cl"><span class="w">    </span><span class="n">knots</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="mi">10</span><span class="p">]</span><span class="n">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">.{</span><span class="n">Point</span><span class="p">{}}</span><span class="w"> </span><span class="o">**</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">106</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">107</span><span class="cl"><span class="w">    </span><span class="k">fn</span><span class="w"> </span><span class="nf">move</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">LongRope</span><span class="p">,</span><span class="w"> </span><span class="n">motions</span><span class="o">:</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">),</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">usize</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">108</span><span class="cl"><span class="w">        </span><span class="kr">var</span><span class="w"> </span><span class="n">seen</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">AutoHashMap</span><span class="p">(</span><span class="n">Point</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="p">).</span><span class="nf">init</span><span class="p">(</span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">109</span><span class="cl"><span class="w">        </span><span class="k">defer</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">110</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">111</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">motions</span><span class="p">.</span><span class="n">items</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">motion</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">112</span><span class="cl"><span class="w">            </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">..</span><span class="n">motion</span><span class="p">.</span><span class="n">len</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">_</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">113</span><span class="cl"><span class="w">                </span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nf">move</span><span class="p">(</span><span class="n">motion</span><span class="p">.</span><span class="n">dir</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">114</span><span class="cl"><span class="w">                </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">..</span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">.</span><span class="n">len</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="n">idx</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">115</span><span class="cl"><span class="w">                    </span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">[</span><span class="n">idx</span><span class="p">].</span><span class="nf">follow</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">[</span><span class="n">idx</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">]);</span><span class="w">
</span></span></span><span class="line"><span class="ln">116</span><span class="cl"><span class="w">                </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">117</span><span class="cl"><span class="w">                </span><span class="k">try</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">put</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">knots</span><span class="p">[</span><span class="mi">9</span><span class="p">],</span><span class="w"> </span><span class="p">{});</span><span class="w">
</span></span></span><span class="line"><span class="ln">118</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">119</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">120</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">121</span><span class="cl"><span class="w">        </span><span class="k">return</span><span class="w"> </span><span class="n">seen</span><span class="p">.</span><span class="nf">count</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">122</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">123</span><span class="cl"><span class="p">};</span><span class="w">
</span></span></span><span class="line"><span class="ln">124</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">125</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">part1</span><span class="p">(</span><span class="n">motions</span><span class="o">:</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">),</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">126</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">rope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Rope</span><span class="p">{};</span><span class="w">
</span></span></span><span class="line"><span class="ln">127</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">rope</span><span class="p">.</span><span class="nf">move</span><span class="p">(</span><span class="n">motions</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">128</span><span class="cl"><span class="w">    </span><span class="nf">print</span><span class="p">(</span><span class="s">&#34;Part1: {d}</span><span class="se">\n</span><span class="s">&#34;</span><span class="p">,</span><span class="w"> </span><span class="p">.{</span><span class="n">score</span><span class="p">});</span><span class="w">
</span></span></span><span class="line"><span class="ln">129</span><span class="cl"><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">130</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">131</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">part2</span><span class="p">(</span><span class="n">motions</span><span class="o">:</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="nf">ArrayList</span><span class="p">(</span><span class="n">Motion</span><span class="p">),</span><span class="w"> </span><span class="n">alloc</span><span class="o">:</span><span class="w"> </span><span class="n">mem</span><span class="p">.</span><span class="n">Allocator</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">132</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">rope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LongRope</span><span class="p">{};</span><span class="w">
</span></span></span><span class="line"><span class="ln">133</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">rope</span><span class="p">.</span><span class="nf">move</span><span class="p">(</span><span class="n">motions</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">134</span><span class="cl"><span class="w">    </span><span class="nf">print</span><span class="p">(</span><span class="s">&#34;Part2: {d}</span><span class="se">\n</span><span class="s">&#34;</span><span class="p">,</span><span class="w"> </span><span class="p">.{</span><span class="n">score</span><span class="p">});</span><span class="w">
</span></span></span><span class="line"><span class="ln">135</span><span class="cl"><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">136</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">137</span><span class="cl"><span class="kr">pub</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="o">!</span><span class="kt">void</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">138</span><span class="cl"><span class="w">    </span><span class="kr">var</span><span class="w"> </span><span class="n">gpa</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">heap</span><span class="p">.</span><span class="nf">GeneralPurposeAllocator</span><span class="p">(.{}){};</span><span class="w">
</span></span></span><span class="line"><span class="ln">139</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gpa</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">140</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">alloc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gpa</span><span class="p">.</span><span class="nf">allocator</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">141</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">142</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&#34;day09.txt&#34;</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="ln">143</span><span class="cl"><span class="w">    </span><span class="kr">const</span><span class="w"> </span><span class="n">lines</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="nf">getLines</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">144</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="n">lines</span><span class="p">.</span><span class="nf">deinit</span><span class="p">();</span><span class="w">
</span></span></span><span class="line"><span class="ln">145</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">146</span><span class="cl"><span class="w">    </span><span class="k">try</span><span class="w"> </span><span class="nf">part1</span><span class="p">(</span><span class="n">lines</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">147</span><span class="cl"><span class="w">    </span><span class="k">try</span><span class="w"> </span><span class="nf">part2</span><span class="p">(</span><span class="n">lines</span><span class="p">,</span><span class="w"> </span><span class="n">alloc</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="ln">148</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
]]></content:encoded>
    </item>
    <item>
      <title>Apico</title>
      <link>https://sotolf.codeberg.page/posts/apico/</link>
      <pubDate>Mon, 10 Jun 2024 15:49:48 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/apico/</guid>
      <description>&lt;p&gt;I was looking through my games library, looking for something that I wanted&#xA;to play, and I remembered &lt;a href=&#34;https://tngineers.com/apico/&#34;&gt;apico&lt;/a&gt; and it had gotten a couple&#xA;of updates since the last time I played it, so now it&amp;rsquo;s on again for me with&#xA;breeding of bees.&lt;/p&gt;&#xA;&lt;p&gt;I have quite a long history with this game, especially since I really enjoyed&#xA;the minecraft mod &amp;ldquo;forestry&amp;rdquo; which apico basically is very inspired from.&lt;/p&gt;&#xA;&lt;p&gt;Both forestry and apico focuses a lot on bees, and the breeding of bees, apico&#xA;also builds out a bit more of a story, and your goal is mostly to save the bees&#xA;by breeding up all the different bees that exists and release them out in the&#xA;nature.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I was looking through my games library, looking for something that I wanted
to play, and I remembered <a href="https://tngineers.com/apico/">apico</a> and it had gotten a couple
of updates since the last time I played it, so now it&rsquo;s on again for me with
breeding of bees.</p>
<p>I have quite a long history with this game, especially since I really enjoyed
the minecraft mod &ldquo;forestry&rdquo; which apico basically is very inspired from.</p>
<p>Both forestry and apico focuses a lot on bees, and the breeding of bees, apico
also builds out a bit more of a story, and your goal is mostly to save the bees
by breeding up all the different bees that exists and release them out in the
nature.</p>
<p>It&rsquo;s just such a fun little game to futz around with, doing some small decoration
and slowly getting new bees, and butterflies, a very charming and cute little game
absolutely something that I would recommend if you like games that aren&rsquo;t that
much about action, and more about just living in nature, and playing around with
some pretty cool bee dynamics.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Shorthand</title>
      <link>https://sotolf.codeberg.page/posts/shorthand/</link>
      <pubDate>Fri, 07 Jun 2024 10:24:43 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/shorthand/</guid>
      <description>&lt;p&gt;I have been fascinated by shorthand for a long time, there are a lot of systems for&#xA;fast writing by hand, and I have spent time learning them for fun. I do still often&#xA;write notes in it when I know they are only going to be read by me anyway, it&amp;rsquo;s a fun&#xA;little thing to do for myself.&lt;/p&gt;&#xA;&lt;p&gt;What I personally use is a Norwegian system of shorthand called Wang-Krogdahl, it&amp;rsquo;s a&#xA;nice looking system that is fun to write, and at least for me personally easy to read&#xA;back.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I have been fascinated by shorthand for a long time, there are a lot of systems for
fast writing by hand, and I have spent time learning them for fun. I do still often
write notes in it when I know they are only going to be read by me anyway, it&rsquo;s a fun
little thing to do for myself.</p>
<p>What I personally use is a Norwegian system of shorthand called Wang-Krogdahl, it&rsquo;s a
nice looking system that is fun to write, and at least for me personally easy to read
back.</p>
<p>For other systems that I&rsquo;ve played around with and used for varying lengths of time, Gregg,
Teeline, Orthic, Melin and some others that I was just shortly doing some things with.</p>
<p>I&rsquo;ve been doing some things like <a href="https://github.com/sotolf2/english-melin/blob/master/Melin%5C%28WIP%5C%29.pdf">creating an English version of the Swedish Melin shorthand</a>
which was a fun little experiment, in the end though I found that to not really be the best
way, and for a while was just using <a href="https://orthic.shorthand.fun/">orthic</a> for most English
writing, and a scandinavian system better suited for writing in Norwegian, with the many
vowels that it has, English doesn&rsquo;t really like vowels that much, and just reduce evenything
down to schwas anyway.</p>
<p>I also played around with some typed shorthands, like keyscript and some other ones, and I
even ended up with creating my own one which was quite fun, in the end I ended up not really
using it, because I found that it just fights all my typing muscle memory too much to be faster
than actually just writing stuff out fully, and that way I wouldn&rsquo;t have to transcribe stuff
back into full text either.</p>
<p>The main part of this blog is going to be a short explanation of my old system, even though
I don&rsquo;t really use it anymore, I&rsquo;m proud of how simple and nice it actually is.</p>
<h1 id="yash-yet-another-shorthand">Yash; Yet another shorthand</h1>
<h2 id="the-basics-and-alphabet">The basics and alphabet</h2>
<p>Written English is chaotic, it has so many ways to write words that it gets confusing, so we&rsquo;ll reduce the alphabet to the letters
that we actually need, and then we&rsquo;ll write words phonetically, this way we have freed some letters for other use, and we have already
compacted our writing a bit. The letters that we use in yash are:</p>
<pre><code>a b d e f g h i k l m n o p r s t u v 
</code></pre>
<p>We&rsquo;re left with some letters that will get their own use later, namely:</p>
<pre><code>c j q x y w z
</code></pre>
<p>None of these letters are used often enough, or can&rsquo;t be replaced with combinations, so here are the ways we&rsquo;d write the letters that are
missing:</p>
<pre><code> c | Is replaced with an s or a k according to the sound it makes 
 j | Is mostly replaced with i                                    
 q | Is written k or kv                                           
 x | Is written with ks                                           
 y | Is written with i                                            
 w | Is written with v
 z | Is written with ts 
</code></pre>
<p>So now we have a reduced alphabet, and we also have some free letters. These letters are given new meanings in yash, mostly combinations
of 2 letters or a sound that occurs often, so that it&rsquo;s worth replacing it.</p>
<pre><code> c | Is used for sh like should in (sh)ould                
 j | Is the harder j/tch sound like in ju(dge) and ca(tch) 
 q | Is used for ng/ing                                    
 x | Is used for nd/nt                                     
 y | Is used for th                                        
 w | Is used for rt/rd/lt/ld/td                            
 z | Is used for st                                        
</code></pre>
<p>This allows us to shorten down words quite a bit, so with these two basic things out of the way we have a couple of principles left.</p>
<h2 id="omission-of-vowels">Omission of vowels</h2>
<p>Most of the times words are pretty easy to read without vowels, so we&rsquo;ll mostly leave them out writing yash, with a couple of exceptions:</p>
<ul>
<li>Diphthongs are written with the main vowel, <em>great</em> for example would be written gret</li>
<li>When one feels that the word would be unclear without the vowels one can put in vowels to make it clearer</li>
</ul>
<h2 id="phrasing">Phrasing</h2>
<p>We will phrase together short words and phrases so that we won&rsquo;t need to push the space bar after every single letter. This way something
like &ldquo;it will be&rdquo; will be phrased together to tlb, we&rsquo;ll also phrase the (y) together with the word that it describes, and also do the same
with a, this way we can cram our text together a bit more, and it will be quicker to write.</p>
<h2 id="examples">Examples</h2>
<p>I&rsquo;ll write some examples here to try and show that yash can shorten down texts quite a bit, and it&rsquo;s still not that complicated to figure
out what it&rsquo;s supposed to be.</p>
<p><strong>Some shorthand systems attempted to ease learning by using characters from the Latin alphabet. Such non-stenographic systems
have often been described as alphabetic, and purists might claim that such systems are not &rsquo;true&rsquo; shorthand. However, these
alphabetic systems do have value for students who cannot dedicate the years necessary to master a stenographic shorthand.
Alphabetic shorthands cannot be written at the speeds theoretically possible with symbol systems—200 words per minute or
more—but require only a fraction of the time to acquire a useful speed of between 60 and 100 words per minute.</strong></p>
<p>sm cwhx szms atmw tis lrnx b usq krkws frm y ltn lfbt. sc nn-zngrfk szms hv ofn bn dskrbd s lfbtk, x przs mat klam yt sc szms
rx tru cwhx. hvvr ys lfbtk szms dhv vlu f stdxs vo kx ddkt y irs nssri tmzr a stngrfk cwhx. lfbtk cthxs kx b rtn at y spds
yretkli psbl vy smbl szms 200 ws pr mx r mr bt rkvr nl a frkc fytm t akvr a usfl spid f btvn 60 ws pr mx</p>
]]></content:encoded>
    </item>
    <item>
      <title>Some More Nim</title>
      <link>https://sotolf.codeberg.page/posts/some-more-nim/</link>
      <pubDate>Thu, 06 Jun 2024 15:19:02 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/some-more-nim/</guid>
      <description>&lt;p&gt;I was kind of enjoying explaining some nim in my previous post, so I will do another&#xA;one, this time of a project that is a bit more complex.&lt;/p&gt;&#xA;&lt;p&gt;This time working on &lt;a href=&#34;https://adventofcode.com/2015/day/7&#34;&gt;day 7 of 2015 in the adventofcode&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I like starting out with defining my types, that way I know what I have to work with,&#xA;and it&amp;rsquo;s good to have it all gathered in one place.&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-nim&#34; data-lang=&#34;nim&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;type&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;Op&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;enum&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;Assign&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;ow&#34;&gt;And&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;ow&#34;&gt;Or&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;LShift&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;RShift&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;ow&#34;&gt;Not&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;Wire&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;Pkind&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;enum&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;PWire&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;Puint16&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;PEmpty&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;Parameter&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;object&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;case&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;kind&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Pkind&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PWire&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;wire&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Puint16&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;val&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;uint16&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PEmpty&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;discard&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;Instruction&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Parameter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Parameter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;op&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Op&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Wire&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;I think the Op enum is pretty self explaining, we&amp;rsquo;re basically setting up&#xA;the different operation types that we are having to deal with, it&amp;rsquo;s nice to&#xA;have since it will help us later, nim case statements checks that we deal with&#xA;all the versions we said we will, so it makes it harder to forget to deal&#xA;with something that we really should.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I was kind of enjoying explaining some nim in my previous post, so I will do another
one, this time of a project that is a bit more complex.</p>
<p>This time working on <a href="https://adventofcode.com/2015/day/7">day 7 of 2015 in the adventofcode</a></p>
<p>I like starting out with defining my types, that way I know what I have to work with,
and it&rsquo;s good to have it all gathered in one place.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="k">type</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  <span class="n">Op</span> <span class="o">=</span> <span class="k">enum</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    <span class="n">Assign</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">    <span class="ow">And</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">    <span class="ow">Or</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">    <span class="n">LShift</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">    <span class="n">RShift</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    <span class="ow">Not</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">  
</span></span><span class="line"><span class="ln">10</span><span class="cl">  <span class="n">Wire</span> <span class="o">=</span> <span class="kt">string</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl">  
</span></span><span class="line"><span class="ln">12</span><span class="cl">  <span class="n">Pkind</span> <span class="o">=</span> <span class="k">enum</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">    <span class="n">PWire</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">    <span class="n">Puint16</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">    <span class="n">PEmpty</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl">
</span></span><span class="line"><span class="ln">17</span><span class="cl">  <span class="n">Parameter</span> <span class="o">=</span> <span class="k">object</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl">    <span class="k">case</span> <span class="n">kind</span><span class="p">:</span> <span class="n">Pkind</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl">    <span class="k">of</span> <span class="n">PWire</span><span class="p">:</span> <span class="n">wire</span><span class="p">:</span> <span class="kt">string</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl">    <span class="k">of</span> <span class="n">Puint16</span><span class="p">:</span> <span class="n">val</span><span class="p">:</span> <span class="n">uint16</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl">    <span class="k">of</span> <span class="n">PEmpty</span><span class="p">:</span> <span class="k">discard</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl">
</span></span><span class="line"><span class="ln">23</span><span class="cl">  <span class="n">Instruction</span> <span class="o">=</span> <span class="k">tuple</span><span class="o">[</span><span class="n">a</span><span class="p">:</span> <span class="n">Parameter</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="n">Parameter</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="n">Op</span><span class="p">,</span> <span class="n">dest</span><span class="p">:</span> <span class="n">Wire</span><span class="o">]</span></span></span></code></pre></div>
<p>I think the Op enum is pretty self explaining, we&rsquo;re basically setting up
the different operation types that we are having to deal with, it&rsquo;s nice to
have since it will help us later, nim case statements checks that we deal with
all the versions we said we will, so it makes it harder to forget to deal
with something that we really should.</p>
<p>The Wire type is basically just an alias of a string, so not strictly needed, it&rsquo;s just
nice to have, it makes the code read a bit better. I could have made it distinct, so that
the code only accepts strings marked as Wire explicitly like <code>Wire(&quot;a&quot;)</code> for example, but
for this little sript it&rsquo;s not really needed.</p>
<p>The Pkind and Parameter types are a bit more interesting, The Parameter type here is a
&ldquo;variant object&rdquo; bascially nim&rsquo;s tagged union type, Pkind is the tag that we use here, it
basically tells us if the Parameter is a Wire, a uint16 or if it&rsquo;s not there, this makes it
so that we can store different types in a sequence or Instruction, as long as we are
okay with dealing with the syntactic noise of unpacking it all.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">func</span> <span class="n">split2</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="p">(</span><span class="kt">string</span><span class="p">,</span> <span class="kt">string</span><span class="p">)</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="k">let</span> <span class="n">parts</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">  <span class="n">do_assert</span><span class="p">(</span><span class="n">parts</span><span class="p">.</span><span class="n">len</span> <span class="o">==</span> <span class="mi">2</span><span class="p">,</span> <span class="o">&amp;</span><span class="s">&#34;Split2 {str} on {sep} did not return 2 parts&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl">  <span class="p">(</span><span class="n">parts</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">,</span> <span class="n">parts</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">5</span><span class="cl">
</span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="k">func</span> <span class="n">split3</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="p">(</span><span class="kt">string</span><span class="p">,</span> <span class="kt">string</span><span class="p">,</span> <span class="kt">string</span><span class="p">)</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">7</span><span class="cl">  <span class="k">let</span> <span class="n">parts</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">8</span><span class="cl">  <span class="n">do_assert</span><span class="p">(</span><span class="n">parts</span><span class="p">.</span><span class="n">len</span> <span class="o">==</span> <span class="mi">3</span><span class="p">,</span> <span class="o">&amp;</span><span class="s">&#34;Split3 {str} on {sep} did not return 3 parts&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">9</span><span class="cl">  <span class="p">(</span><span class="n">parts</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">,</span> <span class="n">parts</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span><span class="p">,</span> <span class="n">parts</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span><span class="p">)</span></span></span></code></pre></div>
<p>These two functions are basically just utility functions to use dealing with string
splitting a bit more comfortable for our parsing, they do the split and return
a tuple of 2/3 strings, and also asserts that they are used correctly, so that
we don&rsquo;t get bitten by making assumptions about them.</p>
<p>I do kind of wish that nim had a split once function, but it&rsquo;s decent enough to deal
with it like this, it&rsquo;s not that much hassle to write them, but I do think that it
would be nice to write up a little utility library with snippets like these that I like
having around.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">func</span> <span class="n">to_param</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="n">Parameter</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="k">if</span> <span class="n">str</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">.</span><span class="n">is_digit</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">    <span class="k">return</span> <span class="n">Parameter</span><span class="p">(</span><span class="n">kind</span><span class="p">:</span> <span class="n">Puint16</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="n">str</span><span class="p">.</span><span class="n">parse_uint</span><span class="p">.</span><span class="n">uint16</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl">  <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">5</span><span class="cl">    <span class="k">return</span> <span class="n">Parameter</span><span class="p">(</span><span class="n">kind</span><span class="p">:</span> <span class="n">PWire</span><span class="p">,</span> <span class="n">wire</span><span class="p">:</span> <span class="n">str</span><span class="p">)</span></span></span></code></pre></div>
<p><code>to_param</code> is another function that I use to save myself some repetition, here we take in a
string, check if it is a string, or a string representation of a number, and return the
Parameter with the correct tag.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="k">proc </span><span class="nf">parse</span><span class="p">(</span><span class="n">lines</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="kt">string</span><span class="o">]</span><span class="p">):</span> <span class="kt">seq</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    <span class="k">let</span> <span class="p">(</span><span class="n">main</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span> <span class="o">=</span> <span class="n">line</span><span class="p">.</span><span class="n">split2</span> <span class="s">&#34; -&gt; &#34;</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">    <span class="k">if</span> <span class="s">&#34;AND&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="ow">And</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split3</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    <span class="k">elif</span> <span class="s">&#34;OR&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="ow">Or</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split3</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl">    <span class="k">elif</span> <span class="s">&#34;LSHIFT&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="n">LShift</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split3</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl">    <span class="k">elif</span> <span class="s">&#34;RSHIFT&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="n">RShift</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split3</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl">    <span class="k">elif</span> <span class="s">&#34;NOT&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="ow">Not</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split2</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">Parameter</span><span class="p">(</span><span class="n">kind</span><span class="p">:</span> <span class="n">PEmpty</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl">    <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">26</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="n">Assign</span>
</span></span><span class="line"><span class="ln">27</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">Parameter</span><span class="p">(</span><span class="n">kind</span><span class="p">:</span> <span class="n">PEmpty</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">28</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">main</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span></span></span></code></pre></div>
<p>With that all set up we can go on with the real work of parsing. Since the
format is very simple we don&rsquo;t really have to do anything fancy here. We set up
the split2 and split3 functions earlier, so that we here easily can assign 2 or 3
parameters in one go, this makes the code a lot nicer to write. We pick out the parts
we want with our splits, and put them into our return list in the end.</p>
<p>Parsing is now done, and we have objects that are a lot nicer to work with than the
plain text itself, so now we can start the real work in itself.</p>
<p>The list of different elements are not ordered in the correct order here, so we will have
to set up a dependency chains so that we have the things we need when we need them.
To make lookup a bit easier we create a hashtable of the instructions, to have a recipe for
each piece, and use that later for the work we have to do.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">proc </span><span class="nf">part1</span><span class="p">(</span><span class="n">insts</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span><span class="p">)</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="k">let</span> <span class="n">lookup</span> <span class="o">=</span> <span class="n">insts</span><span class="p">.</span><span class="n">to_lookup</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">  <span class="k">let</span> <span class="n">ans</span> <span class="o">=</span> <span class="n">lookup</span><span class="p">.</span><span class="n">get_wire</span> <span class="s">&#34;a&#34;</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl">  <span class="n">echo</span> <span class="s">&#34;Part 1: &#34;</span><span class="p">,</span> <span class="n">ans</span></span></span></code></pre></div>
<p>This of course is a very high level function, so we have to look into how we do this, to
translate our list into a lookuptable we just invert the instructions and put them into a
table:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">proc </span><span class="nf">to_lookup</span><span class="p">(</span><span class="n">insts</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span><span class="p">):</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">Instruction</span><span class="o">]</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="k">for</span> <span class="n">inst</span> <span class="ow">in</span> <span class="n">insts</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">    <span class="n">result</span><span class="o">[</span><span class="n">inst</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">inst</span></span></span></code></pre></div>
<p>Now we can do fast lookups something we will really need when we start to figure out
the dependencies for the signal that we really want to have.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="k">proc </span><span class="nf">get_wire</span><span class="p">(</span><span class="n">lookup</span><span class="p">:</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">Instruction</span><span class="o">]</span><span class="p">,</span> <span class="n">goal</span><span class="p">:</span> <span class="n">Wire</span><span class="p">,</span> <span class="n">override</span><span class="p">:</span> <span class="kt">bool</span> <span class="o">=</span> <span class="kp">false</span><span class="p">,</span> <span class="n">wire</span><span class="p">:</span> <span class="n">Wire</span> <span class="o">=</span> <span class="s">&#34;&#34;</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="n">uint16</span> <span class="o">=</span> <span class="mi">0</span><span class="p">):</span> <span class="n">uint16</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  <span class="kd">var</span> <span class="n">signals</span><span class="p">:</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">uint16</span><span class="o">]</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">  <span class="kd">var</span> <span class="n">qu</span><span class="p">:</span> <span class="n">Deque</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">  <span class="k">if</span> <span class="n">override</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">    <span class="n">signals</span><span class="o">[</span><span class="n">wire</span><span class="o">]</span> <span class="o">=</span> <span class="n">val</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">  <span class="n">qu</span><span class="p">.</span><span class="n">add_last</span> <span class="n">lookup</span><span class="o">[</span><span class="n">goal</span><span class="o">]</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">  <span class="k">while</span> <span class="n">qu</span><span class="p">.</span><span class="n">len</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">    <span class="k">let</span> <span class="n">cur</span> <span class="o">=</span> <span class="n">qu</span><span class="p">.</span><span class="n">popFirst</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl">    <span class="k">if</span> <span class="ow">not</span> <span class="n">cur</span><span class="p">.</span><span class="n">can_do</span> <span class="n">signals</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl">      <span class="n">qu</span><span class="p">.</span><span class="n">add_first</span> <span class="n">cur</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">      <span class="k">if</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">wire</span> <span class="ow">not_in</span> <span class="n">signals</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">        <span class="n">qu</span><span class="p">.</span><span class="n">add_first</span> <span class="n">lookup</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">wire</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">      <span class="k">if</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">wire</span> <span class="ow">not_in</span> <span class="n">signals</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl">        <span class="n">qu</span><span class="p">.</span><span class="n">add_first</span> <span class="n">lookup</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">wire</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl">      <span class="k">continue</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl">    <span class="k">case</span> <span class="n">cur</span><span class="p">.</span><span class="n">op</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl">    <span class="k">of</span> <span class="n">Assign</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">20</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl">    <span class="k">of</span> <span class="ow">And</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">and</span> <span class="n">b</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl">    <span class="k">of</span> <span class="ow">Or</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">26</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">27</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">28</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">or</span> <span class="n">b</span>
</span></span><span class="line"><span class="ln">29</span><span class="cl">    <span class="k">of</span> <span class="n">Lshift</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">30</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">31</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">32</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">shl</span> <span class="n">b</span>
</span></span><span class="line"><span class="ln">33</span><span class="cl">    <span class="k">of</span> <span class="n">Rshift</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">34</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">35</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">36</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">shr</span> <span class="n">b</span>
</span></span><span class="line"><span class="ln">37</span><span class="cl">    <span class="k">of</span> <span class="ow">Not</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">38</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">39</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">bitnot</span> <span class="n">a</span>
</span></span><span class="line"><span class="ln">40</span><span class="cl">
</span></span><span class="line"><span class="ln">41</span><span class="cl">  <span class="k">return</span> <span class="n">signals</span><span class="o">[</span><span class="n">goal</span><span class="o">]</span></span></span></code></pre></div>
<p>This is where the majority of the work takes place. We here have some default arguements
which are basically there so that I didn&rsquo;t have to rewrite the function just to add support
for the second part of the problem we will look at them a bit later.</p>
<p>We set up a hashtable of signal values, so that we don&rsquo;t have to recompute them in case we come
across them multiple times, so basically for memoisation.</p>
<p>We need the value of a specific signal here, and since the input is not in the order we need
them, with the inputs on top, we will fetch stuff as we need them. So I set up a working queue
a deque (Double ended queue) so that we can add stuff to the beginning or end. Looking at the
code a second time, just using a seq as a stack would be enough in this case, but I didn&rsquo;t
think of that at the time, and it&rsquo;s more fun showing off some more datastructures anyway.</p>
<p>Before we start working off the queue, we put the current value onto it, and we&rsquo;re set to
go.</p>
<p>We pop the top instruction off the stack and see if we can already compute the signal, and if
we can&rsquo;t yet calculate it because we&rsquo;re missing values we put it back on the stack, and also
add the prerequisits onto the stack if they haven&rsquo;t already been computed.</p>
<p>When we can calculate an instruction we fetch the signals off the wires that we have, do the
calculation, and we&rsquo;re done with that task, and can go on with the next one.</p>
<p>Here we have one of those case statements where it&rsquo;s really nice to have an enumeration, since
it is exhaustive it means that we&rsquo;ll always handle all the cases that we promised to. This way
if we add another kind of operation, the compiler will yell at us until we also implement how
to calculate it. This is one of the things that I really enjoy about statically typed languages,
if I do something silly, the compiler will yell at me and tell me what I did wrong, instead
of having to puzzle it out from some strange interaction that I did not expect.</p>
<p>We have two helper functions that helps us do this <code>get_val</code> and <code>can_do</code> and we&rsquo;ll go through
them.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">proc </span><span class="nf">get_val</span><span class="p">(</span><span class="n">self</span><span class="p">:</span> <span class="n">Parameter</span><span class="p">,</span> <span class="n">wires</span><span class="p">:</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">uint16</span><span class="o">]</span><span class="p">):</span> <span class="n">uint16</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="k">case</span> <span class="n">self</span><span class="p">.</span><span class="n">kind</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">  <span class="k">of</span> <span class="n">Puint16</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl">    <span class="n">self</span><span class="p">.</span><span class="n">val</span>
</span></span><span class="line"><span class="ln">5</span><span class="cl">  <span class="k">of</span> <span class="n">PWire</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">6</span><span class="cl">    <span class="n">wires</span><span class="o">[</span><span class="n">self</span><span class="p">.</span><span class="n">wire</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">7</span><span class="cl">  <span class="k">of</span> <span class="n">PEmpty</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">8</span><span class="cl">    <span class="n">echo</span> <span class="s">&#34;Trying to get value of empty parameter&#34;</span>
</span></span><span class="line"><span class="ln">9</span><span class="cl">    <span class="n">quit</span> <span class="mi">69</span></span></span></code></pre></div>
<p>So <code>get_val</code> takes in a parameter, and the memoisation table, and basically unpacks
the case object, if it&rsquo;s an number we just return that, and if it&rsquo;s a wire we look
it up in the table and use that value. This means that the function will only work
once the parameter is stored in the table, which is what our task queue that we set
up does for us.</p>
<p>Empty values here are a special case, they should never be turned into a value since
they are a placeholder, so this is basically just an Option[int|string] kind of type,
so if we use this on a value that is empty we just write out a small reason and crash
the program.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="k">proc </span><span class="nf">can_do</span><span class="p">(</span><span class="n">self</span><span class="p">:</span> <span class="n">Instruction</span><span class="p">,</span> <span class="n">wires</span><span class="p">:</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">uint16</span><span class="o">]</span><span class="p">):</span> <span class="kt">bool</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">     <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">wire</span> <span class="ow">in</span> <span class="n">wires</span> <span class="ow">and</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">     <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">wire</span> <span class="ow">in</span> <span class="n">wires</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">       <span class="k">return</span> <span class="kp">true</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">  <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">Puint16</span> <span class="ow">or</span> <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PEmpty</span><span class="p">)</span> <span class="ow">and</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">     <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">wire</span> <span class="ow">in</span> <span class="n">wires</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">       <span class="k">return</span> <span class="kp">true</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">  <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">Puint16</span> <span class="ow">or</span> <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PEmpty</span><span class="p">)</span> <span class="ow">and</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">     <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">wire</span> <span class="ow">in</span> <span class="n">wires</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl">       <span class="k">return</span> <span class="kp">true</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl">  <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">Puint16</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PEmpty</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">    <span class="k">return</span> <span class="kp">true</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">  <span class="k">return</span> <span class="kp">false</span></span></span></code></pre></div>
<p><code>can_do</code> checks if we with our current state can actually calculate the value, it checks
if parameters that are given as a reference and not a plain value actually exists, and if
all of the needed ones are there we&rsquo;re a&rsquo;okay to continue on. This way we know if we can go
on to calculate the value of the instruction, or if we will have to get some prerequisites first.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">proc </span><span class="nf">part2</span><span class="p">(</span><span class="n">insts</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span><span class="p">)</span> <span class="o">=</span> 
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="k">let</span> <span class="n">lookup</span> <span class="o">=</span> <span class="n">insts</span><span class="p">.</span><span class="n">to_lookup</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">  <span class="k">let</span> <span class="n">mid</span> <span class="o">=</span> <span class="n">lookup</span><span class="p">.</span><span class="n">get_wire</span> <span class="s">&#34;a&#34;</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl">  <span class="k">let</span> <span class="n">ans</span> <span class="o">=</span> <span class="n">lookup</span><span class="p">.</span><span class="n">get_wire</span><span class="p">(</span><span class="s">&#34;a&#34;</span><span class="p">,</span> <span class="kp">true</span><span class="p">,</span> <span class="s">&#34;b&#34;</span><span class="p">,</span> <span class="n">mid</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">5</span><span class="cl">  <span class="n">echo</span> <span class="s">&#34;Part 2: &#34;</span><span class="p">,</span> <span class="n">ans</span></span></span></code></pre></div>
<p>For the second part we have to go through once to get the value of wire &ldquo;a&rdquo; set value &ldquo;b&rdquo; and
then rerun the calculation of the new &ldquo;a&rdquo;. This is where the optional parameters for the
<code>get_value</code> procedure comes into play. All that I needed to add was the extra parameters, and
this little thing in the function to preset our memoisation:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl">  <span class="k">if</span> <span class="n">override</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">    <span class="n">signals</span><span class="o">[</span><span class="n">wire</span><span class="o">]</span> <span class="o">=</span> <span class="n">val</span></span></span></code></pre></div>
<p>As a nice sideffect this will also collapse the calculation of the &ldquo;b&rdquo; wire, which means
that our second run through will be a bit faster.</p>
<p>Of course I could also reuse the value that we got from part 1 without recalculating it, but
I like in these small programs just to have the two parts be completely independent.</p>
<p>And now at the end here is the complete listing of code where everything comes together, with
imports and a little bit of plumbing to grab the lines of a file, here is the full listing of
the program:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">  1</span><span class="cl"><span class="kn">import</span> 
</span></span><span class="line"><span class="ln">  2</span><span class="cl">  <span class="n">bitops</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">  3</span><span class="cl">  <span class="n">deques</span><span class="p">,</span> 
</span></span><span class="line"><span class="ln">  4</span><span class="cl">  <span class="n">sequtils</span><span class="p">,</span> 
</span></span><span class="line"><span class="ln">  5</span><span class="cl">  <span class="n">strformat</span><span class="p">,</span> 
</span></span><span class="line"><span class="ln">  6</span><span class="cl">  <span class="n">strutils</span><span class="p">,</span> 
</span></span><span class="line"><span class="ln">  7</span><span class="cl">  <span class="n">tables</span> 
</span></span><span class="line"><span class="ln">  8</span><span class="cl">
</span></span><span class="line"><span class="ln">  9</span><span class="cl"><span class="k">type</span>
</span></span><span class="line"><span class="ln"> 10</span><span class="cl">  <span class="n">Op</span> <span class="o">=</span> <span class="k">enum</span>
</span></span><span class="line"><span class="ln"> 11</span><span class="cl">    <span class="n">Assign</span>
</span></span><span class="line"><span class="ln"> 12</span><span class="cl">    <span class="ow">And</span>
</span></span><span class="line"><span class="ln"> 13</span><span class="cl">    <span class="ow">Or</span>
</span></span><span class="line"><span class="ln"> 14</span><span class="cl">    <span class="n">LShift</span>
</span></span><span class="line"><span class="ln"> 15</span><span class="cl">    <span class="n">RShift</span>
</span></span><span class="line"><span class="ln"> 16</span><span class="cl">    <span class="ow">Not</span>
</span></span><span class="line"><span class="ln"> 17</span><span class="cl">  
</span></span><span class="line"><span class="ln"> 18</span><span class="cl">  <span class="n">Wire</span> <span class="o">=</span> <span class="kt">string</span>
</span></span><span class="line"><span class="ln"> 19</span><span class="cl">  
</span></span><span class="line"><span class="ln"> 20</span><span class="cl">  <span class="n">Pkind</span> <span class="o">=</span> <span class="k">enum</span>
</span></span><span class="line"><span class="ln"> 21</span><span class="cl">    <span class="n">PWire</span>
</span></span><span class="line"><span class="ln"> 22</span><span class="cl">    <span class="n">Puint16</span>
</span></span><span class="line"><span class="ln"> 23</span><span class="cl">    <span class="n">PEmpty</span>
</span></span><span class="line"><span class="ln"> 24</span><span class="cl">
</span></span><span class="line"><span class="ln"> 25</span><span class="cl">  <span class="n">Parameter</span> <span class="o">=</span> <span class="k">object</span>
</span></span><span class="line"><span class="ln"> 26</span><span class="cl">    <span class="k">case</span> <span class="n">kind</span><span class="p">:</span> <span class="n">Pkind</span>
</span></span><span class="line"><span class="ln"> 27</span><span class="cl">    <span class="k">of</span> <span class="n">PWire</span><span class="p">:</span> <span class="n">wire</span><span class="p">:</span> <span class="kt">string</span>
</span></span><span class="line"><span class="ln"> 28</span><span class="cl">    <span class="k">of</span> <span class="n">Puint16</span><span class="p">:</span> <span class="n">val</span><span class="p">:</span> <span class="n">uint16</span>
</span></span><span class="line"><span class="ln"> 29</span><span class="cl">    <span class="k">of</span> <span class="n">PEmpty</span><span class="p">:</span> <span class="k">discard</span>
</span></span><span class="line"><span class="ln"> 30</span><span class="cl">
</span></span><span class="line"><span class="ln"> 31</span><span class="cl">  <span class="n">Instruction</span> <span class="o">=</span> <span class="k">tuple</span><span class="o">[</span><span class="n">a</span><span class="p">:</span> <span class="n">Parameter</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="n">Parameter</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="n">Op</span><span class="p">,</span> <span class="n">dest</span><span class="p">:</span> <span class="n">Wire</span><span class="o">]</span>
</span></span><span class="line"><span class="ln"> 32</span><span class="cl">
</span></span><span class="line"><span class="ln"> 33</span><span class="cl"><span class="k">func</span> <span class="n">split2</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="p">(</span><span class="kt">string</span><span class="p">,</span> <span class="kt">string</span><span class="p">)</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 34</span><span class="cl">  <span class="k">let</span> <span class="n">parts</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 35</span><span class="cl">  <span class="n">do_assert</span><span class="p">(</span><span class="n">parts</span><span class="p">.</span><span class="n">len</span> <span class="o">==</span> <span class="mi">2</span><span class="p">,</span> <span class="o">&amp;</span><span class="s">&#34;Split2 {str} on {sep} did not return 2 parts&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 36</span><span class="cl">  <span class="p">(</span><span class="n">parts</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">,</span> <span class="n">parts</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 37</span><span class="cl">
</span></span><span class="line"><span class="ln"> 38</span><span class="cl"><span class="k">func</span> <span class="n">split3</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="p">(</span><span class="kt">string</span><span class="p">,</span> <span class="kt">string</span><span class="p">,</span> <span class="kt">string</span><span class="p">)</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 39</span><span class="cl">  <span class="k">let</span> <span class="n">parts</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 40</span><span class="cl">  <span class="n">do_assert</span><span class="p">(</span><span class="n">parts</span><span class="p">.</span><span class="n">len</span> <span class="o">==</span> <span class="mi">3</span><span class="p">,</span> <span class="o">&amp;</span><span class="s">&#34;Split3 {str} on {sep} did not return 3 parts&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 41</span><span class="cl">  <span class="p">(</span><span class="n">parts</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">,</span> <span class="n">parts</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span><span class="p">,</span> <span class="n">parts</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 42</span><span class="cl">
</span></span><span class="line"><span class="ln"> 43</span><span class="cl"><span class="k">func</span> <span class="n">to_param</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="n">Parameter</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 44</span><span class="cl">  <span class="k">if</span> <span class="n">str</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">.</span><span class="n">is_digit</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 45</span><span class="cl">    <span class="k">return</span> <span class="n">Parameter</span><span class="p">(</span><span class="n">kind</span><span class="p">:</span> <span class="n">Puint16</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="n">str</span><span class="p">.</span><span class="n">parse_uint</span><span class="p">.</span><span class="n">uint16</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 46</span><span class="cl">  <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 47</span><span class="cl">    <span class="k">return</span> <span class="n">Parameter</span><span class="p">(</span><span class="n">kind</span><span class="p">:</span> <span class="n">PWire</span><span class="p">,</span> <span class="n">wire</span><span class="p">:</span> <span class="n">str</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 48</span><span class="cl">
</span></span><span class="line"><span class="ln"> 49</span><span class="cl"><span class="k">proc </span><span class="nf">parse</span><span class="p">(</span><span class="n">lines</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="kt">string</span><span class="o">]</span><span class="p">):</span> <span class="kt">seq</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 50</span><span class="cl">  <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 51</span><span class="cl">    <span class="k">let</span> <span class="p">(</span><span class="n">main</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span> <span class="o">=</span> <span class="n">line</span><span class="p">.</span><span class="n">split2</span> <span class="s">&#34; -&gt; &#34;</span>
</span></span><span class="line"><span class="ln"> 52</span><span class="cl">    <span class="k">if</span> <span class="s">&#34;AND&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 53</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="ow">And</span>
</span></span><span class="line"><span class="ln"> 54</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split3</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln"> 55</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 56</span><span class="cl">    <span class="k">elif</span> <span class="s">&#34;OR&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 57</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="ow">Or</span>
</span></span><span class="line"><span class="ln"> 58</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split3</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln"> 59</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 60</span><span class="cl">    <span class="k">elif</span> <span class="s">&#34;LSHIFT&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 61</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="n">LShift</span>
</span></span><span class="line"><span class="ln"> 62</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split3</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln"> 63</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 64</span><span class="cl">    <span class="k">elif</span> <span class="s">&#34;RSHIFT&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 65</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="n">RShift</span>
</span></span><span class="line"><span class="ln"> 66</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split3</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln"> 67</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 68</span><span class="cl">    <span class="k">elif</span> <span class="s">&#34;NOT&#34;</span> <span class="ow">in</span> <span class="n">main</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 69</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="ow">Not</span>
</span></span><span class="line"><span class="ln"> 70</span><span class="cl">      <span class="k">let</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="o">=</span> <span class="n">main</span><span class="p">.</span><span class="n">split2</span> <span class="s">&#34; &#34;</span>
</span></span><span class="line"><span class="ln"> 71</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">Parameter</span><span class="p">(</span><span class="n">kind</span><span class="p">:</span> <span class="n">PEmpty</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 72</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 73</span><span class="cl">    <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 74</span><span class="cl">      <span class="k">let</span> <span class="n">op</span> <span class="o">=</span> <span class="n">Assign</span>
</span></span><span class="line"><span class="ln"> 75</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">Parameter</span><span class="p">(</span><span class="n">kind</span><span class="p">:</span> <span class="n">PEmpty</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 76</span><span class="cl">      <span class="n">result</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">main</span><span class="p">.</span><span class="n">to_param</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">dest</span><span class="p">)</span>
</span></span><span class="line"><span class="ln"> 77</span><span class="cl">
</span></span><span class="line"><span class="ln"> 78</span><span class="cl"><span class="k">proc </span><span class="nf">can_do</span><span class="p">(</span><span class="n">self</span><span class="p">:</span> <span class="n">Instruction</span><span class="p">,</span> <span class="n">wires</span><span class="p">:</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">uint16</span><span class="o">]</span><span class="p">):</span> <span class="kt">bool</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 79</span><span class="cl">  <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span>
</span></span><span class="line"><span class="ln"> 80</span><span class="cl">     <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">wire</span> <span class="ow">in</span> <span class="n">wires</span> <span class="ow">and</span>
</span></span><span class="line"><span class="ln"> 81</span><span class="cl">     <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">wire</span> <span class="ow">in</span> <span class="n">wires</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 82</span><span class="cl">       <span class="k">return</span> <span class="kp">true</span>
</span></span><span class="line"><span class="ln"> 83</span><span class="cl">  <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">Puint16</span> <span class="ow">or</span> <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PEmpty</span><span class="p">)</span> <span class="ow">and</span>
</span></span><span class="line"><span class="ln"> 84</span><span class="cl">     <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">wire</span> <span class="ow">in</span> <span class="n">wires</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 85</span><span class="cl">       <span class="k">return</span> <span class="kp">true</span>
</span></span><span class="line"><span class="ln"> 86</span><span class="cl">  <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">Puint16</span> <span class="ow">or</span> <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PEmpty</span><span class="p">)</span> <span class="ow">and</span>
</span></span><span class="line"><span class="ln"> 87</span><span class="cl">     <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">wire</span> <span class="ow">in</span> <span class="n">wires</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 88</span><span class="cl">       <span class="k">return</span> <span class="kp">true</span>
</span></span><span class="line"><span class="ln"> 89</span><span class="cl">  <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">Puint16</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PEmpty</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 90</span><span class="cl">    <span class="k">return</span> <span class="kp">true</span>
</span></span><span class="line"><span class="ln"> 91</span><span class="cl">  <span class="k">return</span> <span class="kp">false</span>
</span></span><span class="line"><span class="ln"> 92</span><span class="cl">
</span></span><span class="line"><span class="ln"> 93</span><span class="cl"><span class="k">proc </span><span class="nf">get_val</span><span class="p">(</span><span class="n">self</span><span class="p">:</span> <span class="n">Parameter</span><span class="p">,</span> <span class="n">wires</span><span class="p">:</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">uint16</span><span class="o">]</span><span class="p">):</span> <span class="n">uint16</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln"> 94</span><span class="cl">  <span class="k">case</span> <span class="n">self</span><span class="p">.</span><span class="n">kind</span>
</span></span><span class="line"><span class="ln"> 95</span><span class="cl">  <span class="k">of</span> <span class="n">Puint16</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 96</span><span class="cl">    <span class="n">self</span><span class="p">.</span><span class="n">val</span>
</span></span><span class="line"><span class="ln"> 97</span><span class="cl">  <span class="k">of</span> <span class="n">PWire</span><span class="p">:</span>
</span></span><span class="line"><span class="ln"> 98</span><span class="cl">    <span class="n">wires</span><span class="o">[</span><span class="n">self</span><span class="p">.</span><span class="n">wire</span><span class="o">]</span>
</span></span><span class="line"><span class="ln"> 99</span><span class="cl">  <span class="k">of</span> <span class="n">PEmpty</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">100</span><span class="cl">    <span class="n">echo</span> <span class="s">&#34;Trying to get value of empty parameter&#34;</span>
</span></span><span class="line"><span class="ln">101</span><span class="cl">    <span class="n">quit</span> <span class="mi">69</span>
</span></span><span class="line"><span class="ln">102</span><span class="cl">
</span></span><span class="line"><span class="ln">103</span><span class="cl"><span class="k">proc </span><span class="nf">get_wire</span><span class="p">(</span><span class="n">lookup</span><span class="p">:</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">Instruction</span><span class="o">]</span><span class="p">,</span> <span class="n">goal</span><span class="p">:</span> <span class="n">Wire</span><span class="p">,</span> <span class="n">override</span><span class="p">:</span> <span class="kt">bool</span> <span class="o">=</span> <span class="kp">false</span><span class="p">,</span> <span class="n">wire</span><span class="p">:</span> <span class="n">Wire</span> <span class="o">=</span> <span class="s">&#34;&#34;</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="n">uint16</span> <span class="o">=</span> <span class="mi">0</span><span class="p">):</span> <span class="n">uint16</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">104</span><span class="cl">  <span class="kd">var</span> <span class="n">signals</span><span class="p">:</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">uint16</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">105</span><span class="cl">  <span class="kd">var</span> <span class="n">qu</span><span class="p">:</span> <span class="n">Deque</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">106</span><span class="cl">
</span></span><span class="line"><span class="ln">107</span><span class="cl">  <span class="k">if</span> <span class="n">override</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">108</span><span class="cl">    <span class="n">signals</span><span class="o">[</span><span class="n">wire</span><span class="o">]</span> <span class="o">=</span> <span class="n">val</span>
</span></span><span class="line"><span class="ln">109</span><span class="cl">
</span></span><span class="line"><span class="ln">110</span><span class="cl">  <span class="n">qu</span><span class="p">.</span><span class="n">add_last</span> <span class="n">lookup</span><span class="o">[</span><span class="n">goal</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">111</span><span class="cl">  <span class="k">while</span> <span class="n">qu</span><span class="p">.</span><span class="n">len</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">112</span><span class="cl">    <span class="k">let</span> <span class="n">cur</span> <span class="o">=</span> <span class="n">qu</span><span class="p">.</span><span class="n">popFirst</span>
</span></span><span class="line"><span class="ln">113</span><span class="cl">    <span class="k">if</span> <span class="ow">not</span> <span class="n">cur</span><span class="p">.</span><span class="n">can_do</span> <span class="n">signals</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">114</span><span class="cl">      <span class="n">qu</span><span class="p">.</span><span class="n">add_first</span> <span class="n">cur</span>
</span></span><span class="line"><span class="ln">115</span><span class="cl">      <span class="k">if</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">wire</span> <span class="ow">not_in</span> <span class="n">signals</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">116</span><span class="cl">        <span class="n">qu</span><span class="p">.</span><span class="n">add_first</span> <span class="n">lookup</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">wire</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">117</span><span class="cl">      <span class="k">if</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">kind</span> <span class="o">==</span> <span class="n">PWire</span> <span class="ow">and</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">wire</span> <span class="ow">not_in</span> <span class="n">signals</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">118</span><span class="cl">        <span class="n">qu</span><span class="p">.</span><span class="n">add_first</span> <span class="n">lookup</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">wire</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">119</span><span class="cl">      <span class="k">continue</span>
</span></span><span class="line"><span class="ln">120</span><span class="cl">    <span class="k">case</span> <span class="n">cur</span><span class="p">.</span><span class="n">op</span>
</span></span><span class="line"><span class="ln">121</span><span class="cl">    <span class="k">of</span> <span class="n">Assign</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">122</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">123</span><span class="cl">    <span class="k">of</span> <span class="ow">And</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">124</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">125</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">126</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">and</span> <span class="n">b</span>
</span></span><span class="line"><span class="ln">127</span><span class="cl">    <span class="k">of</span> <span class="ow">Or</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">128</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">129</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">130</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">or</span> <span class="n">b</span>
</span></span><span class="line"><span class="ln">131</span><span class="cl">    <span class="k">of</span> <span class="n">Lshift</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">132</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">133</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">134</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">shl</span> <span class="n">b</span>
</span></span><span class="line"><span class="ln">135</span><span class="cl">    <span class="k">of</span> <span class="n">Rshift</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">136</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">137</span><span class="cl">      <span class="k">let</span> <span class="n">b</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">138</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">shr</span> <span class="n">b</span>
</span></span><span class="line"><span class="ln">139</span><span class="cl">    <span class="k">of</span> <span class="ow">Not</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">140</span><span class="cl">      <span class="k">let</span> <span class="n">a</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">a</span><span class="p">.</span><span class="n">get_val</span> <span class="n">signals</span>
</span></span><span class="line"><span class="ln">141</span><span class="cl">      <span class="n">signals</span><span class="o">[</span><span class="n">cur</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">bitnot</span> <span class="n">a</span>
</span></span><span class="line"><span class="ln">142</span><span class="cl">
</span></span><span class="line"><span class="ln">143</span><span class="cl">  <span class="k">return</span> <span class="n">signals</span><span class="o">[</span><span class="n">goal</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">144</span><span class="cl">
</span></span><span class="line"><span class="ln">145</span><span class="cl"><span class="k">proc </span><span class="nf">to_lookup</span><span class="p">(</span><span class="n">insts</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span><span class="p">):</span> <span class="n">Table</span><span class="o">[</span><span class="n">Wire</span><span class="p">,</span> <span class="n">Instruction</span><span class="o">]</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">146</span><span class="cl">  <span class="k">for</span> <span class="n">inst</span> <span class="ow">in</span> <span class="n">insts</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">147</span><span class="cl">    <span class="n">result</span><span class="o">[</span><span class="n">inst</span><span class="p">.</span><span class="n">dest</span><span class="o">]</span> <span class="o">=</span> <span class="n">inst</span>
</span></span><span class="line"><span class="ln">148</span><span class="cl">
</span></span><span class="line"><span class="ln">149</span><span class="cl"><span class="k">proc </span><span class="nf">part1</span><span class="p">(</span><span class="n">insts</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span><span class="p">)</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">150</span><span class="cl">  <span class="k">let</span> <span class="n">lookup</span> <span class="o">=</span> <span class="n">insts</span><span class="p">.</span><span class="n">to_lookup</span>
</span></span><span class="line"><span class="ln">151</span><span class="cl">  <span class="k">let</span> <span class="n">ans</span> <span class="o">=</span> <span class="n">lookup</span><span class="p">.</span><span class="n">get_wire</span> <span class="s">&#34;a&#34;</span>
</span></span><span class="line"><span class="ln">152</span><span class="cl">  <span class="n">echo</span> <span class="s">&#34;Part 1: &#34;</span><span class="p">,</span> <span class="n">ans</span>
</span></span><span class="line"><span class="ln">153</span><span class="cl">
</span></span><span class="line"><span class="ln">154</span><span class="cl"><span class="k">proc </span><span class="nf">part2</span><span class="p">(</span><span class="n">insts</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="n">Instruction</span><span class="o">]</span><span class="p">)</span> <span class="o">=</span> 
</span></span><span class="line"><span class="ln">155</span><span class="cl">  <span class="k">let</span> <span class="n">lookup</span> <span class="o">=</span> <span class="n">insts</span><span class="p">.</span><span class="n">to_lookup</span>
</span></span><span class="line"><span class="ln">156</span><span class="cl">  <span class="k">let</span> <span class="n">mid</span> <span class="o">=</span> <span class="n">lookup</span><span class="p">.</span><span class="n">get_wire</span> <span class="s">&#34;a&#34;</span>
</span></span><span class="line"><span class="ln">157</span><span class="cl">  <span class="k">let</span> <span class="n">ans</span> <span class="o">=</span> <span class="n">lookup</span><span class="p">.</span><span class="n">get_wire</span><span class="p">(</span><span class="s">&#34;a&#34;</span><span class="p">,</span> <span class="kp">true</span><span class="p">,</span> <span class="s">&#34;b&#34;</span><span class="p">,</span> <span class="n">mid</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">158</span><span class="cl">  <span class="n">echo</span> <span class="s">&#34;Part 2: &#34;</span><span class="p">,</span> <span class="n">ans</span>
</span></span><span class="line"><span class="ln">159</span><span class="cl">
</span></span><span class="line"><span class="ln">160</span><span class="cl"><span class="k">let</span> <span class="n">input</span> <span class="o">=</span> <span class="n">toseq</span> <span class="s">&#34;day07.txt&#34;</span><span class="p">.</span><span class="n">lines</span>
</span></span><span class="line"><span class="ln">161</span><span class="cl"><span class="k">let</span> <span class="n">parsed</span> <span class="o">=</span> <span class="n">input</span><span class="p">.</span><span class="n">parse</span>
</span></span><span class="line"><span class="ln">162</span><span class="cl"><span class="n">part1</span> <span class="n">parsed</span>
</span></span><span class="line"><span class="ln">163</span><span class="cl"><span class="n">part2</span> <span class="n">parsed</span></span></span></code></pre></div>
]]></content:encoded>
    </item>
    <item>
      <title>Programming Batteries</title>
      <link>https://sotolf.codeberg.page/posts/programming-batteries/</link>
      <pubDate>Wed, 05 Jun 2024 11:29:59 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/programming-batteries/</guid>
      <description>&lt;p&gt;I do like to play around with languages, and I think that &amp;ldquo;batteries included&amp;rdquo; really&#xA;is an important thing, most languages have at least basic data-structures, like some kind&#xA;of an array list, a hash map and so on, which is already quite good, but I feel like a&#xA;language has to be comfortable to use out of the box.&lt;/p&gt;&#xA;&lt;p&gt;You could say that most languages are like this, but there are some like rust which is&#xA;a decently modern language, and still it&amp;rsquo;s a pain to deal with errors without downloading&#xA;some external package, and then when you do get something like anyhow, are you sure that&#xA;that is the one you should use or should you use one of the other ones that people are&#xA;telling you about.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I do like to play around with languages, and I think that &ldquo;batteries included&rdquo; really
is an important thing, most languages have at least basic data-structures, like some kind
of an array list, a hash map and so on, which is already quite good, but I feel like a
language has to be comfortable to use out of the box.</p>
<p>You could say that most languages are like this, but there are some like rust which is
a decently modern language, and still it&rsquo;s a pain to deal with errors without downloading
some external package, and then when you do get something like anyhow, are you sure that
that is the one you should use or should you use one of the other ones that people are
telling you about.</p>
<p>It feels kind of weird to me that this would be a controversial opinion, but it seems to be,
so many people seem to have no problems with adding a dependency to the project that adds
another 100 Mb to the project, it just feels wrong to me. But then again, maybe I&rsquo;m the weird
one.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Keyboard</title>
      <link>https://sotolf.codeberg.page/posts/keyboard/</link>
      <pubDate>Tue, 04 Jun 2024 10:00:19 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/keyboard/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve always been fascinated by typing, I learned touch typing when I was 7 on&#xA;some old dos touch typing teaching program, I don&amp;rsquo;t quite know why, but there&#xA;is something about the sound of a keyboard that sounds really soothing to me&#xA;and it&amp;rsquo;s just fascinating seeing how the presses quickly turns into text.&lt;/p&gt;&#xA;&lt;p&gt;Language learning and writing systems is something that also has been interesting,&#xA;and of course I then came into the space of alternative keyboard layouts, at least&#xA;as I got older and I found that my wrists were starting to hurt.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve always been fascinated by typing, I learned touch typing when I was 7 on
some old dos touch typing teaching program, I don&rsquo;t quite know why, but there
is something about the sound of a keyboard that sounds really soothing to me
and it&rsquo;s just fascinating seeing how the presses quickly turns into text.</p>
<p>Language learning and writing systems is something that also has been interesting,
and of course I then came into the space of alternative keyboard layouts, at least
as I got older and I found that my wrists were starting to hurt.</p>
<p>My first adventure into alternative keyboard layouts was like it is for many to
try out the dvorak layout, I spent some time learning it, and it was nice for a
while, until I found my left pinkey hurting from the placement of the L key on that
layout.</p>
<p>So I went out on the search again, and ended up with colemak, and after a bit of research
specifically colmak-caw (colemak with the curl angle and wide mods) and that&rsquo;s what I&rsquo;ve
been using to type with for about a decade now (time flies). For more info on colemak
mods <a href="https://dreymar.colemak.org/ergo-mods.html">dreymar has a really good page on that</a></p>
<p>There are some tricks that I&rsquo;ve learned through the time that also helped my wrists and fingers
hurt a lot less, and by now I don&rsquo;t really have any pain any more, I&rsquo;m happy that I managed
to catch it early enough that some simple tweaks to how I work helped me enough to not need
to be in pain.</p>
<p>The most counterintuitive thing probably is negative tilt of the keyboard, to have the highest
point of the keyboard being closest to ones wrists, so that the spacebar is at the highest point.
It really helps the fingers hit the keys in a more comfortable way, but it looks a bit weird,
because for some reason the keyboard always have feet to make it tilt the opposite way, I don&rsquo;t
know why that is the case really.</p>
<p>I&rsquo;ve been fascinated by mechanical and split keyboard, but I have always been too much of a miser
to actually go for one of them. Probably the one that I&rsquo;ve always been the most interested in
is the kinesis advantage, but I don&rsquo;t know if I will ever get there, I&rsquo;ve been using scissor
keyboards for years now, and I&rsquo;m pretty happy with that, I like the feeling of them, and they
have served me well, at least with the colemak wide mode that lets me put my shoulders a little
bit more apart to not get that cramped feeling when writing, even on a laptop keyboard.</p>
<p>I also like having my keyboard far down, to not hunch my shoulders up, at work I have a tall
chair, so that I can look down on my screens, and leave my arms more relaxed, and at home
mostly I have my keyboard in my lap while computing.</p>
]]></content:encoded>
    </item>
    <item>
      <title>A Little Nim</title>
      <link>https://sotolf.codeberg.page/posts/a-little-nim/</link>
      <pubDate>Mon, 03 Jun 2024 09:21:20 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/a-little-nim/</guid>
      <description>&lt;p&gt;I really do enjoy programming nim, so I just wanted to do some&#xA;propaganda, this time I will go through &lt;a href=&#34;https://adventofcode.com/2022/day/&#34;&gt;advent of code 2022 day 6&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;So basically the task here is to find sequences of unique characters in&#xA;a string, seems like a pretty simple task, so first we create a function&#xA;to see if a given string has only unique characters:&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-nim&#34; data-lang=&#34;nim&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;proc &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;all_different&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;chs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;seq&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;char&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ch&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ch&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not_in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;chs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;chs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ch&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kp&#34;&gt;false&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kp&#34;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;There aren&amp;rsquo;t really that much interesting here, we go through the string&#xA;one character of a time, we have a temporary sequence of the characters&#xA;that we have seen so far, and if it&amp;rsquo;s seen we bail and say false.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I really do enjoy programming nim, so I just wanted to do some
propaganda, this time I will go through <a href="https://adventofcode.com/2022/day/">advent of code 2022 day 6</a></p>
<p>So basically the task here is to find sequences of unique characters in
a string, seems like a pretty simple task, so first we create a function
to see if a given string has only unique characters:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">proc </span><span class="nf">all_different</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="kt">bool</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="kd">var</span> <span class="n">chs</span><span class="p">:</span> <span class="kt">seq</span><span class="o">[</span><span class="kt">char</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">  <span class="k">for</span> <span class="n">ch</span> <span class="ow">in</span> <span class="n">str</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl">    <span class="k">if</span> <span class="n">ch</span> <span class="ow">not_in</span> <span class="n">chs</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">5</span><span class="cl">      <span class="n">chs</span><span class="p">.</span><span class="n">add</span> <span class="n">ch</span>
</span></span><span class="line"><span class="ln">6</span><span class="cl">    <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">7</span><span class="cl">      <span class="k">return</span> <span class="kp">false</span>
</span></span><span class="line"><span class="ln">8</span><span class="cl">  <span class="k">return</span> <span class="kp">true</span></span></span></code></pre></div>
<p>There aren&rsquo;t really that much interesting here, we go through the string
one character of a time, we have a temporary sequence of the characters
that we have seen so far, and if it&rsquo;s seen we bail and say false.</p>
<p>not_in is a bit fun here, it&rsquo;s basically template sugar for contains with a not
so <code>ch not_in chs</code> basically desugars to <code>not contains(chs, ch)</code> so if we want to
use the in/not_in construction for our own structures we just ahve to implement
the contains function for the struct.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">proc </span><span class="nf">unique</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">,</span> <span class="n">count</span><span class="p">:</span> <span class="kt">int</span><span class="p">):</span> <span class="kt">int</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="n">result</span> <span class="o">=</span> <span class="n">count</span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">  <span class="k">while</span> <span class="ow">not</span> <span class="n">str</span><span class="o">[</span><span class="n">result</span><span class="o">-</span><span class="n">count</span><span class="p">..</span><span class="o">&lt;</span><span class="n">result</span><span class="o">]</span><span class="p">.</span><span class="n">all_different</span><span class="p">():</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl">    <span class="n">inc</span> <span class="n">result</span></span></span></code></pre></div>
<p>In the next function we get to do some more tricks, first of them is the
implicit result variable, when we create a function in nim that does return
something, an implicit result variable gets declared that we can use (it will
get optimized away if we don&rsquo;t use it) and if we use this result variable it
will be automatically get return at the end of the scope, kind of like an automatic
defer statement, which is pretty cool.</p>
<p>Also see that the function that we declared that takes in a string, now looks like a
method on the string, that&rsquo;s basically just syntactic sugar, so <code>str.all_different()</code>
desugars down to <code>all_different(string)</code> it&rsquo;s a small thing, but it just makes it feel
nicer to program.</p>
<p>We go through the string slice by slice by indexing the string and when we found
a unique string, we return the index of the last character that we found.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">proc </span><span class="nf">start_of_packet</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="kt">int</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">unique</span> <span class="mi">4</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="k">proc </span><span class="nf">start_of_message</span><span class="p">(</span><span class="n">str</span><span class="p">:</span> <span class="kt">string</span><span class="p">):</span> <span class="kt">int</span> <span class="o">=</span> <span class="n">str</span><span class="p">.</span><span class="n">unique</span> <span class="mi">14</span></span></span></code></pre></div>
<p>For the next couple of functions, they are so small that we just have one-line definitions
they just call the unique method with different counts. The only other little cool thing
here is that we have <code>str.unique 4</code> which desugars down to <code>unique(str, 4)</code> we see that
much of nim is just quite c-like, but with some sugar that makes code look nicer.</p>
<p>I really like the ml-style function calling, so it&rsquo;s what I usually end up using for
function calling style.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">proc </span><span class="nf">part1</span><span class="p">(</span><span class="n">ins</span><span class="p">:</span> <span class="kt">string</span><span class="p">)</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">  <span class="k">let</span> <span class="n">ans</span> <span class="o">=</span> <span class="n">ins</span><span class="p">.</span><span class="n">start_of_packet</span> 
</span></span><span class="line"><span class="ln">3</span><span class="cl">  <span class="n">echo</span> <span class="s">&#34;Part 1: &#34;</span><span class="p">,</span> <span class="n">ans</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl">
</span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="k">proc </span><span class="nf">part2</span><span class="p">(</span><span class="n">ins</span><span class="p">:</span> <span class="kt">string</span><span class="p">)</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">6</span><span class="cl">  <span class="k">let</span> <span class="n">ans</span> <span class="o">=</span> <span class="n">ins</span><span class="p">.</span><span class="n">start_of_message</span>
</span></span><span class="line"><span class="ln">7</span><span class="cl">  <span class="n">echo</span> <span class="s">&#34;Part 2: &#34;</span><span class="p">,</span> <span class="n">ans</span></span></span></code></pre></div>
<p>The two functions here basically just use what we buildt up earlier and prints the result
out so that we can get our results, nothing really interesting in this one that we haven&rsquo;t
already looked at.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln">1</span><span class="cl"><span class="k">let</span> <span class="n">streams</span> <span class="o">=</span> <span class="n">toseq</span> <span class="p">(</span><span class="n">read_lines</span> <span class="s">&#34;day06.txt&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="ln">2</span><span class="cl">
</span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="n">part1</span> <span class="n">streams</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="n">part2</span> <span class="n">streams</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span></span></span></code></pre></div>
<p>For reading in a file into a sequence of strings we have <code>read_lines</code>, which is a really
nice function, it&rsquo;s very useful, since reading a file line by lines is something that
occurs really often in programming small utils. It does return an iterator over lines,
so we use <code>toseq</code> to just stuff the iterator into a sequence.</p>
<p>We then call our functions on the first (and only) line in the file, and it&rsquo;s done.</p>
<p>The whole little program can be found <a href="https://gist.github.com/sotolf2/80a530dcf7f7eeeb15ebef5b7205fb91">here</a></p>
<p>I really enjoy writing in nim, it&rsquo;s kind of the right mix of high and low level for me, and
it has so much nice little sugar that just makes programming in it fun, I rearly find some
task where I just can&rsquo;t find a way that I like to solve something, and it makes it pretty
easy to just punch out a program that does what I want.</p>
<p>There is one thing that I would have kind of wished to have, and that is namespacing, some
a bit more clear way in the code to segment out for example all the functions that extend
strings or some other object I&rsquo;m working with. The same is the case with imports, they always
import everything unqualified, which is kind of nice in that it makes the code not have the
namespaces everywhere, but feels kind of weird in the beginning.
In the end it&rsquo;s really not a problem, since a function in nim is defined based on the name and
the parameters, but it some times makes the code feel a bit weird.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Odin</title>
      <link>https://sotolf.codeberg.page/posts/odin/</link>
      <pubDate>Fri, 31 May 2024 10:28:14 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/odin/</guid>
      <description>&lt;p&gt;I was thinking I would be giving odin a try, it&amp;rsquo;s one of those&#xA;new hot languages that are vying for c programmers that wants&#xA;something a bit extra.&lt;/p&gt;&#xA;&lt;p&gt;So I fire up an hello world and get rolling&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-odin&#34; data-lang=&#34;odin&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;core:fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;proc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Hello&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;world&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;This is okay enough, syntax is a bit weird but that&amp;rsquo;s just&#xA;something kind of subjective. So we soldier along.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I was thinking I would be giving odin a try, it&rsquo;s one of those
new hot languages that are vying for c programmers that wants
something a bit extra.</p>
<p>So I fire up an hello world and get rolling</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln">1</span><span class="cl"><span class="kn">package</span><span class="w"> </span><span class="n">main</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="kn">import</span><span class="w"> </span><span class="s">&#34;core:fmt&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="n">main</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="w">    </span><span class="n">fmt</span><span class="p">.</span><span class="n">println</span><span class="p">(</span><span class="err">&#34;</span><span class="n">Hello</span><span class="p">,</span><span class="w"> </span><span class="n">world</span><span class="err">!</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>This is okay enough, syntax is a bit weird but that&rsquo;s just
something kind of subjective. So we soldier along.</p>
<p>This is working on the advent of code problem <a href="https://adventofcode.com/2021/day/11">https://adventofcode.com/2021/day/11</a></p>
<p>First things first, we need to import data, luckily our file format is
very simple this time, just a 10x10 grid of integers.</p>
<p>I found no documentation of how to parse integers after looking around,
so I just did the old ascii code - 48 trick:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">get_data</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">filepath</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">result</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="kt">int</span><span class="p">,</span><span class="w"> </span><span class="n">ok</span><span class="o">:</span><span class="w"> </span><span class="kt">bool</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="n">data</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">os</span><span class="p">.</span><span class="n">read_entire_file</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span><span class="w"> </span><span class="k">context</span><span class="p">.</span><span class="n">allocator</span><span class="p">)</span><span class="w"> </span><span class="k">or_return</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">    </span><span class="k">defer</span><span class="w"> </span><span class="k">delete</span><span class="p">(</span><span class="n">data</span><span class="p">,</span><span class="w"> </span><span class="k">context</span><span class="p">.</span><span class="n">allocator</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">    
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">    </span><span class="n">row</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">0</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">    </span><span class="n">col</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">0</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">    </span><span class="n">it</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kt">string</span><span class="p">(</span><span class="n">data</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="kt">rune</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="kt">rune</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="sc">&#39;\n&#39;</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">            </span><span class="n">row</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">            </span><span class="n">col</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">0</span><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">            </span><span class="k">continue</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="w">            </span><span class="n">result</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kt">int</span><span class="p">(</span><span class="kt">rune</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">48</span><span class="w">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="w">            </span><span class="n">col</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="w">    </span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>This is pretty nice otherwise, pretty much feels kind of like go with an a bit
more comfortable way to just foreward errors, everything else feels pretty standard</p>
<p>Then we start working on the problem itself first with a higher level of
what we want to do. It&rsquo;s nice that all function arguements are immutable as
a default, it&rsquo;s something I really like to see.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">part1</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">in_grid</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="n">grid</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">to_octo_grid</span><span class="p">(</span><span class="n">in_grid</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">    </span><span class="n">flashed</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">0</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">100</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">        </span><span class="n">flashed</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">do_step</span><span class="p">(</span><span class="o">&amp;</span><span class="n">grid</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">    </span><span class="n">fmt</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&#34;Part1: %v\n&#34;</span><span class="p">,</span><span class="w"> </span><span class="n">flashed</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>I figured we needed to save a bit more data on each of the
octopuses, so we introduce a struct which we can use to save
some flashing info, this is pretty nice, I would have really
enjoyed to be able to use a struct as a namespace like in zig
so that I would be able to have a bit more comfort, but the struct
in itself is very straight forward.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln">1</span><span class="cl"><span class="n">Octo</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">    </span><span class="n">val</span><span class="o">:</span><span class="w"> </span><span class="kt">int</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w">    </span><span class="n">flash</span><span class="o">:</span><span class="w"> </span><span class="kt">bool</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>We want to do the step, so we have another middle layer function that
more or less describes the steps, which we implement afterwards:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln">1</span><span class="cl"><span class="n">do_step</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">grid</span><span class="o">:</span><span class="w"> </span><span class="o">^</span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="n">Octo</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">    </span><span class="n">inc</span><span class="p">(</span><span class="n">grid</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="n">has_flashing</span><span class="p">(</span><span class="n">grid</span><span class="o">^</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="w">        </span><span class="n">execute_flash</span><span class="p">(</span><span class="n">grid</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">finalize_step</span><span class="p">(</span><span class="n">grid</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln">8</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>Now some of the places where we would really like to have some comfort
comes out, it&rsquo;s pretty decent in this little test since, we don&rsquo;t have
that many functions and we&rsquo;re not having to deal with naming that much,
but it feels like something that could become an issue with bigger stuff.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">inc</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">grid</span><span class="o">:</span><span class="w"> </span><span class="o">^</span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="n">Octo</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">            </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">val</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">            
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">            </span><span class="k">if</span><span class="w"> </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">val</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">                </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">flash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>There are some things that I don&rsquo;t like here, I don&rsquo;t really have a nice way
to create a mutable iterator, so we will see this double for construction a lot.</p>
<p>Also since I&rsquo;m unsure about how the values works there is also a lot of using the
grid[row][col] construction.</p>
<p>This is basically setting up the grid for the flashing steps where we will keep
on going until we&rsquo;ve had no more flashing happening.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">has_flashing</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">grid</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="n">Octo</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">            </span><span class="k">if</span><span class="w"> </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">flash</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">                </span><span class="k">return</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>So to check if we are finished we have to check the grid to see if something
is still needing to flash. so here we iterate again..</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">execute_flash</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">grid</span><span class="o">:</span><span class="w"> </span><span class="o">^</span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="n">Octo</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">            </span><span class="k">if</span><span class="w"> </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">flash</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">                </span><span class="n">increase_nbrs</span><span class="p">(</span><span class="n">grid</span><span class="p">,</span><span class="w"> </span><span class="n">row</span><span class="p">,</span><span class="w"> </span><span class="n">col</span><span class="p">)</span><span class="w">                
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">                </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">flash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>And to do the flashing itself, we have to do the same iteration to
deal with things that need to flash. So yet another iteration through
our grid.</p>
<p>To evade the pyramid of death I chose to factor out dealing with the
neighbouring octopuses, because it was starting to get ridiculous</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">increase_nbrs</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">grid</span><span class="o">:</span><span class="w"> </span><span class="o">^</span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="n">Octo</span><span class="p">,</span><span class="w"> </span><span class="n">inrow</span><span class="p">,</span><span class="w"> </span><span class="n">incol</span><span class="o">:</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">inrow</span><span class="o">-</span><span class="nx">1</span><span class="o">..=</span><span class="n">inrow</span><span class="o">+</span><span class="nx">1</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="nx">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="nx">9</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">            </span><span class="k">for</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">incol</span><span class="o">-</span><span class="nx">1</span><span class="o">..=</span><span class="n">incol</span><span class="o">+</span><span class="nx">1</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">                </span><span class="k">if</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="nx">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="nx">9</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">                    </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">val</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">                    </span><span class="k">if</span><span class="w"> </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">val</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">                        </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">flash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">                    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">                </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>Here it would be really nice with some iterators, and some contains things
but I don&rsquo;t think that&rsquo;s not something odin is really out after, it seems
like one of those langauges that really doesn&rsquo;t want to have much hidden stuff
but then again, it might be that it does have it, I just don&rsquo;t manage to find
anything in the documentation, because it&rsquo;s very rudimentary.</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">finalize_step</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">grid</span><span class="o">:</span><span class="w"> </span><span class="o">^</span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="n">Octo</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="n">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">0</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">        </span><span class="k">for</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="nx">0</span><span class="o">..&lt;</span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">            </span><span class="k">if</span><span class="w"> </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">val</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="nx">10</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">                </span><span class="n">grid</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">].</span><span class="n">val</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">0</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">                </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">            </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">    
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>Then we just fix up the end of the step and count the amount of octopi that was
flashing, easy peasy, but yet another double for loop..</p>
<p>So that was basically it for the first part, for the second part we were lucky
and could basically just reuse the functions we made for part 1</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-odin" data-lang="odin"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="n">part2</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kd">proc</span><span class="p">(</span><span class="n">in_grid</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="nx">10</span><span class="p">][</span><span class="nx">10</span><span class="p">]</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">    </span><span class="n">grid</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">to_octo_grid</span><span class="p">(</span><span class="n">in_grid</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="w">    </span><span class="n">flashed</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">        </span><span class="n">cur</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">do_step</span><span class="p">(</span><span class="o">&amp;</span><span class="n">grid</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="n">cur</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nx">100</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">            </span><span class="k">break</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="w">        </span><span class="n">flashed</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">1</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">    </span><span class="n">fmt</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&#34;Part2: %v\n&#34;</span><span class="p">,</span><span class="w"> </span><span class="n">flashed</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>Nothing really interesting to see here.</p>
<p>For the complete listing of the code, it can be found <a href="https://gist.github.com/sotolf2/015b82c4b06dd760b011d394a8750e75">here</a></p>
<h2 id="thoughts-at-the-end">Thoughts at the end.</h2>
<p>Odin does some things pretty well, it&rsquo;s reasonably fun, mostly it reminds
me of go with just a bit less boilerplate, and a lot worse documentation.
It some times got the the point that to figure out how something worked, I
looked up how it worked in go, and just used it like that.</p>
<p>The named returns are pretty nice, and makes function feel quite a lot cleaner.</p>
<p>Most things are rather straight foreward, and things just works, but I do
find it a bit hard to feel exited about it. Again, the biggest bugbear for me
is the documentation, it&rsquo;s hard to really build up a feel for the language, when
you&rsquo;re starting from more or less scratch, and the only real examples you have are
implementations in the stdlib.</p>
<p>Will I use odin again, maybe, but I will wait until it has documentation that is
nicer to read, the language is decent, but I don&rsquo;t know, it just doesn&rsquo;t feel as
great to write in, I can do things way more easier, with nim, and it&rsquo;s
documentation is better. I think I also prefer zig to odin, even though, odin was
a less pain in the ass about allocations. I just felt a lot better about my zig
code, and it felt better to write.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Soul and Frustration</title>
      <link>https://sotolf.codeberg.page/posts/soul-and-frustration/</link>
      <pubDate>Wed, 29 May 2024 16:35:58 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/soul-and-frustration/</guid>
      <description>&lt;p&gt;Now soul is kind of a contatious word for me, being&#xA;a non-religious person and all, but I&amp;rsquo;m not quite sure&#xA;if I have a better word for the enjoyment or feeling that&#xA;one get from a piece of art or an article that really&#xA;connects for some or other reason.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve always been really bad at describing things, feelings, taste,&#xA;things in general. But here we go, frustrating that today was the&#xA;day that what I was thinking about more or less exactly that.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Now soul is kind of a contatious word for me, being
a non-religious person and all, but I&rsquo;m not quite sure
if I have a better word for the enjoyment or feeling that
one get from a piece of art or an article that really
connects for some or other reason.</p>
<p>I&rsquo;ve always been really bad at describing things, feelings, taste,
things in general. But here we go, frustrating that today was the
day that what I was thinking about more or less exactly that.</p>
<p>Some pieces of art or crafts are special, even though they may be
something others look at as &ldquo;low brow&rdquo; or pedestrian, but that doesn&rsquo;t
matter if they have some kind of core that really connects. I like
classical music as much as the other guy, but some times exactly what
I need is an overly energetic bouncy Happy Hardcore anthem.</p>
<p>Then other times, like when I read a text written by an LLM, or some other
text that many likes, my eyes just glaze over, and it&rsquo;s hard to find some
way to really care about it. Clearly it has it&rsquo;s qualities, but it just doesn&rsquo;t
connect. And well that&rsquo;s just how it is I guess, not everything is for everyone.
And not everything is for the same person even, some times we&rsquo;re up for something
complex and fascinating new, some other time vanilla just does the trick.</p>
<p>Not to say that everything that is generated is per se soulless though, I have
solved a lot of, sudoku puzzles, like a looot of them, I&rsquo;ve been solving for almost
two decades now, and generated puzzles are some times a thing that gets looked
down upon by many, but with a good generator, and good curation, I&rsquo;ve solved some
really fun and satisfying puzzles that have been generated. The thing is not the
source, but there is something else there, that I can find value in.</p>
<p>So here comes the frustration, what is this soul, what is that little extra
that some pieces of craftwork and art has that makes them special?
I certainly don&rsquo;t know, and probably most of us don&rsquo;t know, we just some times
find something that has it. So well, let&rsquo;s enjoy the soulful happy things that
we find, no matter where we find them and what they are.</p>
<p>But time to cut this short, as I feel I&rsquo;m starting to ramble. here&rsquo;s to you
and me finding something soulful to enjoy, cheers.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Testing Highlighting</title>
      <link>https://sotolf.codeberg.page/posts/testing-highlighting/</link>
      <pubDate>Wed, 29 May 2024 10:36:03 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/testing-highlighting/</guid>
      <description>&lt;h1 id=&#34;testing-some-code-highlighting&#34;&gt;Testing some code highlighting&lt;/h1&gt;&#xA;&lt;p&gt;I will probably post some code snippets now and then,&#xA;so let&amp;rsquo;s see if code highlighting works how I think it does:&lt;/p&gt;&#xA;&lt;p&gt;First some nim code:&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-nim&#34; data-lang=&#34;nim&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;type&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;State&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;enum&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;On&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Dying&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Off&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;Grid&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;..&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;40&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;..&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;150&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;State&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;Point&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;tuple&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;col&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;`&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;`(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Point&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;proc &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;newGrid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Grid&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xs&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mitems&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;state&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mitems&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;state&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sample&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;On&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Off&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;getAt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;grid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Grid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;State&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;grid&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Off&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;grid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Off&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;grid&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;][&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;point&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;Seems like gleam is not yet supported, so have to wait for the highlighter to get support&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h1 id="testing-some-code-highlighting">Testing some code highlighting</h1>
<p>I will probably post some code snippets now and then,
so let&rsquo;s see if code highlighting works how I think it does:</p>
<p>First some nim code:</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nim" data-lang="nim"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="k">type</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  <span class="n">State</span> <span class="o">=</span> <span class="k">enum</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    <span class="n">On</span><span class="p">,</span> <span class="n">Dying</span><span class="p">,</span> <span class="n">Off</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">  <span class="n">Grid</span> <span class="o">=</span> <span class="kt">array</span><span class="o">[</span><span class="mf">0</span><span class="p">..</span><span class="mi">40</span><span class="p">,</span> <span class="kt">array</span><span class="o">[</span><span class="mf">0</span><span class="p">..</span><span class="mi">150</span><span class="p">,</span> <span class="n">State</span><span class="o">]]</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">  <span class="n">Point</span> <span class="o">=</span> <span class="k">tuple</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    <span class="n">col</span><span class="p">:</span> <span class="kt">int</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    <span class="n">row</span><span class="p">:</span> <span class="kt">int</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">
</span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="k">func</span> <span class="p">`</span><span class="o">+</span><span class="p">`(</span><span class="n">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">Point</span><span class="p">):</span> <span class="n">Point</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl">  <span class="n">result</span><span class="p">.</span><span class="n">col</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">col</span> <span class="o">+</span> <span class="n">other</span><span class="p">.</span><span class="n">col</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">  <span class="n">result</span><span class="p">.</span><span class="n">row</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">row</span> <span class="o">+</span> <span class="n">other</span><span class="p">.</span><span class="n">row</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">
</span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="k">proc </span><span class="nf">newGrid</span><span class="p">():</span> <span class="n">Grid</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl">  <span class="k">for</span> <span class="n">xs</span> <span class="ow">in</span> <span class="n">result</span><span class="p">.</span><span class="n">mitems</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl">    <span class="k">for</span> <span class="n">state</span> <span class="ow">in</span> <span class="n">xs</span><span class="p">.</span><span class="n">mitems</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">18</span><span class="cl">      <span class="n">state</span> <span class="o">=</span> <span class="n">sample</span> <span class="o">[</span><span class="n">On</span><span class="p">,</span> <span class="n">Off</span><span class="o">]</span>
</span></span><span class="line"><span class="ln">19</span><span class="cl">
</span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="k">func</span> <span class="n">getAt</span><span class="p">(</span><span class="n">grid</span><span class="p">:</span> <span class="n">Grid</span><span class="p">,</span> <span class="n">point</span><span class="p">:</span> <span class="n">Point</span><span class="p">):</span> <span class="n">State</span> <span class="o">=</span>
</span></span><span class="line"><span class="ln">21</span><span class="cl">  <span class="k">if</span> <span class="n">point</span><span class="p">.</span><span class="n">col</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">point</span><span class="p">.</span><span class="n">col</span> <span class="o">&gt;=</span> <span class="n">grid</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">.</span><span class="n">len</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">22</span><span class="cl">    <span class="k">return</span> <span class="n">Off</span>
</span></span><span class="line"><span class="ln">23</span><span class="cl">  <span class="k">if</span> <span class="n">point</span><span class="p">.</span><span class="n">row</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">point</span><span class="p">.</span><span class="n">row</span> <span class="o">&gt;=</span> <span class="n">grid</span><span class="p">.</span><span class="n">len</span><span class="p">:</span>
</span></span><span class="line"><span class="ln">24</span><span class="cl">    <span class="k">return</span> <span class="n">Off</span>
</span></span><span class="line"><span class="ln">25</span><span class="cl">
</span></span><span class="line"><span class="ln">26</span><span class="cl">  <span class="n">grid</span><span class="o">[</span><span class="n">point</span><span class="p">.</span><span class="n">row</span><span class="o">][</span><span class="n">point</span><span class="p">.</span><span class="n">col</span><span class="o">]</span></span></span></code></pre></div>
<p>Seems like gleam is not yet supported, so have to wait for the highlighter to get support</p>
<p>And some gleam code</p>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gleam" data-lang="gleam"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">race</span><span class="p">(</span><span class="n">time</span><span class="o">:</span><span class="w"> </span><span class="nc">Int</span><span class="p">,</span><span class="w"> </span><span class="n">button</span><span class="o">:</span><span class="w"> </span><span class="nc">Int</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="nc">Int</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="w">  </span><span class="p">{</span><span class="w"> </span><span class="n">time</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">button</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">button</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">ways_to_win</span><span class="p">(</span><span class="n">time</span><span class="o">:</span><span class="w"> </span><span class="nc">Int</span><span class="p">,</span><span class="w"> </span><span class="n">distance</span><span class="o">:</span><span class="w"> </span><span class="nc">Int</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="nc">Int</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="w">  </span><span class="n">list</span><span class="o">.</span><span class="nf">range</span><span class="p">(</span><span class="n">from</span><span class="o">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">to</span><span class="o">:</span><span class="w"> </span><span class="n">time</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="w">  </span><span class="o">|&gt;</span><span class="w"> </span><span class="n">list</span><span class="o">.</span><span class="nf">map</span><span class="p">(</span><span class="nf">race</span><span class="p">(</span><span class="n">time</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">))</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="w">  </span><span class="o">|&gt;</span><span class="w"> </span><span class="n">list</span><span class="o">.</span><span class="nf">filter</span><span class="p">(</span><span class="k">fn</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">distance</span><span class="w"> </span><span class="p">})</span><span class="w">
</span></span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="w">  </span><span class="o">|&gt;</span><span class="w"> </span><span class="n">list</span><span class="o">.</span><span class="n">length</span><span class="w">
</span></span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="k">fn</span><span class="w"> </span><span class="nf">part1</span><span class="p">(</span><span class="n">times</span><span class="o">:</span><span class="w"> </span><span class="nc">List</span><span class="p">(</span><span class="nc">Int</span><span class="p">),</span><span class="w"> </span><span class="n">distances</span><span class="o">:</span><span class="w"> </span><span class="nc">List</span><span class="p">(</span><span class="nc">Int</span><span class="p">))</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="w">  </span><span class="kd">let</span><span class="w"> </span><span class="n">answer</span><span class="w"> </span><span class="o">=</span><span class="w">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="w">    </span><span class="n">list</span><span class="o">.</span><span class="nf">zip</span><span class="p">(</span><span class="n">times</span><span class="p">,</span><span class="w"> </span><span class="n">distances</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="w">    </span><span class="o">|&gt;</span><span class="w"> </span><span class="n">list</span><span class="o">.</span><span class="nf">map</span><span class="p">(</span><span class="k">fn</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nf">ways_to_win</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="o">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">})</span><span class="w">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="w">    </span><span class="o">|&gt;</span><span class="w"> </span><span class="n">int</span><span class="o">.</span><span class="n">product</span><span class="w">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="w">  </span><span class="n">io</span><span class="o">.</span><span class="nf">print</span><span class="p">(</span><span class="s">&#34;Part 1: &#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="w">  </span><span class="n">io</span><span class="o">.</span><span class="nf">println</span><span class="p">(</span><span class="n">int</span><span class="o">.</span><span class="nf">to_string</span><span class="p">(</span><span class="n">answer</span><span class="p">))</span><span class="w">
</span></span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="p">}</span></span></span></code></pre></div>
<p>So there we will see.</p>
]]></content:encoded>
    </item>
    <item>
      <title>So Heres a Thing</title>
      <link>https://sotolf.codeberg.page/posts/so-heres-a-thing/</link>
      <pubDate>Wed, 29 May 2024 09:20:03 +0200</pubDate>
      <guid>https://sotolf.codeberg.page/posts/so-heres-a-thing/</guid>
      <description>&lt;h2 id=&#34;so-heres-a-thing&#34;&gt;So here&amp;rsquo;s a thing&lt;/h2&gt;&#xA;&lt;p&gt;I guess I will try this out again, this time I will try to not&#xA;write way too much and burn myself out, so don&amp;rsquo;t expect novels&#xA;of text here just some shorter form posts when I feel like it.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="so-heres-a-thing">So here&rsquo;s a thing</h2>
<p>I guess I will try this out again, this time I will try to not
write way too much and burn myself out, so don&rsquo;t expect novels
of text here just some shorter form posts when I feel like it.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
